تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
درس مبسط :تمرير القيم من برامجنا لتقارير الكريستال ريبورت
#1
بسم الله الرحمن الرحيم

ملاحظة:
الموضوع منقول من المنتدى القديم
وهو للأخ نور نبهان

بسم الله الرحمن الرحيم
وأفضل الصلاة و أتم التسليم على سيدنا محمد و أله وصحبه أجمعين
السلام عليكم ورحمة الله وبركاته
درس مبسط حول تمرير القيم من برامجنا لتقارير الكريستال ريبورت
مقدمة:
غالبا ما تكون محتويات التقرير من قواعد البيانات المرفقة مع البرنامج.
ولكن بفرض أننا نريد وضع جملة في أعلى التقرير تتغير برغبة المستخدم لبرنامجنا ولتكن اسم الشركة المستخدمة للبرنامج أو مثلا لو أردنا نسخ ذاتية شخص معين بإدخال معلوماته الشخصية فقط للطباعة الفورية فهل نحن مضطرون لحفظ هذه القيم في قاعدة البيانات ومن ثم استيرادها طبعا لا
وكذلك الأمر في حال جمع محتوى حقل معين فنحن نظهره في صندوق نص تحت بند المجموع الكلي
فكيف نستطيع طباعة هذه المعلومات و المدخلات في نماذج برنامجنا وبدون استخدام قواعد البيانات
هذا ما سنتناوله في درسنا اليوم إن شاء الله

الدرس:
افتح Microsoft Visual Studio2008 و أنشا مشروع جديد تحت المسمى الذي تريد
أذهب للنموذج Form1 وأضف عليه زر أمر Button1 وبعض الليبل Label و صناديق النص TextBox وهذا هو التصميم المبدئي للفورم الأول :
الآن فورم ثاني frmPrint أضف له CrystalReportViewer1 من شريط الأدوات وهذا شكل التصميم :
الآن من قائمة Project1 اختر Add New Item واختر تبويب Reporting وعلم على CrystalReport كما في الصورة التالي :
واختر Add
سيتم فتح التقرير في وضع التصميم :
اذهب لنافذة Field Explorer في الجهة اليسرى واختر Parameter Field
ثم اضغط بالزر الأيمن واختر NEW جديد.لإضافة متغير جديد للقائمة :
اختر أي اسم تريد وكذلك نوع المتغير من القائمة بحسب المطلوب وكرر ذلك بحسب ما تريد من متغيرات
أضف لمثالنا : 2 متغير من نوع String و3 من نوع Number وسمها مثلا :
NourP1,NourP2,NourP3,NourP4,NourP5
بعد إضافة المتغيرات قمت بسحبها بالفأرة إلى التقرير وإفلاتها في المكان الذي تريد كما في الصورة للتوضيح

لاحظ الأسماء الكبيرة هي فقط نصوص للتوضيح و المتغيرات هي ذات الخط الصغير
بذلك انتهينا من تصميم النماذج والتقرير ونتجه إلى جوهر الموضوع وهو كتابة الكود.
اذهب للفورم الأول وضغطتين على Button1 زر الطباعة واكتب الكود التالي :
PHP كود :
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        
'زر الطباعة
        '
احداث تقرير طباعة
        Dim NourCrystal 
As New CrystalReport1
        
'المصدر
        frmPrint.CrystalReportViewer1.ReportSource = NourCrystal
        '
حجم العرض
        frmPrint
.CrystalReportViewer1.Zoom(100%)
        
'تحديث التقرير
        frmPrint.CrystalReportViewer1.Refresh()
        '
تغيير عنوان فورم الطباعة
        frmPrint
.Text "لاتنسونا من دعوة صالحة "
        '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        '
اسم الشركة  
        NourCrystal
.SetParameterValue(0TextBox1.Text)
        
'اسم المستخدم 
        NourCrystal.SetParameterValue(1, TextBox2.Text)
        '
العلامة الاولى 
        NourCrystal
.SetParameterValue(2TextBox3.Text)
        
