如何仅更改 JasperReports 中交叉表报告的所有列和行的背景颜色?

How do I change the background color on only the ALL columns and rows for a Crosstab report in JasperReports?

我已经在 J​​asperReports 中创建了一个交叉表报告,并且想仅向所有行和列添加一些条件着色。 到目前为止,我已经尝试检查条件样式中的 <Measure>_<Column Group>_ALL 变量,但是当某些值与 ALL row/columns 中的值相同时,这不起作用。 我正在使用 ROW_COUNT 变量来交替显示行颜色,但我注意到它没有将 ALL 行计为离散行。 这可能吗?

我希望平均值 columns/rows 中数据的背景颜色在上面的示例中为灰色,而不会弄乱交替行的颜色。

要为列组设置特定样式,它需要位于数据源之外。在您设置 columnTotalGroup 的位置添加一个 crosstabCell 并根据需要在此设置样式上添加。

jrxml代码

<crosstabCell width="50" height="28" columnTotalGroup="myColumnGroup">
     <cellContents backcolor="#BFE1FF" mode="Opaque">
       <box>
        <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
       </box>
       <textField>
            <reportElement style="Crosstab Data Text" x="0" y="11" width="50" height="16" forecolor="#000000" uuid="27bcff56-8b7a-4867-b1bb-f0f35f750525"/>
            <textElement verticalAlignment="Middle">
              <font size="8"/>
              <paragraph lineSpacing="Single"/>
            </textElement>
            <textFieldExpression><![CDATA[$V{myAverage})]]></textFieldExpression>
       </textField>
    </cellContents>
</crosstabCell>

在组

上获取数据集totalPosition="End"之后的单元格

您也可以使用 setRowTotalGroup

将此应用于行总计