Как я могу сделать поле необязательным? - PullRequest
0 голосов
/ 10 января 2019

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

Однако, когда столбец, который я описал как поле

<field name="MY_COLUMN" class="java.lang.String"/> 

не существует в курсоре, он выдает ошибку, подобную этой:

error while rendering
net.sf.jasperreports.engine.JRException: Unknown column name MY_COLUMN in result set

Есть ли способ объявить поле в JRXML необязательным? Когда столбец не существует в наборе результатов.

1 Ответ

0 голосов
/ 10 января 2019

AFIK: Нет настроек / атрибутов, которые вы можете установить в объявлении поля.

Ваши варианты:

  1. Всегда возвращать имя столбца, даже если он недоступен, используя sql псевдоним например:

    SELECT column1, null as MY_COLUMN from myTable.
    
  2. Создайте свой собственный JRDatasource что может быть все от загрузки данных в бины и передачи JRBeanCollectionDataSource создать свой собственный JRQueryExecuter и зарегистрировать его на заводе.

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