22-07-20, 03:40 AM
صناعة التقارير الطارئة حسب طلب العميل
السلام عليكم و رحمة الله و بركاتهيعد نقص التقارير و غيرها من الامور الخاصة بالبرنامج من الامور التي ستواجها دائما اثناء تطويرك لبرنامج غير مكتمل التحليل.
في كثير من الاحيان قد تفاجئ بطلب العميل لتقرير معين لم يتم ادراجه ضمن تقارير البرنامج , او لا توجد الية للوصول اليه من داخل البرنامج , و عليه انت بحاجة الى اعادة تعديل في البرنامج و القاعدة احياناً , لاضافة هذا التقرير , و عليه قد تزداد الطلبات اذا لم تجد الية فعالة لتلافي هذا النوع من الطلبات.
مقالنا يتحدث عن الية وجود مولد تقارير ضمن البرنامج مع عارض للتقارير المولدة , او تكتفي بعارض تقارير يتعامل مع تقارير محفوظة كملفات منفصله.
و عليه انت لن تحتاج الى تعديل في نسخة البرنامج , فقط تعطي العميل ملف التقرير و هو يستخدمه من داخل البرنامج و يفتحه عبر عارض التقارير كما يفتح اي ملف اعتيادي.
و لتحقيق هذه الفكرة ساسوق لك الطريقة الملائمة للوصول الى الهدف.
مثل هذه الامور لا يتم الحديث عنها عادة و لن تجد لها شرح في اي مصدر عربي او اجنبي .
و كل ما نبتغيه هنا هو صدقة جارية و دعاء في ظهر الغيب.
سيكون الشرح بالصور و بالتفصيل .
انشئ مشروع جديد لديك و تابع معي.
الجزء الاول انشاء نموذج مولد التقارير.
على نموذج جديد ادرج الاداة كما بالصورة
شكل النموذج
الان شغل البرنامج و دعنا ندخل في تصميم اول تقرير لنا طلبه منا العميل.
نظرة خاطفة على التقسيمات
كما نعلم ان التقارير بحاجة الى مصدر بيانات يغذيها لذا نضيف مصدر بيانات جديد و نتابع
بعد ان اتممت تصميم التقرير يمكنك حفظه كما في الصورة و اصبح ملف منفصل يمكن فتحه عن طريق عارض التقارير
الجزء الثاني هو تصميم نموذج عارض تقارير يمكنه فتح ملفات التقارير التي تم حفظها .
ندرج نموذج جديد و نضع عليه الاداة كما في الصورة.
ندرج هنا زر جديد مهمته فتح الملفات المحفوظة في الخطوة السابقة و الكود بداخله اخر المقال.
نفتح التقرير الذي تم حفظه سابقاً
النتيجة
كود زر الفتح
PHP كود :
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles 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
بالتوفيق للجميع
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال