تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مشروع] درس استخدام الكلاس من تقارير ريبورت فيور
#1
Lightbulb 
السلام عليكم ورحمة الله وبركاته


ستتعلم إن شاء الله في هذا الدرس طريقة ربط تقارير ReportViewer بكلاس عن طريق DataObject


تتوفر تقارير ReportViewer في إصدارات VisualStudio وهي غير متوفرة في إصدارات Express


إضافة كلاس:
أضف الكلاس من خلال القائمة Project ثم Add Class وسميه Person


ثم اكتب الكود التالي في الكلاس وهو عبارة عن بطاقة شخصية بسيطة جدا تتكون فقط من رقم واسم وصورة
PHP كود :
Public Class Person
    Property ID 
As Integer
    Property Name 
As String
    Property Photo 
As Byte()
End Class 
معلومة: الصورة ما هي إلا مصفوفة بايتات، لهذا نستخدم ()Byte والقوسين () تعني مصفوفة بالنسبة لنوع البيانات



عمل Build:
بعد اتمام عمل الكلاس قم بعمل Build

 هذه الخطوة ضرورية عند اي تعديل على الكلاس او التقرير.



إنشاء تقرير ReportViewer:
أضف تقرير ReportViewer عن طريق القائمة Project ثم Add New Item


في نافذة الإضافة حدد في القسم الأيسر Reporting واختار Report




ربط الكلاس بالتقرير:
توضيح قبل ربط الكلاس بالتقرير فان كلمة Dataset تعني مجموعة البيانات، وهي ليست حصرا بملفات xsd.

عند تصميم التقرير إذهب للقائمة View واختار Report Data او قم بالضغط على Ctrl+Alt+D،


من قائمة ReportData إضغط على New ومنه اختار Datset،


ستفتح لك نافذة Dataset Properties قم بالضغط على New الخاصة بـ Data source
تذكّر هنا الاسم Name وهو افتراضيا "DataSet1" والذي ستحتاج إليه في الكود لاحقاً.



ستفتح لك نافذة اختيار نوع مصدر البيانات Choose a Data Source Type قم باختيار Object ثم اضغط Next


ستفتح لك نافذة اختيار كلاس البيانات Select the Data Objects قم بتوسيع شجرة المشروع
إن كنت قد عملت Build قبل ذلك فسوف ترى الكلاس Person وقم بتحديده ثم اضغط Finish


عند العودة لنافذة Dataset Properties قم بتحديد مصدر البيانات Data source (غالبا يشبه اسم المشروع)
واسفل منه حدد الكلاس Person


الآن سترى أن مجموعة البيانات "DataSet1" ظهرت في قائمة Report Data
قم بسحب كلا من الرقم ID والاسم Name الى التقرير وتنسيقهما

أما الصورة فضع بدلا منها من قائمة ToolBox أداة Image فتظهر تلقائيا لك نافذة Image Properties
(وإن لم تظهر قم بالضغط على أداة الصورة Image بالزر اليمين واختار Image Properties)

في نافذة خصائص الصورة Image Properties افتح Select the image source واختار منها Database
سيظهر لك Use this field واختر منه حقل الصورة Photo وستعرفه بسهولة
واخيرا افتح Use this MIME type لتحدد نوع الصورة فقم باختيار image/png وهو مناسب لجميع الصور


قم بحفظ التقرير وعمل Build وتكون قد انتهيت من تصميم التقرير



تصميم الفورم:
اضف اداة Reportviewer الى الفورم وقم بربط التقرير به،
سترى أنه تم انشاء PersonBindingSource بشكل تلقائي (حاليا لا تحتاجه في هذا المشروع)




كتابة الكود:
بالنسبة للكود فهو بسيط جدا،

قم بإنشاء متغير p من الكلاس Person
PHP كود :
Dim p As New Person 

قم بإضافة باليانات اللازمة لعناصر المتغير p مثل
PHP كود :
p.ID 123
p
.Name "e.wagdi" 

أما الصورة فقم أولا بإنشاء متغير للصورة
PHP كود :
Dim img As Image 