'العلامة الثانية 
        NourCrystal.SetParameterValue(3, TextBox4.Text)
        '
المجموع 
        NourCrystal
.SetParameterValue(4TextBox5.Text)
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        
frmPrint.Show()
    
End Sub 
طبعا الكود مشروح ضمناً
لكن لاستيعاب الأمر بالنسبة لتخزين قيمة المتغيرات :
لاحظ هذا السطر من الكود وهو كل موضوعنا
رمز برمجي:
PHP كود :
NourCrystal.SetParameterValue(0TextBox1.Text
فهنا قمنا بتمرير محتوى TextBox1 إلى المتغير الأول حيث يبدأ الترقيم من الصفر والمتغير في مثالنا كان NourP1
فمتغيرات التقرير التي أضفناها هي كما في الصورة :
ولكي نسند قيمة لأحدها نستخدم الكود السابق :
رمز برمجي:

NourCrystal.SetParameterValue(x,y)
حيث قيمة x هو ترتيب المتغير ففي الصورة السابقة
NourP1=0
NourP2=1
NourP3=2
NourP4=3
NourP5=4
و قيمة y هي ما نريد وضعه في المتغير (نص رقم .........الخ)
يمكن أن نسند قيم صندوق نص كما سبق
أو قيمة متغير مخزن فيه عملية حسابية مثال
'المجموع

PHP كود :
Dim x As Integer        x Val(TextBox3.Text) + Val(TextBox4.Text)        NourCrystal.SetParameterValue(4x
ومن الإعدادات المخزنة :
PHP كود :
NourCrystal.SetParameterValue(4My.Settings.namecop
أو بالحساب المباشر :
'المجموع
PHP كود :
NourCrystal.SetParameterValue(4Val(TextBox3.Text) + Val(TextBox4.Text)) 
أو أي شرط نريده.
فقط تذكر أن هذا كل ما تريد :

[b]NourCrystal.SetParameterValue(ترتيب المتغير, القيمة)
طبعا أستهل الفرصة لطلب الدعاء منكم للنجاح في الاختبار القادم لي في الأيام القليلة المقبلة
و الله ولي التوفيق
و السلام عليكم ورحمة الله وبركاته



ملاحظة: تم وضع الموضوع بملف PDF بالمرفقات للحفاظ على الصور + مثال على الشرح .
[/b]


الملفات المرفقة
.zip   NourCrystal.zip (الحجم : 99.3 ك ب / التحميلات : 921)
.pdf   vb4arab-com_2.pdf (الحجم : 378.91 ك ب / التحميلات : 852)
الرد }}}
تم الشكر بواسطة: alwasela
#2
الاستاذ الفاضل : M.Sami.AK
أولاً شهادة أمام الله أن هذا المنتدى وأعضاؤه يمثلون أسمى انواع الأخلاق .. في الاهتمام بالرد على تساؤلات المشتركين .
قضيت 6 شهور أبحث عن حل لتلك المشكلة .. وهذا أول رد لي بالخطوات وشاكر جداً لرد حضرتك .. وحجرب وأرد على حضرتك
الرد }}}
تم الشكر بواسطة:
#3
ألف شكر و تحية
الرد }}}
تم الشكر بواسطة:
#4
أصلح الله بالك وجزاك الله خير
هل احتفظت بأعمال آخرى
الرد }}}
تم الشكر بواسطة:
#5
شكرا .............
الرد }}}
تم الشكر بواسطة:
#6
بارك الله فيك درس مفيد ومهم
الرد }}}
تم الشكر بواسطة:
#7
شكرا جزيلا لكم على ما تبذلونه من جهد لنقل المعلومة المفيدة.
الرد }}}
تم الشكر بواسطة:
#8
(26-09-12, 12:16 PM)m.sami.ak كتب :
بسم الله الرحمن الرحيم

ملاحظة:
الموضوع منقول من المنتدى القديم
وهو للأخ نور نبهان

