मैं पाँच अलग अलग एसक्यूएल प्रश्नों का उपयोग करके रिपोर्ट तैयार करना है में कई jrxml Jasper रिपोर्ट मुक़ाबला करने के लिए। प्रत्येक क्वेरी एक रिपोर्ट टेबल देगी।कैसे एक एक एकल पीडीएफ आउटपुट फ़ाइल
इसलिए मैं 5 jrxml फ़ाइलें प्रत्येक इसी लिखा था अपने स्वयं के शीर्षकों, शीर्षक सेटिंग्स, पाद लेख, pagenumbers, आदि
अब के साथ ऊपर क्वेरी से एक के लिए, मैं संकलन, प्रिंट और निर्यात करने के लिए में से प्रत्येक में सक्षम हूँ 5 अलग-अलग पीडीएफ में jrxmls से ऊपर।
हालांकि, ग्राहक चाहता है कि सभी रिपोर्ट एक ही पीडीएफ में एकत्र हो जाएं। वह अंतिम पीडीएफ में है, पहले चार पेज रिपोर्ट एक कहेंगे, अगले पांच पेज दो रिपोर्ट करेंगे, फिर तीन रिपोर्ट करें और इसी तरह आगे।
1) इसे कैसे प्राप्त करें?
2) प्रत्येक रिपोर्ट पेज नंबर है 1/4, 2/4, 3/4 आदि कहाँ अर्थात पूरा पृष्ठ संख्या दूसरे भाग रिपोर्ट के रूप में मूल्यांकन समय के साथ मूल्यांकन किया जाता है के रूप में। तो जब मैं एक पीडीएफ (यदि संभव हो) के अंतर्गत सभी रिपोर्ट मुक़ाबला होगा, यह भी संभव फिर से नंबर करने के लिए अंतिम पीडीएफ के औचित्य में पृष्ठों हो जाएगा?
नीचे जवाब के आधार पर, मैं अपने जावा वर्ग में निम्नलिखित किया था और यह काम करता है:
try
{
JasperReport jreport1 = JasperCompileManager.compileReport(input1);
JasperPrint jprint1 = JasperFillManager.fillReport(jreport1, new HashMap(), new JREmptyDataSource());
//JasperExportManager.exportReportToPdfFile(jprint, "/home/ashutosh/Desktop/desktop/nikunj/JasperTestApp/output/mytest.pdf");
JasperReport jreport2 = JasperCompileManager.compileReport(input2);
JasperPrint jprint2 = JasperFillManager.fillReport(jreport2, new HashMap(), new JREmptyDataSource());
JasperReport jreport3 = JasperCompileManager.compileReport(input3);
JasperPrint jprint3 = JasperFillManager.fillReport(jreport3, new HashMap(), new JREmptyDataSource());
List<JasperPrint> jprintlist = new ArrayList<JasperPrint>();
jprintlist.add(jprint1);
jprintlist.add(jprint2);
jprintlist.add(jprint3);
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist);
OutputStream output = new FileOutputStream(new File("/home/ashutosh/Desktop/desktop/nikunj/JasperTestApp/output/mytestbatch.pdf"));
exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, output);
exporter.exportReport();
}catch(Exception e)
{
e.printStackTrace();
}
ऊपर: इनपुट 1, इनपुट 2, इनपुट 3 की स्ट्रिंग पथ इनपुट jrxmls
मेरे JRXML फ़ाइलों के लिए कर रहे हैं बस तीन संदेशों को मुद्रित करें: हैलो वर्ल्ड 1, हैलो वर्ल्ड 2, हैलो वर्ल्ड 3.
<?xml version="1.0"?>
<!DOCTYPE jasperReport
PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="Simple_Report">
<detail>
<band height="20">
<staticText>
<reportElement x="180" y="0" width="200" height="20"/>
<text><![CDATA[Hello World One!]]></text>
</staticText>
</band>
</detail>
</jasperReport>
पढ़ने के लिए धन्यवाद!
एलेक्स कश्मीर का जवाब अच्छा है। आपको व्यक्तिगत रिपोर्ट को एक मास्टर रिपोर्ट के उप-रिपोर्ट में डालकर आप जो भी चाहते हैं उसे प्राप्त करने में सक्षम होना चाहिए। यह अधिक काम करेगा, लेकिन यह आपको पेज नंबरिंग आवश्यकता को संभालने की अनुमति देगा। आपको निश्चित रूप से इसके लिए वोट देना चाहिए। यह वही होगा जो आप वर्णन कर रहे हैं: http://jasperforge.org/projects/jasperreports/tracker/view.php?id=4178 – mdahlman