تعلم إنشاء التقارير باستخدام DataReport

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

تعلم إنشاء التقارير باستخدام DataReport

مُساهمة من طرف السنى في الأحد يوليو 14, 2013 7:38 am

 كاتب المقال أحمد جمال
www.vb4arab.com

ما هي الداتا ريبورت DataReport

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


وسوف نتعرف في هذا الدرس على كيفية التعامل مع DataReport بطريقتين وذلك على النحو التالى :

الطريقة الاولى : أنشاء تقارير DataReport بالشفرة

لنضيف DataRreport فإننا ومن خلال النقر بزر الماوس الايمن على الفورم سوف تظهر لنا Add ، ونختار منها DataReport . او عن طريق قائمة project





نلاحظ أن الصفحة التي ظهرت لنا مقسمة إلى خمسة اقسام :



  • Report Header  : البيانات التي تظهر فقط مع أول صفحة في التقرير .
  • Page Header : البيانات التي تظهر على رأس كل صفحة .
  • Detailes : محتويات التقرير ، ويمكن ان تعرض على اكثر من صفحة .
  • Page Footer : ما يظهر مع كل آخر صفحة .
  • Report Footer : بيانات تظهر في آخر صفحة في التقرير فقط .



والآن سوف تجد على يمين الشاشة مربع أدوات تحكم Control Box غير المعتاد في شاشات فيجوال بيسك التقليدية تحت تبويب Tab باسم DataReport ، وتحتوي على الأدوات التالية - من اليسار - :



  • Pointer: وهو مؤشر السهم المعروف في الفيجوال بيسك . ويستخدم للتحديد وغيره مما لا يلزمنا شرحه .
  • RptLabel  هو مجرد أداة لعرض النصوص التي لا تعتمد على قاعدة البيانات ، يمكن تغيير محتواها فقط بواسطة الكود قبل العرض مثلاً ، وتستخدم لوضع العنوان مثلاً وما شابه .
  • RptText : هذا النوع مخصص للارتباط بحقل معين في قاعدة البيانات ، ويستخدم لوضع بيانات العملاء على سبيل المثال ، وسوف نتعرف لاحقاً على كيفية القيام بذلك .
  • RptImage: لوضع صورة في التقرير . يمكن ضبطها أيضاً وقت التصميم باستخدام LoadPicture المعروفة .
  • RptLine: خط لتنسيق طباعة التقرير .
  • RptShape: أيضاً مثل ال Line السابق .
  • RptFunction: تستخدم لعرض بعض العمليات التي قد نحتاج إليها لاحقاً ، وسنرى أمثلة عن ذلك لاحقاً .



وللبدء في التعامل مع البيانات من خلال زر عرض التقرير .

أولاً : للتحكم في الخصائص الثابتة .

مثل بيانات Rptlable ، الألوان وغير ذلك .
قم أولاً بوصف اسم DataReport ، ثم اسم القسم ، ثم اسم الاداة بالشكل التالي :


الرمز:
DataReport2.Sections("Section2").Controls("l1").Ca ption = Lbl_name



ويمكن بنفس الطريقة التحكم بالالوان وما شابه ذلك .

القسم الثاني : كيفية ربط ال RptTextBox بقاعدة البيانات .

خلال مرحلة التصميم احرص على ضبط الخواص التالية :

DataMember و DataFields لتحديد اسم قاعدة البيانات ( كائن قاعدة البيانات أو اداتها ) ، و اسم الحقل المطلوب عرضه في هذا المكان .


ويمكن ضبطهما وقت التصميم أو التنفيذ ، ففي وقت التصميم وفي حقل DataFields يمكنك كتابة اسم الحقل مثل fullname ، في حين قم مثلاً بتنفيذ أمر تحديد مصدر البيانات وقت التنفيذ بالشكل التالي :


الرمز:
Set DataReport1.DataSource = Rs


