2012-03-20 66 views
11

Tôi biết cách tạo báo cáo jasper mà không có bất kỳ báo cáo phụ nào. Nhưng hiện tại tôi có một subreport trong báo cáo của mình và tôi muốn biết làm thế nào tôi có thể biên dịch subreport đó trong java?Tạo báo cáo Jasper với subreport từ java

Trả lời

27

Bạn có thể biên dịch subreport như báo cáo đơn giản - ví dụ như với phương pháp JasperCompileManager.compileReport(java.lang.String sourceFileName).

Sau đó, bạn có thể chuyển subreport đã biên dịch làm tham số cho báo cáo chính.

Mẫu:

JasperReport jasperMasterReport = JasperCompileManager.compileReport(masterReportSource); 
JasperReport jasperSubReport = JasperCompileManager.compileReport(subReportSource); 

Map<String, Object> parameters = new HashMap()<String, Object>; 
parameters.put("subreportParameter", jasperSubReport); 

JasperFillManager.fillReportToFile(jasperMasterReport, parameters, connection); 

Đoạn từ file jrxml báo cáo thạc sĩ (mẫu):

<parameter name="subreportParameter" class="net.sf.jasperreports.engine.JasperReport"/> 
... 
<detail> 
    <band height="50"> 
     ... 
     <subreport> 
       <reportElement isPrintRepeatedValues="false" x="5" y="25" width="325" height="20" isRemoveLineWhenBlank="true" backcolor="#ffcc99"/> 
       <subreportParameter name="City"> 
        <subreportParameterExpression><![CDATA[$F{City}]]></subreportParameterExpression> 
       </subreportParameter> 
       <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
       <returnValue subreportVariable="PriceSum" toVariable="ProductTotalPrice" calculation="Sum"/> 
       <subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{subreportParameter}]]></subreportExpression> 
      </subreport> 
+3

@Alex_K người đàn ông, tôi yêu em, tôi thực sự có nghĩa là nó, đây là tuyệt vời! ;) –

+1

nó không hoạt động !! –

+0

Tôi có thể làm cho giá trị của x, y, chiều rộng, chiều cao động không? – user1791574

Các vấn đề liên quan