2010-01-10 4 views
1

Я пытаюсь использовать себя в iReport, прежде чем использовать его в реальном проекте на следующей неделе, и я, похоже, уже где-то укладывался. Я использую iReport 3.7.0 на платформе Windows XP + Java 1.6Полевое выражение в iReport

Звук легко получить, изменив цвет поля в зависимости от того, что он содержит, или рассчитать сумму числа в поле на основе условий, но на практике он принимает мне слишком много времени, чтобы выполнить. У меня есть запрос сказать:

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 Текст Выглядеть сказать green и UNCONFIRMED сказать `красный. Для этого я добавил текстовое поле с этим выражением

$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. я могу сделать нормальное выражение суммы, но с условием i понятия не имею. Может ли кто-нибудь пролить свет? спасибо за чтение

ответ

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 {account_status} .equals ("ENABLED"). Это будет работать. 2. Вы хотите покрасить текст на основе некоторого состояния. Проверьте, поддерживает ли iReport условную окраску в текстовом поле. Если это так, попробуйте не загрязнять контент информацией о цвете(). Информация о цвете должна быть в текстовом поле, а не в текстовом поле. Пожалуйста, дайте полное определение текстового поля, которое вы используете.

Я попробую это сам завтра.

+0

ок я получил условие работает для других целей вчера сбросив coroloring в textfield.During моих исследований на Google я вижу только то, что я уже писал, но Я также заметил, что это для более старых версий. Получение такой информации для ireport 3.7.0 или просто версии 3 кажется редким. Спасибо за ваш ответ –

+0

, так вы решили проблему с раскраской или условную сумму? или оба? – medopal

+0

нет у меня человек. –