如何在没有数据库的情况下创建jasper报告

时间:2013-05-31 09:44:29

标签: java jasper-reports

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

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

请提出合适的方法。

1 个答案:

答案 0 :(得分:1)

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

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>