إنشاء تقارير Crystal Report بأستخدام vb.net 2010

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

إنشاء تقارير Crystal Report بأستخدام vb.net 2010

مُساهمة من طرف م/موسي في السبت سبتمبر 14, 2013 9:04 pm

بسم الله الرحمن الرحيم

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

حيث يمكنك من خلالها الوصول إلى البيانات من قواعد البيانات المختلفة مثل SQL Server, My SQL, MS Access, Oracle أوراكل،.....الخ وهذا غيض من فيض.

في هذا المقال التعليمي سوف أشرح لك أسهل طريقة لإنشاء تقرير بسيط باستخدام Crystal Report  وVB.Net. ولكن قبل أن نبدأ تأكد أن لديك حزمة Crystal Report مثبتة في جهاز الكمبيوتر الخاص بك ....و أحب أن أنوه أن هذا الدرس التعليمي سنشرح فية كيفية الوصول الى قواعدة بيانات أكسس MS 2007 من خلال نسخة الفجوال دوت نت 2010

1_ افتح Visual Studio و إنشاء اسم مشروع VB.Net ذلك بأسم CrystalReportSample على سبيل المثال :


2_إضافة نموذج قاعدة البيانات إلى المشروع وذلك من خلال مستكشف الحلول، انقر بزر الماوس الأيمن المشروع -> إضافة -> عنصر موجود، project -> Add -> Existing Item والبحث وإضافة قاعدة البيانات باستخدام مربع الحوار  file browser dialog  إذا ظهر معالج مصدر البيانات فقط انقر فوق إلغاء الأمر


3_حدد ملف قاعدة البيانات في مستكشف الحلول ثم قم بتعيين خصائصه التالية ...الخاصية Copy to Output Directory الى Copy if newer ....و تعيين الخاصية Build Action الى Content كما فى الصورة التالية


4_ إنشاء ملف تقرير كريستال ....وذلك من خلال الذهاب إلى solution explorer  ثم Project -> Add -> New Item ثم إضافة تقرير الكريستال وليكن بأسم  OrderReport.rpt كما فى الصورة التالية :


5_ من المربع الحوارى الذى سيظهر أختر الخيار blank report ثم قم بالنقر على زر الامر ok كما فى الصورة التالية :


6_حدد الملف OrderReport.rpt في مستكشف الحلول ثم تعيين خصائصه على النحو التالى Build Action = Content  و ايضا Copy to Output Directory = Copy if newer  كما فعلنا مع ملف قاعدة البيانات بالضبط


7_انقر نقرا مزدوجا فوق الملف OrderReport.rpt؛ ....بعد ذلك أذهب الى قوائم الفجوال استديوا ثم قائمة crystal reports menu < Database < Database Expert كما فى الصورة التالية :


8 _ فى المربع الحوارى الذى سيظهر Database Expert  قم بالنقر على Create New Connection ثم أختر OLE DB ADO ثم أختر Microsoft Office 12.0 Access Provider و هذا هو المزود الذى سيقوم بالاتصال بقواعد بيانات أكسس 2007 ....ثم بعد ذلك قم بالنقر على زر الامر next


9_ تعيين مصدر البيانات عن طريق تحديد موقع ملف قاعدة البيانات الخاصة بك (Access2007PureSQL.accdb) داخل مجلد المشروع؛ انقر على زر إنهاء.


10_انقر فوق Views -> ثم حدد الاستعلام Qry_Conditions ثم انقر فوق الزر >< لاضافة الاستعلام .....(ملاحظة: يمكنك أيضا اختيار إضافة أأحد الجداول إذا كنت تريدها  ولكن في هذا الدرس استخداممنا الاستعلام Qry_Conditions التي تم حفظها في قاعدة بيانات Access)؛ انقر على زر موافق -


11_ تصميم و تخطيط التقرير ....تزفر تقارير الكريستال ادوات و عناصر تساعدك على تصميم و تخطيط التقرير .....فبإمكانك مثلا فعل ما يلى :

_ إنشاء عنوان للتقرير عن طريق إضافة مربع نص فى رأس التقرير ....حيث يمكنك اضافة مربع النص من خلال قائمة Crystal Reports ثم اختيار الامر Insert ثم أختيار Text Objec ثم قم بتسمية بأسم ORDER REPORT

