2015-03-25 1 views
3

Я вижу, что есть Scala wrapper for JasperReports, и я нашел Clojure library for Scala interoperability, а также a snippet примера кода новичком from this discussion, но я не могу найти никаких библиотек или кода рабочего кода для Jasper или DynamicJasper. Я думал, что раньше я нашел библиотеку или статью. Любые намеки?Есть ли простой способ использовать JasperReports от Clojure?

Проблема в том, что 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") 

Надеюсь, это поможет вам начать работу.

+0

Спасибо, я проверю это! На самом деле я начал собирать обертку lib. Вы можете вносить свой вклад или использовать его: https://github.com/sventechie/jasper-reports-clj – sventechie

 Смежные вопросы

  • Нет связанных вопросов^_^