delphi4arab منتديات دلفي للعرب
كيف اقوم بجمع قيم حقل واحد - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف اقوم بجمع قيم حقل واحد (/showthread.php?tid=699)

الصفحات: 1 2


كيف اقوم بجمع قيم حقل واحد - kachwahed - 04-11-2009

@tempuser
إقتباس : لوكان لديك مليون سجل
نتحدث هنا عن مجموع تفاصيل سجل معين (مثل مبلغ إجمالي الفاتورة)
إقتباس :عموما أفضل الحلول
وجدت مؤخرا (برأيي) أفضل طريقة لذلك في حالة استخدام ADO.
بارسال استعلام عن مجموع حقل من خلال TADOConnection يمكن استقبال الناتج على شكل _Recordset واقتناص أول سجل الذي يمثل المجموع.
أعتقد أن أحسن حدث لذلك هو OnDataChange للمكون TDataSource التابع لجدول الحقل الذي نريد الاستعلام عن مجموعه.
الطريقة لعرض المجموع في TLabel كما يلي:
كود :
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField); begin lblTotal.Caption := ADOConnection1.Execute('SELECT SUM(FieldName) FROM TableName').Fields[0].Value; end;
هذا إلى حين نجد حل DefaultExpression مع ADO أو استعمال TAgregate.



كيف اقوم بجمع قيم حقل واحد - kachwahed - 11-11-2009

DefaultExpression لا تعمل مع ADO الحل استخدام شيء مثل
كود :
procedure Flds_SetToDefExpr(const AFlds: array of TField); var i : Integer; begin for i := Low(AFlds) to High(AFlds) do with AFlds[i] do begin DataSet.Edit; if ( DefaultExpression='' ) then Clear else if HasOuterQuotes(DefaultExpression) then Value := RemoveOuterQuotes( DefaultExpression,True,False ) else Value := StrToInt(DefaultExpression); //raises if not an integer! end; end;
متوفر في مكون مجاني لـ Vassil Nazarov:
http://www.delphi4arab.net/forum/showthread.php?p=11509#post11509
ملاحظة: يمكن إرسال وتنفيذ استعلام مع TDatabase لكنه لا يعيد نتائج(_Recordset).



كيف اقوم بجمع قيم حقل واحد - sami2008 - 13-09-2013

السيد Nabilkeb فعلا الكود مهم واستعملته في حينه ويعطي نتيجة فعلية وصواب 100% مشكور أخي والله مشكور