Разрешение пользователям загружать файл jasperReport, а затем компилировать его через страницу JSF - PullRequest
2 голосов
/ 03 февраля 2011

Я уже несколько недель ищу в Интернете достойное руководство, которое поможет мне с приложением JSF, над которым я работаю

Мне нужно разрешить пользователям загружать отчеты Jasper (.jasper или .jrxml) всервер, который я сделал

Теперь проблема, с которой я столкнулся, заключается в том, как позволить пользователю щелкнуть ссылку в созданном мной дереве файлов и отобразить отчет в браузере в формате pdf, excel, html,и т. д.

Я вижу в сети несколько учебных пособий о том, как их скомпилировать, но все это кажется ОЧЕНЬ запутанным и никогда не совсем тем, что я ищу

Я использую netbeans 6.9.1, JSF2.0 и Java в управляемом компоненте JSF

1 Ответ

2 голосов
/ 04 февраля 2011

Для просмотра отчета сначала необходимо заполнить отчет. Для заполнения отчета вам понадобятся несколько вещей: файл отчета (.jrxml или .jasper), карта параметров и соединение с базой данных. Если вы используете файл .jrxml, вы должны сначала скомпилировать его. Чтобы скомпилировать файл .jrxml, сначала загрузите его:

JasperDesign jasperDesign = JRXmlLoader.load(reportFile);

Затем скомпилируйте его:

JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

Переменная reportFile, передаваемая методу JRXmlLoader.load (), представляет собой строку с путем к пути к файлу вашего местоположения .jrxml и имени файла ("C: \ ReportFile \ TestReport.jrxml").

Теперь, когда вы загрузили и скомпилировали свой файл .jrxml, вы можете заполнить свой отчет. ПРИМЕЧАНИЕ: если вы используете файл .jasper, вы можете перейти прямо к этому шагу. compiled_file_name, который вы передадите в качестве параметра, - это местоположение файла и имя вашего файла .jasper.

Чтобы заполнить отчет, вы вызываете JasperFillManager и присваиваете его результаты переменной JasperPrint:

JasperPrint jasperPrint = JasperFillManager.fillReport(compiled_file_name, jasperParameter, jdbcConnection);

ПРИМЕЧАНИЕ: если вы загружаете и компилируете файл .jrxml, как показано выше, вы просто используете jasperReport в качестве первого параметра в методе JasperFillManager.fillReport, поскольку он содержит ваш скомпилированный файл. compiled_file_name является ссылкой на уже скомпилированный файл .jasper. Заполненный отчет будет сохранен в jasperPrint, это то, что вы передадите для различных вариантов просмотра и экспорта.

Теперь для просмотра вашего файла. Самый простой способ просмотреть это - использовать JasperViewer:

JasperViewer.viewReport(jasperPrint);

Чтобы экспортировать отчет в определенный формат файла, используйте JasperExportManager:

JasperExportManager.exportReportToPdfFile(jasperPrint, file_export_location);

file_export_location - это местоположение файла и имя, в котором вы будете сохранять файл. В JasperExportManager есть различные экспортеры, вы должны увидеть их в NetBeans. Я экспортирую отчеты в .pdf. Чтобы отобразить их, у меня есть способ отправить представление на другую страницу, которая содержит <iframe width="800px" height="500px" src="relative location of your file" />.

Надеюсь, это поможет.

Возможно, вы захотите приобрести Окончательное руководство по JasperReports и Окончательное руководство по iReports . Оба являются хорошими руководствами по использованию JasperReports.

UPDATE:

Как я уже сказал в своем комментарии ниже, я не помню, где я получил этот список (я потерял ссылку), но это файлы .jar, которые я использую в своих проектах (я пытался обработать его, но в итоге получаю ошибки, поэтому я выбрал путь новичка, просто включив их все):

ant-1.7.1, antlr-2.7.5, барбекю-1.5-бета1, штрих-код4j-2.0, батик-аним, батик-авт-ути, батик-бридж, батик-ксс, батик-дом, батик-экст, батик-гвт, батик-парсер, батик-скрипт, батик-свг-дом, батик-svggen, батик-утиль, батик-xml, батик-5.2, бш-2.0б4, Викисклада BeanUtils-1.8.0, Викисклад коллекция-2.1.1, Обще-варочного-1,7, Обще-javaflow-20060411, Обще-каротаж 1.0.4, groovy-all-1.7.5, hibernate3, hsqldb-1.8.0-10, iText-2.1.7, jaxen-1.1.1, jcommon-1.0.15, jdt-compiler-3.1.1, jfreechart-1.0.12, jpa, jxl-2.6.10, log4j-1.2.15, mondrian-3.1.1.12687, png-encoder-1.5, poi-3.6, rhino-1.7R1, saaj-api-1.3, сериализатор, сервлет, рессора-2.5.5, рессора-2.5.5, xalan-2.7.1, xercesImpl-.7.0,
xml-apis, xml-apis-ext

Надеюсь, это поможет.

...