我想让自己习惯于 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看起来说 green
和 UNCONFIRMED
说`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>
(我认为它打印所有条件表达式)相同的文本,而不是彩色文本 unconfirmed
或 enabled
.
我的第二个问题是我想做所有 unconfirmed
和所有 enabled
的总数 . 我可以做正常的总和表达,但条件我不知道 . 任何人都能解释一下吗?谢谢阅读
2 回答
试试这个 . 定义如下样式 .
并在textFieldExpression中使用它
这里有两个问题 . 1.您的条件声明不起作用 . 试试$ F .equals(“ENABLED”) . 它会工作 . 2.您想根据某些条件为文本着色 . 检查iReport是否支持文本字段上的条件着色 . 如果是,请尽量不要使用颜色信息污染内容() . 颜色信息必须位于文本字段而不是文本字段的内容 . 请提供您正在使用的完整文本字段定义 .
我明天会自己试试 .