2012-03-05 6 views
6

Я пытаюсь создать отчет с Jasper iReport 4.5, и я использую таблицу для отображения некоторых данных. Таблица заполняется запросом, и когда я проверяю предварительный просмотр запроса в редакторе запросов, я получаю именно те результаты, которые мне нужны. Но когда я пытаюсь создать предварительный просмотр отчета, все, что я получаю, это «Документ не имеет страниц». Даже не отображается статический текст в заголовке таблицы.Jasper iReport table возвращает пустой документ, хотя работает запрос

Вот 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> 
+1

ли вы создать источник данных для отчета? Вы должны установить соответствующий источник данных как активный (в 'iReport'). Какой источник данных (xml или что-то еще) вы используете? –

+0

Да, у меня есть действительный источник данных, и я установил таблицу для использования основного источника данных отчета –

+1

Хорошо, я только что узнал, что это было. Мне пришлось создать запрос для основного отчета, хотя я не использую его нигде в этом отчете. Поэтому я только что добавил в качестве запроса для основного отчета, в качестве dummy_field , и теперь в таблице показаны данные, которые я хочу. К сожалению, я могу ответить только на свой вопрос через 7 часов, потому что моя учетная запись новая. –

ответ

5

Хорошо, я только что узнал, что это было. Мне пришлось создать запрос для основного отчета, хотя я не использую его нигде в этом отчете. Поэтому я просто добавил «select 1 as dummy_field» в качестве запроса для основного отчета, и теперь в таблице показаны данные, которые я хочу.

5

Существует другой способ.

Следовать ниже шаг

  1. Нажмите на главное имени отчета
  2. не выбрать имя свойства: когда нет типа данных
  3. не выбрать значение свойства: весь раздел ни одной детали

С помощью этого есть не нужно добавлять фиктивный sql.

1

В моем случае, я предоставил пустой источник данных и проблема решена

JasperPrint jasperPrint = JasperFillManager.fillReport(path,null, new JREmptyDataSource()); 
Смежные вопросы