我正在创建一个标准桌面应用程序,我需要使用 JasperReports 创建一个报告。我有一个设计的表单,它接受用户的输入并应生成 JR 报告,即需要无数据库连接。
我在一些类似的问题中看到过要传递的参数,但它没有多大帮助。这里有一个类似的问题Can data in a java text field be sent to jasper report without database interaction?。
请提出合适的方法。
答案 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>