مرفق فى الرد المثال على إظهار التفقيط فى التقارير
حيث ان عملية التقيط لا تتم تسجيلها بقاعدة البيانات فتم عمل التالى
عند فتح صفحة تصميم التقارير أو الطباعة تحت اسم
قم بالضغط على كلا من
تلميح: كتب :CTRL+ALT+D
حتى يقوم بعرض قائمة Report Data
تعال عند Parameters
وقم بالضغط كلك يمين من ثم اختار Add Parameter...
من ثم سيظهر هذه الشاشة كما فى الصورة
كل ما هو عليك كتابة NumToLit أو اي اسم انت تريده كما تشاء من ثم الضغط على ok
وسيكون الشكل النهائي كما فى الصورة خاصة قائمة Report Data
قم بسحب NumToLit داخل تصميم التقرير وقم بالتنسيق كما تشاء بكده انهيت جزء التقرير
ناتى بعد ذلك لجزء عرض Form2 الذى سيقوم من خلاله عرض التقرير
قم بانشاء ReportViewer بداخل Form2
وتعال فى خصائص ReportViewer1 واذهب الى Dock واجعل قيمته Fill
وطبق ما فى الصورة التالية
عند الجزء الخاص بـ Choose Report
قم بتحديد من خلاله اسم التقرير وستجده فى المشروع الحالى المرفق تحت اسم
WindowsApplication1.Report2.rdlc
ثم عند السطر باسم Rebind Data Sources
قم بالضغط عليها
الجزؤ الاخير وهو ادارج الكود خاصة التفقيط ليعرض بالتقرير
تعال على اسم Form2 فى الصورة الاعلى وقم بالضغطة المزدوجة حتى يعرض منطقة الكود
واجعل بداخل محتوى
كود :
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
هذا الكود
كود :
Dim PRM01 As New ReportParameter("NumToLit", Form1.TextBox2.Text)
ReportViewer1.LocalReport.SetParameters(New ReportParameter() {PRM01})
Me.ReportViewer1.SetDisplayMode(DisplayMode.PrintLayout)
Me.ReportViewer1.RefreshReport()
قم بالملاحظة هذا الجزء
كود :
("NumToLit", Form1.TextBox2.Text)
ستجد كلمة
NumToLit وهى خاصة
Parameters الذى تم انشائه بالاعلى
وستجد Form1.TextBox2.Text وهو استدعاء محتوى textbox خاصة التفقيط من form1
طيب السؤال هنا لو محتاج انشاء اكثر من Parameters
كل ما عليك انشاء ما تريد من العدد الذى تحتاجه ومن ثم تعال فى الكود بالاعلى وقم بتكرار السطر كما يلى
كود :
Dim PRM01 As New ReportParameter("Name1", Form1.TextBox1.Text)
Dim PRM02 As New ReportParameter("Name2", Form1.TextBox2.Text)
Dim PRM03 As New ReportParameter("Name3", Form1.TextBox3.Text)
Dim PRM04 As New ReportParameter("Name4", Form1.TextBox4.Text)
Dim PRM05 As New ReportParameter("Name5", Form1.TextBox5.Text)
ستلاحظ الاختلاف عند PRM01 وايضاً Name1 ومن ثم القيمة التى تم جلبها من خلال Form1.TextBox1.Text
بعد عمل المطلوب تعال عند السطر التالى
كود :
ReportViewer1.LocalReport.SetParameters(New ReportParameter() {PRM01})
وقم بتحويله الى التالى
كود :
ReportViewer1.LocalReport.SetParameters(New ReportParameter() {PRM01, PRM02, PRM03, PRM04, PRM05})
اعتقد ان الكود سهل وملاحظات الاختلاف واضح فى الكود
اتمنى ان اكون بسط الشرح بصورة تسهل على اى حد التعامل بذلك
تمنياتى لك التويق