Файл CSV свойства JRDataset - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть отчет с входным файлом .CSV в качестве DataAdapter. После этого мне понадобилась таблица, чтобы поместить в нее некоторые данные и связанный набор данных. Проблема в том, что если я оставлю пустым раздел «Адаптер данных по умолчанию» в моем наборе данных1, данные не будут отображаться. Фактически, чтобы исправить этот отчет, мне пришлось экспортировать свой DataAdapter как myDataAdapter. xml, а затем поместить этот файл в раздел « Адаптер данных по умолчанию » моего Dataset1 (как показано на прилагаемой картинке). enter image description here

Работа с базой данных Я никогда не настраивал это свойство.

Есть ли способ передать это свойство как Param? (У меня есть java код, в котором я вызываю jasperReport и хочу передать этот объект динамически).

Или есть ли способ, которым отчет работает без установки этого свойства?

В Таблица раздела> Набор данных У меня такая ситуация:

enter image description here

, где я настраивал выражение JRDatasource, но он не работает ...

У меня есть еще одна проблема. Могу ли я динамически установить местоположение моего .csv внутри DataAdapter. xml?

enter image description here

Возможно ли реализовать "myDataAdapter. xml "из java кода и передать его в отчет ??

Заранее спасибо!

1 Ответ

1 голос
/ 04 февраля 2020

В Java коде вы можете установить свойства для экземпляра net.sf.jasperreports.engine.JasperReport, как в этом примере здесь , из официального репозитория. Соответствующий код выглядит следующим образом:

...
JasperReport jasperReport = ...
...
jasperReport = (JasperReport)JRLoader.loadObjectFromFile("build/reports/ExcelXlsxQeDataAdapterReport.jasper");
jasperReport.setProperty(DataAdapterParameterContributorFactory.PROPERTY_DATA_ADAPTER_LOCATION, "data/XlsxQeDataAdapter.xml");
...

Интересующее свойство net.sf.jasperreports.data.adapter хранится в DataAdapterParameterContributorFactory.PROPERTY_DATA_ADAPTER_LOCATION

Файл адаптера данных - это удобный метод для передачи серии параметры, из которых строится net.sf.jasperreports.engine.data.JRCsvDataSource. Если вы хотите пропустить передачу этого свойства, вам придется вручную предоставить встроенные параметры, перечисленные в net.sf.jasperreports.engine.query.JRCsvQueryExecuterFactory.CSV_BUILTIN_PARAMETERS.

...