0

我正在创建一个标准桌面应用程序,我需要在其中使用JasperReports创建一个报告。我设计了一个表单,它接受用户的输入并且应该生成JR报告,即不需要数据库连接。

我在一些关于要传递的参数的类似问题中看到过,但它并没有太大帮助。这里有一个类似的问题Can data in a java text field are sent to jasper report without database interaction? .

请提出合适的方法。

4

1 回答 1

2

您不需要数据库,只需直接从代码中设置值,例如

public static void main(String[] args) {
  String sourceFileName =
  "C://tools/jasperreports-5.0.1/test/jasper_report_template.jasper";

  DataBeanList dataBeanList = new DataBeanList();
  ArrayList<DataBean> dataList = dataBeanList.getDataBeanList();

  JRBeanCollectionDataSource beanColDataSource =
  new JRBeanCollectionDataSource(dataList);

  Map parameters = new HashMap();
  /**
   * Passing ReportTitle and Author as parameters
   */
  parameters.put("ReportTitle", "List of Contacts");
  parameters.put("Author", "Prepared By Manisha");

  try {
     JasperFillManager.fillReportToFile(
     sourceFileName, parameters, beanColDataSource);
  } catch (JRException e) {
     e.printStackTrace();
  }
}

例如,这个 xml 部分:

<textFieldExpression class="java.lang.String">
 <![CDATA[$P{ReportTitle}]]>
 </textFieldExpression>
 <anchorNameExpression><![CDATA["Title"]]>
 </anchorNameExpression>
于 2013-05-31T09:48:40.480 回答