将报告外部的值设置为碧玉报告

set values from outside the report to a jasper report

我将使用 jasper 报告生成报告。为此,我的计划是,

我需要知道的是这种可能性。我可以将我的变量设置到我的 jrxml 文件中的字段中吗?如果可以,我该怎么做?

What I need to know is the possibility of this. Can I set my variables into the fields in my jrxml file?

基本上是的。

您需要在报告中将参数定义为 "Parameter" 类型,然后以 $P{...}

格式在表单上提供 "Text Field Expression" 参数

然后,当你想填充报表时,你需要做的是创建一个Map某种类型的,映射中的每个键应该是你在报表中定义的参数的名称,例如...

Map<String, Object> mapParameters = new HashMap<String, Object>(5);
mapParameters.put("USER_NAME", name);

JasperPrint print = JasperFillManager.fillReport(report, mapParameters);

解决了!!

para.put(<key>,<value>);
para.put(<key>,<value>);
para.put(<key>,<value>);

JasperFillManager.fillReportToFile(jr, para, new JRemptyDataSource());

如果您不编写新的 JRemptyDataSource(),则会出现一条消息,指出该文档没有页面 在您的报告中创建一个字段,并在字段表达式中放置您的参数(参数名称应具有相同的键值)

我得到答案

     parameters.put("ReportTitle", "List of Contacts");
     parameters.put("Author", "Prepared By Manisha");

     JasperPrint print = JasperFillManager.fillReport(sourceFileName, parameters, new JREmptyDataSource());

     JRPdfExporter exporter = new JRPdfExporter();
     exporter.setExporterInput(new SimpleExporterInput(print));
     exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outFileNamePDF));
     SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
     configuration.setMetadataAuthor("Petter");  //why not set some config as we like
     exporter.setConfiguration(configuration);
     exporter.exportReport();