وهذا ما سنقوم بتوضيحه عند البدء في العمل مع الداتا ريبورت في برنامجنا .

القسم الثالث : كيفية استخدامRptLable لعرض بعض العمليات .

يتم ذلك بوضع القيمة المناسبة في خاصية Caption لهذه الأداة ، فمثلاً لو قمنا بكتابة %D فإن ذلك يعطينا تاريخ اليوم ، %T تعطينا الوقت ، %P تعطينا عدد الصفحات الاجمالي ، أما %p فتعطينا رقم الصفحة الحالية .

القسم الرابع : كيفية استخدام RptFunction


من خلال الخاصية FucntionType نختار طبيعة العملية التي نود القيام بها ، وذلك بعض ضبط خصائص قاعدة البيانات الخاصة بها كما اسلفنا في RptText ، ولن نستخدم هذه الاداة في برنامجنا .

نود ان نذكر بأن هذه التقارير تستقبل كمصدر لبياناتها كائن قاعدة بيانات مثل Ado  ،لذلك لا بد من تعريف هذه الكائنات أولاً وذلك بالشكل التالي :


1- من قائمة Project ثم Refrences قم باختيار مكتبة للأدو مثل :

Microsoft Access ActiveX Data Object 2.5 Library

2 - في أمر او زر  الطباعة لا بد من تعريف نسخة من كائن قاعدة البيانات من Ado ونسخة من جدول ومن ثم القيام بعملية التكوين لكليهما بالشكل التالي :
الرمز:

Dim cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Set cn = New ADODB.Connection
Set Rs = New ADODB.Recordset


3 - والآن قم بربط قاعدة البيانات بمصدر قاعدة البيانات من نوع أكسيس مثلاً على سبيل المثال من خلال Connection String بالشكل التالي :

الرمز:

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Folder & "db1.mdb;" & "Jet OLEDBatabase Password=" & PassWord"



يمكنك زيارة msdn للعثور على كيفية تكوين Connection String على هذا الرابط :

http://msdn.microsoft.com

حيث يشرح القسم الذي يشير هذا الرابط إلى أحد أقسامه إلى كيفية بناء Connection String ، كما ويحيلك في آخره إلى أمثله بالكود ال Language Refernce او تابع معنا في منتديات اوتما وستجد اننا سنغطي هذا الجزء بإذنه تعالى

4 - الخطوة الاخيرة هي تحديد مصدر البيانات وربطه ب rs ومن ثم ربط rs مع DataReport ، ولا تنس ان مصدر البيانات قد يكون اسماً لجدول أو جملة استعلام :

الرمز:

sql = "select * from table1"
Set Rs = cn.Execute(sql)
Set DataReport1.DataSource = Rs


5 - لا تنس أمر اظهار التقرير :

الرمز:

DataReport1.Show


6 - كما يمكنك طباعة التقرير دون عرضه من خلال الأمر :

الرمز:

DataReport1.PrintReport



ويمكنك اضافة بعض البارميترات الاضافية مثل True في البارميتر الأول لعرض مربع حوار طباعة قبل الطباعة لتحديد عدد النسخ وما شابه :

الرمز:

DataReport2.PrintReport True


أو تحديد Range - مدى الصفحات التي ستقوم بطباعتها ، إلى آخر ذلك من بارميترات هذه الوظيفة .ولمن يملك حزمة   service Pack 6

يمكنك الطباعة بالعرض بإستخدام هذا الكود فقط
الرمز:

DataReport11.Orientation = rptOrientLandscape


والطباعة بالشكل العمودي نستخدم هذا الكود
الرمز:

 DataReport11.Orientation = rptOrientPortrait



ولمن لا يملك الحزمة SP6  يستطيع تحميلها من هنا


الطريقة الثانية :أنشاء تقارير DataReport باستخدام Data Environment

