2012-07-26 15 views
25

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

मैंने रिपोर्ट डिज़ाइन की प्रतिलिपि बनाई है और Excel के साथ काम करने के लिए इसे समायोजित करना शुरू कर दिया है। सबकुछ अच्छा दिखता है, लेकिन हेडर के बाद केवल पहले 3 कॉलम प्रदर्शित होते हैं। सभी पंक्तियां सही ढंग से दिखाई देती हैं।

  • मैं पृष्ठ पर हर तत्व पर इनके लिए दृश्यमान ओवरफ्लो की स्थापना की कोशिश की:

    मैं निम्नलिखित की कोशिश की है। इसका कोई प्रभाव नहीं पड़ा।

  • मैंने मास्टर पेज की ऊंचाई और चौड़ाई को हास्यास्पद रूप से बड़े मूल्यों पर सेट करने का प्रयास किया। सभी जानकारी सही तरीके से प्रदर्शित की गई है, लेकिन मैं हार्ड कोड किए गए मानों के बिना समाधान की उम्मीद कर रहा हूं। भविष्य में डेटा चौड़ाई मेरे मनमानी मूल्य से फिर से हो सकती है और कट ऑफ हो सकती है।

मैं निम्न तरीकों से विवश कर रहा हूँ:

  • मैं रिपोर्टिंग इंजन स्विच करने के लिए (मैं BIRT उपयोग करने के लिए) में सक्षम नहीं हूँ।
  • मैं एक्सेल उत्सर्जकों को स्विच करने में सक्षम नहीं हूं।

इस ब्लॉग प्रविष्टि मेरी समस्या का उल्लेख है: http://www.spudsoft.co.uk/2011/10/the-spudsoft-birt-excel-emitters/ लेकिन यह एक emitter स्विच की तुलना में एक समाधान अन्य प्रदान नहीं करता है। विशिष्ट उद्धरण यह है कि "फ़ाइलों को पेज लेआउट के साथ भी समस्याएं हैं जिनके बारे में मैं काम नहीं कर सका (विशेष रूप से विस्तृत रिपोर्ट काट दिया जाएगा)।"

एक ब्लॉग प्रविष्टि से परे मेरे googlefu ने मुझे विफल कर दिया है। किसी भी मदद की सराहना की है! धन्यवाद!

+1

मैं सुझाव देता हूं कि बीआईआरटी के आउटपुट में कहीं भी नमूना फ़ाइल अपलोड करें, आप इसे Excel में कैसे देखते हैं, और आप इसे कैसे देखना चाहते हैं, ताकि हम कुछ के साथ काम कर सकें। व्यक्तिगत/संवेदनशील डेटा से बचें और एक दृश्य/डाउनलोड लिंक पोस्ट करें – Apostolos55

+0

दुर्भाग्यवश, मैं उस कंपनी में नहीं हूं जब मैं इस प्रश्न से पूछा था। अगर मैं था तो मैं निश्चित रूप से ऐसा करूँगा। चूंकि मैं नहीं हूं, अब मुझे उस कोड तक पहुंच नहीं है जो समस्या उत्पन्न कर रहा था, या परिणामी आउटपुट में से कोई भी। मेरा मानना ​​है कि हम मनमाने ढंग से बड़ी चौड़ाई "समाधान" का उपयोग कर समाप्त हो गए। मैं वास्तव में संतुष्ट नहीं था, लेकिन उस समय यह काफी अच्छा काम करता था। – radicaledward101

+1

यह प्रश्न बंद होना चाहिए, सामान्य रूप से बीआईआरटी सभी कॉलम को एक्सेल करने के लिए निर्यात करेगा, यहां तक ​​कि बॉक्स एमिटर के बाहर भी। यह एक रिपोर्ट पर एक विशिष्ट समस्या के बारे में एक सवाल है, जहां समस्या हल करने के लिए रिपोर्ट उपलब्ध नहीं है। इसलिए इस सवाल का कोई संभावित जवाब नहीं है। –

उत्तर

4

यहां दो प्रश्न हैं। पहला अपेक्षाकृत आसान है, दूसरा जटिल है।

1. एक्सेल में मेरा क्रॉस टैब क्यों काटा जा रहा है?

2. मैं रनटाइम पर रिपोर्ट में कॉलम की संख्या के आधार पर मास्टर पेज चौड़ाई को गतिशील रूप से कैसे समायोजित करूं?

ए 1: क्रॉस टैब काटा जा रहा है क्योंकि कॉलम चौड़ाई मैन्युअल रूप से सेट की गई है, जहां कॉलम की संख्या मास्टर पेज की सेट चौड़ाई से आगे बढ़ेगी। जब भी आप रिपोर्ट डिज़ाइन तत्व को लेते हैं और समायोजित करते हैं, तो बीआईआरटी आपको लगता है कि आप क्या कर रहे हैं और आपकी सेटिंग को ओवरराइड नहीं करते हैं।