_ كما يمكنك تنسيق مربع النص بالنقر بزر الماوس فوقه ثم حدد تنسيق كائن و من خلال نافذة الخصائص يمكنك تحديد نوع وحجم الخط و لونة ....الخ

_  اسحب الحقل OrderID من مستكشف الحقول field explorer  وقم بوضعة فى قسم التفاصيل Details للتقرير ....قم بإضافة مربع نص آخر فى قسم التفاصيل Details للتقرير و اسحب حقل firstanme داخل مربع النص،  ثم اسحب حقل  lastname داخل مربع النص أيضا. ليتم تخطيط التقرير كما هو مبين في الصورة أدناه


12_عرض التقرير فى النافذة .....قم باضافة نافذة جديدة للمشروع بأسم frmReportViewer مثلا ....ثم قم بتعين الخاصية Window State الى Maximized ....قم بسحب الاداة Crystal Report Viewer من مربع الادوات toolbox  الى النافذة الجديدة .....و إن لم تجد الاداة Crystal Report Viewer فى صندوق الادوات كل ما عليك فعله هو تغير اصدار framework   الى نسخة framework 4 ثم اذهب الى صندوق الادوات ستجدها ....ويتم تغير نسخة framework  كما فى الصورة التالية :



13_ كتابة الاكواد ...

_ فى البداية سنقوم بإنشاء وظيفة لقراءة البيانات من قاعدة البيانات وإرجاع مجموعة من البيانات التي سيتم استخدامها كمصدر بيانات فى  التقرير و ليكن وظيفة بأسم GetOrderList بداخل frmReportViewer ....على النحو التالى :
الرمز:

Imports System.DataImports System.Data.OleDb
Public Class frmReportViewer

End Class
Private Sub frmReportViewer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


End Sub

Function GetOrderList()

    Dim ds As New DataSet
    Dim conn As New OleDbConnection
    Dim cmd As New OleDbCommand
    Dim da As New OleDbDataAdapter
    Dim sConnstring As String
    Try

        sConnstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\Access2007PureSQL.accdb;Persist Security Info=False;"
        conn = New OleDbConnection(sConnstring)
        cmd.Connection = conn
        cmd.CommandType = CommandType.StoredProcedure
        cmd.CommandText = "Qry_Conditions"
        da.SelectCommand = cmd
        da.Fill(ds)
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
    Return ds
End Function
End Class
_ أخير نقوم بانشاء اجراء و ليكن بأسم PrintPreview لتحميل التقرير و عرض مصدر البيانات و ذلك على النحو التالى :
الرمز:
Public Sub PrintPreview()

    Dim rptDocument As CrystalDecisions.CrystalReports.Engine.ReportDocument = Nothing
    Try

        Windows.Forms.Cursor.Current = Cursors.WaitCursor
        If rptDocument Is Nothing Then
            rptDocument = New CrystalDecisions.CrystalReports.Engine.ReportDocument
        End If
        rptDocument.Load(Application.StartupPath & "\OrderReport.rpt")
        dsOrder = GetOrderList()
        rptDocument.SetDataSource(dsOrder.Tables(0))
        CrystalReportViewer1.ReportSource = rptDocument
    Catch ex As Exception
        MessageBox.Show("mod_generic - PrintPreview" & ControlChars.NewLine & ex.Message.ToString())
        Exit Sub
    Finally
    End Try
End Sub
_ بعد ذلك يتم استخدام هذا الاجراء فى حدث التحميل للتقرير frmReportViewer_Load على النحو التالى :
الرمز:
Private Sub frmReportViewer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    PrintPreview()
End Sub

م/موسي
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 130
النقاط : 252
التقيم : 8
الدولة : تونس
الجنس : ذكر

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

رد: إنشاء تقارير Crystal Report بأستخدام vb.net 2010

مُساهمة من طرف NEXT في الإثنين سبتمبر 16, 2013 10:19 am

مرحبا أخى العرب ....بقالك فترة مختفى Very Happy

NEXT
الادارة
الادارة

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

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

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


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