بسم الله الرحمن الرحيم
وأفضل الصلاة و أتم التسليم على سيدنا محمد و أله وصحبه أجمعين
السلام عليكم ورحمة الله وبركاته
درس مبسط حول تمرير القيم من برامجنا لتقارير الكريستال ريبورت

مقدمة:
غالبا ما تكون محتويات التقرير من قواعد البيانات المرفقة مع البرنامج.
ولكن بفرض أننا نريد وضع جملة في أعلى التقرير تتغير برغبة المستخدم لبرنامجنا ولتكن اسم الشركة المستخدمة للبرنامج أو مثلا لو أردنا نسخ ذاتية شخص معين بإدخال معلوماته الشخصية فقط للطباعة الفورية فهل نحن مضطرون لحفظ هذه القيم في قاعدة البيانات ومن ثم استيرادها طبعا لا
وكذلك الأمر في حال جمع محتوى حقل معين فنحن نظهره في صندوق نص تحت بند المجموع الكلي
فكيف نستطيع طباعة هذه المعلومات و المدخلات في نماذج برنامجنا وبدون استخدام قواعد البيانات
هذا ما سنتناوله في درسنا اليوم إن شاء الله

الدرس:
افتح Microsoft Visual Studio2008 و أنشا مشروع جديد تحت المسمى الذي تريد
أذهب للنموذج Form1 وأضف عليه زر أمر Button1 وبعض الليبل Label و صناديق النص TextBox وهذا هو التصميم المبدئي للفورم الأول :

الآن فورم ثاني frmPrint أضف له CrystalReportViewer1 من شريط الأدوات وهذا شكل التصميم :

الآن من قائمة Project1 اختر Add New Item واختر تبويب Reporting وعلم على CrystalReport كما في الصورة التالي :
واختر Add
سيتم فتح التقرير في وضع التصميم :
اذهب لنافذة Field Explorer في الجهة اليسرى واختر Parameter Field
ثم اضغط بالزر الأيمن واختر NEW جديد.لإضافة متغير جديد للقائمة :
اختر أي اسم تريد وكذلك نوع المتغير من القائمة بحسب المطلوب وكرر ذلك بحسب ما تريد من متغيرات
أضف لمثالنا : 2 متغير من نوع String و3 من نوع Number وسمها مثلا :

NourP1,NourP2,NourP3,NourP4,NourP5

بعد إضافة المتغيرات قمت بسحبها بالفأرة إلى التقرير وإفلاتها في المكان الذي تريد كما في الصورة للتوضيح


لاحظ الأسماء الكبيرة هي فقط نصوص للتوضيح و المتغيرات هي ذات الخط الصغير

بذلك انتهينا من تصميم النماذج والتقرير ونتجه إلى جوهر الموضوع وهو كتابة الكود.
اذهب للفورم الأول وضغطتين على Button1 زر الطباعة واكتب الكود التالي :

PHP كود :
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        
'زر الطباعة
        '
احداث تقرير طباعة
        Dim NourCrystal 
As New CrystalReport1
        
'المصدر
        frmPrint.CrystalReportViewer1.ReportSource = NourCrystal
        '
حجم العرض
        frmPrint
.CrystalReportViewer1.Zoom(100%)
 
       'تحديث التقرير
        frmPrint.CrystalReportViewer1.Refresh()
        '
تغيير عنوان فورم الطباعة
        frmPrint
.Text "لاتنسونا من دعوة صالحة "
 
       '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        '
اسم الشركة  
        NourCrystal
.SetParameterValue(0TextBox1.Text)
 
       'اسم المستخدم 
        NourCrystal.SetParameterValue(1, TextBox2.Text)
        '
العلامة الاولى 
        NourCrystal
.SetParameterValue(2TextBox3.Text)
 
       'العلامة الثانية 
        NourCrystal.SetParameterValue(3, TextBox4.Text)
        '
المجموع 
        NourCrystal
.SetParameterValue(4TextBox5.Text)
 
       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
       frmPrint.Show()
 
   End Sub   
