2012-05-08 29 views
6

में एक गणना किए गए फ़ील्ड को एकत्रित करना क्या गणना की गई फ़ील्ड पर एक समग्र फ़ील्ड जोड़ना संभव है?TClientDataset

  • आईडी (autoincrement)
  • नाम (स्ट्रिंग)
  • मूल्य (नाव)
  • मात्रा (पूर्णांक)
  • कुल (पूर्णांक:

    मान लीजिए वहाँ निम्नलिखित क्षेत्रों के साथ एक सीडी है) - गणना की गई फ़ील्ड - मूल्य * मात्रा

और मैं एक जोड़ना चाहता हूं कुल कॉलम की राशि प्राप्त करने के लिए agregate। क्या यह संभव है?

उत्तर

5

हां, यह संभव है यदि आप गणना की गई फ़ील्ड को InternalCalc फ़ील्ड में बदल दें। गणना अभी भी OnCalcFields ईवेंट में की जाती है, लेकिन जब आप उस फ़ील्ड की गणना करते हैं तो आपको InternalCalc के लिए राज्य की जांच करनी होगी।

+0

['कुल फ़ील्ड'] (http://edn.embarcadero.com/article/29272) के बारे में क्या? वे इस उद्देश्य के लिए बेहतर प्रतीत होते हैं। – TLama

+3

@TLama, निश्चित रूप से आप एसयूएम (मूल्य * मात्रा) के साथ एक समग्र क्षेत्र बना सकते हैं, लेकिन सवाल यह था कि एक गणना क्षेत्र पर कुल कैसे बनाया जाए। यह केवल तभी काम करेगा जब गणना किए गए फ़ील्ड में FieldKind = fkInternalCalc है। –

+3

यह मुख्य रूप से मूल्यांकन का अनुक्रम है: InternalCalc फ़ील्ड को समेकित और सॉर्ट करने से पहले कैलक्वाइटेड किया जाता है, इसलिए इन्हें समेकित और इंडेक्स के रूप में उपयोग किया जा सकता है। इसके बाद परिकलित क्षेत्रों का मूल्यांकन किया जाता है। InternalCalc फ़ील्ड केवल TClientDataSets में समर्थित हैं। –