Как заставить BIRT отображать нулевые значения? - PullRequest
4 голосов
/ 03 марта 2010

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

Так, например, если выбор включает в себя:

0 as p3,

тогда 0 отображается нормально. Однако, если выбор имеет:

(select sum(other_field) from other_table where ...) as p3,

поле отображается пустым.

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

Так что я думаю, что BIRT каким-то образом обрабатывает вложенный выбор, возвращающий ноль строк как NULL (который он также отображает как пустую ячейку), а не ноль. Кто-нибудь знает, как заставить BIRT отображать фактический 0, а не пустую ячейку?

Я использую DB2 / z v8, если кому-то нужно опубликовать ответ, специфичный для СУБД, хотя даже предложения от других поставщиков приветствуются.

Ответы [ 2 ]

6 голосов
/ 03 марта 2010

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

COALESCE((select sum(other_field) from other_table where ...), 0) as p3,
0 голосов
/ 11 июля 2013

Другим способом, хотя и не таким элегантным, но иногда необходимым (например, если вы выполняете хранимую процедуру, которую you не может изменить), было бы использование JavaScript для принудительного отображения «0» во время выполнения .

Используйте следующее выражение для привязки данных:

if (dataSetRow["your_data_set"] == null)
{
    0
}
else
{
    dataSetRow["your_data_set"]
}

В зависимости от типа данных вам может понадобиться добавить кавычки в ноль

"0"

для представления строк без кавычек рассматривается как целое число.

...