Отображать пробелы вместо 0 или 0.0 в отчете BIRT - PullRequest
2 голосов
/ 11 сентября 2008

При использовании агрегатного элемента управления в некоторых отчетах вы бы предпочли видеть пустое поле вместо 0. Похоже, нет способа сделать это автоматически. У кого-нибудь есть способ, которым это можно сделать. Обратите внимание, что вы хотите сохранить значение «0» для поля в тех случаях, когда вы экспортируете, но вы хотите, чтобы при рендеринге в PDF или HTML отображался пробел.

Ответы [ 2 ]

5 голосов
/ 11 сентября 2008

Есть несколько способов решить эту проблему. Двумя основными являются использование правил видимости или выделения для создания условного форматирования. Видимость особенно привлекательна, поскольку легко применять правила форматирования только к определенным типам вывода (например, HTML).

Для этого конкретного случая есть две проблемы с этими подходами. Во-первых, я хочу общие решения, где мне не нужно указывать цвет текста. Другими словами, когда условие истинно (значение 0), я хочу, чтобы мой цвет текста соответствовал цвету фона. Таким образом, если кто-то изменяет backgroundColor для элемента управления, код все еще работает.

Другая проблема заключается в том, что в этом случае я использую динамическое связывание столбцов, которое не поддерживает поиск значений.

Решением, которое я создал, было добавить функцию JavaScript с именем hideMe, как показано ниже.

function hideText (dataControl){
    if (dataControl.getValue() == 0) {
        var color = dataControl.getStyle().getBackgroundColor();
        var parentItem = dataControl.getParent();
        do {
            if (color == null && parentItem != null) {
                color = parentItem.getStyle().getBackgroundColor();
                parentItem = parentItem.getParent();
            } else {
                break;
            }

        } while (color == null);
        dataControl.getStyle().color = color;
    }
}

Как только эта функция была добавлена ​​в отчет (в моем случае это включенный файл JavaScript), я просто вызываю ее из метода элемента управления OnCreate.

hideText(this);

Это также можно сделать с помощью обработчиков событий Java, но этот метод кажется более простым.

1 голос
/ 14 сентября 2010

Просто к вашему сведению, поработав некоторое время с этим, я обнаружил, что проще использовать правила видимости Одним из больших преимуществ является то, что вы можете легко настроить различную видимость для разных форматов вывода. Поэтому для PDF лучше всего использовать пробелы, но для Excel вам могут потребоваться значения 0.

...