منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
لا لتسجيل الدخول بعد الان في الكريستال (الجزء الاول) - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم مقالات التقارير والطباعة تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=80)
+--- الموضوع : لا لتسجيل الدخول بعد الان في الكريستال (الجزء الاول) (/showthread.php?tid=5493)



لا لتسجيل الدخول بعد الان في الكريستال (الجزء الاول) - RaggiTech - 10-10-12

كاتب الموضوع : حماده عماره

[SIZE=4]السلام عليكم ورحمته وبركاته


لا لتسجيل الدخول بعد الان في الكريستال



لكل الذين يستخدمون برنامج الكريستال ويعانون بشده من شاشة الدخول السؤال الاهم لماذا تظهر شاشة الدخول من حيث المبداء . انها تظهر لوجود جداول داخل التقرير لم يحصولوا علي بيانات مما يجعلهم منزعجين ويطالبون المستخدم بشاشة تسجيل الدخول للحصول علي نصيبهم من البيانات . هذه ببساطه هي المشكله ويوجد لها كثير من الحلول.

*******************

1- أرسال معلومات الاتصال الي التقرير عند استدعائه ويتولا هو جلب البيانات بمعرفته ويعرضها دون اي تحكم منا فيها ( غير مفضل بالنسبه لي -- سيتم شرحه في مقال قادم)

2- ارسال البيانات الي ملف XML ثم توجيه التقرير للملف ليجمع بياناته بنفسه (سيتم شرحه ايضا فيما بعد) (غير مفضل لي )

3- تعبئة DataSet او Data Table بالبيانات وتصبح هي مصدر البيانات بدل من قاعدة البيانات ويمكن طبعا بسهوله فائقه التحكم في البيانات الموجوده داخلهما مما يوفر عدد كبير جدا من التقارير الواجب تصميمها . وذلك لانك تتحكم في البيانات المرسله فلا داعي مثلا الا لتقرير واحد مثلا لاسماء الموظفين واعرض فيه الموظفين حسب اي شرط قد يخطر في بالك كانك صممته 100 مره او اكثر ( انت وافكارك)


*************
****


الحل الامثل من وجهة نظري التحكم في مصدر بيانات التقرير الا وهو الحل رقم 3 وهو ينقسم الي 3 حلول حسب الحاله



الاول :

في حالة الجداول المنفرده او ان التقرير مصمم علي جملة استعلام واحده او مبني علي جدول واحد الموضوع ببساطه هو تعبئة Data Table بنفس جملة الاستعلام او الجدول الذي بني عليه التقرير سواء بشرط او لا او لو حتي الناتج بدون بيانات مما يجعل ان جميع حقول التقرير حصلت علي بيانتها فتعرضها مباشرة دون الاهتمام بمعلومات الدخول الي نفس المصدر الذي صمم عليه التقرير .

مثال:









الثاني:
اما في حالة اكثر من جدول فهنا الوضع مختلف حيث ان المطلوب هذه المره بيانات مختلفه وكثيره من اكثر من جدول اذا نظرية تعبئة Data Table الواحد لن تفلح هذه المره الحل هو التصريح عن Data Set ثم تعبئتها بالجداول وكل جدول به البيانات الخاصه به + يجب ان يكون كل جدول يحمل اسما والا كما يقال («كأنك يا بو زيد ما غزيت» )
لان التقرير سيبحث داخل ال Data SET عن أسم الجدول ليأخذ ما به من بيانات فلا يجده وهنا المشكله

وهذا الوضع ينطبق ايضا علي الجداول الفرعيه حيث انها في الحقيقه مجرد تقرير باكثر من جدول وهذا مثال علي ذلك .







الامثله مجربه وبدقه

هذا ليس الحل الوحيد ولكنه الاسهل واالاسرع والادق هناك اشياء اخري يمكن حل بيها المشكله ولكني لا افضلها وسنناقشها في حل اخر

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


شكرا لكم
[/SIZE]





حمل المثال من هنا