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

时间:2016-02-03 13:36:00

标签: jasper-reports crosstab

我在JasperReports中创建了一个Crosstab报告,并希望只为所有行和列添加一些条件着色。 到目前为止,我试图在条件样式中检查<Measure>_<Column Group>_ALL变量,但是当某些值与ALL行/列中的值相同时,这不起作用。 我使用ROW_COUNT变量来执行交替的行颜色,但我注意到它不将ALL行计为离散行。 这可能吗?

crosstab

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

1 个答案:

答案 0 :(得分:1)

要将特定样式设置为列组,它必须位于数据源之外。添加crosstabCell,您可以根据需要设置columnTotalGroup和此设置样式。

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

将其应用于行总计