26-09-12, 12:16 PM
بسم الله الرحمن الرحيم
ملاحظة: الموضوع منقول من المنتدى القديم
وهو للأخ نور نبهان
ملاحظة: الموضوع منقول من المنتدى القديم
وهو للأخ نور نبهان
بسم الله الرحمن الرحيم
وأفضل الصلاة و أتم التسليم على سيدنا محمد و أله وصحبه أجمعين
السلام عليكم ورحمة الله وبركاته
درس مبسط حول تمرير القيم من برامجنا لتقارير الكريستال ريبورت
وأفضل الصلاة و أتم التسليم على سيدنا محمد و أله وصحبه أجمعين
السلام عليكم ورحمة الله وبركاته
درس مبسط حول تمرير القيم من برامجنا لتقارير الكريستال ريبورت
غالبا ما تكون محتويات التقرير من قواعد البيانات المرفقة مع البرنامج.
ولكن بفرض أننا نريد وضع جملة في أعلى التقرير تتغير برغبة المستخدم لبرنامجنا ولتكن اسم الشركة المستخدمة للبرنامج أو مثلا لو أردنا نسخ ذاتية شخص معين بإدخال معلوماته الشخصية فقط للطباعة الفورية فهل نحن مضطرون لحفظ هذه القيم في قاعدة البيانات ومن ثم استيرادها طبعا لا
وكذلك الأمر في حال جمع محتوى حقل معين فنحن نظهره في صندوق نص تحت بند المجموع الكلي
فكيف نستطيع طباعة هذه المعلومات و المدخلات في نماذج برنامجنا وبدون استخدام قواعد البيانات
هذا ما سنتناوله في درسنا اليوم إن شاء الله
الدرس:
افتح Microsoft Visual Studio2008 و أنشا مشروع جديد تحت المسمى الذي تريد
أذهب للنموذج Form1 وأضف عليه زر أمر Button1 وبعض الليبل Label و صناديق النص TextBox وهذا هو التصميم المبدئي للفورم الأول :
الآن من قائمة Project1 اختر Add New Item واختر تبويب Reporting وعلم على CrystalReport كما في الصورة التالي :
سيتم فتح التقرير في وضع التصميم :
اذهب لنافذة Field Explorer في الجهة اليسرى واختر Parameter Field
أضف لمثالنا : 2 متغير من نوع String و3 من نوع Number وسمها مثلا :
NourP1,NourP2,NourP3,NourP4,NourP5
لاحظ الأسماء الكبيرة هي فقط نصوص للتوضيح و المتغيرات هي ذات الخط الصغير
اذهب للفورم الأول وضغطتين على Button1 زر الطباعة واكتب الكود التالي :
PHP كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'زر الطباعة
'احداث تقرير طباعة
Dim NourCrystal As New CrystalReport1
'المصدر
frmPrint.CrystalReportViewer1.ReportSource = NourCrystal
'حجم العرض
frmPrint.CrystalReportViewer1.Zoom(100%)
'تحديث التقرير
frmPrint.CrystalReportViewer1.Refresh()
'تغيير عنوان فورم الطباعة
frmPrint.Text = "لاتنسونا من دعوة صالحة "
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'اسم الشركة
NourCrystal.SetParameterValue(0, TextBox1.Text)
'اسم المستخدم
NourCrystal.SetParameterValue(1, TextBox2.Text)
'العلامة الاولى
NourCrystal.SetParameterValue(2, TextBox3.Text)
'العلامة الثانية
NourCrystal.SetParameterValue(3, TextBox4.Text)
'المجموع
NourCrystal.SetParameterValue(4, TextBox5.Text)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
frmPrint.Show()
End Sub
طبعا الكود مشروح ضمناً
لكن لاستيعاب الأمر بالنسبة لتخزين قيمة المتغيرات :
لاحظ هذا السطر من الكود وهو كل موضوعنا
رمز برمجي:لكن لاستيعاب الأمر بالنسبة لتخزين قيمة المتغيرات :
لاحظ هذا السطر من الكود وهو كل موضوعنا
PHP كود :
NourCrystal.SetParameterValue(0, TextBox1.Text)
فهنا قمنا بتمرير محتوى TextBox1 إلى المتغير الأول حيث يبدأ الترقيم من الصفر والمتغير في مثالنا كان NourP1
فمتغيرات التقرير التي أضفناها هي كما في الصورة :
ولكي نسند قيمة لأحدها نستخدم الكود السابق :
رمز برمجي:
NourCrystal.SetParameterValue(x,y)
حيث قيمة x هو ترتيب المتغير ففي الصورة السابقة
و قيمة y هي ما نريد وضعه في المتغير (نص رقم .........الخ)
يمكن أن نسند قيم صندوق نص كما سبق
أو قيمة متغير مخزن فيه عملية حسابية مثال
'المجموع
ومن الإعدادات المخزنة :
أو بالحساب المباشر :
'المجموع
أو أي شرط نريده.
فقط تذكر أن هذا كل ما تريد :
[/b]
فمتغيرات التقرير التي أضفناها هي كما في الصورة :
رمز برمجي:
NourCrystal.SetParameterValue(x,y)
حيث قيمة x هو ترتيب المتغير ففي الصورة السابقة
NourP1=0
NourP2=1
NourP3=2
NourP4=3
NourP5=4
NourP2=1
NourP3=2
NourP4=3
NourP5=4
يمكن أن نسند قيم صندوق نص كما سبق
أو قيمة متغير مخزن فيه عملية حسابية مثال
'المجموع
PHP كود :
Dim x As Integer x = Val(TextBox3.Text) + Val(TextBox4.Text) NourCrystal.SetParameterValue(4, x)
PHP كود :
NourCrystal.SetParameterValue(4, My.Settings.namecop)
'المجموع
PHP كود :
NourCrystal.SetParameterValue(4, Val(TextBox3.Text) + Val(TextBox4.Text))
فقط تذكر أن هذا كل ما تريد :
[b]NourCrystal.SetParameterValue(ترتيب المتغير, القيمة)
طبعا أستهل الفرصة لطلب الدعاء منكم للنجاح في الاختبار القادم لي في الأيام القليلة المقبلة
و الله ولي التوفيق
و السلام عليكم ورحمة الله وبركاته
ملاحظة: تم وضع الموضوع بملف PDF بالمرفقات للحفاظ على الصور + مثال على الشرح .
و الله ولي التوفيق
و السلام عليكم ورحمة الله وبركاته
ملاحظة: تم وضع الموضوع بملف PDF بالمرفقات للحفاظ على الصور + مثال على الشرح .