2011-12-05 14 views
5

मुझे लगा कि यह ऐसा कुछ होगा जो जैस्पर रीपॉर्ट्स के लिए एक केंद्रीय विषय के रूप में काफी अच्छी तरह से प्रलेखित होगा, हालांकि मुझे इसके लिए कोई जवाब नहीं मिल रहा है।जैस्पर रिपोर्ट: विवरण बैंड का उद्देश्य

विवरण बैंड का उद्देश्य/कार्य/उद्देश्य क्या है? क्या यह सिर्फ एक रिपोर्ट का केंद्रीय या मुख्य भाग होना चाहिए?

एक अन्य प्रश्न से यह मुझे बताया गया कि विवरण बैंड के बीच 1: 1 संबंध और जेआरडेटासोर्स द्वारा प्रदान किए गए रिकॉर्ड/बीन के बीच 1: 1 संबंध है। यह प्रकाशन कुछ स्पर्शिक प्रश्नों को प्रकाश में लाता है:

  • जावा में प्रोग्रामेटिक रूप से विस्तृत बैंड जोड़ना संभव है; क्या होता है यदि आप अपने जेआरडेटा स्रोत द्वारा रिकॉर्ड किए गए रिकॉर्ड/बीन्स की तुलना में अधिक/कम विस्तार बैंड (प्रोग्रामेटिक रूप से) निर्दिष्ट करते हैं?
  • एक विवरण बैंड के बीच संबंध क्या है, और कहें, निर्यात किए गए पीडीएफ दस्तावेज़ के अंदर एक पृष्ठ? क्या 1 विवरण बैंड 1 पृष्ठ में अनुवाद करते हैं?
  • यदि आप JasperFillManagernull डेटा स्रोत पास करते हैं तो क्या होता है? क्या अभी भी विस्तार बैंड होना संभव है?

मैं एक समय में कई प्रश्न पूछना पसंद नहीं करता हूं, लेकिन ये समान रूप से संबंधित हैं, मैं कई सारे समान प्रश्नों के साथ अव्यवस्था के बजाय इसे एक बार में करूँगा। अग्रिम में धन्यवाद।

उत्तर

8

विवरण बैंड वास्तव में बैंड है जहां डेटा स्रोत के प्रत्येक तत्व की सूचना दी जाती है। रिपोर्ट इंजन स्वचालित रूप से डेटा स्रोत पर पुनरावृत्त करता है और डेटा स्रोत के संबंधित तत्व के साथ विस्तार बैंड के टेम्पलेट में डेटा डालता है।

आपके पास निश्चित रूप से एक ही पृष्ठ पर कई तत्व हो सकते हैं। बैंड (गुणों की अनुमति, ऊंचाई, इत्यादि) के गुणों के मुताबिक, पेजिंग को जैस्पर रिपोर्ट्स द्वारा स्वचालित रूप से संभाला जाएगा, और यह इंजन है जो इस प्रकार तय करेगा कि प्रत्येक पृष्ठ पर कितने तत्व मुद्रित किए जाते हैं, निम्नलिखित पर जाने के लिए पेज, आदि

यदि आपके पास डेटा स्रोत में कुछ भी नहीं है तो विवरण बैंड मुद्रित नहीं होता है। अन्य बैंड की छपाई रिपोर्ट के मानकों पर निर्भर करती है।

0

जैसा कि मुझे याद है, आप विवरण बैंड को रिपोर्ट में पंक्ति/रिकॉर्ड के लिए "मॉडल" के रूप में देख सकते हैं। जेआरडेटासोर्स द्वारा प्रदान किए गए प्रत्येक रिकॉर्ड के लिए आपके द्वारा विस्तारित बैंड के अंदर रखे गए सभी तत्वों को दोहराया जाएगा।

उदाहरण के लिए, आपके विवरण बैंड में दो टेक्स्ट फ़ील्ड हो सकते हैं, एक मूल्य $ {companyName} के साथ, और मूल्य मान $ {राजस्व} के साथ।

अब आप अपनी रिपोर्ट तीन पंक्तियों पार कर लेते हैं, फिर "CompanyName" और "राजस्व" उनमें से प्रत्येक के लिए मूल्यांकन किया जाएगा, और आप की तरह कुछ मिल सकता है:

|Apple    | $1000,000,000| 
|Microsoft   | $500,000,000| 
|My amazing company |   $12| 

Ie, विस्तार बैंड सामग्रियां हैं तीन बार दोहराया गया है।

तो: - जैसा कि आप देखते हैं कि आपको शायद केवल एक विवरण बैंड कॉन्फ़िगर की आवश्यकता है। सुनिश्चित नहीं है कि जेआरएक्सएमएल में एकाधिक लोगों की अनुमति है या नहीं। - विवरण बैंड और एक पृष्ठ के बीच कोई संबंध नहीं है। अंकन अलग से संभाला जाता है। - सुनिश्चित नहीं है, ईमानदार होना। मेरा सबसे अच्छा अनुमान या तो अपवाद है या आपको कोई पंक्ति नहीं मिलती है जहां विस्तार बैंड को प्रस्तुत किया जाना चाहिए।

2

विवरण का उद्देश्य band आपको एक मॉडल प्रदान करना है जहां आप रिपोर्ट तत्वों को स्थानांतरित और कॉन्फ़िगर करते हैं। मुझे नहीं लगता कि एक बीन और विस्तार बैंड के बीच संबंध एक से एक है, क्योंकि आप एक सेम में कई बीन संपत्ति तत्व रख सकते हैं। तो, मैं कहूंगा कि विस्तार बैंड रिपोर्ट बीन तत्वों के संग्रह से कसकर बंधे हैं।