समाधान रिपोर्ट तत्व (तालिका या क्रॉस टैब) को फिर से बनाना है और किसी भी आकार को मैन्युअल रूप से समायोजित नहीं करना है। HTML या Excel में चलाए जाने पर सभी कॉलम स्वचालित रूप से उपलब्ध मास्टर पेज चौड़ाई में प्रदर्शित होने के लिए सेट हो जाएंगे।

एक 2 इंच मास्टर पृष्ठ चौड़ाई के साथ एक BIRT 4.2 क्रॉस टैब, रिपोर्ट मद की

स्क्रीन शॉट 30 कॉलम

Two Inch by 30 Columns

ए 2: यह आसान नहीं है, और मैं पर जवाब उपलब्ध कराने नहीं की जाएगी इस समय। मैं समाधान की ओर इशारा करता हूं और कुछ सड़क ब्लॉक की पहचान करता हूं। इस प्रश्न के एक वैध समाधान में नमूना डेटाबेस का उपयोग कर एक कार्य समाधान शामिल होना चाहिए।

Challenge1 (BIRT 4.2.1 के रूप में) - मास्टर पृष्ठ चौड़ाई रिपोर्ट करने के लिए टेबल या क्रॉस टैब आइटम पूरा किया जा रहा से पहले की घटनाओं में BIRT Report Scripting निर्धारित है। आप बस गिन सकते हैं कि रिपोर्ट में कितने कॉलम हैं;

यदि आप गिनती करने के लिए चाहता था, स्तंभों -

रिपोर्ट डिजाइन intialize

columnCount = 0; 

क्रॉस टैब, onCreate

columnCount ++; 

अपना शोध में वहाँ दो रास्ते हैं पहले कॉलम की गणना के लिए सुझाव क्रॉस टैब आइटम बनाया जा रहा है। या तो

  1. डेटा beforeFactory में सेट (इस डेटा बेस, किसी की गणना और एक रिपोर्ट के लिए करने के लिए दो प्रश्नों का मतलब है) रन है, तो एक गिनती हो और इसका इस्तेमाल करते हैं।

  2. अपनी आंतरिक क्वेरी में मूल्य की गणना करें और इसे डेटा सेट, फ़ेच पर फसल करें।

मैंने डेटा सेट, ऑनफैच, विकल्प का उपयोग एक गणना कॉलम का उपयोग करके किया लेकिन इसे काम नहीं किया।

चुनौती 2 - मास्टर पेज की चौड़ाई संपत्ति रिपोर्ट डिज़ाइन पर या उससे पहले प्रस्तुत की जानी चाहिए। पहले कारखाने की अक्सर सिफारिश की जा रही है। इसके अतिरिक्त मास्टर पेज की चौड़ाई संपत्ति केवल तभी उपलब्ध होती है जब मास्टर पेज "टाइप" को "कस्टम" पर सेट किया जाता है, मेरे प्रयासों में मैंने इसे मैन्युअल रूप से प्रॉपर्टी एडिटर सामान्य में सेट किया है।

ऑनफैच से पहले तक चलने वाले मूल्यों को एक पर्सिस्टेंट ग्लोबल वैरिएबल का उपयोग करके किया जाना चाहिए जो केवल तारों को पार कर सकता है, पूर्णांक नहीं। मुझे काम करने के लिए इस तरह के सभी प्रकार का रास्ता नहीं मिला। यहां तक ​​कि गुजर "12in" में PersistentGlobalVariable मास्टर पृष्ठ चौड़ाई को समायोजित करेगा (जब प्रकार = कस्टम)

मूल्य

reportContext.getReportRunnable().designHandle.getDesignHandle().findMasterPage("Simple MasterPage").setProperty("width","12in"); 

दर्रा beforeFactory में इन कोड के मास्टर पेज को समायोजित करने में विफल रहा है चौड़ाई

या तो एक मूल्य की गणना करें और यह

increaseWidth = 20; 
reportContext.getReportRunnable().designHandle.getDesignHandle().findMasterPage("Simple MasterPage").setProperty("width",((2+increaseWidth)+"in")); 

पारित अंत मुझे लगता है या एक कार्यात्मक रिपोर्ट है कि मास्टर पृष्ठ डब्ल्यू समायोजित कर देता है बनाने में असमर्थ किया गया है में आईडी रन रिपोर्ट समय पर उत्पन्न संख्या कॉलम पर पारित किया गया। मुझे लगता है कि यह संभव है, लेकिन ऐसा करना मेरे वर्तमान कौशल से परे है।

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