Отображать пробелы вместо 0 или 0.0 в отчете BIRT

StackOverflow https://stackoverflow.com/questions/56723

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение 2

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

Другие советы

Есть несколько способов решить эту проблему.Два основных способа заключаются в использовании либо правил видимости, либо выделения для создания условного форматирования.Наглядность особенно привлекательна, поскольку легко применять правила форматирования только к определенным типам выходных данных (например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, но этот метод кажется более простым.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top