我正在 jasper 报告中创建一个包含 3 个嵌套列表的表,我成功地创建了该表直到第二个列表,但对于第三个列表,它不起作用。有什么办法可以做到这一点吗?我正在为第二个列表使用子报告。
// Java代码
public static void main(String[] args) {
String outFile = "Report.pdf";
Util util = new Util();
/* Create Vscs */
/* Create Categories */
List<Category> catogeries = new ArrayList<Category>();
int randomLength = util.getNewRandomNumber();
System.out.println("***************************");
System.out.println("Total Categories Length "+randomLength);
for (int i = 0; i < randomLength; i++) {
List<Vsc> Vscs = new ArrayList<Vsc>();
int vscLength = util.getNewRandomNumber();
System.out.println("***************************");
System.out.println("Total VSCs Length "+vscLength);
for (int j = 0; j < vscLength; j++) {
Integer id = util.getNewRandomNumber();
String temp = util.getNewRandomString();
Vscs.add(new Vsc(id, temp, temp, temp, id.toString(), id.toString(), id.toString()));
}
System.out.println(Vscs);
String temp = util.getNewRandomString();
catogeries.add(new Category(temp, Vscs));
}
System.out.println(catogeries);
/* Convert List to JRBeanCollectionDataSource */
JRBeanCollectionDataSource CategoriesJRBean = new JRBeanCollectionDataSource(
catogeries);
/* Map to hold Jasper report Parameters */
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("CategoryDataSource", CategoriesJRBean);
/* Using compiled version(.jasper) of Jasper report to generate PDF */
try {
/* Using compiled version(.jasper) of Jasper report to generate PDF */
JasperPrint jasperPrint = JasperFillManager.fillReport(
"template.jasper", parameters, CategoriesJRBean);
/* outputStream to create PDF */
OutputStream outStream = new FileOutputStream(new File(outFile));
/* Write content to PDF file */
JasperExportManager.exportReportToPdfStream(jasperPrint, outStream);
System.out.println("File Generated");
} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
碧玉报告主文件代码
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="template" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="1e86ce9a-f7ec-493e-bb1c-193fda92340b">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<style name="Table_TH" mode="Opaque" backcolor="#F0F8FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table_CH" mode="Opaque" backcolor="#BFE1FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table 1_TH" mode="Opaque" backcolor="#F0F8FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table 1_CH" mode="Opaque" backcolor="#BFE1FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table 1_TD" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<subDataset name="CategoryDataset" uuid="3cc9e312-e929-4940-aff6-d8d83e24b723">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="name" class="java.lang.String"/>
<field name="vscs" class="java.util.List"/>
</subDataset>
<parameter name="CategoryDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="name" class="java.lang.String"/>
<field name="vscs" class="java.util.List"/>
<background>
<band splitType="Stretch"/>
</background>
<detail>
<band height="408">
<componentElement>
<reportElement x="0" y="0" width="550" height="180" uuid="26266d16-7d14-4cee-9fbf-c9d1ae5f037c">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
<property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/>
<property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
<property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
</reportElement>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="CategoryDataset" uuid="f21c7634-7f14-4267-97b7-517d83b2ca3a">
<dataSourceExpression><![CDATA[$P{CategoryDataSource}]]></dataSourceExpression>
</datasetRun>
<jr:column width="60" uuid="a34069ec-2184-4c0b-8b2d-f9276778ab61">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
<jr:tableHeader style="Table_TH" height="40" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="60" height="40" uuid="e0d53137-91bf-4314-80be-726bc23897b5"/>
<text><![CDATA[Category]]></text>
</staticText>
</jr:tableHeader>
<jr:detailCell style="Table_TD" height="50">
<textField>
<reportElement x="0" y="0" width="60" height="50" uuid="4b3bef69-ea8f-43d9-b99d-a1360e280479"/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="50" uuid="2e1524b4-9536-482d-b62c-5754432a9637">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/>
<jr:tableHeader style="Table_TH" height="40" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="50" height="40" uuid="d4623cd9-e0d6-415f-ad25-8b7a64a96f36"/>
<text><![CDATA[VSC Code]]></text>
</staticText>
</jr:tableHeader>
<jr:detailCell style="Table_TD" height="50">
<subreport>
<reportElement x="0" y="0" width="50" height="50" uuid="f07c137e-f8dd-4ffd-94c7-f699d54ae171"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{vscs})]]></dataSourceExpression>
<subreportExpression><![CDATA["testreport.jasper"]]></subreportExpression>
</subreport>
</jr:detailCell>
</jr:column>
<jr:column width="80" uuid="5af871b9-e5dd-4339-b849-0d86f184ac44">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/>
<jr:tableHeader style="Table_TH" height="40" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="80" height="40" uuid="85742d12-174a-4cc8-9634-5da9a2562e52"/>
<text><![CDATA[Item]]></text>
</staticText>
</jr:tableHeader>
<jr:detailCell style="Table_TD" height="50">
<subreport>
<reportElement x="0" y="0" width="80" height="50" uuid="f3ae48d0-b447-4e53-97d3-3cec524e31b5"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{vscs})]]></dataSourceExpression>
<subreportExpression><![CDATA["VscItem.jasper"]]></subreportExpression>
</subreport>
</jr:detailCell>
</jr:column>
<jr:column width="70" uuid="47b5cc43-a32f-493f-9b84-35caf34c57fa">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column4"/>
<jr:tableHeader style="Table_TH" height="40" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="70" height="40" uuid="fed179b7-c0e5-43e3-a789-54e125c3ed75"/>
<text><![CDATA[Description]]></text>
</staticText>
</jr:tableHeader>
<jr:detailCell style="Table_TD" height="50">
<subreport>
<reportElement x="0" y="0" width="70" height="50" uuid="0193c06f-fbf7-4428-9e40-109b8cdcc89c"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{vscs})]]></dataSourceExpression>
<subreportExpression><![CDATA["VscDesc.jasper"]]></subreportExpression>
</subreport>
</jr:detailCell>
</jr:column>
<jr:column width="80" uuid="9852409d-8381-401e-bc68-014b1ffb6803">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column5"/>
<jr:tableHeader style="Table_TH" height="40" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="80" height="40" uuid="83b37e89-0ee3-41ed-bd06-4c60c5c7359b"/>
<text><![CDATA[Unit]]></text>
</staticText>
</jr:tableHeader>
<jr:detailCell style="Table_TD" height="50">
<subreport>
<reportElement x="0" y="0" width="80" height="50" uuid="0781127c-0fb4-4226-a688-9147eb37ba40"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{vscs})]]></dataSourceExpression>
<subreportExpression><![CDATA["VscUnit.jasper"]]></subreportExpression>
</subreport>
</jr:detailCell>
</jr:column>
<jr:column width="50" uuid="f794b140-1b69-43a3-9e35-8d96408193b8">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column6"/>
<jr:tableHeader style="Table_TH" height="40" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="50" height="40" uuid="e88c6f68-4328-487a-892d-a1ded1d40c37"/>
<text><![CDATA[Approx. Unit Cost (USD)]]></text>
</staticText>
</jr:tableHeader>
<jr:detailCell style="Table_TD" height="50">
<subreport>
<reportElement x="0" y="0" width="50" height="50" uuid="7adf0000-1972-47cc-a1fa-1972ef237cac"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{vscs})]]></dataSourceExpression>
<subreportExpression><![CDATA["VscApproxUnitCost.jasper"]]></subreportExpression>
</subreport>
</jr:detailCell>
</jr:column>
<jr:column width="70" uuid="bfcb8fc6-07ac-4343-9ffd-637cd52d09c2">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column7"/>
<jr:tableHeader style="Table_TH" height="40" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="70" height="40" uuid="3d49b022-0ab1-44b8-9276-8c1cf6df98b0"/>
<text><![CDATA[PHY. INV.]]></text>
</staticText>
</jr:tableHeader>
<jr:detailCell style="Table_TD" height="50">
<subreport>
<reportElement x="0" y="0" width="70" height="50" uuid="6c8a56b6-1c04-4651-9eb8-7b75e441a576"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{vscs})]]></dataSourceExpression>
<subreportExpression><![CDATA["VscPhyInv.jasper"]]></subreportExpression>
</subreport>
</jr:detailCell>
</jr:column>
<jr:column width="60" uuid="341a99c2-ff27-446d-a758-5a4bc3a1134c">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column8"/>
<jr:tableHeader style="Table_TH" height="40" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="60" height="40" uuid="f83fb9c8-c6da-4e8b-b8ed-6c5021c64925"/>
<text><![CDATA[REQ.QTY]]></text>
</staticText>
</jr:tableHeader>
<jr:detailCell style="Table_TD" height="50">
<subreport>
<reportElement x="0" y="0" width="60" height="50" uuid="14363048-9a16-4be9-badf-d72af940c385"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{vscs})]]></dataSourceExpression>
<subreportExpression><![CDATA["VscReqQty.jasper"]]></subreportExpression>
</subreport>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
</band>
</detail>
</jasperReport>
运行代码后我得到的输出。
实际输出
预期产出
谢谢你
让我使用示例图中的术语,我们迭代国家,我们迭代每个城市,我们迭代每个地方。
在我看来,您最里面的迭代(示例图像中的位置)需要是每个城市的迭代。因此,子报表需要是一个子表,范围涵盖所有三列。
不过,这感觉像是一种简单的方法。添加迭代需要大量点击(如果直接处理XML,则需要键入)。布局只发生在本地,因此一个城市的位置列的列宽可能与另一个城市不同。请参阅带有粉色箭头的金色线条。
我目前正面临着同样的挑战。我想到的解决这个问题的唯一方法是让这些列有固定的宽度。
因为JasperReport可以将JavaBean集合作为数据源。我们可以用一个引用多个SetCollections的单个对象发送一个SetCollection吗。并使用这些引用传递给编译后的jrxml文件,每次传递不同的setCollection时,都使用对JasPerfillManager.FillReport()的多重调用。我只是想知道编译后的jrxml文件是否会用最后一次调用填充,或者是否
我有一个 json 数据源,数组中的数组,我正在使用使用子报表,这些子报表的数据源来自主数据源上的 datasourceExpression 和“subdata()”方法。 我现在的问题是将另一个列表传递给另一个子报表,我不想再次使用子数据,我需要做的是将包含json文本的字段作为字符串从当前子报表传递到下一个子报表作为json数据源。 有人知道这是如何实现的吗? 我正在使用iReport 5.6
问题内容: index.js index.html 它给了我完美的表,但问题出在一栏中。我有数据列表,并想创建具有所有List值的嵌套表。 我该如何实现?要检查是否有列具有列表(如果是),然后生成嵌套表。检查这个矮人http://plnkr.co/edit/Ixvp8B0dRwOBDHflmu2j?p=preview 问题答案: 您可以这样编写标记: 完整代码:https : //gist.git
问题内容: 我必须基于将动态提供的各种参数来生成报告。在某些情况下,参数可以为null。例如,我必须从具有 ID* , 姓名 , 年龄 , 性别 和 maritalStatus 作为字段的表 Person中 ,生成有关 30岁已婚男性的 报告。在另一些时候,可能需要 不考虑年龄 就 结婚的女性 。如果我在这两种情况下都使用相同的碧玉,则年龄限制在第二种情况下将为null。有什么办法可以解决这种情况
现在,我不再得到“no such file or directory”错误消息,而是得到“net.sf.jasperreports.engine.jrexception:java.net.MalformedUrlException”异常,根据堆栈跟踪,它是由第四个命令(jrxmlloader.load(input))引起的。谁能告诉我我做错了什么吗? 谢谢
我需要创建订单申报报告,我正在使用jasper studio创建jasper模板。在该模板中,我有订单id、客户详细信息和他的地址,我必须用这些详细信息创建一个报告。 我下面有jasper报告代码 但是不是,我必须传递Java bean类,所以jasper引擎必须从一个Java bean中获取数据,我已经将,它获取bean列表,但我的要求只是一个具有订单详细信息的bean。请给我一点建议