Jasper iReport table returns an empty document, although the query works

I am trying to create a report with Jasper iReport 4.5, and I am using a table to display some data. The table is filled with the query, and when I check the preview of the query in the query editor, I get exactly the results that I need. But when I try to create a preview of the report, all I get is "The document has no pages." Even the static text in the table header is not displayed.

Here is an XML report, but no request:

<?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="subReportTextManualCustomerRating" pageWidth="500" pageHeight="842" columnWidth="460" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> <property name="ireport.zoom" value="1.4641000000000008"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <style name="table"> <box> <pen lineWidth="1.0" lineColor="#000000"/> </box> </style> <style name="table_TH" mode="Opaque" backcolor="#F0F8FF"> <box> <pen lineWidth="0.5" lineColor="#000000"/> </box> </style> <style name="table_CH" mode="Opaque" backcolor="#BFE1FF"> <box> <pen lineWidth="0.5" lineColor="#000000"/> </box> </style> <style name="table_TD" mode="Opaque" backcolor="#FFFFFF"> <box> <pen lineWidth="0.5" lineColor="#000000"/> </box> </style> <style name="table 1"> <box> <pen lineWidth="1.0" lineColor="#000000"/> </box> </style> <style name="table 1_TH" mode="Opaque" backcolor="#FFFFFF"> <box> <pen lineWidth="0.5" lineColor="#000000"/> </box> </style> <style name="table 1_CH" mode="Opaque" backcolor="#FFBFBF"> <box> <pen lineWidth="0.5" lineColor="#000000"/> </box> </style> <style name="table 1_TD" mode="Opaque" backcolor="#FFFFFF"> <box> <pen lineWidth="0.5" lineColor="#000000"/> </box> </style> <subDataset name="CustomerType"> <parameter name="TEXT_MANUAL_OID" class="java.lang.String"/> <queryString> </queryString> <field name="Anzahl" class="java.lang.Long"/> <field name="Typ" class="java.lang.String"/> <field name="Bezeichnung" class="java.lang.String"/> </subDataset> <parameter name="TEXT_MANUAL_OID" class="java.lang.String"/> <queryString> <![CDATA[]]> </queryString> <summary> <band height="143"> <componentElement> <reportElement key="table 1" style="table 1" x="0" y="0" width="460" height="143"/> <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="CustomerType"> <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> </datasetRun> <jr:column width="90"> <jr:tableHeader style="table 1_TH" height="30"> <staticText> <reportElement x="0" y="0" width="90" height="30"/> <textElement/> <text><![CDATA[Kontakt Typen]]></text> </staticText> </jr:tableHeader> <jr:detailCell style="table 1_TD" height="20"> <textField> <reportElement x="0" y="0" width="90" height="20"/> <textElement/> <textFieldExpression><![CDATA[$F{Typ}]]></textFieldExpression> </textField> </jr:detailCell> </jr:column> <jr:column width="90"> <jr:tableHeader style="table 1_TH" height="30"> <staticText> <reportElement x="0" y="0" width="90" height="30"/> <textElement/> <text><![CDATA[Ergebniserklärung]]></text> </staticText> </jr:tableHeader> <jr:detailCell style="table 1_TD" height="20"> <textField> <reportElement x="0" y="0" width="90" height="20"/> <textElement/> <textFieldExpression><![CDATA[$F{Bezeichnung}]]></textFieldExpression> </textField> </jr:detailCell> </jr:column> <jr:column width="90"> <jr:tableHeader style="table 1_TH" height="30"> <staticText> <reportElement x="0" y="0" width="90" height="30"/> <textElement/> <text><![CDATA[Anzahl der Kontakte]]></text> </staticText> </jr:tableHeader> <jr:detailCell style="table 1_TD" height="20"> <textField> <reportElement x="0" y="0" width="90" height="20"/> <textElement/> <textFieldExpression><![CDATA[$F{Anzahl}]]></textFieldExpression> </textField> </jr:detailCell> </jr:column> </jr:table> </componentElement> </band> </summary> </jasperReport> 
+6
source share
3 answers

Well, I just found out what it was. I had to create a query for the main report, although I do not use it anywhere in this report. So I just added "select 1 as dummy_field" as a query for the main report, and now the data that I want is shown in the table.

+5
source

There is another method.

Follow below.

  • Click on the title of the main report.
  • select property name: when data type
  • select property value: all sections are not parts

Using this, there is no need to add dummy sql.

+5
source

In my case, I provided an empty data source and the problem is resolved

 JasperPrint jasperPrint = JasperFillManager.fillReport(path,null, new JREmptyDataSource()); 
+1
source

Source: https://habr.com/ru/post/909998/


All Articles