طريقة حساب المجاميع لفاتورة ما
#1
----------------------------------------------------------------
هذه الطريقة  لا تصلح مع  ADO لل  FireDAC فقط
---------------------------------------------------------------
طريقة حساب المجاميع لفاتورة ما
الدلفي مسهلة الأمر لأبعد الحدود ولا يلزم لا كويري خاص ولا فانكشن ولا شيء
أولا كيفية حساب المجموع والذي يتم لكل سجل على حدا
المجموع = الكمية * سعر الوحدة
Total = Qty * UnitPrice
ويتم حسابه باستخدام
Calculated Fields
لنفرض ان اسم مكون الكويري لديك هو
qryItems
نضغط باليمين عليه ونختار عرض كافة الحقول
Fields Editor
Add all fields
ثم نضغط باليمين ونختار اضافة حقل جديد
New field
تظهر نافدة نكتب فيها اي اسم للحقل وليكن
Total
ثم نختار النوع وهو اختياري
Currency
ثم نختار خيار
Calculated
نضغط اوكي
ثم نذهب الى حدث
OnCalcFields
ونكتب فيه
qryItemsTotal.Value := qryItemsQty.Value * qryItemsUnitPrice.Value;


لاحظ اسماء الحقول ملاصقة لاسم الكويري
ثم نأتي لمكون
DBGrid
مثلا ونختار حقل جديد ونربطه بحقلنا الذي انشأنه
Total
**************************************
ثانيا كيفية حساب المجموع الكلي (الخط الأزرق)
والذي يتم حسابه على كل السجلات
المجموع الكلي = مجموع(الكمية * سعر الوحدة)
GrandTotal = Sum(Qty*UnitPrice)
ويتم حسابه باستخدام
Aggregate Fields
نضغط باليمين علي نفس مكون الكويري ونختار اضافة حقل جديد
New field
تظهر نافدة نكتب فيها اي اسم للحقل وليكن
GrandTotal
ثم نختار خيار
Aggregate
نضغط اوكي
ثم نذهب لخواص هذا الحقل
وبشكل اختياري يمكن اختيار خاصية
Currency
المهم نختار الخاصية
Expression
ونكتب فيه المعادلة المطلوبة مثلا
Sum(Qty*UnitPrice)
ثم نفعل خاصية
Active
ثم نفعل خاصية
Visible
ثم نختار الكويري ونذهب ونفعل خاصية
AggregateActive
فقط
نضع مكون مثلا
DBEdit
ونربطه مع الحقل الجديد
GrandTotal
*************************
إن شاء الله يكون الشرح مفهوم
[-] كل من 4 users say قال شكرا ل bouh25 على المشاركة المفيدة
  • B.M.AbdelAziZ, ghostdz, Lam.Abdeldjalil, حسن لطفى
الرد
#2
نعم استاذ
و هناك مبرمجين يلجأون لتعقيدات برمجية للحصول على نفس النتائج بدلفى
و باستهلاك موارد و طاقة النظام
من الضرورى دراسة دوال قواعد البيانات
ففيها من الخواص الكثير و الكثير
واصل ابداعاتك
الرد
#3
السلام عليكم



بطريقة أخرى ( الـsql )


كود :
select Qty , UnitPrice ,  Qty * UnitPrice as Total 
from sales_items
where ...



المجموع الكلي في حال استعمال فايربيرد يمكن إنشاء حقل حسابي  COMPUTED BY



كود :
TOTALS
NUMERIC(18,2)
COMPUTED BY (

(select coalesce(tot,0.00) from
(
  select  sum(Qty * UnitPrice) tot
  from sales_items
  where sales_items.sales_id=sales.sales_id
)
)

)
[-] كل من 1 user says قال شكرا ل Lam.Abdeldjalil على المشاركة المفيدة
  • أبو معاذ
الرد


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


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف