Есть ли простой способ использовать JasperReports от Clojure?
Я вижу, что есть оболочка Scala для JasperReports, и я нашел библиотеку Clojure для взаимодействия Scala, а также фрагмент кода примера для новичка из этого обсуждения, но я не могу найти библиотеки или рабочий пример кода для Jasper или DynamicJasper, Я думал, что ранее нашел библиотеку или статью. Есть намеки?
Проблема в том, что API JasperReports невероятно запутан (сфокусирован на мутациях), поэтому я не хочу писать код оболочки с нуля.
1 ответ
Это не исчерпывающее руководство, а несколько советов о том, как я использую JasperReports с файлами JRxml и Clojure. Я понятия не имею о DynamicJasper.
Вот некоторые вещи, которые вам нужно импортировать.
(ns app.reports
(:require [clojure.java.io :as io]
[clojure.string :as s])
(:import [net.sf.jasperreports.engine
JasperCompileManager
JasperFillManager
JasperPrint
JasperExportManager
JREmptyDataSource
JRExporter
JRException]))
Скомпилируйте ваш файл jrxml:
(def my-report
(JasperCompileManager/compileReport
(io/input-stream
(io/file "my-report.jrxml"))))
Используйте Java HashMap
с данными / столбцами вы перейдете в свой отчет, чтобы заполнить его.
(def report-data
(java.util.HashMap. {"attrname_1" "Attr 1 String"
"attrname_2" "More data..."}))
Заполните ваш отчет данными из источника:
(def filled-report
(JasperFillManager/fillReport my-report report-data (JREmptyDataSource.)
Экспортируйте ваш отчет. Вот как это сделать в формате PDF.
(JasperExportManager/exportReportToPdfFile filled-report "result.pdf")
Я надеюсь, что это поможет вам начать.