Class: Torrone::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/torrone/report.rb

Class Method Summary collapse

Class Method Details

.generate(report_name, options = {}, params = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/torrone/report.rb', line 9

def generate(report_name, options = {}, params = {})
  data = options[:data]
  _JRParameter = Rjb::import 'net.sf.jasperreports.engine.JRParameter'
  _JsonQLQueryExecuterFactory = Rjb::import 'net.sf.jasperreports.engine.query.JsonQLQueryExecuterFactory'
  _JsonQueryExecuterFactory = Rjb::import 'net.sf.jasperreports.engine.query.JsonQueryExecuterFactory'
  _JasperFillManager = Rjb::import 'net.sf.jasperreports.engine.JasperFillManager'
  _JasperExportManager = Rjb::import 'net.sf.jasperreports.engine.JasperExportManager'
  _JasperPrint = Rjb::import 'net.sf.jasperreports.engine.JasperPrint'
  
  _Locale = Rjb::import 'java.util.Locale'
  
  _HashMap = Rjb::import 'java.util.HashMap'
  _StandardCharsets = Rjb::import 'java.nio.charset.StandardCharsets'
  
  namespace, report_name = extract_namespace(report_name)
  report_path = File.join(Config.jasper_dir || '.', namespace, report_name)
  jrxml_file = "#{report_path}.jrxml"

  jasper_file = Compiler.compile(jrxml_file);
  
  datastream = JsonInputStream.to_stream(data)

        parameters = _HashMap.new;
        parameters.put(_JsonQueryExecuterFactory.JSON_DATE_PATTERN, "yyyy-MM-dd");
        parameters.put(_JsonQueryExecuterFactory.JSON_NUMBER_PATTERN, "#,##0.##");
        parameters.put(_JsonQueryExecuterFactory.JSON_LOCALE, _Locale.ENGLISH);
  parameters.put(_JRParameter.REPORT_LOCALE, _Locale.US);
  parameters.put('CNPJ_EMPRESA', '5--353');
        parameters.put(_JsonQLQueryExecuterFactory.JSON_INPUT_STREAM, datastream) 
        jasperPrint = _JasperFillManager.fillReport(jasper_file, parameters);
  _JasperExportManager.exportReportToPdfFile(jasperPrint,"reports/users.pdf");
end