Таблица Jasper iReport возвращает пустой документ, хотя запрос работает
Я пытаюсь создать отчет с помощью Jasper iReport 4.5, и я использую таблицу для отображения некоторых данных. Таблица заполняется запросом, и когда я проверить предварительный просмотр запроса в Редакторе запросов, я получаю именно те результаты, которые я хотел. Но когда я пытаюсь создать предварительный просмотр отчета, все, что я получаю, это "документ не имеет страниц". Даже статический текст в заголовке таблицы не отображается.
вот XML отчета, но без запроса:
<?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>
3 ответов
Ок, я только что узнал, что это было. Мне пришлось создать запрос для основного отчета, хотя я не использую его нигде в этом отчете. Поэтому я просто добавил" выберите 1 Как dummy_field " в качестве запроса для основного отчета, и теперь таблица показывает данные, которые я хочу.
существует другой метод.
следуйте ниже Шаг
- нажмите на название основного отчета
- выберите имя свойства: когда нет типа данных
- выберите значение свойства: весь раздел нет детали
используя это, нет необходимости добавлять фиктивный sql.
в моем случае я предоставил пустой источник данных и проблема решена
JasperPrint jasperPrint = JasperFillManager.fillReport(path,null, new JREmptyDataSource());