Jasper reports Jasper报告,对整个组使用单个标签

Jasper reports Jasper报告,对整个组使用单个标签,jasper-reports,ireport,Jasper Reports,Ireport,我必须使用Jasper报告库和iReport创建一个报告。 在报告中使用的是数据分组。应以下一种方式显示: g a_line_in_the_group r a_line_in_the_group o a_line_in_the_group u a_line_in_the_group p a_line_in_the_group 1 a_line_in_the_group g a_line_in_the_group r a_line_in_the_g

我必须使用Jasper报告库和iReport创建一个报告。 在报告中使用的是数据分组。应以下一种方式显示:

g    a_line_in_the_group
r    a_line_in_the_group
o    a_line_in_the_group
u    a_line_in_the_group
p    a_line_in_the_group
1    a_line_in_the_group

g    a_line_in_the_group
r    a_line_in_the_group
o    a_line_in_the_group
u    a_line_in_the_group
p    a_line_in_the_group
2    a_line_in_the_group
因此,一个组只有一个标签。数据已分组,但标签仅显示在第一行,如下所示:

group1    a_line_in_the_group
          a_line_in_the_group
          a_line_in_the_group
我已经为标签指定了属性
stretch
,但它没有帮助。

  • 第一个变量
    
    
    结果将是:

  • 第二种变体
    
    
    结果将是:
  • 第一种变体
    
    
    结果将是:

  • 第二种变体
    
    
    结果将是:

    您可以将详细信息行放在组标签旁边。。。但您只能使用子报表来完成

    在大多数情况下(我指的是绝大多数情况下),将组标签显示在组标题中或仅显示在详细信息栏中是最简单和最好的。在后一种情况下,它可以仅包含在组的第一行或每一行中。Alex K的例子完美地展示了这些

    但是,如果您确实希望组标签显示在详细信息旁边,则需要一个子报告。下面是一个在iReport中显示的示例:

    以下是预览时该报告的呈现方式:


    在我的示例中,我设置了组标签旋转。这在PDF中很好,但在HTML中却不太好。但这只是一个细节;您可以随意渲染该标签。

    您可以将详细信息行放在组标签旁边。。。但您只能使用子报表来完成

    在大多数情况下(我指的是绝大多数情况下),将组标签显示在组标题中或仅显示在详细信息栏中是最简单和最好的。在后一种情况下,它可以仅包含在组的第一行或每一行中。Alex K的例子完美地展示了这些

    但是,如果您确实希望组标签显示在详细信息旁边,则需要一个子报告。下面是一个在iReport中显示的示例:

    以下是预览时该报告的呈现方式:


    在我的示例中,我设置了组标签旋转。这在PDF中很好,但在HTML中却不太好。但这只是一个细节;你可以随意渲染标签。

    你把标签放在哪里了?@Alex K-在细节带上。你把标签放在哪里了?@Alex K-在细节带上。是的,我知道这样。但这并不是理想的(也是预期的)结果。有一个表,其中第一列是组名。所以每个组只有一个单元格,没有标题。是的,我也试过。如果找不到另一个解决方案,它将继续作为第二条路。是的,我知道这条路。但这并不是理想的(也是预期的)结果。有一个表,其中第一列是组名。所以每个组只有一个单元格,没有标题。是的,我也试过。如果找不到另一种解决方案,它将继续作为第二种方法。
        <queryString>
            <![CDATA[SELECT
         DOCUMENTID AS POSITIONS_DOCUMENTID,
         POSITIONNO AS POSITIONS_POSITIONNO,
         PRODUCTID AS POSITIONS_PRODUCTID,
         QUANTITY AS POSITIONS_QUANTITY,
         PRICE AS POSITIONS_PRICE
    FROM
         POSITIONS order by PRODUCTID]]>
        </queryString>
        <field name="POSITIONS_DOCUMENTID" class="java.lang.Integer"/>
        <field name="POSITIONS_POSITIONNO" class="java.lang.Integer"/>
        <field name="POSITIONS_PRODUCTID" class="java.lang.Integer"/>
        <field name="POSITIONS_QUANTITY" class="java.lang.Integer"/>
        <field name="POSITIONS_PRICE" class="java.math.BigDecimal"/>
        <group name="productid">
            <groupExpression><![CDATA[$F{POSITIONS_PRODUCTID}]]></groupExpression>
            <groupHeader>
                <band height="21">
                    <textField>
                        <reportElement x="0" y="0" width="100" height="21"/>
                        <textElement/>
                        <textFieldExpression><![CDATA["Grouped by: " + $F{POSITIONS_PRODUCTID}]]></textFieldExpression>
                    </textField>
                </band>
            </groupHeader>
        </group>
        <detail>
            <band height="21" splitType="Stretch">
                <textField>
                    <reportElement x="136" y="0" width="100" height="21"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{POSITIONS_POSITIONNO}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement x="36" y="0" width="100" height="21"/>
                    <textElement/>
                    <text><![CDATA[Static text]]></text>
                </staticText>
            </band>
        </detail>
    
        <queryString>
            <![CDATA[SELECT
         DOCUMENTID AS POSITIONS_DOCUMENTID,
         POSITIONNO AS POSITIONS_POSITIONNO,
         PRODUCTID AS POSITIONS_PRODUCTID,
         QUANTITY AS POSITIONS_QUANTITY,
         PRICE AS POSITIONS_PRICE
    FROM
         POSITIONS order by PRODUCTID]]>
        </queryString>
        <field name="POSITIONS_DOCUMENTID" class="java.lang.Integer"/>
        <field name="POSITIONS_POSITIONNO" class="java.lang.Integer"/>
        <field name="POSITIONS_PRODUCTID" class="java.lang.Integer"/>
        <field name="POSITIONS_QUANTITY" class="java.lang.Integer"/>
        <field name="POSITIONS_PRICE" class="java.math.BigDecimal"/>
        <group name="productid">
            <groupExpression><![CDATA[$F{POSITIONS_PRODUCTID}]]></groupExpression>
            <groupHeader>
                <band height="21"/>
            </groupHeader>
        </group>
        <detail>
            <band height="21" splitType="Stretch">
                <textField>
                    <reportElement x="136" y="0" width="100" height="21"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{POSITIONS_POSITIONNO}]]></textFieldExpression>
                </textField>
                <textField isBlankWhenNull="true">
                    <reportElement x="36" y="1" width="100" height="20">
                        <printWhenExpression><![CDATA[$V{productid_COUNT}==1]]></printWhenExpression>
                    </reportElement>
                    <textElement/>
                    <textFieldExpression><![CDATA["Grouped by: " + $F{POSITIONS_PRODUCTID}]]></textFieldExpression>
                </textField>
            </band>
        </detail>