15-10-12, 08:41 AM
(آخر تعديل لهذه المشاركة : 15-10-12, 08:46 AM {2} بواسطة محمود رغمان.)
أخيراً نذكر بأن هذه التقارير تستقبل كمصدر لبياناتها كائن قاعدة بيانات Ado ، لذلك لا بد من تعريف هذه الكائنات أولاً وذلك بالشكل التالي :
1- من قائمة Project ثم Refrences قم باختيار مكتبة للأدو مثل :
Microsoft Access ActiveX Data Object 2.5 Library
2 - في أمر الطباعة لا بد من تعريف نسخة من كائن قاعدة البيانات من Ado ونسخة من جدول ومن ثم القيام بعملية التكوين لكليهما بالشكل التالي :
Dim cn As ADODB.Connection
Dim cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Set cn = New ADODB.Connection
Set Rs = New 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 OLEDB
atabase Password=" & PassWord
atabase Password=" & PassWord"
يمكنك زيارة msdn للعثور على كيفية تكوين Connection String على هذا الرابط :
http://msdn.microsoft.com/library/de...onnections.asp
حيث يشرح القسم الذي يشير هذا الرابط إلى أحد أقسامه إلى كيفية بناء Connection String ، كما ويحيلك في آخره إلى أمثله بالكود ال Language Refernce
حيث يشرح القسم الذي يشير هذا الرابط إلى أحد أقسامه إلى كيفية بناء Connection String ، كما ويحيلك في آخره إلى أمثله بالكود ال Language Refernce
ولكن بصورة اجمالية فإنك تمرر في البارميتر الأول نوع قاعدة البيانات ، الثاني تحدد له مكان قاعدة البيانات ، ويمكنك تمرير المزيد من البارميترات لاحقاً مثل كلمة المرور ، ويتم التفريق بين هذه البارميترات من خلال استخدام الفاصلة المنقوطة ; .
4 - الخطوة الاخيرة هي تحديد مصدر البيانات وربطه ب rs ومن ثم ربط rs مع DataReport ، ولا تنس ان مصدر البيانات قد يكون اسماً لجدول أو جملة استعلام :
sql = "select * from table1
"
Set Rs = cn.Execute(sql
Set Rs = cn.Execute(sql
)
Set DataReport1.DataSource = Rs
Set DataReport1.DataSource = Rs
5 - لا تنس أمر اظهار التقرير :
DataReport1.Show
6 - كما يمكنك طباعة التقرير دون عرضه من خلال الأمر :
DataReport1.PrintReport
ويمكنك اضافة بعض البارميترات الاضافية مثل True في البارميتر الأول لعرض مربع حوار طباعة قبل الطباعة لتحديد عدد النسخ وما شابه :
DataReport2.PrintReport True
أو تحديد Range - مدى الصفحات التي ستقوم بطباعتها ، إلى آخر ذلك من بارميترات هذه الوظيفة .
والآن سوف نطبق ما تعلمناه على طباعة شاشة عرض البضائع الرئيسي الموجودة في Frm_Show في البداية سوف نقوم بتكوين DataReport الخاص بنا ، وذلك بالشكل التالي - بعد اضافته من Add طبعاً - .
بالطبع ستكون عناوين الجدول في القسم Page Header لأننا نريد أن تظهر في بداية كل صفحة ، وسوف نقوم برسمها على هيئة Rpt_Labels ، ونضع المعلومات التالية كـ Caption لهذه العناصر .
رقم - اسم البضاعة - اسم المصنع - النوع - السعر - الكمية - وحدة/صندوق .
أي 7 من RptLabel .
وهذا القسم ثابت تماماً ... أما القسم الآخر فهو الذي يعتمد على القراءة من قاعدة البيانات .
سنرسم فيه على نفس العدد RptTextBox ، لكننا لن نضبط خاصية Caption بل إننا سنضبط خاصية Data Field ، وسنضع فيها الحقل مصدر البيانات ، وذلك على النحو التالي - بالترتيب .
tb_product.number - tb_product.name - tb_factory.name - tb_category.name - Price - Count - Box_Count
لاحظ أن الحقول التي لا تتشابه في الجداول توضع كما هي مباشرة ، أما المتشابهه فنسبقها باسم الجدول .
لاحقاً قم بضبط Font كما يحلو لك ، واجعل اللون للصف العلوي مثلاً مختلف عن الآخرين ، أو كما تريد .
قم باضافة ( بسم الله الرحمن الرحيم ) في اول صفحة ، ولا تنس إن اضفتها ألا تقوم بالقاء الورقة التي تطبعها . بامكانك أيضاً المحاذاة إلى اليمن أو اليسار ، أو توسيط النص في أي أداة .
يتبع ...
