【问题标题】:Trouble with conditional style条件样式的问题
【发布时间】:2013-07-11 23:51:13
【问题描述】:

感谢大家,感谢 Alex K,我找到了原因。这可能是 报告 3.0 。 外部样式标签不应包含颜色属性。 我删除了它,它运行良好。

================================================ ================================== 我在使用 JasperReports 的报告中遇到了条件样式表达式的问题。 iReport的版本是3.0

我刚刚发现布尔表达式根本不起作用。


条件样式:

<style 
    name="old"
    mode="Opaque"
    **forecolor="#990033"**
>

    <conditionalStyle>
        <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression>
        <style 
            name="old"
            isDefault="false"
            mode="Opaque"
            forecolor="#990033"
        >
        </style>
    </conditionalStyle>
</style>

文本字段表达式:

<textField isStretchWithOverflow="false" pattern="" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                <reportElement
                    style="old"
                    x="315"
                    y="0"
                    width="78"
                    height="14"
                    key="textField-3"/>
                <box></box>
                <textElement>
                    <font/>
                </textElement>
            <textFieldExpression   class="java.lang.Integer"><![CDATA[$F{age}]]></textFieldExpression>
            </textField>

结果是所有年龄都会变红,即使年龄小于 60 岁;

【问题讨论】:

  • 在我看来,您的风格声明是错误的。样本:&lt;style name="rowStyle" mode="Opaque"&gt; &lt;conditionalStyle&gt; &lt;conditionExpression&gt;&lt;![CDATA[$V{typeGroup_COUNT} % 2 ==0]]&gt;&lt;/conditionExpression&gt; &lt;style backcolor="#CCFFFF"/&gt; &lt;/conditionalStyle&gt; &lt;/style&gt;
  • 我之前更新了源码。以另一种方式更改布尔表达式,并通过有关条件样式的完整代码。
  • 最好将您的解决方案作为答案发布

标签: styles jasper-reports


【解决方案1】:

感谢大家,感谢Alex K,我找到了原因。这可能是ireport 3.0的错误。外部样式标签不应包含颜色属性。我删除它,它运行良好。 那是 : ireport生成的xml代码是

<style 
    name="old"
    mode="Opaque"
    forecolor="#990033"
>

    <conditionalStyle>
        <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression>
        <style 
            name="old"
            isDefault="false"
            mode="Opaque"
            forecolor="#990033"
        >
        </style>
    </conditionalStyle>
</style>

这样样式已经生效了。我删除了外部样式标签中设置的属性。 所以运行良好的最终 xml 代码如下所示:

<style 
    name="old"
    mode="Opaque"   
>

    <conditionalStyle>
        <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression>
        <style 
            name="old"
            isDefault="false"
            mode="Opaque"
            forecolor="#990033"
        >
        </style>
    </conditionalStyle>
</style>

【讨论】:

    猜你喜欢
    • 2011-04-26
    • 2015-03-18
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 2020-07-30
    相关资源
    最近更新 更多