ثم حدد مصدر الصورة، إن كان من ملف أو من PictureBox.Image أو من Resource
PHP كود :
img Image.FromFile("C:\photofile.jpg"

وبما أن الصورة هي عبارة عن مصفوفة بايتات فعليك تحويلها عن طريق المكتبة ImageConverter
PHP كود :
p.Photo = New ImageConverter().ConvertTo(imgGetType(Byte())) 

بعد ان انتهيت من تجهير البيانات لم يبقى عليك سوى ربط هذه البيانات بالتقرير.

عندما قمت في الخطوة السابقة بربط التقرير باداة عرض التقرير ReportViewer فإنه يحتوى على مصدر بيانات  باسم "DataSet1" (تذكر النافذة Dataset Properties)
مجموعة البيانات هي مجموعة أسطر أي مصفوفة بيانات، لهذا سيتم وضع المتغير p داخل اقواس {} لتحويلها لمصفوفة حتى وإن لم يكود هناك غيرها.

PHP كود :
Me.ReportViewer1.LocalReport.DataSources("DataSet1").Value = {p


والآن قم بتشغيل المشروع لتحصل على النتيجة.



المشروع متوفر في المرفقات


اتمنى أن أكون وفقت في تقديم هذا الدرس بشكل سهل وبسيط {وما توفيقي إلا بالله}.


وإن شاء الله إن وجدت قبولا لهذا الدرس سأقوم بتجهيز درس آخر لعمل جدول بيانات باستخدام Data Object


الملفات المرفقة
.rar   WindowsApplication1.rar (الحجم : 26.47 ك ب / التحميلات : 49)
الرد
#2
السّلام عليكم و رحمة الله و بركاته
كفيت و وفيت و وعدت فكنت بالموعد أخي الكري
بارك الله فيك و لك و جزاك خير الجزاء و زادك من علمه و فضله و أسعدك بالدارين و أدام عليك الصحة و العافية و راحة البال إن شاء الله
درس قيّم و مميّز و مفهوم و مفيد
فقط أخي و أستسمحك عذرا إن أثقلت عليك لأنّ رغبة الإكتشاف و التعلم هي الدّافع وراء ذلك
لو أمكن و عندما يكون لديك الوقت الكافي أن تكمل معروفك بعمل مثال الربط بين جدول بقاعدة البيانات أكسس بالريبورت فيور فقط لمعرفة الخطوات و بارك الله فيك و فيمن تحب مقدّمًا
تحياتي و تقييماتي
الرد
تم الشكر بواسطة: a.wagdi
#3
(24-12-18, 03:27 AM)عبد العزيز البسكري كتب :
السّلام عليكم و رحمة الله و بركاته
كفيت و وفيت و وعدت فكنت بالموعد أخي الكري
بارك الله فيك و لك و جزاك خير الجزاء و زادك من علمه و فضله و أسعدك بالدارين و أدام عليك الصحة و العافية و راحة البال إن شاء الله
درس قيّم و مميّز و مفهوم و مفيد
فقط أخي و أستسمحك عذرا إن أثقلت عليك لأنّ رغبة الإكتشاف و التعلم هي الدّافع وراء ذلك
لو أمكن و عندما يكون لديك الوقت الكافي أن تكمل معروفك بعمل مثال الربط بين جدول بقاعدة البيانات أكسس بالريبورت فيور فقط لمعرفة الخطوات و بارك الله فيك و فيمن تحب مقدّمًا
تحياتي و تقييماتي


وعليكم السلام ورحمة الله وبركاته

يسعدني ذلك أخي الكريم

هل تقصد ربط جدول بقاعدة البيانات باستخدام Data Object أم بالDataSet الخاصة بالمعالج؟
الرد
تم الشكر بواسطة: عبد العزيز البسكري
#4
 السّلام عليكم و رحمة الله و بركاته
أقصد الربط بالداتاسيت Dataset الخاصّة بالمعالج أخي الكريم
أي قاعدة بيانات و أي جدول يكون به مثلا :
الترقيم
الاسم
تاريخ الميلاد
العنوان
و لك كل الشكر و التقدير و الإحترام
تحياتي
الرد
تم الشكر بواسطة: a.wagdi
#5
(24-12-18, 03:48 AM)عبد العزيز البسكري كتب :
 السّلام عليكم و رحمة الله و بركاته
أقصد الربط بالداتاسيت Dataset الخاصّة بالمعالج أخي الكريم
أي قاعدة بيانات و أي جدول يكون به مثلا :
الترقيم
الاسم
تاريخ الميلاد
العنوان
و لك كل الشكر و التقدير و الإحترام
تحياتي


وعليكم السلام ورحمة الله وبركاته

يسعدني تلبية طلبك،
الأخ حريف برمجة قام مشكورا بكتابة موضوع: تقارير مايكروسوفت (Report Viewer) وفيه تفصيل كامل،
وإن كنت تريد ما طلبت تماما فبكل سرور ألبي رغبتك
الرد
تم الشكر بواسطة: عبد العزيز البسكري
#6
(24-12-18, 11:28 AM)a.wagdi كتب :
(24-12-18, 03:48 AM)عبد العزيز البسكري كتب :
 السّلام عليكم و رحمة الله و بركاته
أقصد الربط بالداتاسيت Dataset الخاصّة بالمعالج أخي الكريم
أي قاعدة بيانات و أي جدول يكون به مثلا :
الترقيم
الاسم
تاريخ الميلاد
العنوان
و لك كل الشكر و التقدير و الإحترام
تحياتي


وعليكم السلام ورحمة الله وبركاته

يسعدني تلبية طلبك،
الأخ حريف برمجة قام مشكورا بكتابة موضوع: تقارير مايكروسوفت (Report Viewer) وفيه تفصيل كامل،
وإن كنت تريد ما طلبت تماما فبكل سرور ألبي رغبتك


السلام عليكم ورحمة الله

لم أتلقى جوابا منك حتى الآن أخي الكريم!.
الرد
تم الشكر بواسطة: عبد العزيز البسكري
#7
السّلام عليكم و رحمة الله و بركاته
و الله أخي الكريم .. بقيت بقسم الأسئلة مع مشكلة الإتّصال مفتوح و مغلق فنسيت الإتّصال بباقي الأقسام
أرجو المعذرة أخي الغالي ..
بكل تأكيد .. حقيقة أخي الكريم " حريف برمجة " ما قصّر .. جزاه الله خير الجزاء
لكن إذا كانت هناك طريقة أخرى بالتأكيد يسرّني كثيرا معرفتها و متابعة طريقة إنجازها
بانتظارك أخي الكريم
تحياتي
الرد
تم الشكر بواسطة:



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


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