我在JasperReports中创建了一个Crosstab报告,并希望只为所有行和列添加一些条件着色。
到目前为止,我试图在条件样式中检查<Measure>_<Column Group>_ALL
变量,但是当某些值与ALL行/列中的值相同时,这不起作用。
我使用ROW_COUNT
变量来执行交替的行颜色,但我注意到它不将ALL行计为离散行。
这可能吗?
我希望上面示例中平均列/行中数据的背景颜色为灰色,而不会弄乱交替的行颜色。
答案 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