تقييم الموضوع :
  • 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 ك ب / التحميلات : 127)
الرد }}}


الردود في هذا الموضوع
درس استخدام الكلاس من تقارير ريبورت فيور - بواسطة a.wagdi - 24-12-18, 01:01 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] كرستال ريبورت vb.net 2010 MOHAMMED ALZWI 2 910 14-02-25, 01:44 AM
آخر رد: احمد عرينى
  [VB.NET] تقرير كريستال ريبورت تفاعلي Aminsoft 0 338 02-02-25, 11:24 AM
آخر رد: Aminsoft
  استخدام الأداة AxWindowsMediaPlayer1 abuzarei 0 538 29-09-23, 08:07 PM
آخر رد: abuzarei
  هوامش الصفحة بالكريستال ريبورت NasserNasser 2 758 17-09-23, 02:06 PM
آخر رد: NasserNasser
Video [درس فيديو] استخدام داتا جريد فيو متقدمة يمكنها فلترة البيانات وترتيبها ahmadpal 1 3,335 17-04-22, 08:35 AM
آخر رد: ahmedramzyaish
  [مشروع] استخدام شبيكة بيانات واحدة لاكثر من .... تعال وشوف كيف سعود 3 2,105 15-12-21, 11:20 PM
آخر رد: سعود
  [مثال] طريقة استخدام MPV Player وتضمينه داخل يرنامجك معاند الحظ 1 2,091 04-12-21, 04:37 AM
آخر رد: ابو روضة
Photo [مشروع] الطباعة من خلال الوورد MS Word ، تقارير ، كشوفات ، والكثير عبدالله الدوسري 23 53,486 28-06-21, 07:37 PM
آخر رد: i1982
  شرح كريستال ريبورت في 35 دقيقة ggtt17121985 0 2,108 09-04-21, 01:24 AM
آخر رد: ggtt17121985
Smile [VB.NET] {تم التعديل}مثال حول استخدام مكتبات جوجل درايف معاند الحظ 3 3,448 31-03-21, 12:31 AM
آخر رد: messry

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


يقوم بقرائة الموضوع: