2011-12-27 1 views
5

У меня есть Hibernate POJO с 1.an один-к-одному ассоциации с другим объектом 2.one-ко-многим ассоциации (сбор) с другим объектомПроходят POJO к SubReport в Jasper Reports

I Я пытаюсь создать отчет Jasper с этими ассоциациями, идущими в подзаголовки. Для многих к одному ассоциации я передаю источник данных следующим образом:

<subreport> 
<reportElement x="40" y="16" width="100" height="30"/> 
<dataSourceExpression> 
    <![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{phones})]]> 
</dataSourceExpression> 
<subreportExpression> 
    <![CDATA[$P{SUBREPORT_DIR} + "subreport1.jasper"]]> 
</subreportExpression> 
</subreport> 

Это прекрасно работает. И вот так я определил его для ассоциации «один-к-одному»

<subreport> 
<reportElement x="25" y="91" width="200" height="59"/> 
<dataSourceExpression> 
    <![CDATA[new net.sf.jasperreports.engine.data.JRBeanArrayDataSource([$F{batchHeaderRecord}] as java.lang.Object[])]]> 
</dataSourceExpression> 
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "batchHeaderReport.jasper"]]> 
</subreportExpression> 
</subreport> 

Но этот не работает. Может кто-нибудь, пожалуйста, дайте мне знать, где я ошибаюсь?

+0

Что такое поле '$ F {batchHeaderRecord}'? –

ответ

5
new net.sf.jasperreports.engine.data.JRBeanArrayDataSource([$F{batchHeaderRecord}] as java.lang.Object[]) 

недействителен код Java. Просто используйте

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(java.util.Collections.singleton($F{batchHeaderRecord})) 

или

new net.sf.jasperreports.engine.data.JRBeanArrayDataSource(new Object[] {$F{batchHeaderRecord}}) 
+0

Спасибо .. Протестировал их. JRBeanCollectionDataSource работает нормально. Но использование JRBeanArrayDataSource дает мне следующую ошибку: net.sf.jasperreports.engine.JRException: Ошибки были обнаружены при компиляции файла выражений выражений отчета: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: calculator_tdsSample_1325043312140_397478: 187: выражения для вызов конструктора массива в строке: 187 столбец: 91. Файл: calculator_tdsSample_1325043312140_397478 @ строка 187, столбец 91 – PrasanthNath

+0

Привет, У меня такая же проблема. но с другим сценарием. Я пытаюсь отобразить список в таблице, но мой список имеет отношение один к одному с другим объектом, например MemberList, имеет отношение один к одному с Employee Я хочу отображать Member_ID | Employee.FullName | в той же таблице. Пожалуйста, помогите –

1

Набор language для Java для отчета, чтобы исправить ошибку заводной.