java - 如何将动态前景色应用于 JasperReport 中的文本字段

标签 java jasper-reports

我在 jasperreport 中有一个文本字段。现在我需要动态传递该字段的文本颜色。

我尝试过使用 iReport 设计器,但到目前为止找不到任何相关的解决方案。

这有可能实现吗?

最佳答案

您可以在条件下使用 Style。或者您可以使用具有可见性条件的不同元素(例如 textField)- printWhenExpression

更多细节你可以看这个discussion .

使用样式的示例。当产品成本大于 12.0 且小于或等于时,将“产品位置”textFieldforecolor 属性设置为红色低于 14.0 并在成本大于 14.0 时将其设置为绿色:

<style name="ColoredField">
    <conditionalStyle>
        <conditionExpression><![CDATA[Boolean.valueOf($F{PRODUCT_COST} > 12.0 && $F{PRODUCT_COST} <= 14.0)]]></conditionExpression>
        <style forecolor="#FF0000"/>
    </conditionalStyle>
    <conditionalStyle>
        <conditionExpression><![CDATA[Boolean.valueOf($F{PRODUCT_COST} > 14.0)]]></conditionExpression>
        <style forecolor="#00FF99"/>
    </conditionalStyle>
</style>
 ...
<detail>
    <band height="21" splitType="Stretch">
        <textField>
            <reportElement style="ColoredField" x="78" y="1" width="100" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[$F{PRODUCT_NAME}]]></textFieldExpression>
        </textField>

关于java - 如何将动态前景色应用于 JasperReport 中的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7979099/

相关文章:

java - 创建 pdf Jasper 报告,终止服务器执行

java - JasperReports 是否允许动态字体颜色?

jasper-reports - 如何在我的表格底部添加一行?

java - 有没有办法在关闭时使用 ContextListener 关闭 contextDestroyed() 方法中的所有 ThreadLocals(保存 Session 对象)?

java - struts2 date无法通过jquery datetimepicker获取时间

java - 如何设置多播/单播环境,使每个成员都可以向组广播并向特定成员发送特定数据

jasper-reports - 如何从 Jasper Report (.jrxml) 引用 .jrtx 模板文件?

java - HTML 报告中的 JasperReports SVG 图表

java - Android 创建 xml 并将其写入文件

java - 查看外部存储中的文件列表