marko.marich Posted November 16, 2015 Share Posted November 16, 2015 Hi all, I'm using Jasper iReport Designer 5.6.0, and I'm trying to generate a report with a list inside the table detailCell component with XML datasources! I tried searching for the solution on Google and Jasper Comunity, but the best I could find is this question on Jasper Community by @gabrielcompri. I'm trying to generate the report table that should be filed like this: To do this, I'm using the following XML:<report> <table> <persons> <person> <id>111</id> <name>John</name> <addresses> <address>Johan's Street 1</address> <address>Johan's Street 2</address> <address>Johan's Street 3</address> </addresses> </person> <person> <id>222</id> <name>Marko</name> <addresses> <address>Marko's Street 1</address> <address>Marko's Street 2</address> </addresses> </person> <person> <id>333</id> <name>Tito</name> <addresses> <address>Tito's Street 1</address> <address>Tito's Street 2</address> <address>Tito's Street 3</address> <address>Tito's Street 4</address> </addresses> </person> </persons> </table></report>[/code] Along with the JRXML:<?xml version="1.0" encoding="UTF-8"?><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="NEW_BEGINNING" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="2347c131-1884-430a-b77f-59f08f896c8a"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <subDataset name="PersonsTable" uuid="1470ca7f-50f9-4781-9af7-ed3e04841738"> <queryString language="xPath"> <![CDATA[/report/table/persons/person]]> </queryString> <field name="person" class="java.lang.String"> <fieldDescription><![CDATA[child::text()]]></fieldDescription> </field> <field name="id" class="java.lang.String"> <fieldDescription><![CDATA[id]]></fieldDescription> </field> <field name="name" class="java.lang.String"> <fieldDescription><![CDATA[name]]></fieldDescription> </field> </subDataset> <subDataset name="AddressesList" uuid="5c62f1af-dfc1-49ca-8615-493009f964f6"> <queryString language="xPath"> <![CDATA[/report/table/persons/person/addresses]]> </queryString> <field name="address" class="java.lang.String"> <fieldDescription><![CDATA[address]]></fieldDescription> </field> </subDataset> <queryString language="xPath"> <![CDATA[/report]]> </queryString> <detail> <band height="81" splitType="Stretch"> <componentElement> <reportElement key="table" x="0" y="0" width="308" height="50" uuid="d3ef2b70-5a74-4ebf-85f5-36fbcac91938"/> <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="PersonsTable" uuid="41f6ef78-fb40-4d6f-9998-e31689321fc8"> <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("/report/table/persons/person")]]></dataSourceExpression> </datasetRun> <jr:column width="122" uuid="3bbeb837-7663-4af6-b2f4-759be2c88102"> <jr:columnHeader height="30" rowSpan="1"> <staticText> <reportElement x="0" y="0" width="122" height="30" uuid="3bc07e10-17f3-45ea-8df9-69a3968dc689"/> <text><![CDATA[NAMES]]></text> </staticText> </jr:columnHeader> <jr:detailCell height="30" rowSpan="1"> <textField> <reportElement x="0" y="0" width="122" height="30" uuid="9d26eb70-a1bc-443c-8fd1-25bcefc6dd58"/> <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression> </textField> </jr:detailCell> </jr:column> <jr:column width="185" uuid="1f779e6e-316b-4442-8e36-c020b7b50d6b"> <jr:columnHeader height="30" rowSpan="1"> <staticText> <reportElement x="0" y="0" width="185" height="30" uuid="59998a31-67a7-4ebe-bd15-6f6d3ec38231"/> <text><![CDATA[ADDRESSES]]></text> </staticText> </jr:columnHeader> <jr:detailCell height="30" rowSpan="1"> <componentElement> <reportElement x="0" y="0" width="185" height="30" uuid="e6ed252e-e104-489d-bf10-b3ffb0f3ad0e"/> <jr:list printOrder="Vertical"> <datasetRun subDataset="AddressesList" uuid="03bc1640-16e7-4111-b48a-0b77e01baefa"> <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("/report/table/persons/person/addresses")]]></dataSourceExpression> </datasetRun> <jr:listContents height="30" width="185"> <textField> <reportElement x="0" y="0" width="185" height="30" uuid="eb98e95f-d395-4404-a77b-1660f1de9fd0"/> <textFieldExpression><![CDATA[$F{address}]]></textFieldExpression> </textField> </jr:listContents> </jr:list> </componentElement> </jr:detailCell> </jr:column> </jr:table> </componentElement> <componentElement> <reportElement x="342" y="0" width="213" height="35" uuid="d320a686-2b85-46ab-8558-104f657b4390"/> <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical"> <datasetRun subDataset="AddressesList" uuid="cabbac62-23d6-4f78-bd19-19b3ec8728cb"> <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("/report/table/persons/person/addresses")]]></dataSourceExpression> </datasetRun> <jr:listContents height="35" width="213"> <textField> <reportElement x="0" y="8" width="213" height="20" uuid="33c7196e-8106-43b4-8e25-e90ff42a1ae0"/> <textFieldExpression><![CDATA[$F{address}]]></textFieldExpression> </textField> </jr:listContents> </jr:list> </componentElement> </band> </detail></jasperReport>[/code] What I'm doing wrong? Is it even possible to have lists inside the table cells? PS. Don't be confused by the second list element next to the table element, it is used just to show that list with same SubDatasource works outside the table element. Link to comment Share on other sites More sharing options...
marko.marich Posted November 16, 2015 Author Share Posted November 16, 2015 Sorry, but I don't know how to do proper XML code block formating :-( Link to comment Share on other sites More sharing options...
Solution marko.marich Posted November 16, 2015 Author Solution Share Posted November 16, 2015 And the answer is explained here:http://stackoverflow.com/questions/33740898/jasper-list-element-inside-table-element-with-xml-datasource Thank you. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now