我正在创建一个标准桌面应用程序,我需要在其中使用JasperReports创建一个报告。我设计了一个表单,它接受用户的输入并且应该生成JR报告,即不需要数据库连接。
我在一些关于要传递的参数的类似问题中看到过,但它并没有太大帮助。这里有一个类似的问题Can data in a java text field are sent to jasper report without database interaction? .
请提出合适的方法。
我正在创建一个标准桌面应用程序,我需要在其中使用JasperReports创建一个报告。我设计了一个表单,它接受用户的输入并且应该生成JR报告,即不需要数据库连接。
我在一些关于要传递的参数的类似问题中看到过,但它并没有太大帮助。这里有一个类似的问题Can data in a java text field are sent to jasper report without database interaction? .
请提出合适的方法。
您不需要数据库,只需直接从代码中设置值,例如
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>