2009-11-02 9 views
5

Crystal Reports का उपयोग करके मैं शीर्षलेख में डेटाबेस फ़ील्ड के रनिंग कुल को प्रदर्शित करने का प्रयास कर रहा हूं जहां सभी लेबल हैं।क्रिस्टल रिपोर्ट्स: ग्लोबल वैरिएबल रनिंग हेडर में प्रदर्शित नहीं हो रहा है

मैं के साथ एक सूत्र के क्षेत्र में चल रहे कुल (RTversion) डालकर कर करने का प्रयास किया है:

Shared stringvar CurrentVers; 
CurrentVers := {#CurrentVers}; 

और फिर पेज हैडर भाग में मैं निम्नलिखित है:

Shared stringvar CurrentVers; 
EvaluateAFter({#currentVers}); 
CurrentVers; 

{#CurrentVers} के साथ पहली सबसे बड़ी संख्या चल रहा है।

क्या यह गलत है?

अपडेट: लक्ष्य यह दिखाने के लिए कि वर्तमान कविता तुलना के लिए है, लेबल के पास शीर्षलेख में नवीनतम संस्करण प्रदर्शित करना है।

+2

मेरा अनुमान है कि आप सेट होने से पहले एक मूल्य प्रदर्शित करने का प्रयास कर रहे हैं। –

+0

मूल्यांकन नहीं है() फ़ंक्शन इसे तब तक प्रतीक्षा करने के लिए कहता है जब तक चलने वाले कुल #CurrentVers समाप्त नहीं हो जाते? – phill

+0

+1 अच्छा प्रश्न। हालांकि मुझे पता है कि यह एक आम सवाल है, मैं इसे यहां SO पर नहीं ढूंढ पाया था, इसलिए यह लोगों के लिए एक अच्छा संदर्भ के रूप में कार्य करेगा। – Dusty

उत्तर

4

रनिंग-कुल फ़ील्ड्स, मेरे अनुभव में, केवल पाद लेखों में काम करते हैं।

आपको मैन्युअल रनिंग कुल बनाने की आवश्यकता होगी।

विवरण अनुभाग में एक सूत्र फ़ील्ड जोड़ें जो वैश्विक चर को पॉप्युलेट करता है जिसे आप कैप्चर करने का प्रयास कर रहे हैं। कुछ ऐसा:

//use WhileReadingRecords if the values can be gathered as the report pulls in values from the database. Otherwise, use WhilePrintingRecords. 
WhileReadingRecords; 
Global Stringvar CurrentVers; 
//logic here to capture what you want 
CurrentVers:=... 

शीर्षलेख अनुभाग में एक और सूत्र फ़ील्ड जोड़ें। यह करने के लिए इन दो पंक्तियों में जोड़ें:

WhilePrintingRecords; 
Global Stringvar CurrentVers; 
+0

+1 मुझे विश्वास है कि यह काम करना चाहिए। – Dusty

+0

आप मौजूदा संस्करण के अधिकतम मूल्य के लिए स्क्रीन पर मैनुअल रनिंग कुल कैसे करते हैं? क्या आप विवरण अनुभाग में अधिकतम() फ़ंक्शन का उपयोग करते हैं? मैंने बहुत कोशिश की और उसने मुझे एक त्रुटि दी और कहा कि यह जबकि ReadReadingRecords() के साथ मूल्यांकन नहीं कर सकता है। – phill

+0

मैंने whileReadingRecords को बाहर निकाला, वर्तमान को सेट किया: = ... और हेडर में Evaluatefter() फ़ंक्शन का उपयोग किया और यह काम किया। – phill

0

यदि {#CurrentVers} नियमित रूप से चलने वाला कुल क्षेत्र है, तो आप इसे अतिरिक्त सूत्र का सहारा लेने के बजाय सीधे पृष्ठ शीर्षलेख में रखने में सक्षम होना चाहिए। मुझे यहां फॉर्मूला फ़ील्ड की आवश्यकता नहीं दिखाई देती है, जब तक कि {#CurrentVers} की रचना में कुछ असामान्य न हो और कुल मिलाकर 'सबसे बड़ी संख्या' चलने वाले कुल को सामान्य से कुछ भी आवश्यकता न हो।

+0

हो सकता है कि मैं इस पर गलत हूं, लेकिन मुझे नहीं लगता कि हेडर में चल रहे कुल को केवल इस पर काम करेगा कि रिपोर्ट कैसे ऊपर से नीचे पढ़ती है। यह मेरे सिर के ऊपर से है इसलिए मैं गलत हो सकता था। – Dusty

+0

वे प्रदर्शित करते हैं, लेकिन जाहिर है कि वे केवल उस बिंदु तक संसाधित रिकॉर्ड्स को प्रतिबिंबित करते हैं। लेकिन मूल प्रश्न यह स्पष्ट करने से बहुत दूर है कि वे क्या हासिल करने की कोशिश कर रहे हैं। – MartW

1

मैं इसे समझ से बाहर ..

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

नई धारा (एक ही समूह-मैं यहाँ subreport रखा; दबाने नहीं है) नई धारा (एक ही समूह - मैं यहाँ साझा रखा चर मूल्य; दबाने नहीं है) मूल धारा (एक ही समूह कि एक शीर्ष लेख मैं एक चल कुल के आधार पर दबा दिया की जरूरत है)

4

इस

formula = Count ({Field to count},{GroupFieldName}) 

की तरह एक सूत्र बना सकते हैं और समूह हैडर अनुभाग में यह जगह है। बलों सूत्र का मूल्यांकन नहीं किया जा करने के लिए

WhilePrintingRecords; 
// Enter logic here e.g. 
// maximum({mytable.myfield}); 

WhilePrintingRecords; जब तक सभी रिकॉर्ड डेटाबेस से पढ़ने की है, और इसलिए सूत्र क्षेत्र सही परिणाम प्रदर्शित करेगा:

0

आप इस बस एक सूत्र क्षेत्र के साथ हल कर सकते हैं यहां तक ​​कि यदि एक शीर्षलेख में रखा गया है।

0

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

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