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


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

أحببت اليوم أن أقوم بطرح موضوع حول "كيفية التعامل مع تقارير XtraReport" التي أعتبرها أكثر من رائعة لتميزها بخصائص جميلة جداً ....

نبدأ على بركة الله:

في البداية نقوم بتصميم قاعدة البيانات كما في الصور الموضحة أدناه:







بعد أن قمنا بالانتهاء من عمل قاعدة البيانات, نقوم بفتح مشروع جديد من خلال VS و ذلك بالضغط على (New Project).

نقوم بغلق هذه الواجهة (Form1) و من ثم نقوم بعمل التالي:


نقوم بعمل (Delete) لهذه الواجهة كما هو موضح بالصورة أعلاه.

نقوم بالتالي:


شرح الصورة:
1- نقوم بإختيار (Windows Forms).
2- نكتب إسم الواجهة (RepViewerFrm).
3- نضغط على (Add).
4- بعد أن تظهر لنا الواجهة (Form) الجديدة (RepViewerFrm), نقوم بإضافة بعض الأدوات:
- نقوم بإضافة (PrintBarManager) عدد (1).
- نقوم بإضافة (PrintControl) عدد (1).
نقوم بتغيير بعض الخصائص الخاصة بالواجهة (Form) و الادوات الموجودة عليها لنصل إلى التالي:


بعدها نقوم بإضافة موديل (Module) لتظهر لنا الواجهة التالية:


شرح الصورة:
1- نقوم بإختيار (Module) و نكتب إسمه (ConProAndFun).
2- نضغط على (Add).

بعد أن قمنا بإضافة كل ما يلزمنا من واجهات (Forms) و موديل (Module), نقوم الأن بإضافة التقرير.

نقوم بعمل تقرير بسيط و هو لتعلم كيفية التعامل مع تقارير (XtraReport) من خلال الفيجوال بيسك.

نقوم بإضافة عنصر جديد إلى المشروع و ستظهر لنا الواجهة التالية:


شرح الصورة:
1- نقوم بفتح شجرة (Installed) و من ثم (Common Items).
2- نختار (DevExpress).
3- نضغط على (DXperience v12.2 Report Class).
4- نكتب إسم التقرير (MasterDetailRep.vb).
5- نضغط على (Add).
بعدها سيظهر لنا الموضح أدناه:


بعدها نقوم بعدة تعديلات و إضافة بعد الأداوت من الـ (Toolbox) إلى التقرير و هي:
1- نقوم بإضافة (xrLabel) عدد (3).
2- نقوم بإضافة (xrLine) عدد (5).
3- نقوم بإضافة (xrPageInfo) عدد (2).
4- نقوم بإضافة (xrTable) عدد (2).
5- نقوم بإضافة (xrTableCell) عدد (10).
6- نقوم بإضافة (xrTableRow) عدد (2).
نقوم بتغيير بعض الخصائص الخاصة بالواجهة (Form) و الادوات الموجودة عليها لنصل إلى التالي:


بعد أن قمنا بإضافة التقرير ... سنقوم الأن بكتابة الكود التالي في الواجهة (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) و كود الإجراءات هو:

كود :
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports DevExpress.XtraReports
Imports DevExpress.XtraReports.UI
Imports DevExpress.XtraPrinting
Imports System.Data.OleDb
Imports System.Data

Module ConProAndFun
    Public Cn As New OleDbConnection("Provider=MicrosoftCJetCOLEDBC4C0;Data Source=" & ApplicationCStartupPath & "\XtraReportCmdb;OLE DB Services=-1")
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 bead As New GroupHeaderBand
        report.Bands.Add(bead)
        Dim gfield As New GroupField("ID")
        bead.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


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


تحياتي
الرد }}}
تم الشكر بواسطة: سعود , Sajad , Abu Ehab , abulayth , surgam , WAEL ABED


الردود في هذا الموضوع
كيفية التعامل مع XtraReport - بواسطة hoob computer - 10-11-13, 01:51 PM
RE: كيفية التعامل مع XtraReport - بواسطة Sajad - 10-11-13, 09:40 PM
RE: كيفية التعامل مع XtraReport - بواسطة Abu Ehab - 11-11-13, 05:15 PM
RE: كيفية التعامل مع XtraReport - بواسطة Abu Ehab - 12-11-13, 12:01 PM
RE: كيفية التعامل مع XtraReport - بواسطة Abu Ehab - 01-03-14, 12:34 AM


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


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