عمل تقرير لعرض سجل معين
عمل تقرير لعرض سجل معين
فكرة الحل :
يكمن الحل في عمل filter لبيانات التقرير بإستخدام حقل مميز للسجلات – في مثالي استخدمت قاعدة البيانات الشهيرة Northwind والجدول Customers تحديدا ، في ذلك الجدول ، الحقل Id هو المميز والذي لا يتكرر في كل الظروف – لذلك سنقوم بعمل Parameter ونضعه في الـ filter الخاص بالتقرير ، ثم نمرر قيمته بواسطة الكود قبل عرض التقرير على النافذة .
الحل :
نقوم بعمل مشروع جديد ونضيف له مصدر بيانات جديد New Data Source ثم نحدد قاعدة البيانات Northwind بعدها نختار الجدول customers فقط ونقوم بتسمية الـ Dataset بأي إسم نرغبه ، وليكن CustomersDataset ثم ننهي المعالج بالطبع .
بعدها نقوم بإضافة تقرير جديد الى المشروع وذلك من خلال الضغط على Ctrl+shift+A ثم اختيار Report بعدها سيفتح لنا مصمم التقارير بالتقرير الجديد .
بداية نذهب الى القائمة Report ونختار الأمر Data Sources ومن هناك نقوم بإضافة الـ Dataset الذي قمنا بإضافته توا للمشروع ثم نغلق مربع الحوار .
بعدها تأتي الخطوة الاهم على الإطلاق ،نذهب الى القائمة Report مجددا ونختار Report Parameters لتظهر لنا النافذة التالية :
نقوم بإضافة Parameter جديد ونحدد نوع ليكون Integer ثم نكتب إسمه وليكن CustomerID ثم نضغط على زر OK .
الآن نقوم بإضافة اداة Table وعليها الحقول المطلوبة ( لا اشرح هذه العملية هنا !! ) ثم نقوم بالضغط بالزر الأيمن على ال table في الزاوية العلوية اليسرى بعدها نختار Properties ، ومن النافذة الظاهره نختار Filter ثم هناك بإضافة filter جديد للـ grid ونختار الـ Operator الخاص بالمساواة ، ومن العمود Value نختار من القائمة المنسدلة Expression ومن نافذة ال Expression Editor نختار Parameters وسنرى هناك الباراميتر الذي قمنا بإضافته سابقا ، سنقوم الآن بالضغط على نقرا مزدوجا ثم نضغط على زر OK ونغلق النافذة .
الآن نذهب الى النافذة التي ستعرض التقرير ونضيف في البداية شريط ادوات ToolStrip وبه ثلاث أدوات بالترتيب :
– Label : نكتب عليه نص توجيهي للمستخدم وليكن filter Customer ID ،
– TextBox : اسمه tstxtCustomerID
– Button : اسمه tsbtnshowReport وليكن بالنص فقط ونصه Show Report .
الآن نقوم بوضع اداة Microsoft Report Viewer على النافذة ومن Choose Reports نختار التقرير الذي اضفناه سابقا .
ثم نذهب الى محرر الاكواد الخاص بالنافذة ونضيف فضاء الأسماء التالي :
Imports Microsoft.Reporting.WinForms
ثم نقوم بحذف السطر :
Me.ReportViewer1.RefreshReport()
من الحدث Load الخاص بالنافذة form .
بعدها نقوم بكتابة كود للزر tsbbtnShowReport في حدث النقر Click ونكتب الكود التالي :
Dim CusID(0) As ReportParameter CusID(0) = New ReportParameter(“CustomerID”, tstxtCustomerID.Text) Me.ReportViewer1.LocalReport.SetParameters(CusID) Me.ReportViewer1.RefreshReport()
شرح الكود :
في السطر الاول قمنا بإنشاء مصفوفة من النوع ReportParameter ونختار العنصر الأول فيها ( رقم صفر ) ليكون كائنا جديدا من النوع ReportParameter، وبإستخدام المشيد Constuctor نعطه الوسائط Arguments المطلوبة كما يلي :
– ParameterName : وهنا نكتب اسم الباراميتر الذي اضفناه في التقرير سابقا .
– Value : وهنا قيمة التقرير ، وهي قيمة الشرط في الـ filter ،
ثم نقوم بإضافة الباراميترات الى التقرير من خلال السطر :
Me.ReportViewer1.LocalReport.SetParameters(CusID)
بعدها نقوم بإظهار محتويات التقرير بالسطر:
Me.ReportViewer1.RefreshReport()
لذلك قمت بحذفه من الحدث Load لأننا لا نريد عرض التقرير بذلك الشكل، وخذها كمعلومة ، التقرير الذي يحتوي على باراميترات لم تعط قيما لها لن يظهر بل سيطبع رسالة الخطا على جسم التقرير !!
اخيرا الفكرة المستخدمه هنا بالباراميترات يمكن استخدامها لعرض البيانات بين مجالين او تجميع او اي شيء تحتاجه تضع مكانه اسم الباراميتر بإستخدام الـ Expression Editor وتجعل تقاريرك ديناميكية اكثر .
لتحميل المثال المذكور يرجى النقر هنا
اولا متشكر جدا علي المعلومات المفيدة
ولي سؤال وهو
ما هي القيمة التي نضعها للـ Parameter لكي يعرض جميع السجلات؟
بمعني
كيف يتم الجمع بين تقرير اجمالي –جميع السجلات– وتقرير تفصيلي –سجل سجل–؟
اتمني تكون فهمت قصدي
هل نعمل بنفس الطريقة اذا اردنا استخدام البارميتر من فورم اخر
اخي العزيز ارجو الافادة
اريد تصميم التقارير بتقنية linq to sql وخاصة تقارير الكريستال ريبورت
افدنا جزاك الله عني وعن المسلمين كل خير
لانه تعبت وانا ابحث ولم اجد شخصا يتحدث عن الموضوع
حيث اني اعمل على هذه التقنية
كيف يمكن تعريف اداة التقارير مثل الكريستال
dim rr as new crystalreport1
ما هو الكود الذي يقابل ذلك
الرجاء احتاج الى تصميم تقرير كريستال ريبورت يقوم بعرض البيانات استنادا الى معيار معين مع امكانية تغير هذا المعيارحسب الطلب مثلا تقرير يعرض جدول الموظفين لقسم معين في كل مرة يتم تغيير اسم القسم ليعرض الموظفين في تلك الأقسام استنادا الى هذا المعيار مع الشكر الجزيل
اعتذر من الجميع عن تغيبي وعدم الرد على اسئلتكم واستفساراتكم. بالنسبة للاخوة الذين يسألون عن Crystal Reports فأنا لا استخدمه.
تحياتي لكم