2010-10-26 15 views
8

Jasper raporları bir derleme raporu doldururken, kullanıcıya ilerleme sağlamak istiyorum. Bu yürütülürken Temelde ilerleme almak istiyorum:Jasper raporu doldurulurken kaydedilen ilerleme

JasperFillManager.fillReport (JasperReport RPT, Harita params, JRDataSource src)

bunu başarmak için yine de var mı?

+1

Biz Doldurmanın farklı bir iş parçacığında gerçekleştiği AsynchronousFillHandle ve AsynchronousFilllListener kullanıyor. Bu, iptal etme özelliğiyle kendi ilerleme çubuğumuzu göstermemize olanak tanır. Ne yazık ki, dinleyici gerçek ilerleme göstergesi vermez, sadece tamamlanma ya da hata bildirir, böylece ilerleme çubuğu 'sonsuzdur'. – yshalbar

+0

Bunu zaten, RCP/SWT/JFace uygulamasındaki iş çerçevesini kullanarak gerçekleştiriyoruz. Ayrıca gerçek bir ilerlememiz yok. Tuhaf çünkü dosyaya aktarılırken ilerleme var. Jasper'e katkıda bulunmanın kim kolay olduğunu merak ediyorum ... – Craig

cevap

0

ben rapor oluşturulurken olduğunu göstermek için PrimeFaces bu bileşenleri kullanıyorum:

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

Ben raporlarım derlemek ve doldurmak için alacak toplam süreyi belirlemek için herhangi bir gerçek yol yok, bu yüzden Rapor tamamlanmadan önce bazen dolduran gerçek bir ilerleme çubuğu kullanmamayı seçtim.

+0

Doğru rapor oluşturma işleminin jasper raporlarında düzgün bir şekilde uygulanması ve müşterilere maruz kalması gerektiğini düşünüyorum. – Craig

0

Korkarım ki jasper raporunun doldurulmasının ilerlemesini izlemek mümkün değil (versiyon 4.0.2'den itibaren) - net.sf.jasperreports.engine.fill.JRFiller herhangi bir ilerleme bildirimi sunmuyor. 4.6.0 sürümü svn gelen kaynaklar almak ve karınca kullanmak inşa etmek:

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); 
    } 
}); 

NOT: Jasper itibaren

2

Sen FillListener kullanabilirsiniz sürüm 4.6.0 Raporları

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

Şimdi bu, jasperreports-4.7.0.jar dosyasının bir parçası olarak kullanılabilir. – Cid

İlgili konular