मुझे वैकल्पिक पंक्ति रंग प्राप्त करने में कुछ समस्याएँ हैं।

मैंने विभिन्न अभिव्यक्तियों की कोशिश की है और यह उतना ही करीब है जितना मैंने इसे पूरा करने के लिए किया है:

=IIF(RunningValue(Fields!agent_name.Value,CountDistinct, Nothing) MOD 2 = 1, "Gainsboro", "White")

जहां मेरी अन्य सभी रिपोर्ट्स को सही ऑल्ट रो शेडिंग मिल रही है, मुझे इस विशिष्ट रिपोर्ट से परेशानी हो रही है जिसमें एक रो ग्रुप और एक कॉलम ग्रुप है .. लगभग 2 दिन बिताए और अभी भी कोई भाग्य नहीं है :(

जब मैं उपरोक्त अभिव्यक्ति के साथ अपनी पंक्तियां बनाता हूं, तो यह इस तरह प्रदर्शित होता है: परिणाम उपरोक्त अभिव्यक्ति का उपयोग करके दिखा रहा है

मेरा पंक्ति समूह स्पष्ट रूप से नाम है,

कॉलम समूह महीना/वर्ष है।

किसी भी सुझाव/सहायता की बहुत सराहना की जाएगी

3
user3571153 19 अगस्त 2016, 21:36

2 जवाब

सबसे बढ़िया उत्तर

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

मैंने SSRS में रनिंग वैल्यूज़ और रो नंबर्स का उपयोग करना छोड़ दिया और आमतौर पर अल्टरनेटिंग रो कलर फंक्शन का उपयोग किया।

आप रिपोर्ट में कुछ VB कोड जोड़ते हैं (रिपोर्ट गुण > कोड):

Private bOddRow(10) As Boolean 

Function AlternateColor(ByVal OddColor As String, ByVal EvenColor As String, ByVal Toggle As Boolean, ByVal Type AS INTEGER) As String 

  If Toggle Then bOddRow(Type) = Not bOddRow(Type) 

  If bOddRow(Type) Then 
                Return OddColor 
  Else 
                Return EvenColor 
  End If 

End Function

फिर रंगों को भरने के लिए व्यंजक का उपयोग करें:

=code.AlternateColor("AliceBlue", "White", 0, 1)

पहले दो तर्क वैकल्पिक रंग हैं, तीसरा तर्क नियंत्रण है जो इसे रंग बदलने के लिए कहता है, और चौथा तर्क समूह के लिए नेस्टेड समूहीकरण के लिए उपयोग किया जाता है।

पंक्ति के पहले कॉलम का नियंत्रण पहले 1 के साथ होता है।

=code.AlternateColor("AliceBlue", "White", 1, 1)

अपने पहले कॉलम में इसका उपयोग करें - जहां आपका एजेंट नाम है।

समूह में मूल्यों के लिए एसएसआरएस में वैकल्पिक पंक्ति पृष्ठभूमि रंग कैसे बनाएं

3
Community 23 मई 2017, 15:32

नेक्रोमैंसिंग।
स्वीकृत उत्तर मेरे काम नहीं आया, क्योंकि कॉलम-ग्रुपिंग के भीतर टॉगल बहुत अनियमित है।

हालांकि, नीचे दिए गए कोड ने काम किया।

आपको पहले सेल में बैकग्राउंड-कलर सेट करना होगा:

=iif(Code.IncrementRunningValue() Mod 2 = 0, "WhiteSmoke", "White")

और बाद की सभी कोशिकाओं में

=iif(Code.GetRunningValue() Mod 2 = 0, "WhiteSmoke", "White")

इसे समूह चर के रूप में सेट करने से काम नहीं चलेगा, क्योंकि समूहीकरण के बाद छँटाई लागू की जाती है (जिसका अर्थ है कि मान उत्पन्न होने के बाद पंक्तियों को फिर से व्यवस्थित किया जाता है)।

Private m_s_count As ULong = 0

Public Function IncrementRunningValue() As ULong
    m_s_count = m_s_count + 1UL

    Return m_s_count - 1UL
End Function

Public Function GetRunningValue() As ULong
    Return m_s_count
End Function

या आप इसे और भी आसान कर सकते हैं:

Private m_s_AlternatingColor1Count As ULong = 0


Private Function ComputeAlternatingColor1(val As ULong) As String
    If val Mod 2 = 0 Then
        Return "WhiteSmoke"
    End If

    Return "White"
End Function


Public Function IncrementAlternatingColor1() As String
    Dim alternatingColor As String = ComputeAlternatingColor1(m_s_AlternatingColor1Count)
    m_s_AlternatingColor1Count = m_s_AlternatingColor1Count + 1UL

    Return alternatingColor
End Function

Public Function GetAlternatingColor1() As String
    Return ComputeAlternatingColor1(m_s_AlternatingColor1Count)
End Function

और फिर पहली पंक्ति की पृष्ठभूमि-रंग में:

=Code.IncrementAlternatingColor1()

और बाद की सभी पंक्तियों की पृष्ठभूमि-रंग:

=Code.GetAlternatingColor1()

इसका यह फायदा है कि आप रंगों को एक जगह (DRY) में बदल सकते हैं।

1
Stefan Steiger 15 जून 2017, 14:39