05-11-13, 04:24 PM
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
و الصلاة و السلام على أشرف خلق الله سيدنا محمد و على آله و صحبه أجمعين
السلام عليكم و رحمة الله و بركاته
و الصلاة و السلام على أشرف خلق الله سيدنا محمد و على آله و صحبه أجمعين
في البداية, كل عام و أنتم بخير بمناسبة السنة الهجرية الجديدة ... عسى الله أن يجعلنا و إياكم من الصالحين.
نكمل اليوم الدرس الثالث و الأخير من هذا المشروع, نبدأ بالدرس على بركة الله.
بعد أن قمنا بالانتهاء من عمل قاعدة البيانات و عمل الواجهات, نقوم بعمل تقرير بسيط و هو لتعلم كيفية التعامل مع تقارير (XtraReport) من خلال الفيجوال بيسك. لذا نقوم بما هو موضح بالصورة أدناه:
![[صورة مرفقة: ca9c9b8b0ac0653.jpg]](http://www.m5zn.com/newuploads/2013/11/05/jpg//ca9c9b8b0ac0653.jpg)
لتظهر لنا الواجهة التالية:
![[صورة مرفقة: 425cd6ea014d609.jpg]](http://www.m5zn.com/newuploads/2013/11/05/jpg//425cd6ea014d609.jpg)
شرح الصورة:
1- نقوم بفتح شجرة (Installed) و من ثم (Common Items).
2- نختار (DevExpress).
3- نضغط على (DXperience v12.2 Report Class).
4- نكتب إسم التقرير (MasterDetailRep.vb).
5- نضغط على (Add).
بعدها سيظهر لنا الموضح أدناه:
![[صورة مرفقة: d760812cc717f0f.jpg]](http://www.m5zn.com/newuploads/2013/11/05/jpg//d760812cc717f0f.jpg)
بعدها نقوم بعدة تعديلات و إضافة بعد الأداوت من الـ (Toolbox) إلى التقرير و هي:
1- نقوم بإضافة (xrLabel) عدد (3).
2- نقوم بإضافة (xrLine) عدد (5).
3- نقوم بإضافة (xrPageInfo) عدد (2).
4- نقوم بإضافة (xrTable) عدد (2).
5- نقوم بإضافة (xrTableCell) عدد (10).
6- نقوم بإضافة (xrTableRow) عدد (2).
نقوم بتغيير بعض الخصائص الخاصة بالواجهة (Form) و الادوات الموجودة عليها لنصل إلى التالي:
![[صورة مرفقة: 1f4cd05c74aec92.jpg]](http://www.m5zn.com/newuploads/2013/11/05/jpg//1f4cd05c74aec92.jpg)
بعد أن قمنا بإضافة التقرير ... سنقوم الأن بكتابة الكود التالي في الواجهة (Form) المسماة بـ (RepViewerFrm) و الكود هو:
كود :
Imports System
Imports System.Windows.Forms
Imports DevExpress.LookAndFeel
Imports DevExpress.XtraReports.UI
Imports DevExpress.XtraPrinting
Imports DevExpress.XtraPrinting.Preview
Public Class RepViewerFrm
Private Sub RepViewerFrm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim rprt As XtraReport = masterdetailreport1()
Dim report As New MasterDetailRep
report.Pages.AddRange(rprt.Pages)
PrintControl1.PrintingSystem = report.PrintingSystem
End Sub
End Classو من ثم نقوم بإضافة الإجراءات التالية إلى الموديل (Module) المسمى بـ (ConProAndFun) و كود الإجراءات هو:
كود :
Sub masterdetailreport()
' ======================================================================
Dim DA1 As New OleDbDataAdapter("SELECT ID, CategoryName, CategoryNotes" &
" FROM Category_Table", Cn)
'==========================================================
Dim DA2 As New OleDbDataAdapter("SELECT ID, ProductCategory, ProductName, ProductUnit, ProductQuantity, ProductPrice, ProductNotes" &
" FROM Product_Table", Cn)
'==========================================================
Dim fDS As New DataSet
fDS.Clear()
'==========================================================
DA1.Fill(fDS, "HeaderTbl")
DA2.Fill(fDS, "DetailTbl")
'==========================================================
Dim RelShp As New DataRelation("HeadDetailID", fDS.Tables("HeaderTbl").Columns("ID"), fDS.Tables("DetailTbl").Columns("ProductCategory"), True)
fDS.Relations.Add(RelShp)
'==========================================================
Dim report As New MasterDetailRep
report.DataSource = fDS
report.DataAdapter = DA1
'==========================================================
' Create the Group Header of the Report
Dim ghead As New GroupHeaderBand
report.Bands.Add(ghead)
Dim gfield As New GroupField("ID")
ghead.GroupFields.Add(gfield)
' Assign the Group Header to the Data
report.XrLabel8.DataBindings.Add("Text", Nothing, "CategoryName")
'==========================================================
report.DetailReport.DataSource = fDS
report.DetailReport.DataMember = "HeadDetailID"
report.DetailReport.DataAdapter = DA2
'==========================================================
report.XrTableCell22.DataBindings.Add("Text", Nothing, "HeadDetailID.ProductName")
report.XrTableCell23.DataBindings.Add("Text", Nothing, "HeadDetailID.ProductUnit")
report.XrTableCell24.DataBindings.Add("Text", Nothing, "HeadDetailID.ProductQuantity")
report.XrTableCell25.DataBindings.Add("Text", Nothing, "HeadDetailID.ProductPrice")
report.XrTableCell26.DataBindings.Add("Text", Nothing, "HeadDetailID.ProductNotes")
'==========================================================
report.ShowPreviewDialog()
DA1.Dispose()
DA2.Dispose()
fDS.Dispose()
Cn.Close()
End Sub
Public Function masterdetailreport1() As XtraReport
' ======================================================================
Dim DA1 As New OleDbDataAdapter("SELECT ID, CategoryName, CategoryNotes" &
" FROM Category_Table", Cn)
'==========================================================
Dim DA2 As New OleDbDataAdapter("SELECT ID, ProductCategory, ProductName, ProductUnit, ProductQuantity, ProductPrice, ProductNotes" &
" FROM Product_Table", Cn)
'==========================================================
Dim fDS As New DataSet
fDS.Clear()
'==========================================================
DA1.Fill(fDS, "HeaderTbl")
DA2.Fill(fDS, "DetailTbl")
'==========================================================
Dim RelShp As New DataRelation("HeadDetailID", fDS.Tables("HeaderTbl").Columns("ID"), fDS.Tables("DetailTbl").Columns("ProductCategory"), True)
fDS.Relations.Add(RelShp)
'==========================================================
Dim report As New MasterDetailRep
report.DataSource = fDS
report.DataAdapter = DA1
'==========================================================
' Create the Group Header of the Report
Dim ghead As New GroupHeaderBand
report.Bands.Add(ghead)
Dim gfield As New GroupField("ID")
ghead.GroupFields.Add(gfield)
' Assign the Group Header to the Data
report.XrLabel8.DataBindings.Add("Text", Nothing, "CategoryName")
'==========================================================
report.DetailReport.DataSource = fDS
report.DetailReport.DataMember = "HeadDetailID"
report.DetailReport.DataAdapter = DA2
'==========================================================
report.XrTableCell22.DataBindings.Add("Text", Nothing, "HeadDetailID.ProductName")
report.XrTableCell23.DataBindings.Add("Text", Nothing, "HeadDetailID.ProductUnit")
report.XrTableCell24.DataBindings.Add("Text", Nothing, "HeadDetailID.ProductQuantity")
report.XrTableCell25.DataBindings.Add("Text", Nothing, "HeadDetailID.ProductPrice")
report.XrTableCell26.DataBindings.Add("Text", Nothing, "HeadDetailID.ProductNotes")
'==========================================================
report.CreateDocument()
DA1.Dispose()
DA2.Dispose()
fDS.Dispose()
Cn.Close()
Return report
End Functionإلى هنا ننتهي من هذه المقالة بحمد الله و شكره و الصلاة و السلام على النبي سيدنا محمد و على آله و صحبه و سلم.
لا أسألكم غير الدعاء لي و لأهلي بالخير ....
أرجوا أن يكون هذا العمل خالصاً لوجه الله تعالى .. و أرجوا أن تستفيدوا منه ....
تحياتي