हालांकि एक अंतर यह है कि विस्तार बैंड की कार्यक्षमता JRDataSource के माध्यम से आपके द्वारा प्रदान किए जाने वाले कितने सेम/रिकॉर्ड के लिए अप्रासंगिक है। विस्तारित बैंड तब तक उन सभी के माध्यम से फिर से शुरू होगा जब तक डेटा स्रोत "उपभोग" न हो।

इसके अलावा, मुझे व्यक्तिगत रूप से यह बहुत उपयोगी लगता है कि विस्तार बैंड आपको बीन गुणों के संग्रह के माध्यम से पुन: सक्रिय करने की अनुमति देता है। इसलिए, एक आगे बढ़ने से पहले, एक विस्तार बैंड में कई गुणों को रखकर, उन सभी के माध्यम से फिर से शुरू हो जाएगा।

यदि आप nullDataSource के रूप में पास करते हैं तो आपको रिपोर्ट पर कोई डेटा नहीं मिलेगा, और केवल static टेक्स्ट दिखाई देगा।

0

आप गलत समझते हैं कि एक विस्तार बैंड क्या है।

आपकी रिपोर्ट का विवरण बैंड आपके डेटा स्रोत में प्रत्येक तत्व के लिए मुद्रित किया जाएगा। यदि आप डेटाबेस डेटासोर्स का उपयोग करते हैं, तो पंक्तियों को आपके परिणामस्वरूप कई बार मुद्रित किया जाएगा। यदि आप JRBeanCollection डेटासोर्स का उपयोग करते हैं, तो विवरण बैंड को आपके संग्रह के रूप में कई बार मुद्रित किया जाएगा।

आपके सवालों के जवाब के लिए:

  1. आप एक से अधिक detailband निर्दिष्ट नहीं कर सकते, यह अवैध है। आप उस उद्देश्य के लिए उप-रिपोर्ट का उपयोग कर सकते हैं।

  2. रिपोर्ट प्रति पृष्ठ के रूप में कई विस्तार बैंड को आउटपुट करेगी। दूसरी तरफ, आप विवरण बैंड को अपनी वांछित रिपोर्ट आउटपुट (शून्य हेडर/पाद लेख/आदि ऊंचाई) के समान ऊंचाई बना सकते हैं। यदि आप ए 4 पेपर में रिपोर्ट प्रिंट करना चाहते हैं तो आप अपना विवरण बैंड 297 मिमी ऊंचा कर सकते हैं (आपके पास कोई अन्य बैंड नहीं है)। फिर प्रत्येक विवरण बैंड एक अलग पृष्ठ में मुद्रित होगा।

  3. यदि आप एक खाली डेटासोर्स पास करते हैं, तो रिपोर्ट कोई पृष्ठ नहीं बनाई जाएगी।
+1

आप एक से अधिक विस्तार बैंड निर्दिष्ट कर सकते हैं, और कभी-कभी इसे ठीक करने के लिए बहुत समझदारी होती है। सबरेपोर्ट्स उपयोगी हैं क्योंकि उनके पास अपना डेटासेट है, लेकिन यदि आप मुख्य डेटा के समान डेटा का उपयोग करना चाहते हैं तो वे केवल एक और विवरण बैंड जोड़ने से कम कुशल हैं। – GenericJon

0

आपके पास जो जानकारी है वह सही है, आपको इसका अर्थ थोड़ा सा गलत समझ गया है।

1: 1 रिश्ते भरने पर है; एक बार रिपोर्ट भरने के बाद डेटासेट में प्रत्येक रिकॉर्ड के लिए बिल्कुल 1 विवरण बैंड होगा। जब आप रिपोर्ट तैयार कर रहे होते हैं तो आप केवल बैंड को एक बार जोड़ते हैं, लेकिन जब रिपोर्ट भर जाती है तो उस बैंड को बार-बार दोहराया जाता है।

आप जितनी चाहें उतने विस्तार बैंड जोड़ सकते हैं। प्रत्येक बैंड में डेटासेट रिकॉर्ड के साथ 1: 1 संबंध होता है, और अगले विवरण पर जाने से पहले सभी विवरण बैंड भर जाते हैं (यानी यदि आपके पास तीन बैंड ए, बी, और सी हैं; रिपोर्ट में उनका ऑर्डर होगा एबीसीएबीसी बनें ... एएए नहीं ... बीबीबी ... सीसीसी ...)।

  • यह बैंड प्रोग्राम के रूप में जोड़ने के लिए संभव है, लेकिन नोट करना महत्वपूर्ण मुद्दा यह है कि आप पूरा रिपोर्ट के बजाय रिपोर्ट डिजाइन को बैंड जोड़ रहे हैं, है।तो बस एक jrxml डिजाइन के साथ, आप बैंड को एक बार जोड़ते हैं और यह प्रत्येक रिकॉर्ड के लिए दोहराया जाता है। Check this example

  • रिपोर्ट पेज और विवरण बैंड के बीच कोई संबंध नहीं है। रिपोर्ट फिलर प्रत्येक बैंड के splitType और साथ ही साथ अन्य रिपोर्ट गुणों का सम्मान करते हुए एक पृष्ठ पर जितना संभव हो उतना अधिक प्रयास करने का प्रयास करेगा।

  • क्या एक शून्य डेटा स्रोत को पारित किया जा रहा है? किसी भी मामले में 1: 1 संबंध अभी भी मान्य है: 0 रिकॉर्ड वाले डेटासेट रिपोर्ट में 0 विवरण बैंड उत्पन्न करता है।

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