如何在交叉表总行中显示字段值?

How to display a value of field in crosstab total row?

我的交叉表组件有两个问题。

  1. 在我的交叉表中,我在选项卡的开头有总行,我想在每一列中显示我的字段的值。所以我创建了字段并将其放入总单元格中。编译时出现错误 "field not found" 但是当我将此字段放入详细信息区域时它显示正确。
  2. 其他情况。我可以将几个总计行添加到我的交叉表并在那里显示我的字段中的值吗?

要在交叉表中显示值,您需要创建一个度量

例子

<measure name="myField" class="java.lang.String">
    <measureExpression><![CDATA[$F{myField}]]></measureExpression>
</measure>

注意: measure可以是一个字段的简单表示(如示例),带calculation="Nothing"(不注明则默认值),记得设置正确 class(与字段相同)

现在您可以将度量 $V{myField} 添加到交叉表单元格:

<textField>
   <reportElement style="Crosstab Data Text" x="0" y="12" width="50" height="12" uuid="2a004def-c91d-40be-ba2a-fac8763fca7b"/>
   <textElement verticalAlignment="Middle">
      <font size="8"/>
      <paragraph lineSpacing="Single"/>
   </textElement>
    <textFieldExpression><![CDATA[$V{myField}]]></textFieldExpression>
</textField>

关于你的第二个问题“我可以在我的交叉表中添加几个总计行吗?,这个有点不清楚,你会得到一个总计行,如totalPosition rowGroup/columnGroup 属性,您可以添加任意数量的组。

"Start" - totals are to be positioned before the other buckets.

"End" - totals are to be positioned at the end of the other buckets.

"None" - total are not required for this bucket.

OP评论: 为了解决第二个问题,我刚刚在 Header 列中创建了一般行。 – Tomasz Iwaszko