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

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6)
+--- قسم : دلفي و التعامل مع مولدات التقارير (https://delphi4arab.net/forum/forumdisplay.php?fid=39)
+--- الموضوع : عرض المجاميع و المجاميع الجزية في كل صفحة باستخدام fastReport (/showthread.php?tid=10092)



عرض المجاميع و المجاميع الجزية في كل صفحة باستخدام fastReport - أبو معاذ - 11-03-2019

السلام عليكم ورحمة الله وبركاته ،
في الحقيقة كل مرة تراودني الفكرة في كتابة هذا موضوع ، وغالبا نتيجة الكسل ، أقول في نفسي لا حاجة للإخوة لهذا الموضوع فهو بسيط .
لكن أحد الإخوة كان عنده مشكلة في طباعة المجاميع و المجاميع الجزئية في كل صفحة باستعمال مولد التقارير FastReport ،
فعزمت أن أفرده في موضوع حتى يستفيد منه الجميع ،
وأرجو من الله التيسير و القبول .

أولا ما المقصود بالمجاميع في كل صفحة ؟
لنفرض أن لدينا جدول  اسمه  MyTable فيه الحقول التالية :
الرقم و الكمية  مثل ما هو موضح في الصورة التالية:


[صورة: 648709423.png]

نريد طباعة جميع المعطيات الموجودة في الجدول على الصيغة التالية:

[صورة: 532460138.png]


في المجموع الجزئي هو عبارة عن  مجموع الكميات المطبوعة في الصفحة + المجموع السابق المطبوع في الصفحات السابقة.

كيف نستطيع فعل ذلك ؟
أولا نبدأ بالمجموع الجزئي في كل صفحة :

أول شيء نقوم به هو الذهاب إلى إعدادات الصفحة و نقوم باختيار الخاصية      double pass أو   Double passe

[صورة: 710120002.png]

باختيار هذه الخاصية تعني أن توليد التقرير سيتم في خطوتين.

إذن المجموع الجزئي  نسميه مثلا subTotal

قبل طباعة كل كمية  quantity  نقوم بجمعها مع الكميات السابقة

 
إذن
subTotal = subTotal + quantity

ننتقل إلى كتابة الكود في المولد التقارير ،

نختر  MasterData1  و في الحدث OnBeforePrint   نقوم بكتابة الكود التالي :


PHP كود :
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  
if engine.finalpass then
  begin
     SubTotal 
:= SubTotal + <frxDBDataset1."Quantity"> ;

  end;
  
end
; 


و لا ننس تعريف المتغير subTotal كمتغير كلي ،
فيصبح الكود السابق كالتالي :

PHP كود :
var SubTotal : Currency ;  

procedure MasterData1OnBeforePrint
(Sender: TfrxComponent);
begin
  
if engine.finalpass then
  begin
     SubTotal 
:= SubTotal + <frxDBDataset1."Quantity"> ;

  end;
  
end
;  

begin

end
. 


الآن لطباعته على الصفحة   :

في الحدث   OnAfterPrint   الخاص ب frxDBDataset1Quantity  نقوم بكتابة الكود التالي :



PHP كود :
procedure frxDBDataset1QuantityOnAfterPrint(Sender: TfrxComponent);
begin
   
if engine.finalpass then
   begin
     T1
.text := formatfloat('#,###0.00',SubTotal);

   end;    
end
; 

ملاحظة فقط :
T1  هو اسم الميمو Memo الخاص بالمجموع الجزئي.

بقي الآن كيفية طباعة المجموع السابق في كل صفحة ،
و هذا المجموع يمثل مجموع الكميات المطبوعة في كل الصفحات السابقة.

لفعل ذلك ، نقوم بجلب  memo1  و memo2  ونضعهما في الشريط PageHeader1
نغير اسم memo2  إلى T2 .
و في الحدث OnAfterPrint  الخاص ب T1  (هو memo خاص بالمجموع الجزئي)
نقوم بكتابة الكود التالي :



PHP كود :
procedure PageHeader1OnAfterPrint(Sender: TfrxComponent);
begin
  T2
.text := T1.text ;  
end
; 

و بهذا تصبح الصفحة كالآتي :


[صورة: 561849257.png]

و بهذا تم الموضوع .
أرجو أن أكون قد وفقت لهذا الشرح البسيط ،
و أرجو المعذرة على كثرة الثريرة. Blush 

في المرفقات البرنامج + قاعدة بيانات .

بيقي فقط كيفية إخفاء المجموع السابق في أول صفحة .
هل أكمله ؟
و السلام عليكم ورحمة الله وبركاته.


RE: عرض المجاميع و المجاميع الجزية في كل صفحة باستخدام fastReport - محمد عبد العزيز - 12-03-2019


وعليكم السلام ورحمة الله
بارك الله فيك اخي ابو معاذ
شرح مبسط، نص، صور ومثال مرفق، رائع.



RE: عرض المجاميع و المجاميع الجزية في كل صفحة باستخدام fastReport - bassem_43 - 13-03-2019

و عليكم السلام ورحمة الله و بركاته
بارك الله فيك اخي ابو معاذ
اكمله طبعا نحن في المتابعة


RE: عرض المجاميع و المجاميع الجزية في كل صفحة باستخدام fastReport - sishrm - 20-06-2020

بارك الله فيك اخي ابو معاذ
اكمله طبعا نحن في المتابعة جزاك الله خير


RE: عرض المجاميع و المجاميع الجزية في كل صفحة باستخدام fastReport - remili55 - 10-10-2020

شكرا جزيلا اخي


RE: عرض المجاميع و المجاميع الجزية في كل صفحة باستخدام fastReport - addidou230 - 30-10-2020

ماشاء الله شرح رائع .... اكمل صديقي بقية الموضوع


RE: عرض المجاميع و المجاميع الجزية في كل صفحة باستخدام fastReport - S.FATEH - 30-10-2020

السلام عليكم

بارك الله فيك اخ ابو معاذ

الحقيقة لم اركز كثيرا في الشرح لاسباب ...فقط ارجو التوضيح من الناحية النظرية...

المجموع الجزئي:
مجموع الكميات الموجودة في الصفحة فقط
مجموع الكميات الموجودة في الصفحة + مجموع الكميات الموجودة في جميع الصفحات السابقة {في هذه الحالة يصبح المجموع الكلي}
مجموع الكميات الموجودة في الصفحة + مجموع الكميات الموجودة في الصفحة السابقة {الصفحة الحالية تحتوي على 3 و الصفحة السابقة تحتوي على 2 و التي قبلهم 1 الناتج 5}
المجموع السابق
حسب فهمي هو المجموع الجزئي للصفحة السابقة

و السلام عليكم


RE: عرض المجاميع و المجاميع الجزية في كل صفحة باستخدام fastReport - ELARAPY - 29-11-2020

وعليكم السلام ورحمة الله وبركاته

بارك الله فيك اخي الفاضل .

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


RE: عرض المجاميع و المجاميع الجزية في كل صفحة باستخدام fastReport - khalefBM - 29-05-2024

من فصلك الاخ معاذ اكمل كيفية إخفاء المجموع السابق في أول صفحة من فضلك و لك جزيل الشكر.