Есть ли простой способ использовать 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")

Я надеюсь, что это поможет вам начать.

Другие вопросы по тегам