مجموع حقل بالجدول
#1
Photo 
السلام عليكم
نرجو من الاخوة افادتي في اشكال بتطبيقي حيث قمت بعمل فلترة بين تاريخين و نجح الامر و لكن الاشكال أردت مجموع حقل معين بالجدول و اظهاره
https://e.top4top.io/p_3408ygcr71.png
الرد
#2
(01-05-2025, 06:18 PM)hamam2025 كتب : السلام عليكم
نرجو من الاخوة افادتي في اشكال بتطبيقي حيث قمت بعمل فلترة بين تاريخين و نجح الامر و لكن الاشكال أردت مجموع حقل معين بالجدول و اظهاره
https://e.top4top.io/p_3408ygcr71.png


إقتباس : Query.SQL.Text := 'SELECT SUM(m2) AS Total FROM YourTableName ' +
'WHERE date_s BETWEEN :StartDate AND :EndDate';

// تحويل النص من Edit إلى تاريخ
Query.Parameters.ParamByName('StartDate').Value := StrToDate(Edit1.Text);
Query.Parameters.ParamByName('EndDate').Value := StrToDate(Edit2.Text);

Query.Open;

if not Query.FieldByName('Total').IsNull then
TotalAmount := Query.FieldByName('Total').AsFloat
else
TotalAmount := 0;
‏اللّهمّ فرّج أُموراً ضَاقت بها صُدورنا وعجزت بها حيلتنا وقلّ بها صَبرنا الّلهمّ أَسعِد قلوبنا بما أنتَ أعْلَمُ بِهِ مِنّا
[-] كل من 1 user says قال شكرا ل larbiparadox على المشاركة المفيدة
  • hamam2025
الرد
#3
وعليكم السلام و رحمة الله وبركاته.
إذا كنت تستعمل sql ، فالحل مثلما قال به أخونا العربي،
أما إذا كنت لا تستعمل sql، فاستعمل حلقة while

PHP كود :
Sum := 0;

While 
not adotable.eof do
Begin
Sum 
:=sum +adotabletotal.float;
Adotable.next;
End; 
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
[-] كل من 1 user says قال شكرا ل أبو معاذ على المشاركة المفيدة
  • hamam2025
الرد
#4
(02-05-2025, 09:37 AM)larbiparadox كتب :
(01-05-2025, 06:18 PM)hamam2025 كتب : السلام عليكم
نرجو من الاخوة افادتي في اشكال بتطبيقي حيث قمت بعمل فلترة بين تاريخين و نجح الامر و لكن الاشكال أردت مجموع حقل معين بالجدول و اظهاره
https://e.top4top.io/p_3408ygcr71.png


إقتباس :  Query.SQL.Text := 'SELECT SUM(m2) AS Total FROM YourTableName ' +
                      'WHERE date_s BETWEEN :StartDate AND :EndDate';
   
    // تحويل النص من Edit إلى تاريخ
    Query.Parameters.ParamByName('StartDate').Value := StrToDate(Edit1.Text);
    Query.Parameters.ParamByName('EndDate').Value := StrToDate(Edit2.Text);
   
    Query.Open;
   
    if not Query.FieldByName('Total').IsNull then
      TotalAmount := Query.FieldByName('Total').AsFloat
    else
      TotalAmount := 0;

شكرا جزيلا اخوتي الكرام الكود 100/100
[-] كل من 1 user says قال شكرا ل hamam2025 على المشاركة المفيدة
  • أبو معاذ
الرد
#5
وعليكم السلام ورحمة الله

مررت من هنا واردت ترك تعقيب بسيط
اذا كانت البيانات ليست كثيرة فكل الحلول تؤدي الى افغانستان
ولكن ..!
استعمال SQL هو اتصال بقاعدة البيانات وعملية جديدة غير مبررة لان البيانات عندك اصلا ووقتها استخدام Do While تكون انسب
فقط مع وضع بالاعتبار حركة مؤشر موقع السجل يجب Table.DisableControl وبعد الانتهاء EnabledControl
وايضا يوجد حل ثالث وهو الذي تقدمه اغلب المكونات مثل FireDac وهو استخدام Aggregate Fields
إذا رأيت منتجاً مجانياً فأعلم بأنك أنت السّلعة
الرد
#6
(02-05-2025, 06:23 PM)الفجر الابيض كتب : وعليكم السلام ورحمة الله

مررت من هنا واردت ترك تعقيب بسيط
اذا كانت البيانات ليست كثيرة فكل الحلول تؤدي الى افغانستان
ولكن ..!
استعمال SQL هو اتصال بقاعدة البيانات وعملية جديدة غير مبررة لان البيانات عندك اصلا ووقتها استخدام Do While تكون انسب
فقط مع وضع بالاعتبار حركة مؤشر موقع السجل يجب Table.DisableControl وبعد الانتهاء EnabledControl
وايضا يوجد حل ثالث وهو الذي تقدمه اغلب المكونات مثل FireDac وهو استخدام Aggregate Fields

السلام عليكم
بارك الله في مروركم الجميل و لكن اخي لدي اشكال بذات السياق في حالة جمع نفس الحقل و لكن الفلترة بحقلين مختلفين ليس بتاريخ فقط و لكن بالتاريخ و الصندوق جزاكم الله كل خير
الرد
#7
الفلترة بحقلين

كود :
Table.filtted:=false Table.filtter:='filedname1=4444 and filedname2=5555' Table.filtted:=true

تجمع بين الحقول وتفصل بينهم بالعبارة and كما تفعل مع جمل Sql
إذا رأيت منتجاً مجانياً فأعلم بأنك أنت السّلعة
الرد


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


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