Jasper报告在表中添加静态文本行

时间:2018-08-30 12:52:07

标签: jasper-reports

目前,我正在像这样的碧玉报告中显示表格

    <div class="form-group user-multiselect-dropdown">
      <label for="address" class="regular-15-25">Mina valda adresser</label>
      <multiselect-dropdown 
        options.bind="selectedAddresses"
        noun-singular="adress"
        noun-plural="adresser">
      </multiselect-dropdown>
    </div>

但是现在我要做成这样的桌子

Col1   |  Col2   |  Col3   |  Col4   
------------------------------------
Row1C1 | Row1C2  | Row1C3  | Row1C4
Row2C1 | Row2C2  | Row2C3  | Row2C4
Row3C1 | Row3C2  | Row3C3  | Row3C4
Row4C1 | Row4C2  | Row4C3  | Row4C4

有可能吗? 如果是,那我该如何在表中添加静态行?

1 个答案:

答案 0 :(得分:2)

您可以使用数据组来做到这一点。这是一个实现该目标的示例:

p #{foo.replace...}

它将使用<script>...</script>字段对行进行分组,并且您可以在<queryString language="SQL"> <![CDATA[SELECT col1, col2, col3 FROM some_table ORDER BY flag]]> </queryString> <field name="col1" class="java.lang.Integer"> <property name="com.jaspersoft.studio.field.label" value="col1"/> <property name="com.jaspersoft.studio.field.tree.path" value="some_table"/> </field> <field name="col2" class="java.lang.String"> <property name="com.jaspersoft.studio.field.label" value="col2"/> <property name="com.jaspersoft.studio.field.tree.path" value="some_table"/> </field> <field name="flag" class="java.lang.Bolean"> <property name="com.jaspersoft.studio.field.label" value="flag"/> <property name="com.jaspersoft.studio.field.tree.path" value="some_table"/> </field> <group name="flagGroup"> <groupExpression><![CDATA[$F{flag}]]></groupExpression> <groupFooter> <band height="39"> <printWhenExpression><![CDATA[$F{flag}]]></printWhenExpression> <staticText> <reportElement x="0" y="10" width="380" height="20" uuid="d4d760c5-0587-4bd7-973a-de1d9b0c8da6"/> <text><![CDATA[Any static text to separate groups]]></text> </staticText> <line> <reportElement x="0" y="0" width="330" height="1" uuid="b00741f6-3d2c-4cca-a3fe-397aa7fbf906"/> </line> <line> <reportElement x="0" y="30" width="330" height="1" uuid="0f30d1bc-30ef-48e9-b40e-ab4a3e2b1ffc"/> </line> </band> </groupFooter> </group> 中插入想要的内容,例如flaggroupFooterstaticText等。

以下是预览:

Preview of using data groups

您可以在JasperSoft Wiki上找到有关组的更多信息:https://community.jaspersoft.com/wiki/groups


更新:如果使用linerectangle,则类似。首先,在subDataset中定义jr:table

group

然后在subDataSet的{​​{1}}中添加组页脚(或标题)定义:

<subDataset name="Dataset1" uuid="bb794b3a-5505-492a-8b9f-500b274a8334">
    <field name="col1" class="java.lang.Integer">
        <fieldDescription><![CDATA[col1]]></fieldDescription>
    </field>
    <field name="col2" class="java.lang.String">
        <fieldDescription><![CDATA[col2]]></fieldDescription>
    </field>
    <field name="col3" class="java.lang.String">
        <fieldDescription><![CDATA[col3]]></fieldDescription>
    </field>
    <field name="flag" class="java.lang.Boolean">
        <fieldDescription><![CDATA[flag]]></fieldDescription>
    </field>
    <group name="flagGroup">
        <groupExpression><![CDATA[$F{flag}]]></groupExpression>
    </group>
</subDataset>