将报告外部的值设置为jasper报告

时间:2015-02-18 05:49:17

标签: java jasper-reports

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

  • 使用jrxml工具根据需要创建iReport文件。
  • 设置报告外部所需的值。 (我的意思是,如果我的name="james"程序中有一个名为java的变量,则该变量为报告中的文本字段。
  • 然后创建报告并生成pdf。

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

3 个答案:

答案 0 :(得分:4)

  

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

基本上,是的。

您需要将参数定义为"参数"在报告中键入,然后提供参数作为"文本字段表达式"在格式为$P{...}

的表单上

Prameters

然后,当您要填写报表时,您需要创建一种Map某种类型,地图中的每个键都应该是您在报表中定义的参数名称,例如..

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

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

答案 1 :(得分:0)

它解决了!!

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

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

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

答案 2 :(得分:0)

我得到了答案

<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-shade-plugin</artifactId>
 <version>2.3</version>
 <configuration>
   <artifactSet>
     <includes>
        <include>com.fasterxml.jackson.core:jackson-databind</include>
     </includes>
   </artifactSet>
   <relocations>
     <relocation>
       <pattern>com.fasterxml.jackson.core</pattern>
       <shadedPattern>shaded.fasterxml.jackson.core.databind</shadedPattern>
     </relocation>
   </relocations>
  </configuration>