首页 文章

iReport中的字段表达式

提问于
浏览
1

我想让自己习惯于 iReport ,然后在下周的真实项目中使用它,我似乎已经堆积在某个地方 . 我在Windows XP平台Java 1.6上使用 iReport 3.7.0

听起来很容易根据它包含的内容改变场颜色,或者根据条件计算场中的数字总和,但实际上这需要我花费太多时间来完成 . 我有一个查询说:

SELECT COUNT(gender) AS total_by_gender, gender, account_status FROM user_account ua, user_profile up WHERE ua.user_profile_id=up.user_profile_id GROUP BY gender,account_status

它给了我这样的东西:

| total_by_gender | gender | account_status |  
    | 160             |Female  | ENABLED        |  
    | 26              |Female  | UNCONFERIMED   |  
    | 100             |Male    | ENABLED        |
    | 10              |Male    | UNCONFIRMED    |

现在我希望 ENABLED Text看起来说 greenUNCONFIRMED 说`red . 为此我添加了一个带有此表达式的文本字段

$F{account_status}.equals( new String("ENABLED") ) ? "<style forecolor='#ff0000'>" + $F{account_status}.toString() + "</style>" :"<style forecolor='#999999'>" + $F{account_status}.toString() + "</style>"    
//i've tried this too
$F{account_status}.contentEquals( new String("ENABLED") )  ? 
//and even  
($F{account_status}.toString =="ENABLED"  ) ?

好吧,对于他们每个人,它给了我像 <style> (我认为它打印所有条件表达式)相同的文本,而不是彩色文本 unconfirmedenabled .

我的第二个问题是我想做所有 unconfirmed 和所有 enabled 的总数 . 我可以做正常的总和表达,但条件我不知道 . 任何人都能解释一下吗?谢谢阅读

2 回答

  • 3

    试试这个 . 定义如下样式 .

    <style name="myStyle" isDefault="false" mode="Transparent">
              <conditionalStyle>
                  <conditionExpression><![CDATA['YOUR CONDITION']]></conditionExpression>
                  <style isDefault="false" style="myStyle" backcolor="#E6DAC3"/>
              </conditionalStyle>
         </style>
    

    并在textFieldExpression中使用它

    <reportElement style="myStyle" x="1" y="0" width="100" height="15"/>
    
  • 0

    这里有两个问题 . 1.您的条件声明不起作用 . 试试$ F .equals(“ENABLED”) . 它会工作 . 2.您想根据某些条件为文本着色 . 检查iReport是否支持文本字段上的条件着色 . 如果是,请尽量不要使用颜色信息污染内容() . 颜色信息必须位于文本字段而不是文本字段的内容 . 请提供您正在使用的完整文本字段定义 .

    我明天会自己试试 .

相关问题