9

मेरे पास एक एसएसआरएस रिपोर्ट में एक सारणी है जो केवल एक समूह प्रदर्शित कर रही है, तालिका विवरण नहीं। मैं प्रदर्शित होने वाली वस्तुओं के लिए पंक्ति संख्या जानना चाहता हूं ताकि मैं रंग बैंडिंग का उपयोग कर सकूं। मैंने "रोकाउंट (कुछ भी नहीं)" का उपयोग करने की कोशिश की, लेकिन इसके बजाय मुझे विस्तार तालिका की पंक्ति संख्या मिल गई।एसएसआरएस 2005 में समूह के लिए RowNumber

मेरे अंतर्निहित डेटा

ROwId Team  Fan 

1  Yankees John 
2  Yankees Russ 
3  Red Socks Mark 
4  Red Socks Mary 
...   
8  Orioles Elliot 
...   
29  Dodgers Jim 
... 
43  Giants Harry 
की तरह कुछ है

केवल समूहों दिखा मेरी मेज इस तरह दिखता है:

ROwId Team 
2  Yankees 
3  Red Socks 
8  Orioles 
29  Dodgers 
43  Giants 

मैं इसे पसंद

ROwId Team 
1  Yankees 
2  Red Socks 
3  Orioles 
4  Dodgers 
5  Giants 

उत्तर

28

आप की तरह कुछ एक RunningValue अभिव्यक्ति के साथ ऐसा कर सकते हैं,।

enter image description here

एक सरल रिपोर्ट बनाना और RowNumber और RunningValue दृष्टिकोण की तुलना से पता चलता है कि RunningValue अपने आवश्यक परिणाम देता है:

डेटा पर विचार करें

enter image description here

+0

से बेहतर है जो बहुत अच्छा काम करता है। बहुत बहुत धन्यवाद। – FistOfFury

6

आप आसानी से कर सकते हैं देखने के लिए चाहते हैं इसे थोड़ा सा vbcode के साथ प्राप्त करें। गुण - - रिपोर्ट पर जाएं कोड और की तरह कुछ लिखें:

Dim rownumber = 0 
Function writeRow() 
    rownumber = rownumber + 1 
    return rownumber 
End Function 
फिर अपने सेल पर

, जैसे ही =Code.writeRow()

का उपयोग करके इस समारोह फोन के रूप में आप तालिकाओं के अंदर समूहों का उपयोग, RowNumber और RunningGroup कार्यों शुरू कुछ अजीब व्यवहार शुरू करना शुरू करें, इस प्रकार आप जो चाहते हैं उसे करने के लिए बस कुछ कोड लिखना आसान है।

=RunningValue(Fields!Team.Value, CountDistinct, "DataSet1") 

DataSet1 अंतर्निहित डाटासेट के नाम किया जा रहा है:

+0

यह बहुत अच्छा है, मेरी राय में चल रहे मूल्य –

0

मैं सभी आश्वस्त नहीं हूँ उपरोक्त सुझाव सभी समाधान के लिए एक हैं। मेरा परिदृश्य है कि मेरे पास एक समूह है जिसमें कई कॉलम हैं। मैं सहमत समाधान रनिंग वैल्यू का उपयोग नहीं कर सका क्योंकि मेरे पास फ़ंक्शन में उपयोग करने के लिए एक कॉलम नहीं है जब तक कि मैं एक अद्वितीय कॉलम बनाने के लिए उन सभी को गठबंधन नहीं करता (एक गणना कॉलम कहता हूं)।

मैं VBA कोड फ़ंक्शन का उपयोग नहीं कर सकता है के रूप में ही कारण के लिए है और मैं जब तक मैं अगर मैं की संख्या पता था कि जहां स्मार्ट के कुछ अन्य प्रकार का उपयोग उस बात के लिए एकाधिक स्तंभों और कई प्रॉपर्टी के बीच समान मूल्य का इस्तेमाल किया था उपयोग करता है (एन कॉलम * एम गुण कहें) तो मैं केवल प्रत्येक एनएक्सएम कॉल पर रोनंबर को अपडेट कर सकता था, हालांकि, मुझे कोई गिनती कॉलम फ़ंक्शन नहीं दिखाई दे रहा था, इसलिए यदि मैंने एक कॉलम जोड़ा तो मुझे अपने एन स्थिरता को बढ़ाने की भी आवश्यकता होगी। मैं भी अपने समूह को सुझाव देने के लिए एक नया कॉलम नहीं जोड़ना चाहता था क्योंकि मुझे पता नहीं था कि इसे कैसे छिपाना है और मैं एक वीबीए सिस्टम नहीं लिख सका जहां मैं फ़ंक्शन ए को कॉल कर सकता हूं जो कुछ भी नहीं देता है लेकिन मूल्य को अपडेट करता है (यानी प्रति समूह पंक्ति में केवल एक बार) फिर एक और फ़ंक्शन GetRowNumber पर कॉल करें जो आसानी से राउनंबर चर लौटाता है क्योंकि कॉलिंग कॉल से पहले किया गया था, इसलिए मेरे पास हमेशा एक कॉलम बाकी के सिंक से बाहर था।

मेरा एकमात्र अन्य 2 समाधान जो मैं सोच सकता हूं, संयुक्त कॉलम को पहले ही क्वेरी में उल्लिखित किया गया है या DENSE_RANK का उपयोग करें और सभी समूह कॉलम पर सॉर्ट करें, यानी।

DENSE_RANK() OVER (ORDER BY GroupCol1, GroupCol2, ...) AS RowNumber 
संबंधित मुद्दे