Jump to content
We've recently updated our Privacy Statement, available here ×

vtlkzmn

Members
  • Posts

    1
  • Joined

  • Last visited

 Content Type 

Profiles

Forum

Events

Featured Visualizations

Knowledge Base

Documentation (PDF Downloads)

Blog

Documentation (Test Area)

Documentation

Dr. Jaspersoft Webinar Series

Downloads

Everything posted by vtlkzmn

  1. I'm struggling with generating JasperReport using Java. DataSource is not taken into account, so all the values are null and subReport is not shown. I've created JSONDataAdapter with option 'Use the report JSON expression when filling the report' from the JSON pasted below. When compiling it from Jasper Studio it is creating report correctly, while trying to compile it from Java leads to empty report (only field names shown) without subReport at all. Please help with this issue. { "user": { "firstName": "Mike", "lastName": "Jones", "email": "mikeJones@gmail.com", "userStatus": "VALIDATED", "documentList": [ { "id": 2, "documentType": "DRIVING_LICENSE", "documentStatus": "APPROVED", "comment": "", "events": [ { "action": "APPROVE", "comment": "", "createDate": "2018-05-24T10:44:55.987+0000" } ] }, { "id": 1, "documentType": "PASSPORT", "documentStatus": "APPROVED", "comment": "", "events": [ { "action": "APPROVE", "comment": "", "createDate": "2018-05-24T10:44:55.901+0000" } ] } ] }} main.jrxml <?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="Blank_A4_7" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ed8211ff-fccf-451c-9a4e-0b2075ebdfee"> <property name="com.jaspersoft.studio.data.defaultdataadapter" value="DataAdapter1.xml"/> <queryString language="json"> <![CDATA[user]]> </queryString> <field name="firstName" class="java.lang.String"> <property name="net.sf.jasperreports.json.field.expression" value="firstName"/> <fieldDescription><![CDATA[firstName]]></fieldDescription> </field> <field name="lastName" class="java.lang.String"> <property name="net.sf.jasperreports.json.field.expression" value="lastName"/> <fieldDescription><![CDATA[lastName]]></fieldDescription> </field> <field name="email" class="java.lang.String"> <property name="net.sf.jasperreports.json.field.expression" value="email"/> <fieldDescription><![CDATA[email]]></fieldDescription> </field> <field name="userStatus" class="java.lang.String"> <property name="net.sf.jasperreports.json.field.expression" value="userStatus"/> <fieldDescription><![CDATA[userStatus]]></fieldDescription> </field> <field name="documentList" class="java.lang.String"> <property name="net.sf.jasperreports.json.field.expression" value="documentList"/> <fieldDescription><![CDATA[documentList]]></fieldDescription> </field> <background> <band splitType="Stretch"/> </background> <title> <band height="79" splitType="Stretch"/> </title> <pageHeader> <band height="35" splitType="Stretch"/> </pageHeader> <columnHeader> <band height="35" splitType="Stretch"> <staticText> <reportElement x="-7" y="0" width="100" height="30" uuid="85f69194-56d8-413f-a550-1884c6c2ffdd"> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="03de927f-90a6-4a3b-b435-78f511e83566"/> </reportElement> <text><![CDATA[firstName]]></text> </staticText> <staticText> <reportElement x="99" y="0" width="100" height="30" uuid="97a45c99-e11f-466e-83a9-0ee3125a888a"> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="e2dcce70-e78a-454f-897b-5961f5b060d7"/> </reportElement> <text><![CDATA[lastName]]></text> </staticText> </band> </columnHeader> <detail> <band height="277" splitType="Stretch"> <textField> <reportElement x="-10" y="0" width="100" height="30" uuid="d2158da3-7029-46b7-87e5-73dff198aa5c"> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="03de927f-90a6-4a3b-b435-78f511e83566"/> </reportElement> <textFieldExpression><![CDATA[$F{firstName}]]></textFieldExpression> </textField> <textField> <reportElement x="100" y="0" width="100" height="30" uuid="ffe6c4e3-0584-4ff0-bb85-8bc1c586424f"> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="e2dcce70-e78a-454f-897b-5961f5b060d7"/> </reportElement> <textFieldExpression><![CDATA[$F{lastName}]]></textFieldExpression> </textField> <subreport> <reportElement x="-7" y="30" width="557" height="60" uuid="05a4dede-97de-4836-9195-114755ff921a"/> <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("documentList")]]></dataSourceExpression> <subreportExpression><![CDATA["subreport.jasper"]]></subreportExpression> </subreport> </band> </detail> <columnFooter> <band height="45" splitType="Stretch"/> </columnFooter> <pageFooter> <band height="54" splitType="Stretch"/> </pageFooter> <summary> <band height="42" splitType="Stretch"/> </summary></jasperReport> subreport.jrxml <?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="Blank_A4_4" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="f841d01d-b1ed-4398-9c3a-85751cabd974"> <property name="com.jaspersoft.studio.data.defaultdataadapter" value="DataAdapter1.xml"/> <queryString language="json"> <![CDATA[user.documentList]]> </queryString> <field name="id" class="java.lang.Integer"> <property name="net.sf.jasperreports.json.field.expression" value="id"/> <fieldDescription><![CDATA[id]]></fieldDescription> </field> <field name="documentType" class="java.lang.String"> <property name="net.sf.jasperreports.json.field.expression" value="documentType"/> <fieldDescription><![CDATA[documentType]]></fieldDescription> </field> <field name="documentStatus" class="java.lang.String"> <property name="net.sf.jasperreports.json.field.expression" value="documentStatus"/> <fieldDescription><![CDATA[documentStatus]]></fieldDescription> </field> <field name="comment" class="java.lang.String"> <property name="net.sf.jasperreports.json.field.expression" value="comment"/> <fieldDescription><![CDATA[comment]]></fieldDescription> </field> <field name="events" class="java.lang.String"> <property name="net.sf.jasperreports.json.field.expression" value="events"/> <fieldDescription><![CDATA[events]]></fieldDescription> </field> <background> <band splitType="Stretch"/> </background> <detail> <band height="36" splitType="Stretch"> <textField> <reportElement x="-7" y="5" width="100" height="30" uuid="b904bfb3-ac61-4141-bbd4-813aa6101945"/> <textFieldExpression><![CDATA[$F{documentType}]]></textFieldExpression> </textField> <textField> <reportElement x="120" y="3" width="100" height="30" uuid="85c25658-8388-4eb0-ae5b-b376ce801d0f"/> <textFieldExpression><![CDATA[$F{documentStatus}]]></textFieldExpression> </textField> </band> </detail></jasperReport> Test.java public class Test { public static void main(String[] args) { try { String pathToReports = "/home/test/"; Map<String, Object> params = new HashMap<>(); params.put(JsonQueryExecuterFactory.JSON_DATE_PATTERN, "yyyy-MM-dd"); params.put(JsonQueryExecuterFactory.JSON_NUMBER_PATTERN, "#,##0.##"); params.put(JsonQueryExecuterFactory.JSON_LOCALE, Locale.ENGLISH); params.put(JRParameter.REPORT_LOCALE, Locale.US); JRDataSource jsonDataSource = new JsonDataSource(new File("/home/test/example.json")); JasperReport jasperReport = JasperCompileManager.compileReport(pathToReports + "main.jrxml"); JasperCompileManager.compileReportToFile(pathToReports + "subreport.jrxml", "subreport.jasper"); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, jsonDataSource); JasperExportManager.exportReportToPdfFile(jasperPrint, "/home/test/test.pdf"); } catch (Exception e) {} }}
×
×
  • Create New...