2011-12-27 11 views
5

Tôi có một Hibernate POJO với 1.an one-to-one hiệp hội để đối tượng khác 2.one-nhiều hiệp hội (bộ sưu tập) với một đối tượng khácVượt qua một POJO để subreport trong Jasper Reports

tôi đang cố gắng tạo một báo cáo Jasper với các liên kết này sẽ chuyển tới các thể loại con. Đối với liên kết nhiều người, tôi chuyển nguồn dữ liệu như sau:

<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> 

Điều này có hiệu quả. Và đây là cách tôi đã xác định nó cho liên kết một-một-một:

<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> 

Nhưng cái này không hoạt động. Có thể một số xin vui lòng cho tôi biết nơi tôi đang đi sai?

+0

Loại trường '$ F {batchHeaderRecord}' là gì? –

Trả lời

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

không phải là mã Java hợp lệ. Chỉ cần sử dụng

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

hoặc

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

Cảm ơn .. Hãy thử chúng. JRBeanCollectionDataSource đang hoạt động tốt. Nhưng sử dụng JRBeanArrayDataSource cho tôi lỗi sau: net.sf.jasperreports.engine.JRException: Các lỗi đã gặp phải khi biên dịch biểu thức báo cáo tệp lớp: org.codehaus.groovy.control.MultipleCompilationErrorsException: khởi động thất bại: calculator_tdsSample_1325043312140_397478: 187: Không có biểu thức cho lệnh gọi hàm dựng tại dòng: 187 cột: 91. Tệp: calculator_tdsSample_1325043312140_397478 @ dòng 187, cột 91 – PrasanthNath

+0

Xin chào, Tôi đang gặp phải sự cố tương tự. nhưng với kịch bản khác. Tôi đang cố gắng để hiển thị danh sách trong bảng nhưng danh sách của tôi có mối quan hệ 1-1 với một thực thể khác như MemberList có mối quan hệ 1-1 với Employee Tôi muốn hiển thị Member_ID | Employee.FullName | trong cùng một bảng. Vui lòng trợ giúp –

1

Set language để Java cho báo cáo để sửa chữa các lỗi groovy.