كيف اقوم بجمع قيم حقل واحد
#8
السلام عليكم
هناك عدة طرق لحساب مجموع قيم حقل معين
لكل طريقة ما يميزها وما يعيبها
1- استعمال مكون TQuery واستغلال الاستعلام SUM
2- استعمال TClientDataSet مع TDataSetProvider (وهذا يوفر العديد الخصائص)
أعددت مثال لعرض استعمال المكون TClientDataSet في المرفقات، بحيث يظهر مجموع الحقل CustNo من أحد الجداول المرفقة مع الدلفي Customers.

إضافة المكونات عادة ما يتطلب تعريف وحدات، وبالتالي زيادة في حجم الملف التنفيذي للبرنامج
إضافة مكون بأكمله فقط من أجل حساب مجموع حقل، أمر غير مرغوب فيه

وبالتالي أُفضّل طريقة الأخ nabilkeb بارك الله فيه وجزاه خيرا، مع ملاحظة وإضافة.
الملاحظة:
من جيد تحديد الموضع الحالي في الجدول قبل عملية الحساب كما في الكود
كود :
RecordPlace := table1.GetBookmark;
لكن لا ننسى أن نعيد المؤشر إلى تلك القيمة عند نهاية العملية باستعمال GotoBookmark.

إضافة:
من الأحسن وضع الجدول في حالة تعطيل العرض عند القيام بالعملية باستعمال الإجراء DisableControls ثم إعادة تفعيل العرض بـ EnableControls.

وبالتالي يصبح الكود النهائي كما يلي:

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
  
Majmou3: Currency;
  
RecordPlace: TBookmark ;
begin
   
(*  Majmoo3 *)
  
RecordPlace := Table1.GetBookmark;
  
Majmou3:=0;
  
Table1.Active:=true;
  
Table1.DisableControls;
  
Table1.First;
  while 
not Table1.Eof Do
  
begin
    Majmou3
:= Majmou3+table1.FieldByName('Qut').AsCurrency;
    
Table1.Next;
  
end;
  
Table1.EnableControls;
  
Table1.GotoBookmark(RecordPlace);
  
Edit1.text:=CurrToStr(Majmou3);
end; 

يمكن اختصار الكود بإدارج with Table1 do ...

فتح الجدول بـ Table1.Active:=true غير ضروري هنا، يمكن العمل على جدول مفتوح مسبقا.

في الأخير أعتقد أن هناك طريقة أسهل وأفضل بإنشاء حقل تجميعي وكتابة الاستعلام SUM في الخاصية DefaultExpression لهذا الحقل، لم أتوصل إليها بعد.


الملفات المرفقة
.rar   TestClienDateSet.rar (الحجم : 1.93 ك ب / التحميلات : 167)
الرد


الردود في هذا الموضوع
كيف اقوم بجمع قيم حقل واحد - بواسطة galag8 - 16-03-2009, 10:11 AM
كيف اقوم بجمع قيم حقل واحد - بواسطة nabilkeb - 16-03-2009, 07:37 PM
كيف اقوم بجمع قيم حقل واحد - بواسطة galag8 - 22-03-2009, 07:12 AM
كيف اقوم بجمع قيم حقل واحد - بواسطة gigi - 23-03-2009, 05:25 AM
كيف اقوم بجمع قيم حقل واحد - بواسطة galag8 - 23-03-2009, 08:33 AM
كيف اقوم بجمع قيم حقل واحد - بواسطة galag8 - 23-03-2009, 09:40 AM
كيف اقوم بجمع قيم حقل واحد - بواسطة tempuser - 25-03-2009, 06:41 AM
كيف اقوم بجمع قيم حقل واحد - بواسطة kachwahed - 25-03-2009, 07:58 AM
كيف اقوم بجمع قيم حقل واحد - بواسطة tempuser - 25-03-2009, 12:20 PM
كيف اقوم بجمع قيم حقل واحد - بواسطة مؤمن فتحى - 15-09-2009, 08:36 PM
كيف اقوم بجمع قيم حقل واحد - بواسطة kachwahed - 04-11-2009, 11:22 AM
كيف اقوم بجمع قيم حقل واحد - بواسطة kachwahed - 11-11-2009, 05:29 PM
كيف اقوم بجمع قيم حقل واحد - بواسطة sami2008 - 13-09-2013, 02:33 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم