Joe Taras Posted January 20, 2023 Share Posted January 20, 2023 I tried to fill a report with Java.My main report has some subreports with different levels.When I try to show my report, I see only the first page, I don't know where I'm wrong:Follow structure and Java code:**Report structure**Main report: rpt_accesso_storico.jrmlFirst level subreport: rpt_accesso_storico_sub.jrxmlSecond level subreports (called by rpt_accesso_storico_sub.jrxml) - rpt_generale_sub.jrxml - rpt_sociale_sub.jrxml - rpt_ginecologico_sub.jrxml - rpt_ostetrico_sub.jrxml - rpt_generale_sub.jrxmlThird level subreports: rpt_primocontatto_sub.jrxml (used in every second level report)**The Java code***Step 1:*In parameter hashmap I add all compiled subreports so in the .jrxml file I've added all subreports as Parameters as follow: InputStream myIS = new ByteArrayInputStream(outByteArrayStream.toByteArray()); JasperDesign jasperDesign = JRXmlLoader.load(myIS); JasperReport jr = JasperCompileManager.compileReport(jasperDesign); if (entryName.equals("rpt_generale_sub.jrxml")) { parameters.put("subreportGen", jr); } else if (entryName.equals("rpt_ostetrico_sub.jrxml")) { parameters.put("subreportOst", jr); } else if (entryName.equals("rpt_infermieristico_sub.jrxml")) { parameters.put("subreportInf", jr); } else if (entryName.equals("rpt_sociale_sub.jrxml")) { parameters.put("subreportSoc", jr); } else if (entryName.equals("rpt_ginecologico_sub.jrxml")) { parameters.put("subreportGin", jr); } else if (entryName.equals("rpt_psicologico_sub.jrxml")) { parameters.put("subreportPsi", jr); } else if (entryName.equals("rpt_accesso_storico_sub.jrxml")) { parameters.put("subreportA", jr); } else if (entryName.equals("rpt_gen_primocontatto_sub.jrxml")) { parameters.put("subGenPrimoContatto", jr); }Obviously that snippet is inside a for loop*Step 2:*I have a JasperDesign object as follow where inputStream is the main report file: JasperDesign jasperDesign = JRXmlLoader.load(inputStream); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);Then I compile the jasperDesign in JasperReport object and finally I try to fill report with parameters where in that object I've all compiled subreports and the list of object to fill them.But when I see the final result I've this:[![Produced report][1]][1]My report has only one page, and the other informations are cut.After that, I add the parameters: Map<String, Object> myParameters = getJasperParameterMapsForAccessoStorico(lstDatiRichiesta, listPrintData, idUtente, idEnteUtente, hmListeValori);**In the pom I've used jasperreports 6.20.0**JRXML snippet code about subreport**In the main report:** <subreport> <reportElement positionType="Float" stretchType="ContainerHeight" x="20" y="6" width="550" height="40" uuid="d114b45a-18f1-41c2-96f6-92b4c507ebd5"/> <subreportParameter name="subreportGen"> <subreportParameterExpression><![CDATA[$P{subreportGen}]]></subreportParameterExpression> </subreportParameter> <subreportParameter name="subreportSoc"> <subreportParameterExpression><![CDATA[$P{subreportSoc}]]></subreportParameterExpression> </subreportParameter> <subreportParameter name="subreportInf"> <subreportParameterExpression><![CDATA[$P{subreportInf}]]></subreportParameterExpression> </subreportParameter> <subreportParameter name="subreportGin"> <subreportParameterExpression><![CDATA[$P{subreportGin}]]></subreportParameterExpression> </subreportParameter> <subreportParameter name="subreportOst"> <subreportParameterExpression><![CDATA[$P{subreportOst}]]></subreportParameterExpression> </subreportParameter> <subreportParameter name="subreportPsi"> <subreportParameterExpression><![CDATA[$P{subreportPsi}]]></subreportParameterExpression> </subreportParameter> <subreportParameter name="subGenPrimoContatto"> <subreportParameterExpression><![CDATA[$P{subGenPrimoContatto}]]></subreportParameterExpression> </subreportParameter> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{listaEventi})]]></dataSourceExpression> <subreportExpression><![CDATA[$P{subreportA}]]></subreportExpression> </subreport>**In the first level subreport:** <groupHeader> <band height="55"> <printWhenExpression><![CDATA[$F{idEventoClinico}==EV_CLI_GEN]]></printWhenExpression> <staticText> <reportElement x="0" y="0" width="130" height="20" uuid="0d05dbc4-3928-4d79-b633-e679eb7e9ea3"/> <textElement> <font fontName="SansSerif" size="14" isBold="true"/> </textElement> <text><![CDATA[Generale]]></text> </staticText> <subreport> <reportElement positionType="Float" x="10" y="20" width="490" height="21" uuid="77df01e2-1477-4352-92ae-57c7a3ef56d1"/> <subreportParameter name="subGenPrimoContatto"> <subreportParameterExpression><![CDATA[$P{subGenPrimoContatto}]]></subreportParameterExpression> </subreportParameter> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{lstRichieste})]]></dataSourceExpression> <subreportExpression><![CDATA[$P{subreportGen}]]></subreportExpression> </subreport> </band> <band height="50"> <printWhenExpression><![CDATA[$F{idEventoClinico}==EV_CLI_SOC]]></printWhenExpression> <staticText> <reportElement x="0" y="0" width="130" height="20" uuid="be5d447e-7098-4073-9aca-6b7f8b368543"/> <textElement> <font fontName="SansSerif" size="14" isBold="true"/> </textElement> <text><![CDATA[sociale]]></text> </staticText> <subreport> <reportElement positionType="Float" stretchType="ContainerHeight" x="10" y="20" width="490" height="21" uuid="d4f897e4-a38f-483d-aa56-de83baec648a"/> <subreportParameter name="subGenPrimoContatto"> <subreportParameterExpression><![CDATA[$P{subGenPrimoContatto}]]></subreportParameterExpression> </subreportParameter> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{lstRichieste})]]></dataSourceExpression> <subreportExpression><![CDATA[$P{subreportSoc}]]></subreportExpression> </subreport> </band> <band height="50"> <printWhenExpression><![CDATA[$F{idEventoClinico}==EV_CLI_INF]]></printWhenExpression> <staticText> <reportElement x="0" y="0" width="130" height="20" uuid="66cca17d-f41a-4a53-9cdc-d1f47563ec70"/> <textElement> <font fontName="SansSerif" size="14" isBold="true"/> </textElement> <text><![CDATA[infermieristico]]></text> </staticText> <subreport> <reportElement positionType="Float" x="10" y="20" width="490" height="21" uuid="fed4f140-3f7c-49f0-8aca-9228559db184"/> <subreportParameter name="subGenPrimoContatto"> <subreportParameterExpression><![CDATA[$P{subGenPrimoContatto}]]></subreportParameterExpression> </subreportParameter> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{lstRichieste})]]></dataSourceExpression> <subreportExpression><![CDATA[$P{subreportInf}]]></subreportExpression> </subreport> </band> <band height="50"> <printWhenExpression><![CDATA[$F{idEventoClinico}==EV_CLI_OST]]></printWhenExpression> <staticText> <reportElement x="0" y="0" width="130" height="20" uuid="90dee808-1605-42d8-bce3-aa0afaf8d4b5"/> <textElement> <font fontName="SansSerif" size="14" isBold="true"/> </textElement> <text><![CDATA[Ostetrico]]></text> </staticText> <subreport> <reportElement positionType="Float" x="10" y="20" width="490" height="21" uuid="0fac5612-6938-477d-8f9b-c879349b7008"/> <subreportParameter name="subGenPrimoContatto"> <subreportParameterExpression><![CDATA[$P{subGenPrimoContatto}]]></subreportParameterExpression> </subreportParameter> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{lstRichieste})]]></dataSourceExpression> <subreportExpression><![CDATA[$P{subreportOst}]]></subreportExpression> </subreport> </band> <band height="50"> <printWhenExpression><![CDATA[$F{idEventoClinico}==EV_CLI_GIN]]></printWhenExpression> <staticText> <reportElement x="0" y="0" width="130" height="20" uuid="df1c0abb-b7b6-4e5b-8525-83d5455f4fde"/> <textElement> <font fontName="SansSerif" size="14" isBold="true"/> </textElement> <text><![CDATA[Ginecologico]]></text> </staticText> <subreport> <reportElement positionType="Float" x="10" y="20" width="490" height="21" uuid="d0118f35-1fbf-4a61-9a9b-90bc9c0c8821"/> <subreportParameter name="subGenPrimoContatto"> <subreportParameterExpression><![CDATA[$P{subGenPrimoContatto}]]></subreportParameterExpression> </subreportParameter> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{lstRichieste})]]></dataSourceExpression> <subreportExpression><![CDATA[$P{subreportGin}]]></subreportExpression> </subreport> </band> <band height="50"> <printWhenExpression><![CDATA[$F{idEventoClinico}==EV_CLI_PSI]]></printWhenExpression> <staticText> <reportElement x="0" y="0" width="130" height="20" uuid="8a3a7a2f-8920-471f-97c3-4884a2429ff4"/> <textElement> <font fontName="SansSerif" size="14" isBold="true"/> </textElement> <text><![CDATA[Psicologico]]></text> </staticText> <subreport> <reportElement positionType="Float" x="10" y="20" width="490" height="21" uuid="811c8cc4-8492-4b26-9680-27bff1b97abe"/> <subreportParameter name="subGenPrimoContatto"> <subreportParameterExpression><![CDATA[$P{subGenPrimoContatto}]]></subreportParameterExpression> </subreportParameter> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{lstRichieste})]]></dataSourceExpression> <subreportExpression><![CDATA[$P{subreportPsi}]]></subreportExpression> </subreport> </band> </groupHeader> 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