طبعا الكود مشروح ضمناً
لكن لاستيعاب الأمر بالنسبة لتخزين قيمة المتغيرات :
لاحظ هذا السطر من الكود وهو كل موضوعنا
رمز برمجي:
PHP كود :
        NourCrystal.SetParameterValue(0TextBox1.Text

فهنا قمنا بتمرير محتوى TextBox1 إلى المتغير الأول حيث يبدأ الترقيم من الصفر والمتغير في مثالنا كان NourP1
فمتغيرات التقرير التي أضفناها هي كما في الصورة :



ولكي نسند قيمة لأحدها نستخدم الكود السابق :
رمز برمجي:

NourCrystal.SetParameterValue(x,y)
حيث قيمة x هو ترتيب المتغير ففي الصورة السابقة

NourP1=0
NourP2=1
NourP3=2
NourP4=3
NourP5=4

و قيمة y هي ما نريد وضعه في المتغير (نص رقم .........الخ)
يمكن أن نسند قيم صندوق نص كما سبق
أو قيمة متغير مخزن فيه عملية حسابية مثال
'المجموع


PHP كود :
Dim x As Integer        x Val(TextBox3.Text) + Val(TextBox4.Text       NourCrystal.SetParameterValue(4x

ومن الإعدادات المخزنة :

PHP كود :
   NourCrystal.SetParameterValue(4My.Settings.namecop

أو بالحساب المباشر :
'المجموع

PHP كود :
NourCrystal.SetParameterValue(4Val(TextBox3.Text) + Val(TextBox4.Text)) 

أو أي شرط نريده.
فقط تذكر أن هذا كل ما تريد :


NourCrystal.SetParameterValue(ترتيب المتغير, القيمة)

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



ملاحظة: تم وضع الموضوع بملف PDF بالمرفقات للحفاظ على الصور + مثال على الشرح .


الرجاء إرفاق الملفات مره اخرى للفائدة
او ارسالها على amko230231@gmail.com
الرد }}}
تم الشكر بواسطة:
#9
المرفق لا يعمل ارجاء التاكد منه وشكرا
الرد }}}
تم الشكر بواسطة: alprofmohamed
#10
السلام عليكم ورحمة الله 

نرجوا من الاخوة تجديد الروابط

تحياتي وشكري لكم على الدوام
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Photo الارقام فى الكرستال ريبورت ahmedmansour 4 6,718 26-05-23, 04:06 PM
آخر رد: atefkhalf2004
  عرض الصورة الثنائية (كائن ) من اكسس داخل كرستال ريبورت younus 1 682 26-03-23, 04:23 PM
آخر رد: sanyor77
  الموقع الرسمي لتحميل تقارير كريستال ريبورت Crystal Reports محمد كريّم 6 42,850 26-10-22, 01:56 PM
آخر رد: خالد العصاوي
  تحميل كريستال ريبورت strongriseman 0 988 16-10-22, 09:35 AM
آخر رد: strongriseman
  [VB.NET] طباعة فاتورة باستخدام الكريستال ريبورت Abdoelftah 0 1,724 21-11-21, 11:25 PM
آخر رد: Abdoelftah
  اريد نسخة كريستال ريبورت 10 او أعلى لويندوز 10 Alhootti1 2 4,536 18-03-21, 12:22 PM
آخر رد: Alhootti1
Exclamation [سؤال] الموقع الرسمي لتحميل تقارير كريستال ريبورت Crystal Reports abarrak 0 1,772 13-03-21, 10:31 PM
آخر رد: abarrak
  سؤال عن تقارير كريستال ريبورت Crystal Reports Yassin246 4 3,544 17-05-20, 03:24 PM
آخر رد: Yassin246
  تمرير صورة الى CrystalReport Sajad 22 14,265 02-12-18, 06:32 PM
آخر رد: المتألق9
  [Acces2007] رسالة خطأ في الإتصال الكريستال ريبورت مع قاعدة البيانات mohammed mekawi 1 3,115 11-10-18, 04:22 PM
آخر رد: حريف برمجة

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم