تقرير بالمبيعات يومي اسبوعي شهري ربع سنوي
#1
السلام عليكم ورحمة الله وبركاته
السادة الكرام
لدي قاعدة بيانات absolute  وجدول فيه مبلغ البيع وتاريخ البيع

للحصول على تقرير مجموع المبيعات اليومية بالكود التالي
كود :
With ABSQuery1 Do     begin     case RadioGroup1.ItemIndex of     // daily     0: begin     Close;     SQL.Clear;     SQL.Add('select date_sale as date_day, sum(total_sale) as total_day from table1 where Date_sale >= :PdateFirst and Date_sale <= :PdateEnd group by date_sale order by date_sale');     Params.ParamByName('PdateFirst').AsDate := DateTimePicker1.Date;     Params.ParamByName('PdateEnd').AsDate := DateTimePicker2.Date;     Open;      end;

للحصول على تقرير مجموع المبيعات الشهرية بالكود التالي
كود :
//monthly     1: begin     Close;     SQL.Clear;     SQL.Add('select extract(month from Date_sale) as date_month, sum(total_sale) as total_month from table1 where Date_sale >= :PdateFirst and Date_sale <= :PdateEnd group by date_month order by date_month');     Params.ParamByName('PdateFirst').AsDate := DateTimePicker1.Date;     Params.ParamByName('PdateEnd').AsDate := DateTimePicker2.Date;     Open;       end;


الكود تمام
هل يمكن استخراج النتيجة بافضل من هذا الكود؟

كيفية استخراج التقرير الاسبوعي باعتبار يوم السبت هو اول الاسبوع ؟ وليس يوم الاثنين الافتراضي

بحثت ووجدت بعض الدوال التي تستخرج رقم الاسبوع مثل WEEKNUM لكنها خاصة للاكسس والاكسل
فاذا عرفنا رقم اسبوع لكل يوم وعلى اعتبار يوم السبت اول الاسبوع . سهل الامر ان شاء الله تعالى

جزاكم الله كل خير


الملفات المرفقة
.rar   يومي اسبوعي شهري ربع سنوي.rar (الحجم : 6.2 ك ب / التحميلات : 33)
الرد
#2
هل الموضوع غير مفهوم؟؟؟

يوجد دالة لمعرفة رقم الاسبوع من السنة WEEKOfTheYEAR(Now)
لكنها على اعتبار يوم الاثنين هو اول يوم من الاسبوع
فكيف يمكن استخراج رقم الاسبوع باعتبار السبت هو اول الاسبوع؟
الرد
#3
(28-06-2021, 10:26 AM)samnaj00 كتب : يوجد دالة لمعرفة رقم الاسبوع من السنة WEEKOfTheYEAR(Now)
لكنها على اعتبار يوم الاثنين هو اول يوم من الاسبوع
ابحث عن سورس WEEKOfTheYEAR وعدل عليها ليكون اول يوم السبت
[-] كل من 1 user says قال شكرا ل مبرمج حر على المشاركة المفيدة
  • samnaj00
الرد
#4
(01-07-2021, 10:00 AM)مبرمج حر كتب :
(28-06-2021, 10:26 AM)samnaj00 كتب : يوجد دالة لمعرفة رقم الاسبوع من السنة WEEKOfTheYEAR(Now)
لكنها على اعتبار يوم الاثنين هو اول يوم من الاسبوع
ابحث عن سورس WEEKOfTheYEAR وعدل عليها ليكون اول يوم السبت
سورس الدالة لا يوجد فيه ايام الاسبوع
كود :
function WeekOfTheYear(const AValue: TDateTime): Word; var   LYear, LDOW: Word; begin   DecodeDateWeek(AValue, LYear, Result, LDOW); end;

وجدت طريقة وهي اضافة 2+على التاريخ
كود :
ABSTable1num_week.Value := WeekOfTheYear(ABSTable1date_sale.Value + 2);

حيث num_week هو عمود في جدول table1
[-] كل من 1 user says قال شكرا ل samnaj00 على المشاركة المفيدة
  • مبرمج حر
الرد
#5
(01-07-2021, 02:27 PM)samnaj00 كتب : وجدت طريقة وهي اضافة 2+على التاريخ
ماذا عن اخر اسبوع في السنة ؟ 31/12/2021 ؟؟؟ تكون النتيجة غير صحيحة ؟
الرد
#6
(01-07-2021, 02:32 PM)مبرمج حر كتب : ماذا عن اخر اسبوع في السنة ؟ 31/12/2021 ؟؟؟ تكون النتيجة غير صحيحة ؟

لكن النتيجة عندي تمام حيث الاسبوع الاخير رقم52 يبدأ من السبت 25 / 12 / 2021 الى الجمعة 31 / 12 / 2021


الملفات المرفقة
.rar   يومي اسبوعي شهري ربع سنوي.rar (الحجم : 8.01 ك ب / التحميلات : 15)
الرد
#7
السلام عليكم وحمة الله وبركاته
بعد هذا الغياب
تم التعديل بطريقة مختلفة
لكن هناك مشكلة وهي
عند جلب التقرير شهري او اسبوعي او ربع سنوي لا يتم جمع قيمة السجل الاول فقط من عمود total_sale
اما اذا عملت تقرير يومي وبعد ذلك عملت تقرير شهري او اسبوعي او ربع سنوي فإنه يتم جمع السجل الاول
؟


الملفات المرفقة
.rar   ‫يومي اسبوعي شهري ربع سنوي1.rar (الحجم : 9.78 ك ب / التحميلات : 17)
الرد
#8
اين المشكلة؟
الرد


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


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