Цвет данных поля форматирования в зависимости от условия - PullRequest
11 голосов
/ 29 марта 2010

Я новичок в JasperReports. Я разрабатываю отчет с использованием iReport. Мое требование - у меня есть два значения (поля) x, y для сравнения. Если x

Пожалуйста, посоветуйте мне, как действовать дальше и где проверить.

Ответы [ 3 ]

9 голосов
/ 01 марта 2012

Я знаю, что это старый вопрос, но я предполагаю, что Jasper Reports изменился. Теперь вы можете сделать это с помощью условных стилей.

В iReport вы создаете новый стиль и даете ему имя. Вы можете поместить в стиль любые настройки по умолчанию, такие как шрифт, цвет, размер текста и т. Д. Затем щелкните правой кнопкой мыши стиль и выберите «Добавить условный стиль». Затем на поле или полях, к которым вы хотите применить его, вы устанавливаете стиль, который вы создали.

Так что в вашем примере я бы установил Forecolor в главном стиле черным, а выражение условия в условном стиле -

$F{y} > $F{x}

и Forecolor в условном стиле к красному. Затем в разделе сведений, в котором размещено поле y, задайте стиль, который мы создали.

7 голосов
/ 29 марта 2010

На форумах JasperForge есть обсуждение , возможно, это самая важная часть:

Сначала перетащите поле, которое вы хотите, чтобы оно было двухцветным. Измените цвет фона для первого поля на Желтый, а второе поле на Красный. Теперь щелкните правой кнопкой мыши на желтом поле, выберите «Свойства», выберите вкладку «Общие» и напишите этот код в поле «Печатать при выражении»: (обязательно замените поле myconditional вашим реальным именем поля) $ F {MyConditinalField} .intValue ()> = 5 && $ F {MyConditinalField} .intValue () <10? Boolean.TRUE: Boolean.FALSE // if> = 5 и <10, тогда показать желтое поле // Код для красного поля в том же месте, как и выше $ F {MyConditinalField} .intValue ()> = 10? Boolean.TRUE: Boolean.FALSE Надеюсь, это поможет.

Это не точно , что вам нужно, но, вероятно, может быть достаточно близко, чтобы подтолкнуть вас в правильном направлении.

5 голосов
/ 17 февраля 2013

Пример раскраски четной строки и нечетной строки приведен ниже, надеюсь, что справка

<style name="BackgroundStyle" mode="Opaque" backcolor="#FFFFFF">

    <conditionalStyle>
        <conditionExpression><![CDATA[Boolean.valueOf($V{REPORT_COUNT}.intValue() % 2 == 0)]]></conditionExpression>
        <style backcolor="#CCFFCC"/>
    </conditionalStyle>
</style>

И назначить стиль для каждого столбца, работал со мной:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...