منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : التفقيد في التقارير
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

الاخوة الاعزاء 

وجدة نماذج كثيرة عن التفقيط ولكن عند استدعاء دالة التفقيط في الربيت يضهر خطاء رغم ان الفورم يكون صحيح ولكم مثال في المرفقات
(13-05-18, 12:34 PM)altho8 كتب : [ -> ]السلام عليكم ورحمة الله وبركاته

الاخوة الاعزاء 

وجدة نماذج كثيرة عن التفقيط ولكن عند استدعاء دالة التفقيط في الربيت يضهر خطاء رغم ان الفورم يكون صحيح ولكم مثال في المرفقات


كل الفكرة انك فى التقرير قمت باضافة هذا الكود
كود :
= Textbox5.Text = NumericToLiteral.Convert(3000)
       If chkFaqat.Checked Then
         Textbox5.AppendText(" فقط لا غير")
       NumericUpDown1.Focus()
       NumericUpDown1.Select(0, NumericUpDown1.Text.Length)

داخل منطقة عرض النصوص بالتقرير
وتريد بهذه الطريقة طباعة التفقيط به

اذا كان التفقيط لا يتم تسجيله بقاعدة البيانات مع الارقام
فكل ما عليك فعله هو انشاء 
كود :
Parameters

من ثم قيام تسجيل نص textbox خاص التفقيط به وده من خلال الزر الذى يعرض التقرير
لو حابب اعمل مثال على مشروعك المرفق ابلغني وبعمله مع الشرح للتوضيح

بالتوفيق لك
مرفق فى الرد المثال على إظهار التفقيط فى التقارير
حيث ان عملية التقيط لا تتم تسجيلها بقاعدة البيانات فتم عمل التالى

عند فتح صفحة تصميم التقارير أو الطباعة تحت اسم
كود :
Report2.rdlc

قم بالضغط على كلا من
تلميح: كتب :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})
اعتقد ان الكود سهل وملاحظات الاختلاف واضح فى الكود

اتمنى ان اكون بسط الشرح بصورة تسهل على اى حد التعامل بذلك

تمنياتى لك التويق
تستطيع ان تجعل التقرير هو من يقوم بالتفقيط.
وذلك بنقل الFunction التي تقوم بالتفقيط الى التقرير وبذلك لا تحتاج إلى عمل اي Parameters
توجد في صفحة خصائص التقرير تبويب باسم Code
هناك يتم العمل.