【发布时间】:2017-07-04 14:07:08
【问题描述】:
我在子报表中有一个简单的文本字段。
目标:仅当参数“evenRow”为1“propertyExpression”用于“Forecolor” /em>
以下不起作用,但我试了一下......
<textField>
<reportElement key="" mode="Transparent" x="108" y="1" width="76" height="13">
<propertyExpression name="net.sf.jasperreports.style.forecolor">
<![CDATA[$P{evenRow} == 1 ? $P{colorZebra1_text} : ""]]>
</propertyExpression>
</reportElement>
<textElement><font fontName="SansSerif" size="8"/></textElement>
<textFieldExpression>"Text"</textFieldExpression>
</textField>
上下文:父报表调用这个!多次包含文本字段的子报表(如附图所示)。每次调用父报表时都会发送参数 "evenRow" 作为 1 或 0...
//snipped from parent report to show that "evenRow" is 1 or 0
($V{REPORT_COUNT}.intValue() % 2 == 0 ? 1 : 0)
问题:如何为动态“前景色”创建一个仅在我的参数 "evenRow" 设置为 1 ?
注意: 我知道我可以使用 conditional styles -> 样式的问题通常是它们永远不是动态的,即我必须为每种颜色创建 1 种样式可以设置...因为颜色可以设置为任何十六进制值,这不是一个选项。
【问题讨论】:
-
参数被传递给这个“子报表”。因为它是一个子报表,所以它被多次调用。每次“父”报告知道这是一个 ODD 还是 EVEN 子报告调用并因此传递参数 EVENROW (1 或 0) ..我已经更新了我的问题。感谢您的输入
标签: jasper-reports