delphi4arab منتديات دلفي للعرب
الفاست ريبورت لاي يعمل برمجيا؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : الفاست ريبورت لاي يعمل برمجيا؟ (/showthread.php?tid=12404)



الفاست ريبورت لاي يعمل برمجيا؟ - ALG2009 - 03-10-2023

السلام عليكم

الفاست ريبورت يعمل عادي ولكن عندما حاولت إنشاؤه برمجيا لا يشتغل ولا يظهر مع العلم أنه يتم إنشاؤه في المجلد المحدد بإسم  Myreport.fr3  Huh

كود :
uses frxclass,frxDBset; procedure TForm4.Button4Click(Sender: TObject); var rep:TfrxReport; page:TfrxReportPage; Band:TfrxBand; Mem:TfrxMemoView; DBset:TfrxDBDataset; const repName='C:\Users\HAT\Desktop\New folder\New folder\Myreport.fr3'; begin rep:=TfrxReport.Create(self); rep.SaveToFile(repName); page:= TfrxReportPage.Create(rep); with page do begin createuniquename; setdefaults; end; band:=TfrxReportTitle.Create(page); with Band do begin   Height:=150;   frame.Typ:=[ftRight,ftLeft,ftTop,ftBottom];   Frame.Width:=1;   Frame.Style:=fsSolid;   Frame.Color:=clGreen; end;


مشكلة مع العلم أني أستخدم دلفي 10.3


RE: الفاست ريبورت لاي يعمل برمجيا؟ - ALG2009 - 03-10-2023

المثال

هل ممكن أحد يجرب البرنامج ويخبرني هل إشتغل عنده أما لا لأعرف أن المشكل من الدلفي أو من ماذا

الضغط على زر الطباعة هل يظهر عندكم الفاست ريبورت أما لا


RE: الفاست ريبورت لاي يعمل برمجيا؟ - Delphi4Us - 04-10-2023

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


بدون ان نجرب الكود هذا لازال ينقصه الكثير على سبيل المثال
لا يوجد ShowReport المسؤول عن اظهار التقرير

وايضا انت انشأت ReportTitle ولكن لم تضيفه للتقرير والذي هو هنا عندك بأسم rep

هناك طريقتان وعليك ان تتبع احدهما
اولى اما ان تصنع كامل التقرير بالكود ولا تنسى ان تضيف كل شئ في النهاية الى التقرير كما تضيف اي كنترول الى النموذج في دلفي عن طريق

كود :
Form.Controls.add(yourCountrol)

والطريقة الثانية ان تصمم التقرير يديويا يعني مثل العنوان والجسم الذي سيتم وضع الحقول فيه ونهاية التقرير حيث التوقيع وما الى ذلك
ويتبقى فقط ان تضيف الحقول التي تريد ويمكنك الوصول الى اي شئ فيه كالتالي:

كود :
MasterData := frxReport1.FindComponent('MasterData1') as TfrxMasterData;

حيث ان  MasterData هي :

كود :
MasterData: TfrxMasterData;

اما الحقول فتعريفها

كود :
var   Memo: TfrxMemoView;

وبعدها انشاءها

كود :
Memo := TfrxMemoView.Create(MasterData);

وبعدها اضافة الحقول للمكان الذي تريد

كود :
Memo.Parent := MasterData;

وايضا تحديد مكانه

كود :
Memo.SetBounds(0, 0, 0, 21);


وبالنهاية اظهار التقرير Rep.ShowReport


RE: الفاست ريبورت لاي يعمل برمجيا؟ - ALG2009 - 04-10-2023

الله يرضى عليك
بالفعل لم أقم بعرض التقرير بـ Rep.ShowReport
مع العلم أني أتابع فيديو للأستاذ أسامة غزال فلم أنتبه لهذا الأمر فتوقفت على الأمر
جزاكم الله خير


RE: الفاست ريبورت لاي يعمل برمجيا؟ - Delphi4Us - 04-10-2023

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


RE: الفاست ريبورت لاي يعمل برمجيا؟ - ALG2009 - 04-10-2023

(04-10-2023, 06:17 PM)Delphi4Us كتب : وذلك بان تصمم التقرير مرئيا وتضع فيه كل ما تريد من الامور الاساسية ويتبقى فقط ترتيب الحقول داخله


ولكن إذا أردت السماح للمستخدم تغيير ترتيب الأعمد وقت التشغيل ليتم طباعتها حسب رغبته كيف يتم ذلك؟هنا المشكل وهنا يجب تصميمه برمجيا أليس كذلك؟


RE: الفاست ريبورت لاي يعمل برمجيا؟ - Delphi4Us - 05-10-2023

أجل اذا كان التقرير معقد وفيه احتمالات كثيرة لايمكن تصميمها مرئيا يمكن اللجؤ الى الكود لمن لا يريد ان يصمم كل شئ بالكود
اما الاعمدة فلم افهم لانها تشير الى عدة احتمالات ولو كانت تقسيم التقرير الى اعمدة فلست بحاجة الى استخدام الكود يمكن ببساطة اسناد قيمة الاعمدة في التقرير هل هم 2 او 3 او 4 وهكذا من الخاصية الخاصة للـ MasterData او اي كانت الحاوية
يعني تقريبا لا يوجد مالا يمكن الوصول اليه وتغيير خصائصه بالتقرير .
فانت ستصمم عنوان التقرير بالشعار والتاريخ وكل ما يحويه بالجزء العلوي
وسوف تنشئ حاوية البيانات MasterData وستتركها فارغة طبعا وتربطها بمصدر البيانات
وسوف تنشئ ترويسة التقرير حيث التوقيع والصور ومن انشاء التقرير وما الى ذلك
وتحدد الهوامش وحجم الورق وهكذا امور
فقط ان اعداد هذه الامور بالكود سيأخذ وقت لاول مرة مع انني لا ارى مشكلة في تصميم كل شئ بالكود فقط مجرد خيار تم طرحه فقط