2009-05-18 9 views
6

मेरे पास एक डेटासेट के साथ एक रिपोर्ट है जिसमें बूलियन के साथ एक कॉलम है। टेबल फ़ूटर में मैं x/y प्रदर्शित करना चाहता हूं, जहां xtrue और y कितनी पंक्तियां थीं, कुल मिलाकर कितनी पंक्तियां थीं।एसएसआरएस: सच्ची पंक्तियों को कैसे गिनें

वर्तमान में मैं इस है:

=Count(Fields!Transfered.Value).ToString() + "/" + CountRows().ToString() 

लेकिन पहले अंतिम भाग के रूप में ही हो जाता है। मैंने फिर कोशिश की:

=Sum(Fields!Transfered.Value).ToString() + "/" + CountRows().ToString() 

लेकिन यह एक त्रुटि उत्पन्न करता है, जो मुझे लगता है कि मैं समझ सकता हूं। मैंने सोचा कि अगर मैंने बुलियन को संख्याओं में परिवर्तित किया जहां सत्य 1 है और झूठा 0 है, तो यह अच्छी तरह से काम कर सकता है। लेकिन मैं यह कैसे कर सकता हूं? या क्या यह सब एक साथ करने का एक अच्छा तरीका है?

अद्यतन: अब भी

=Sum(CInt(Fields!Transfered.Value)).ToString() + "/" + CountRows().ToString() 

की कोशिश की है और एक नकारात्मक परिणाम मिला ... o.o

भी एक तरीका है कि काम किया है, जो मैं एक जवाब के रूप तैनात पाया। लेकिन मैं इसे स्वीकार करेंगे नहीं के रूप में एक जवाब अभी तक बैठाना कोई व्यक्ति ऐसा करने का एक बेहतर तरीका है =)

उत्तर

9

मैं आपको बता सकता क्यों चीजें गलत हो गया ...

  • गणना (फील्ड्स! Transfered.Value) बस पंक्तियों की संख्या है। उर्फ CountRows()
  • जोड़ (फील्ड्स! Transfered.Value) एकत्र करने के लिए कोशिश कर रहा है "सही" या "गलत" = त्रुटि
  • जोड़ ((फील्ड्स! Transfered.Value) CInt) योग होगा -1 और 0 क्योंकि वीबी नेट सच = -1
  • जोड़ (IIF (फील्ड्स! Transfered.Value, 1, 0)) पर हस्ताक्षर मुद्दा अपने समाधान को ठीक करता =

अतिरिक्त IIF बचने के लिए आप का योग नकारना इस्तेमाल कर सकते हैं सभी -1s

= -Sum(CInt(Fields!Transfered.Value)).ToString() + "/" + CountRows().ToString() 

अंत में, समाधान ठीक होगा और दोनों समान रूप से kludgy

+2

धन्यवाद! चीजें अब स्पष्ट हैं: डी (कोई भी सच बनाने का फैसला क्यों करेगा? -1) – Svish

+3

डुनो। लोगों को वीबी.Net से नफरत करने के लिए? ;-) – gbn

+1

ठीक है, उन्होंने वैसे भी इसका अच्छा काम किया है: पी सी # एफटीडब्ल्यू! – Svish

1

यह करने के लिए एक तरीका खोज निकाला, हालांकि वहाँ शायद एक बेहतर और अधिक स्पष्ट और तार्किक तरीका है ...

=Sum(IIF(Fields!Transfered.Value, 1, 0)).ToString() + "/" + CountRows().ToString() 
1

मैं आज इस पर आया और कम से कम सत्यापित किया कि मैं अकेला नहीं था जिसने एसएसआरएस से बूल के लिए ऋणात्मक योग मूल्य प्राप्त किया था। धन्यवाद।

मेरा समाधान पूर्ण मूल्य के लिए एबीएस का उपयोग करना था। मुझे अभिव्यक्ति को पूरी तरह से अस्वीकार करने से बेहतर लगता है क्योंकि अगर आप अभिव्यक्ति को पढ़ने में सावधान नहीं हैं तो '-' को दृष्टि से देखना आसान हो सकता है।

लेकिन यह अनिवार्य रूप से सटीक एक ही बात

0

यहाँ एक तरह से जहां गिनती अगर यह से दूसरे भाग एक समूहीकृत मूल्य

=CountDistinct(IIF(Fields!TrueOrFalseField.Value, 
        Fields!GroupedField.Value, 
        "BadValueToBeRemovedFromCount")) 
       -IIF(CountDistinct(Fields!TrueOrFalseField.Value)=1 
           and First(Fields!TrueOrFalseField.Value) 
        , 0, 1) 

पर भरोसा

-IIF(CountDistinct(Fields!TrueOrFalseField.Value)=1 
            and First(Fields!TrueOrFalseField.Value) 
         , 0, 1) 

निकालें 1 है True और False मान या यदि केवल एक अलग false मान है।

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