我看到有一个 Scala wrapper for JasperReports , 我找到了 Clojure library for Scala interoperability ,以及 a snippet初学者的示例代码 from this discussion但我找不到 Jasper 或 DynamicJasper 的任何库或工作示例代码。我以为我以前找到了图书馆或文章。有什么提示吗?
问题是 JasperReports API 非常困惑(以变异为中心),所以我不想从头开始编写包装器代码。
最佳答案
这不是一个详尽的教程,而是一些关于我如何将 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")
我希望这可以帮助您入门。
关于clojure - 有没有一种从 Clojure 中使用 JasperReports 的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29263653/