Мне нужно отправить параметры в мой JasperReport.
Компилировать ли я его сначала с помощью compileReport
, а затем вызывать fillReport
, передавая параметры, или мне нужно делать что-то в обратном порядке?
Мне нужно отправить параметры в мой JasperReport.
Компилировать ли я его сначала с помощью compileReport
, а затем вызывать fillReport
, передавая параметры, или мне нужно делать что-то в обратном порядке?
Составление и заполнение отчета - две разные вещи.
О компиляции
Отчеты Jasper обычно разрабатываются с использованием инструментов IDE, таких как iReport или JasperSoft Studio (вы также можете использовать блокнот), отчет сохраняется в файле с расширением .jrxml, перед запуском .jrxml
вам необходимо скомпилировать его в файл .jasper
(вы также может компилироваться во время выполнения и сохранять только объект JasperReport
)
Его можно сравнить с .java
файлом, который необходимо скомпилировать в .class
файлы, прежде чем вы сможете запустить программу.
Для получения дополнительной информации см .:
Как скомпилировать jrxml для получения jasper?
О заливке
Заполнение - это когда вы хотите заполнить дизайн отчета данными, данные могут поступать из JRDatasource или база данных Подключение (запрос в отчете) и Map<String,Object>
карту параметров. При заполнении отчета вы получаете объект JasperPrint
(даже его можно сохранить в файл, чтобы не заполнять один и тот же отчет несколько раз)
Об экспорте
Последний процесс создания отчета - это процесс экспорта, когда вы экспортируете JasperPrint
в желаемый формат pdf, excel, html и т. Д.
Итак, давайте вернемся к вашему первоначальному вопросу.
Скомпилировать ли я сначала с помощью compileReport
?
Вы можете, если хотите, но вам не нужно, если вы уже составили свой отчет. В этом случае просто загрузите скомпилированный отчет, который работает быстрее.
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(inputStream);