ما تم ذكره سابقا كان بطريقة كتابة الشفرة ... ويمكننا الاستفادة من نفس الادارة DataReport بدون كتابة ولا كود ويتم ذلك عن طريقة  امكانيات ,Data Environment كمــا يلــي :


أولا:اضافة استدعاء الاداة من قائمة project  

ثانيا : اضافة هذه المكتبة  



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




رابعا  ستظهر لك جداول القاعدة كما يلي حدد منها ما تريد  




خامسا   قم بتحديد الحقول التي تريد اظهارها  





سادسا   ابدء برسم الحقول على اداة التقارير  



سابعا : حدد مصدر البيانات :






مع بعض التنسيقات والخطوط يصبح التقرير جاهزً




عدل سابقا من قبل السنى في السبت مايو 14, 2016 5:33 pm عدل 2 مرات

السنى
.......
.......

تاريخ التسجيل : 18/02/2011
المساهمات : 186
النقاط : 346
التقيم : 18
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم إنشاء التقارير باستخدام DataReport

مُساهمة من طرف أحمد مناع في الخميس يوليو 18, 2013 7:25 am

أشكرك على جهدك يا سنى

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم إنشاء التقارير باستخدام DataReport

مُساهمة من طرف جمعه في الأحد سبتمبر 06, 2015 10:48 am

تسلم يدك اشكرك

جمعه
..
..

تاريخ التسجيل : 19/05/2015
المساهمات : 12
النقاط : 16
التقيم : 0
الدولة : ليبيا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد على تعلم إنشاء التقارير

مُساهمة من طرف Araby في السبت مايو 14, 2016 12:40 pm

السلام عليكم ورحمة الله
مشكور أخي السنى على المعلومات النيرة وبالمناسبة عندي مشكلة في datareport
وهو هل يمكنني ان أغير قيمة التيكست الموجود في رأس التقرير من خلال form دون
فتح datareport في كل مرة جزاك الله كل خير

Araby
..
..

تاريخ التسجيل : 16/03/2016
المساهمات : 15
النقاط : 31
التقيم : 0
الدولة : المغرب
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم إنشاء التقارير باستخدام DataReport

مُساهمة من طرف السنى في السبت مايو 14, 2016 4:57 pm

Araby كتب:السلام عليكم ورحمة الله
مشكور أخي السنى على المعلومات النيرة وبالمناسبة عندي مشكلة في datareport
وهو هل يمكنني ان أغير قيمة التيكست الموجود في رأس التقرير من خلال form دون
فتح datareport في كل مرة جزاك الله كل خير

نعم يمكنك فعل ذلك با استخدام الكود التالى :

الرمز:
DataReport1.Sections("Section4").Controls("Label1").Caption = Text1.Text

حيث أن Label1 هو العنصر الذى سيقوم بعرض اسم للتقرير من خلال text1 اللى فى الفورم

السنى
.......
.......

تاريخ التسجيل : 18/02/2011
المساهمات : 186
النقاط : 346
التقيم : 18
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تصميم التقارير

مُساهمة من طرف Araby في السبت مايو 14, 2016 9:44 pm

السلام عليكم  ورحمة الله  وتحية خاصة للأخ السنى
أريدإدخال رقم بالتتابع لعدد السجلات في التقرير مثلا من 1 إلى 40
كما نعمل في عدد الصفحات ‎%‎P هل من الممكن في الأرقام المتتابعة فعل  ذالك 
جزاكم الله كل خير

Araby
..
..

تاريخ التسجيل : 16/03/2016
المساهمات : 15
النقاط : 31
التقيم : 0
الدولة : المغرب
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم إنشاء التقارير باستخدام DataReport

مُساهمة من طرف Nashat Easa في الثلاثاء مايو 31, 2016 11:48 pm

I can't download this file,please

Nashat Easa
.
.

تاريخ التسجيل : 03/05/2016
المساهمات : 2
النقاط : 2
التقيم : 0
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى