تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
صناعة التقارير الطارئة حسب طلب العميل - Dev Express
#1
صناعة التقارير الطارئة حسب طلب العميل
السلام عليكم و رحمة الله و بركاته
يعد نقص التقارير و غيرها من الامور الخاصة بالبرنامج من الامور التي ستواجها دائما اثناء تطويرك لبرنامج غير مكتمل التحليل.
في كثير من الاحيان قد تفاجئ بطلب العميل لتقرير معين لم يتم ادراجه ضمن تقارير البرنامج , او لا توجد الية للوصول اليه من داخل البرنامج , و عليه انت بحاجة الى اعادة تعديل في البرنامج و القاعدة احياناً , لاضافة هذا التقرير , و عليه قد تزداد الطلبات اذا لم تجد الية فعالة لتلافي هذا النوع من الطلبات.
مقالنا يتحدث عن الية وجود مولد تقارير ضمن البرنامج مع عارض للتقارير المولدة , او تكتفي بعارض تقارير يتعامل مع تقارير محفوظة كملفات منفصله.
و عليه انت لن تحتاج الى تعديل في نسخة البرنامج , فقط تعطي العميل ملف التقرير و هو يستخدمه من داخل البرنامج و يفتحه عبر عارض التقارير كما يفتح اي ملف اعتيادي.
و لتحقيق هذه الفكرة ساسوق لك الطريقة الملائمة للوصول الى الهدف.



مثل هذه الامور لا يتم الحديث عنها عادة و لن تجد لها شرح في اي مصدر عربي او اجنبي .
و كل ما نبتغيه هنا هو  صدقة جارية و دعاء في ظهر الغيب.



سيكون الشرح بالصور و بالتفصيل .
انشئ مشروع جديد لديك و تابع معي.

الجزء الاول انشاء نموذج مولد التقارير.
على نموذج جديد ادرج الاداة كما بالصورة


شكل النموذج


الان شغل البرنامج و دعنا ندخل في تصميم اول تقرير لنا طلبه منا العميل.


نظرة خاطفة على التقسيمات



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




























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



الجزء الثاني هو تصميم نموذج عارض تقارير يمكنه فتح ملفات التقارير التي تم حفظها .
ندرج نموذج جديد و نضع عليه الاداة كما في الصورة.








ندرج هنا زر جديد مهمته فتح الملفات المحفوظة في الخطوة السابقة و الكود بداخله اخر المقال.

نفتح التقرير الذي تم حفظه سابقاً


النتيجة


كود زر الفتح
PHP كود :
Private Sub BarButtonItem1_ItemClick(sender As ObjectAs DevExpress.XtraBars.ItemClickEventArgsHandles BarButtonItem1.ItemClick
        Using ofd 
As New OpenFileDialog
            ofd
.Filter "Dev Express Reports (*.repx)|*.repx"
 
           If ofd.ShowDialog DialogResult.OK Then
                Dim p 
As New XtraReport
                p
.LoadLayout(ofd.FileName)
 
               p.CreateDocument()
 
               DocumentViewer1.DocumentSource p
            End 
If
 
       End Using
    End Sub 
الجيد في الامر انه بامكانك تصميم كل التقارير لديك و ثم نقلها الى مجلد عند العميل ليتعامل معها برنامجه دون الحاجة لاعادة تعديل على بنية البرنامج.


بالتوفيق للجميع
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
#2
تسلم يمناك يا أستاذ
بارك الله فيك فعلا أختصر الكثر من الجهد والوقت
جزاك الله خير الجزاء

دمتم بكل خير
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
سبحان الله وبحمده سبحان الله العظيم Heart
الرد }}}
#3
السّلام عليكم و رحمة الله و بركاته
كفيت و وفيت أستاذنا أبو ليلى
ما شاء الله تبارك الله
كلّه على بعضه .. الموضوع من روعة روائع الدروس
جزاك الله خيرا و زادها بموازين حسناتك إن شاء الله
تحياتي و تقييماتي
قناتنا على اليوتوب
الرد }}}
#4
جيد جدا وتشكر على المجهود فقط ملاحظة بالامكان استخدام اسماء مستعارة للحقول حتى تظهر مثلا (اسم الموظف) بدلا من الاسم الحقيقي للحقل بقاعدة البيانات
الرد }}}
تم الشكر بواسطة: ابو ليلى , asemshahen5 , asemshahen5
#5
السلام عليكم كيف يمكنني جعل العميل يستطيع التعديل في التقرير مع العلم التقرير بصيغة resx.
الرد }}}
تم الشكر بواسطة: ابو ليلى , asemshahen5
#6
السلام عليكم و رحمة الله و بركاته
الاخ الكريم ,
استخدم الدالة  XtraReport.ShowDesigner للوصول الى نفس النافذة المعروضة اعلاه اخي
و هي نافذة التعديل .
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
#7
اخي لكن عند فتح نافذة التعديل و القيام بالتعديلات عند الحفظ يقوم بانشاء ملف جديد بصيغة .repx
و انا اريد الحفظ في نفس الملف
الرد }}}
تم الشكر بواسطة: ابو ليلى
#8
السلام عليكم و رحمة الله و بركاته
الاخ الكريم,
ما تتحدث عنه (resx) هو ملف معمول ضمن بيئة التطوير VS و يتبع نفس السيناريو المتبع مع كل ملفات البيئة حيث يتم تقسيم ملفاتها
لعدة اجزاء مثل (Form1.vb, Form1.Designer.vb, Form1.resx) و هذا النوع لا يتم التعديل في بنيته.
بينما Repx هو ملف وحيد يحتوي التخطيط و التصميم و يمكن التعامل معه خارج بيئة التطوير و يمكن تعديله.
بكل الاحوال ما تصبو اليه انت يمكن حله بطرق التفافية , بالاستفادة من حفظ التخطيط و اعادة استدعائه و التعديل عليه و حفظه.
و لكن؟؟؟
لن يكون هناك تواجد لشيئ اسمه Resx او Repx 
بل سيكون لديك ما يشبه حافظ التقارير او المخططات يتم عن طريقه حفظ التقرير(التخطيط Layout) و اعادة استدعائه.
اذ ان المحتوى سيكون ملف ببنية Xml يتم تخزين تخطيط التقارير بداخله.
و يمكن تخزين التخطيط ضمن DataBase او في ملف Zip.


,
واجهة التصميم الاعتيادية



طباعة تقرير محدد


نظرة على ملف Xml المحتوي للتخطيطات


مع قاعدة بيانات

و مع ملف مضغوط


ازرار الحفظ هنا لن تفتح لك صندوق الحفظ , بل ستحفظ التعديلات الخاصة بالتقرير المفتوح فقط.


كل هذه الامور يمكن التعامل معها ضمن ReportStorageExtension الموجودة ضمن الاطار DevExpress.XtraReports.Extensions

كما ان هناك طرق اخرى متنوعة لحفظ المخططات و استدعائها فالبيئة مرنة و توفر الكثير من المزايا .
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}



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


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