Java Jasper Reports:如何有条件地设置文本框样式?

Java Jasper Reports:如何有条件地设置文本框样式?,java,jasper-reports,ireport,Java,Jasper Reports,Ireport,在Jasper报告中是否可以有条件地设置文本框样式?如果是,如何进行 请注意,我知道条件样式,但我不需要根据条件变化的样式,而是使用不同的条件为每个文本框设置适当的样式(当然,我可以为每个文本框创建条件样式,但这将是一个真正的PITA…) 我正在使用JasperReports3.7.6和JasperStudio Eclipse插件 谢谢 用例示例伪代码: bean1 { f1 f2 } bean2 { cond1 cond2 } <textbox1 st

在Jasper报告中是否可以有条件地设置文本框样式?如果是,如何进行

请注意,我知道条件样式,但我不需要根据条件变化的样式,而是使用不同的条件为每个文本框设置适当的样式(当然,我可以为每个文本框创建条件样式,但这将是一个真正的PITA…)

我正在使用JasperReports3.7.6和JasperStudio Eclipse插件

谢谢

用例示例伪代码:

bean1 { f1 f2 } bean2 { cond1 cond2 } <textbox1 style="(bean2.cond1 ? style1 : style2)"> bean1.f1 </textbox1> <textbox2 style="(bean2.cond2 ? style1 : style2)"> bean1.f2 </textbox2> bean1{ f1 f2 } bean2{ 条件1 条件2 } bean1.f1 bean1.f2
很遗憾,您无法定义常规样式。请参阅《iReport终极指南》第135页: :

请注意,条件不能是通用的, 例如,不能设置“如果数字为正”或“如果字符串为正”之类的条件 无效的 “你必须非常具体, 例如,指定 特定值(字段、参数、变量或 任何涉及它们的表达)必须是肯定的
或 空,等等


很遗憾,您无法定义常规样式。请参阅《iReport终极指南》第135页: :

请注意,条件不能是通用的, 例如,不能设置“如果数字为正”或“如果字符串为正”之类的条件 无效的 “你必须非常具体, 例如,指定 特定值(字段、参数、变量或 任何涉及它们的表达)必须是肯定的
或 空,等等


回答我自己:事实证明,按照我需要的方式设置条件样式是不可能的。最后,我复制了每个文本字段(每个样式都有一个副本),然后根据条件设置可见性。枯燥和耗时,但它是有效的。

回答我自己:事实证明,按照我需要的方式设置条件样式是不可能的。最后,我复制了每个文本字段(每个样式都有一个副本),然后根据条件设置可见性。无聊又费时,但它很管用。

谢谢,但正如我所说的,我不是在寻找有条件的风格。我添加了一个示例来澄清我的问题。每个样式是否基于文本框中的一个值(例如,如果文本框值>X,则样式1=红色文本)?还是基于另一个值(例如,如果另一个文本框>X,则style1=红色文本)?textbox1和textbox2的style1和style2定义是否相同?它基于“侧车映射”。基本上,我想强调(逐字段)两个bean之间的差异。ATM我正在传递要打印的bean和一个保存已更改字段的映射(
{f1=true,f2=false}
)。谢谢,但正如我所说的,我不是在寻找条件样式。我添加了一个示例来澄清我的问题。每个样式是否基于文本框中的一个值(例如,如果文本框值>X,则样式1=红色文本)?还是基于另一个值(例如,如果另一个文本框>X,则style1=红色文本)?textbox1和textbox2的style1和style2定义是否相同?它基于“侧车映射”。基本上,我想强调(逐字段)两个bean之间的差异。ATM我正在传递要打印的bean和一个保存已更改字段的映射(
{f1=true,f2=false}
)。