2011-09-14 12 views
12

iReport v4.0.1'i Jasperserver v4.1.0 ile kullanma Alt raporları iReport'ta test etmeme izin veren ana rapora bağlamak için bir sözdizimi bulmaya çalışıyorum ve sonra da depo tarayıcı üzerinden sunucu.iReport'taki alt raporları bağlama, bunlar da Jasper sunucusunda çalışırlar

alt rapor ifadesi için iReport alt raporlar için varsayılan sözdizimi

$P{SUBREPORT_DIR} + "mySubReport.jasper" 

gibi bir şey bu pick up ve

"repo:mySubReport.jrxml" 
değiştirmeyi önermek o kadar akıllı iReport bu dağıtırken

ve tüm alt raporları ana raporun Kaynaklar klasörüne dağıtın.

Bu harika, ancak maalesef bu değişikliği kaydetmek için iReport'ta dosyayı düzenler; bu, raporun artık tüm alt rapor ifadelerini el ile yeniden düzenlemeden iReport'ta çalıştıramayacağınız anlamına gelir; Bir raporda birden çok alt rapor olduğunda, sunucuya gerçekten ağrılı bir şekilde dağıtılıyor.

En azından $ P {SUBREPORT} değerini "repo:" veya "My \ local \ filepath" olarak ayarlayabileceğimi düşündüm, en azından değiştirecek tek bir yerim olmalıydı, ancak derleyici bundan hoşlanmaz. Raporun çalıştırıldığı yere bağlı olarak repo: *. Jrxml veya My \ local \ filepath * .jasper olarak doğru bir şekilde çözümlenecek alternatif bir yapı veya ifade var mı?

cevap

13

Bunun için en iyi çözüm, $P{IsOnServer} gibi ek bir parametre eklemektir. Varsayılan değeri true olarak ayarlayın. senin alt rapor ifadesi için bunu kullanın:

$P{IsOnServer} ? "repo:mySubReport.jrxml" : "/local/path/to/mySubReport.jasper" 

Eğer iReport raporu çalıştırmak

, sen IsOnServer değeri için istenir. Yanlış yap; alt rapor ifadesi yerel dosyanıza çözülecektir. Sunucuda, bir giriş kontrolü tanımlamayın. Kullanıcılar bu parametre için hiçbir zaman istenmeyecek (varlığını bile bilmeyeceklerdir) ve istenen 'repo' sözdizimine yol açacaktır.

Daha iyi bir çözüm elbette iReport'un bunu otomatik olarak halletmesi için olurdu ... ama şimdilik böyle bir şey yapmalısınız. özellik isteği yükseltmek için

+1

Teşekkür - diğerleri burada oy kullanabilirsiniz: http://jasperforge.org/projects/ireport/tracker/view.php?id=5539 – KCD

+0

mdahlman, daha spesifik olabilir? Örneğin. CDATA parçasında veya dışarıda çalıştığınız komut dosyası mı çalışıyor? Daha eksiksiz bir çizgi örneği verebilir misiniz? –

+0

Bunu kullanırken, raporu stüdyoda açmaya çalıştığımda Eşzamanlı Modifikasyon istisnaları alıyorum. Tek çözüm, sunucuya dağıtmadan önce/sonra pareamter varsayılan değerini manuel/yanlış olarak ayarlamaktır. –

İlgili konular