سؤال

أنا باستخدام إكس 6 مع فيريداك.لدي فدممتابل مع إيتممالس كحقل فتفلوت.وأود أن استخدام وظيفة المجاميع من مجموع (إيتممالس) ولكن أود فقط إيتممالس مع قيمة >0 ليتم إضافتها في.إيتمفالز هو فتفلوت ولكن بقدر ما أستطيع أن أجد ، لا أستطيع تعيين قيمة فارغة إلى تعويم.لذلك أنا باستخدام قيمة -1 للإشارة (بالنسبة لي) قيمة فارغة.حاولت سوم(إيتمفالز) > 0 لكنه يعود فقط صحيح.يمكن لأي شخص أن يشير لي في الاتجاه الصحيح?شكرا.

هل كانت مفيدة؟

المحلول

يمكنك استخدام extended expression syntax والكتابة لجهودكم SUM حالة التعبير مع IIF وإرجاع قيمة الحقل عندما يكون أكبر من 0 ، و 0 عندما يكون أقل أو يساوي 0.مثل هذه الطريقة:

Aggregate.Expression := 'SUM(IIF(ItemVals > 0, ItemVals, 0))';

ولكن العودة إلى جذر سؤالك.لقد قلت ، أنه لا يمكنك العثور على طريقة لتعيين قيمة فارغة لحقل ftFloat نوع البيانات.تخميني هو أنك تقوم بتعيين القيم بهذه الطريقة:

FDMemTable.FieldByName('ItemVals').AsFloat := 1.23;

نعم ، بهذه الطريقة لا يمكنك حقا تعيين قيمة فارغة ، ولكن يمكنك القيام بذلك من خلال Value خاصية الحقل ، على سبيل المثال.:

FDMemTable.FieldByName('ItemVals').Value := NULL;

تعيين قيمة فارغة بدلا من -1 سوف تصف أفضل بكثير نية لا قيمة ، وتبسيط التعبير الكلي الخاص بك مرة أخرى إلى SUM(ItemVals).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top