2011-09-14 19 views
12

में काम Jasperserver v4.1.0 के साथ यात्रा करना v4.0.1 मैं मुख्य रिपोर्ट मुझे iReport पर परीक्षण करना तब को तैनात करने के लिए देता है कि subreports जोड़ने के लिए एक वाक्य रचना को खोजने के लिए कोशिश कर रहा हूँ का उपयोग करना भंडार ब्राउज़र के माध्यम से सर्वर।iReport में subreports लिंक करना ताकि वे भी जैस्पर सर्वर

subreport अभिव्यक्ति के लिए यात्रा करना में सब-रिपोर्ट के लिए डिफ़ॉल्ट वाक्य रचना

$P{SUBREPORT_DIR} + "mySubReport.jasper" 

की तरह कुछ है जब आप इस iReport से यह काफी स्मार्ट है की तैनाती इस लेने और

"repo:mySubReport.jrxml" 
करने के लिए इसे बदलने का सुझाव करने के लिए

और फिर सभी रिपोर्टों को मुख्य रिपोर्ट के संसाधन फ़ोल्डर में तैनात करने के लिए।

यह बहुत अच्छा है, लेकिन दुर्भाग्य से यह इस परिवर्तन को सहेजने के लिए iReport में फ़ाइल को संपादित करता है जिसका अर्थ है कि अब आप सभी उप-रिपोर्ट अभिव्यक्तियों को मैन्युअल रूप से दोबारा संपादित किए बिना iReport में रिपोर्ट नहीं चला सकते हैं - इससे परीक्षण की प्रक्रिया होती है और सर्वर पर तैनाती वास्तव में दर्दनाक है, खासकर जब एक रिपोर्ट में कई उप-रिपोर्ट हैं।

मैंने सोचा कि मैं कम से कम $ P {SUBREPORT} का मान "रेपो:" या "मेरा \ स्थानीय \ filepath" मान सकता हूं ताकि कम से कम मेरे पास इसे बदलने के लिए केवल एक स्थान हो, लेकिन कंपाइलर इसे पसंद नहीं करता है। * Jrxml या मेरे \ स्थानीय \ filepath * सही ढंग से जहां से रिपोर्ट चला रहे हैं पर निर्भर करता है .jasper:।

वहाँ एक विकल्प संरचना या एक अभिव्यक्ति है कि रेपो हो जाएगी है?

उत्तर

13

इसका सबसे अच्छा समाधान $P{IsOnServer} जैसे अतिरिक्त पैरामीटर को जोड़ना है। डिफ़ॉल्ट मान को true पर सेट करें। अपने subreport अभिव्यक्ति के लिए इस का उपयोग करें:

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

जब आप iReport में रिपोर्ट चलाते हैं, आप IsOnServer के मूल्य के लिए संकेत दिया जाएगा। इसे झूठा बनाओ; subreport अभिव्यक्ति आपकी स्थानीय फ़ाइल को हल करेगी। सर्वर पर, इनपुट नियंत्रण को परिभाषित न करें। उपयोगकर्ताओं को उस पैरामीटर के लिए कभी भी संकेत नहीं दिया जाएगा (वे यह भी नहीं जानते होंगे कि यह मौजूद है), और इसके परिणामस्वरूप वांछित 'रेपो' वाक्यविन्यास होगा।

आईरपोर्ट के लिए स्वचालित रूप से इसे संभालने के लिए एक बेहतर समाधान होगा ... लेकिन अभी के लिए आपको ऐसा कुछ करने की आवश्यकता है।

+1

सुविधा अनुरोध को बढ़ाने के लिए धन्यवाद - अन्य यहां वोट दे सकते हैं: http://jasperforge.org/projects/ireport/tracker/view.php?id=5539 – KCD

+0

mdahlman, क्या आप अधिक विशिष्ट हो सकते हैं? जैसे क्या आप स्क्रिप्ट सीडीएटीए भाग के अंदर या बाहर काम करते हैं? क्या आप एक और पूर्ण लाइन उदाहरण प्रदान कर सकते हैं? –

+0

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