如何在jrxml中迭代HashMap(Arraylist)?
How to iterate HashMap(Arraylist) in jrxml?
我正在尝试迭代作为参数传递给 jrxml 的 HashMap
的值,在 HashMap
中,值作为 List
传递。
示例
List<String> severity = // some values;
List<String> messages = // some values;
LinkedHashMap parameters = new LinkedHashMap();
parameters.put("severity", severity);
parameters.put("messages", messages);
jPrint = JasperFillManager.fillReport(jasperreport,parameters,new JREmptyDataSource());
JasperExportManager.exportReportToPdfStream(jPrint,baos);
如何在 jasper 报告 jrxml 中迭代这些 List
?
我用这种方式给jasper传递一个参数。
Map parameters = new HashMap();
// idProd is the name of the parameter in my file .jrxml
parameters.put("idProd", product.getProductId());
// reportPath is the direction of the .jasper file.
// dataSource is my db conection.
jasperPrint = JasperFillManager.fillReport(reportPath, parameters, dataSource.getConnection());
编辑: 嗯,你想做一个按组划分的报告吗?例如。
- 狗
- 猫
- 等等
或许多单独的报告?在那种情况下,您应该重新考虑您的 jrxml 文件的结构。
另外你应该先在jasper report的IDE上试一下,把report做成你想要的样子,然后再尝试传递你想要的参数。
您可以使用
使用 jasper 报告创建新数据源
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{severity})
此数据源可用于 子报表 作为 dataSourceExpression
:
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{severity})]]></dataSourceExpression>
或在 jr:table
、jr:list
组件
中使用 subDataset 时
<datasetRun subDataset="listDs" uuid="99b1de41-5185-4b8f-9cfe-011e7b4cf22d">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{severity})]]></dataSourceExpression>
</datasetRun>
请注意,由于您的 Bean 是 java 原始类型 (String) 以直接访问它,您需要使用此字段描述
<field name="_THIS" class="java.lang.String"/>
有关详细信息,请参阅此内容:Passing the List of primitive type objects as datasource for subreport
我正在尝试迭代作为参数传递给 jrxml 的 HashMap
的值,在 HashMap
中,值作为 List
传递。
示例
List<String> severity = // some values;
List<String> messages = // some values;
LinkedHashMap parameters = new LinkedHashMap();
parameters.put("severity", severity);
parameters.put("messages", messages);
jPrint = JasperFillManager.fillReport(jasperreport,parameters,new JREmptyDataSource());
JasperExportManager.exportReportToPdfStream(jPrint,baos);
如何在 jasper 报告 jrxml 中迭代这些 List
?
我用这种方式给jasper传递一个参数。
Map parameters = new HashMap();
// idProd is the name of the parameter in my file .jrxml
parameters.put("idProd", product.getProductId());
// reportPath is the direction of the .jasper file.
// dataSource is my db conection.
jasperPrint = JasperFillManager.fillReport(reportPath, parameters, dataSource.getConnection());
编辑: 嗯,你想做一个按组划分的报告吗?例如。
- 狗
- 猫
- 等等
或许多单独的报告?在那种情况下,您应该重新考虑您的 jrxml 文件的结构。
另外你应该先在jasper report的IDE上试一下,把report做成你想要的样子,然后再尝试传递你想要的参数。
您可以使用
使用 jasper 报告创建新数据源new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{severity})
此数据源可用于 子报表 作为 dataSourceExpression
:
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{severity})]]></dataSourceExpression>
或在 jr:table
、jr:list
组件
<datasetRun subDataset="listDs" uuid="99b1de41-5185-4b8f-9cfe-011e7b4cf22d">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{severity})]]></dataSourceExpression>
</datasetRun>
请注意,由于您的 Bean 是 java 原始类型 (String) 以直接访问它,您需要使用此字段描述
<field name="_THIS" class="java.lang.String"/>
有关详细信息,请参阅此内容:Passing the List of primitive type objects as datasource for subreport