2010-12-30 3 views
7

Я пытаюсь сгенерировать отчет, содержащий таблицу. Эти важные части из jrxml:Компонент таблицы Jasper

<jasperReport 
    <subDataset name="Table Dataset 1"> 
     <field name="field1" class="java.lang.String"/> 
    </subDataset> 
    <summary> 
     <jr:table> 
      <datasetRun subDataset="Table Dataset 1"> 
      <dataSourceExpression> 
         <![CDATA[$P{REPORT_DATA_SOURCE}]]> 
       </dataSourceExpression> 
      </datasetRun> 
      <jr:column width="90"> 
       <jr:columnHeader>...</jr:columnHeader> 
       <jr:detailCell height="20"> 
       <textField> 
       <textFieldExpression class="java.lang.String"> 
          <![CDATA[$F{territory}]]> 
         </textFieldExpression> 
       </textField> 
      </jr:detailCell> 
      </jr:column> 
     <jr:table> 
    </summary> 
</jasperReport> 

Тип источника данных я передаю отчету является JRBeanArrayDataSource, который, кажется, будет хорошо, потому что данные отображаются в отчете (если я использую $ F {field1} в мастер - вне таблицы).

Вы видите что-то не так, как я использую компонент таблицы? Я не вижу никаких ошибок ... но таблица не отображается ... только горизонтальная линия вместо таблицы.

+0

Неясно, какой источник данных, BeanArray совпадает с REPORT_DATA_SOURCE? – medopal

ответ

6

У меня была такая же проблема, и нашел решение здесь https://web.archive.org/web/20111130110022/http://thilosdevblog.wordpress.com/2011/03/27/beans-in-jasperreports4/

таблица DataSource должен быть таким:

<datasetRun subDataset="TableDataset"> 
    <datasetParameter name="REPORT_DATA_SOURCE"> 
     <datasetParameterExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></datasetParameterExpression> 
    </datasetParameter> 
</datasetRun> 

Wonder, почему этот вид, как материал не в яшма/IReport FAQ !

+0

У меня не было возможности проверить ваше решение, но это сработало для меня: 1) Обернул JRBeanArrayDataSource в JRMapArrayDataSource 2) Я разыменовал его как поле: 3) Используется так: . Ваше решение кажется правильным по сравнению с этим, но, к сожалению, я не могу подтвердить, что он работает в моем конкретном случае. Я описал свое обходное решение как последнее средство для тех, кто застрял в этой проблеме. – teo