2012-04-26 18 views
9

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

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

मुझे पूरी तरह से एक SQL सर्वर तालिका में अपनी रिपोर्ट बनाने के लिए मजबूर किया गया है और मुझे ऐसा करने की ज़रूरत नहीं है।

उदाहरण के लिए: मैं टेक्स्टबॉक्स में अभिव्यक्ति का उपयोग क्यों नहीं कर सकता;

Fields!Foo1.Value/Fields.Foo2.Value 

जहां Foo1 डेटासेट 1 में है और Foo2 डेटासेट 2 में है।

यदि यह सॉफ़्टवेयर की क्षमता से परे है, तो यह ठीक है। मुझे लगता है कि यह है।

तो शायद कोई इस प्रश्न का उत्तर दे सकता है: क्या किसी को क्रिस्टल रिपोर्ट्स और रिपोर्टिंग सेवाओं के अलावा किसी अन्य रिपोर्टिंग सॉफ़्टवेयर के बारे में पता है जो अधिक बहुमुखी है?

उत्तर

6

न तो क्रिस्टल और न ही एसएसआरएस आपको पंक्ति-दर-पंक्ति आधार पर दो अलग-अलग डेटासेट में मूल्यों की तुलना करने की अनुमति देगा।

दोनों में उपकरण:

  • दोनों डेटासेट एक ही संबंधपरक डेटाबेस से आते हैं, तो मानों की तुलना करने का सबसे सरल तरीका किसी एक क्वेरी में दोनों डेटासेट गठबंधन करने के लिए है।
  • यदि दोनों डेटासेट अलग-अलग संबंधपरक डेटाबेस से आते हैं जिन्हें एक साथ जोड़ा जा सकता है (उदाहरण के लिए, SQL सर्वर में लिंक्ड सर्वर का उपयोग करके, या ओरेकल में डेटाबेस लिंक का उपयोग करके), तो मानों की तुलना करने का सबसे आसान तरीका दो डेटासेट को एकल में जोड़ना है क्वेरी जो दोनों लिंक किए गए डेटाबेस तक पहुंचती है।
  • यदि दोनों डेटासेट डेटा स्रोतों से आते हैं जिन्हें सीधे एक साथ जोड़ा नहीं जा सकता है, तो दो डेटासेट को एक सब्रेपोर्ट के माध्यम से क्रिस्टल/एसएसआरएस में एक साथ जोड़ा जा सकता है। (SSRS here में subreports पर अधिक जानकारी।)

वहाँ BIRT कहा जाता है एक रिपोर्टिंग उपकरण SSRS लिए एक समान रिपोर्टिंग प्रतिमान (यानी किया है।क्रिस्टल के बैंडिंग रिपोर्टिंग दृष्टिकोण के बजाय एक वेब-स्टाइल लेआउट), इसमें एसएसआरएस के समान कार्यक्षमता शामिल है, ओपन सोर्स है और आपको संयुक्त डेटासेट बनाने के लिए सीधे डेटासेट को लिंक करने में सक्षम बनाता है। हालांकि, क्रिस्टल या एसएसआरएस की तुलना में उपयोग करने के लिए यह कम सहज है।

+0

आपके उत्तर के लिए धन्यवाद। –

3

इसके साथ चिपकाएं - रिपोर्टिंग सेवाएं एक अद्भुत लचीली रिपोर्टिंग प्लेटफॉर्म है।

आप फ़ील्ड नाम के बाद डेटासेट निर्दिष्ट करके जो भी चाहते हैं वह कर सकते हैं लेकिन आपको यह निर्दिष्ट करना होगा कि आप कौन सी Foo2 चाहते हैं या आप Foo2 से कैसे निपटना चाहते हैं।

आप जिस तरह से करते हैं वह कुल कार्यों के माध्यम से होता है। उदाहरण के लिए, की सुविधा देता है Dataset2 केवल डेटा की एक पंक्ति है, तो आप पहले एक मिलता है:

=Fields!Foo1.Value/First(Fields!Foo2.Value, "Dataset2") 

कई पंक्तियां हैं तो और आप तो आप ऐसा कर सकते foo2 की राशि से विभाजित करना चाहते हैं:

=Fields!Foo1.Value/Sum(Fields!Foo2.Value, "Dataset2") 

बिंदु यह है कि आप वर्तमान में डेटासेट 1 के माध्यम से कदम उठा रहे हैं - आपको रिपोर्टिंग सेवाओं को यह जानने की आवश्यकता है कि आपको Foo2 को वापस करने के लिए डेटासेट 2 से कैसे निपटना है।

+0

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

+4

डेटासेट में SQL का उपयोग करके टेबल में शामिल क्यों न हों और आपके पास एक डेटास्रोत में आवश्यक सभी डेटा हो? –

+0

ठीक है। अच्छा विचार। मैं कोशिश करूँगा। आपकी सहायता के लिए धन्यवाद. –

8

मुझे लगता है कि अब तक आप का समाधान हो गया होगा, हालांकि यदि आपको एक ही समस्या का सामना करना पड़ रहा है तो आप अभिव्यक्ति में lookup का उपयोग कर सकते हैं।
यह जबकि दोनों डेटासेट

=Lookup(value in dataset1,value in dataset2, common field in both datasets, dataset name from which we need to get data)