الفاست ريبورت لاي يعمل برمجيا؟
#1
السلام عليكم

الفاست ريبورت يعمل عادي ولكن عندما حاولت إنشاؤه برمجيا لا يشتغل ولا يظهر مع العلم أنه يتم إنشاؤه في المجلد المحدد بإسم  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
الرد
#2
المثال

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

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


بدون ان نجرب الكود هذا لازال ينقصه الكثير على سبيل المثال
لا يوجد 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
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة
  • ALG2009
الرد
#4
الله يرضى عليك
بالفعل لم أقم بعرض التقرير بـ Rep.ShowReport
مع العلم أني أتابع فيديو للأستاذ أسامة غزال فلم أنتبه لهذا الأمر فتوقفت على الأمر
جزاكم الله خير
[-] كل من 1 user says قال شكرا ل ALG2009 على المشاركة المفيدة
  • Delphi4Us
الرد
#5
شكرا بقى فقط ملاحظة بسيطة يمكنك الاستغناء عن تصميم الصفحة بالكود من الصفر وحفظها بمسار على لاقرص الصلب كما يظهر في الكود عندك فوق
وذلك بان تصمم التقرير مرئيا وتضع فيه كل ما تريد من الامور الاساسية ويتبقى فقط ترتيب الحقول داخله
وطبعا عند حفظ المشروع سيتم حفظ التصميم بترويسة النموذج للمشروع
وهذا سيوفر عليك الكثير من الجهد في اعداد التقرير بالكود
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة
  • ALG2009
الرد
#6
(04-10-2023, 06:17 PM)Delphi4Us كتب : وذلك بان تصمم التقرير مرئيا وتضع فيه كل ما تريد من الامور الاساسية ويتبقى فقط ترتيب الحقول داخله


ولكن إذا أردت السماح للمستخدم تغيير ترتيب الأعمد وقت التشغيل ليتم طباعتها حسب رغبته كيف يتم ذلك؟هنا المشكل وهنا يجب تصميمه برمجيا أليس كذلك؟
الرد
#7
أجل اذا كان التقرير معقد وفيه احتمالات كثيرة لايمكن تصميمها مرئيا يمكن اللجؤ الى الكود لمن لا يريد ان يصمم كل شئ بالكود
اما الاعمدة فلم افهم لانها تشير الى عدة احتمالات ولو كانت تقسيم التقرير الى اعمدة فلست بحاجة الى استخدام الكود يمكن ببساطة اسناد قيمة الاعمدة في التقرير هل هم 2 او 3 او 4 وهكذا من الخاصية الخاصة للـ MasterData او اي كانت الحاوية
يعني تقريبا لا يوجد مالا يمكن الوصول اليه وتغيير خصائصه بالتقرير .
فانت ستصمم عنوان التقرير بالشعار والتاريخ وكل ما يحويه بالجزء العلوي
وسوف تنشئ حاوية البيانات MasterData وستتركها فارغة طبعا وتربطها بمصدر البيانات
وسوف تنشئ ترويسة التقرير حيث التوقيع والصور ومن انشاء التقرير وما الى ذلك
وتحدد الهوامش وحجم الورق وهكذا امور
فقط ان اعداد هذه الامور بالكود سيأخذ وقت لاول مرة مع انني لا ارى مشكلة في تصميم كل شئ بالكود فقط مجرد خيار تم طرحه فقط
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة
  • ALG2009
الرد


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


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