我试图在我的Jasper报告中实现目录。以下是Jasper Reports网站上提供的一个如何实现该操作的示例:https://sourceforge.net/p/jasperReports/code/ci/jr-6-2-1/tree/jasperReports/demo/samples/tableofcontents/Reports/
在上面的示例中,它们对数据库运行一个查询,以获取数据来填充报表部分*。在我的例子中,我需要用从JavaBean获得的数据填充报表部分,但我找不到解决方案。
我知道如何将数据源作为参数从包装报表传递到报表部件,但我不知道如何在那里使用它,以便所有报表部件字段都映射到它。定期(没有报告部分),据我所知,它是自动完成的。
到目前为止我所做的:
JasperCompileManager.compileReportToFile("TablePart.jrxml", "TablePart.jasper");
JasperReport jasperReport = JasperCompileManager.compileReport("TableOfContentsReport.jrxml");
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(generateBeanList());
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap<>(), dataSource);
JasperExportManager.exportReportToPdfFile(jasperPrint, "TableOfContentsReport.pdf");
public class MyBean {
private Integer orderId;
private String shipName;
private String shipCity;
private String shipCountry;
private Integer total;
public Integer getOrderId() {
return orderId;
}
public void setOrderID(Integer orderId) {
this.orderId = orderId;
}
public String getShipName() {
return shipName;
}
public void setShipName(String shipName) {
this.shipName = shipName;
}
public String getShipCity() {
return shipCity;
}
public void setShipCity(String shipCity) {
this.shipCity = shipCity;
}
public String getShipCountry() {
return shipCountry;
}
public void setShipCountry(String shipCountry) {
this.shipCountry = shipCountry;
}
public Integer getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
}
<jasperReport ... sectionType="Part" ...>
<group name="dummy">
<groupExpression><![CDATA[]]></groupExpression>
<groupHeader>
...
<part>
<p:subreportPart xmlns:p="http://jasperreports.sourceforge.net/jasperreports/parts" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/parts http://jasperreports.sourceforge.net/xsd/parts.xsd"
usingCache="true">
<subreportParameter name="REPORT_DATA_SOURCE">
<subreportParameterExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></subreportParameterExpression>
</subreportParameter>
<subreportExpression><![CDATA["TablePart.jasper"]]></subreportExpression>
</p:subreportPart>
</part>
</groupHeader>
</group>
</jasperReport>
<jasperReport ...>
<queryString><![CDATA[]]></queryString>
<field name="orderId" class="java.lang.Integer"/>
<field name="shipName" class="java.lang.String"/>
<field name="shipCity" class="java.lang.String"/>
<field name="shipCountry" class="java.lang.String"/>
...
</jasperReport>
*以防万一,下面是关于报表部件主题的参考:http://jasperreports.sourceforge.net/sample.reference/book/index.html
问题是传递给子报表的数据源已经被使用。
JRDatasource使用next来迭代主报表中的详细信息带,并在最后将其传递给子报表。
解决方案:
>
向主报表传递新JREmptyDataSource(1)
,只需要1条记录
在HashMap
esMap.put(“SubreportDataSource”,datasource)
中将数据源作为参数传递
传递子报告此数据源
<subreportParameter name="REPORT_DATA_SOURCE">
<subreportParameterExpression><![CDATA[$P{subreportDataSource}]]></subreportParameterExpression>
</subreportParameter>
是否可以在所有报表部分之间共享一个数据源?
不直接作为datasource传递,但在您的示例中,可以将generateBeanList()
作为参数map.put(“dsList”,generateBeanList())
传递给每个子报表,然后传递new JRBeanCollectionDataSource($p{dsList})
我需要将源类中的字段值映射到字段属性。我可以使用Mapstruct使用@mapper注释的'expression'参数来完成 有没有其他方法可以不使用“表达式”来进行映射?
在我的数据库表中,我有一个列,它的内容可以是Y或N(CHECK约束)。我在Java中定义了一个String属性,在我的类中定义了一个基于String的setter。此外,为了方便起见,我添加了一个带有布尔参数的setter/getter。 那么,Hibernate基于什么属性进行映射呢?方法名称?参数名称?参数类型?在setter中使用可以吗?如果我的属性的名称与表列的名称不同,这会有什么不同吗?
MapStrut的新成员;对象到字符串错误: [错误] /util/LicenseMapper.java:[11,23]无法映射属性" Java . lang . object license . custom fields[]。值" to " Java . lang . string license . custom fields[]。值”。考虑声明/实现一个映射方法:“Java . lang
我在mapstruct映射器上遇到了问题。当运行mvn clean install(或mvn clean compile)时,我会得到以下错误: 问题是我不知道mapstruct从哪里获得这个“java.lang.Integer Architecture.Loads”。我不明白这个整数是从哪里来的,正如您在我的代码中看到的,没有整数。而且,到目前为止,我在使用类似的映射器时从未遇到过这个错误。 下
问题内容: 考虑以下类别: 映射到“订单”表。是否可以通过外键关系将客户名属性映射到客户表? 问题答案: 是的,您可以为此使用联接映射元素。另一种选择是映射视图而不是表。但是,如果可能的话,您应该采用面向对象的方法,并绘制订单和客户之间的多对多关系。
问题内容: 我正在使用Tire进行elasticsearch。在我的应用程序中,我有2个模型。价格和产品。 我正在尝试搜索我的Price类,并在搜索字段中使用它所属的产品的属性。现在,如果我有一个名为的产品,并输入“ pro”,“ prod”或“ duct”,则没有结果。但是键入“产品”或“产品”会显示结果。我相信问题出在我的地图上。我查看了查询及其: 我认为应该是: 从以下问题 我不知道该如何使