2010-10-26 15 views
8

मैं उपयोगकर्ता को प्रगति देना चाहता हूं जबकि जैस्पर रिपोर्ट संकलन रिपोर्ट भर रही है। मूल रूप से मैं जबकि इस निष्पादित हो रहा है प्रगति प्राप्त करना चाहते हैं:जैस्पर रिपोर्ट भरते समय प्रगति

JasperFillManager.fillReport (JasperReport rpt, मानचित्र पैरामीटर, JRDataSource src)

वहाँ वैसे भी इस लक्ष्य को हासिल करने के लिए है?

+1

हम AsynchronousFillHandle और AsynchronousFilllListener का उपयोग कर रहे हैं, जिसमें एक अलग धागे पर भरना होता है। यह हमें रद्द करने की क्षमता के साथ, अपनी प्रगति पट्टी दिखाने की अनुमति देता है। दुर्भाग्यवश, श्रोता वास्तविक प्रगति संकेत नहीं देता है, केवल पूर्णता या त्रुटि पर सूचित करता है, इसलिए प्रगति-बार एक 'अनंत' है। – yshalbar

+0

हम अपने आरसीपी/एसडब्ल्यूटी/जेएफएएस आवेदन में नौकरी ढांचे का उपयोग करके इसे पहले ही प्राप्त कर चुके हैं। हमारे पास वास्तविक प्रगति भी नहीं है। इसकी अजीब बात है क्योंकि फ़ाइल में निर्यात करते समय प्रगति उपलब्ध है। मुझे आश्चर्य है कि जैस्पर में योगदान करना कितना आसान है ... – Craig

उत्तर

0

मैं दिखाने के लिए कि रिपोर्ट पैदा कर रहा है PrimeFaces से घटकों का उपयोग कर रहा हूँ:

<p:ajaxStatus onstart="dlg.show();" onsuccess="dlg.hide();" /> 
     <p:dialog modal="true" header="Creating Report" widgetVar="dlg" draggable="false" closable="false" > 
      <p:graphicImage value="/resources/images/ajaxloadingbar.gif" /> 
     </p:dialog> 

मैं कुल समय अपनी रिपोर्टों संकलन और भरने के लिए ले जाएगा निर्धारित करने के लिए किसी भी असली तरीका मौजूद नहीं है, इसलिए मैंने एक वास्तविक प्रगति पट्टी का उपयोग न करने का विकल्प चुना जो कभी-कभी रिपोर्ट पूरी होने से पहले भर जाता है।

+0

मुझे लगता है कि उचित रिपोर्ट जनरेशन प्रगति को अभी भी जैस्पर रिपोर्ट में ठीक से लागू किया जाना चाहिए और ग्राहकों से अवगत कराया जाना चाहिए। – Craig

0

मुझे डर है कि जैस्पर रिपोर्ट (संस्करण 4.0.2 के अनुसार) भरने की प्रगति की निगरानी करना संभव नहीं है - net.sf.jasperreports.engine.fill.JRFiller किसी भी प्रकार की प्रगति अधिसूचना प्रदान नहीं करता है।

2

जैस्पर से संस्करण 4.6.0 रिपोर्ट आप FillListener उपयोग कर सकते हैं:

AsynchronousFillHandle handle = AsynchronousFillHandle.createHandle(jasperReport, params, dataSource); 
handle.addFillListener(new FillListener() { 

    @Override 
    public void pageUpdated(JasperPrint jasperPrint, int pageIndex) { 
     log.info("pageUpdated " + pageIndex); 
    } 

    @Override 
    public void pageGenerated(JasperPrint jasperPrint, int pageIndex) { 
     log.info("pageGenerated " + pageIndex); 
    } 
}); 

नोट: 4.6.0 संस्करण SVN से स्रोतों हो और चींटी का उपयोग निर्माण करने के लिए:

svn co http://jasperforge.org/svn/repos/jasperreports (user/pass: anonymous) 
cd jasperreports\trunk\jasperreports 
ant jar 
+0

अब यह जैस्परपोर्ट्स -4.7.0.jar के हिस्से के रूप में उपलब्ध है – Cid

संबंधित मुद्दे