2009-02-27 10 views
8

मेरे पास एक रिपोर्ट और डेटास्रोत है जहां कॉलम में से एक टाइमस्पेन प्रकार है। जब मैं Fields!TheTime.Value का उपयोग करता हूं, तो कोई समस्या नहीं होने पर टाइमस्पैन मान रिपोर्ट में सही तरीके से प्रदर्शित होता प्रतीत होता है।एसएसआरएस: एक रिपोर्ट में टाइमस्पेन मानों को सारांशित करना

  • 07:02:00
  • 05:41:00

लेकिन मैं उन मूल्यों पर एक योग करने के लिए एक समूह का कुल समय प्राप्त करना चाहते हैं। सी # में और इस तरह मैं निश्चित रूप से टाइमस्पेन + एक और टाइमस्पैन कर सकता हूं, इसलिए मुझे पता है कि उन्हें जोड़ा जा सकता है। मैंने

=Sum(Fields!TheTime.Value) 

लेकिन यह किसी प्रकार की लंबी संख्या के रूप में प्रिंटिंग समाप्त हो गया। उदाहरण के लिए उपरोक्त आउटपुट के लिए, मुझे योग के रूप में 457800000000 मिलेगा। और यह भी क्या माना जाता है?

वैसे भी, मैं रिपोर्ट में टाइम्स पैन मूल्य कैसे जोड़ सकता हूं? उपर्युक्त टाइमपैन के लिए मैं योग के रूप में 12:43:00 के साथ समाप्त करना चाहता हूं। जब तक मेरा सिर गणित में मुझे एक बार फिर विफल नहीं कर देता ... लेकिन आपको यह विचार मिलता है: पी

+1

जैसा कि आपने नीचे अनुमान लगाया है, सारांशित मूल्य "टिक" मान है। आप इसे उपरोक्त समय में सेकंड की संख्या की गणना करके भी देख सकते हैं: 07:02:00 = 25320s और 05:41:00 = 20460s। 25320 + 20460 = 45780. – Dan

उत्तर

14

आह समाधान annoyingly सरल ... क्यों मैं सिर्फ पहली जगह में की कोशिश की है नहीं कर सकते हैं? ओह अच्छा ... शायद इसलिए क्योंकि मैं मैं TimeSpan वर्ग तक पहुँच थी ... शायद क्योंकि मैं अपने आप को अंधा सोचा था ... लेकिन नहीं पता था वैसे भी, यहाँ यह है:

=TimeSpan.FromTicks(Sum(Fields!TheTime.Value)) 

डी 'ओह!

+1

मुझे 'सिस्टम' के साथ उपसर्ग करने की आवश्यकता है - उदाहरण के लिए। = System.TimeSpan.FromTicks (Sum (फ़ील्ड्स! घंटे। वैल्यू)) –

+0

@ डेविड: फिर आपके पास शायद 'कोड का उपयोग नहीं किया गया'; आपकी कोड फ़ाइल में – Svish

0

शायद यह हो रहा है कि जब आप फ़ील्ड प्रदर्शित करते हैं! TheTime.Value, SSRS एक डेटटाइम के रूप में प्रदर्शित करने के लिए पर्याप्त समझदार है प्रकार क्षेत्र

जब तुम वहाँ में योग को जोड़ने यह सोचता है कि यह एक अंकीय प्रकार क्षेत्र है और इस तरह

(यानी, यह "टिक" प्रत्येक समयावधि क्षेत्र में की संख्या संक्षेप है) विशेष रूप से प्रारूपित करने का प्रयास के रूप में यह प्रदर्शित करता है फ़ील्ड गुणों में डेटाटाइम के रूप में समेकित मूल्य और यह शायद सही ढंग से दिखाएगा

1

@ स्विस - मैंने अपना प्रीवी हटा दिया ous पोस्ट क्योंकि मेरे पास मेरे उत्तर के बारे में अनिश्चितता थी लेकिन मैं @pfunk से सहमत हूं।

मुझे अंत में एसएसआरएस का बैक अप मिला और उसके पास एक खेल था और यह निश्चित रूप से लगता है कि आपकी बड़ी संख्या टिक की संख्या है, इसलिए ऐसा लगता है कि परिणाम का थोड़ा स्वरूपण आपके लिए काम करेगा।

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

नीचे दिया गया कोड डेटटाइम फ़ील्ड को दो बार में परिवर्तित करता है, परिणाम का सारांश देता है और फिर इसे डेटटाइम और प्रारूप में परिवर्तित करता है यह hh के लिए: mm: ss

=Date.FromOADate(Sum(Fields!TheTime.Value.ToOADate())).ToString("hh:mm:ss") 
+0

मुझे उन तारीखों को कहां मिल सकता है। फ्रॉमऑडेट और टूओडेट() फ़ंक्शंस? कोड काम नहीं करता है। दृश्य स्टूडियो में एक लाल रेखांकन बनाता है, हालांकि मैं संकलित कर सकता हूं।लेकिन जब मैं इसे चलाता हूं, तो मुझे बस उन क्षेत्रों में # त्रुटि मिलती है। – Svish

+0

FromOADate और ToOADate डेटटाइम क्लास के तरीके टाइमस्पेन क्लास नहीं हैं और मुझे लगता है कि आपका टाइम टाइम था। आपके समाधान पर अच्छी खबर - जब आप एक साधारण उत्तर देते हैं तो आप इसे सिर्फ प्यार नहीं करते :) :) –

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