首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有条件风格的麻烦

有条件风格的麻烦
EN

Stack Overflow用户
提问于 2013-07-10 15:52:24
回答 1查看 2.1K关注 0票数 0

多亏了每个人,多亏了Alex,我得到的cause.this可能是iReport3.0的bug。外部样式标记不应包含颜色属性。我把它删除了,效果很好。

================================================================================ --我遇到了JasperReports报表中条件样式表达式的麻烦。iReport的版本是3.0。

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

有条件的风格:

代码语言:javascript
复制
<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表达式:

代码语言:javascript
复制
<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岁;

EN

回答 1

Stack Overflow用户

发布于 2013-07-11 15:51:13

多亏了每个人,多亏了Alex,我得到的cause.this可能是iReport3.0的bug。外部样式标记不应包含颜色属性。我把它删除了,效果很好。也就是说: ireport生成的xml代码是

代码语言:javascript
复制
<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>

这样,样式已经生效,.I删除外部样式标记中设置的属性。因此,工作良好的最后xml代码如下所示:

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17575316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档