ابسط طريقة لإنشاء تقارير Crystal Report فى الفجوال بيسك 2010

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

ابسط طريقة لإنشاء تقارير Crystal Report فى الفجوال بيسك 2010

مُساهمة من طرف RANA في الإثنين مارس 09, 2015 4:39 am

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

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

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

1_ أفتح Visual Studio وقم بانشاء مشروع نوافذ جديد وليكن باسم CrystalReportSample

2_ فى نافذة solution explorer ثم قم بالقر يمين على ايقونة project ثم اختر Add -> Existing Item




3_ قم بالبحث وإضافة  قاعدة البيانات باستخدام مربع الحوار file browser الذى سوف يظهر لك ....واذا ظهر لك معالج مصدر البيانات أنقر فوق الغاء


4_ حدد ملف قاعدة بيانات في solution explorer ومن نافذة الخصائص قم بتعيين خصائصه على النحو التالى :


  • الخاصية Build Action : Content


  • الخاصية Copy to Output Directory : Copy if newer



كما فى الصورة أدناه


5_ اذهب الى نافذة المستكشف solution explorer ثم حدد Project -> Add -> New Item ليتم فتح نافذة اخرى لاضافة مستند او تقرير كريستال الى المشروع وليكن باسم OrderReport.rpt


6_ قم بتحدد تقرير فارغ blank report  من نافذة Crystal Report gallery ثم انقر ok




7_ حدد الملف OrderReport.rpt في نافذة المستكشف  solution explorer ثم تعيين خصائصه مثل ما فعلنا في قاعدة البيانات


  • الخاصية Build Action : Content


  • الخاصية Copy to Output Directory : Copy if newer



8_ قم بالنقر دبل كليك على الملف OrderReport.rpt ستجد قائمة باسم crystal reports من ضمن قوائم الفجوال استديوا قم بالذهاب الى Database -> Database Expert.


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


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


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



12_ بعد ذلك نقوم بتخطيط التقرير على النحو التالى :

_إنشاء عنوان التقرير بإضافة مربع النص بالنقر فوق Crystal Reports menu -> Insert -> Text Object ثم وضعه على الصفحة فى قسم header section  ثم اكتب "ORDER تقرير".

_تنسيق مربع النص عن طريق النقر بزر الماوس الأيمن عليه ثم حدد Format Object.

_اسحب حقل OrderID من نافذة field explorer  إلى التقرير و ضعه فى قسم Details Section .

_إضافة نص آخر في قسم Details Section ثم اسحب الحقل firstanme داخل مربع النص،  ثم اسحب حقل اللقب داخل مربع النص أيضا. تخطيط التقرير كما هو مبين في الصورة أدناه، يمكنك النقر تقرير معاينة الرئيسية لاختباره.



13_ من صندوق الادوات قم بسحب العنصر CrystalReportViewer الى النافذة و قم بتسمية و ليكن باسم frmReportViewer


إذا لم تتمكن من العثور على العنصر CrystalReportViewer في مربع الأدوات قم بتغير تغيير الإطار الهدف لبرنامج  الى .NET Framework 4

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

الرمز:

Imports System.Data
Imports System.Data.OleDb
Public Class frmReportViewer
 
    Private Sub frmReportViewer_Load(sender As System.Object, 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

15_ نقوم بانشاء اجراء بيانات جديدة وتسميته dsOrder. وهذا الإجراء بهدف تحميل التقرير وتعيين مصدر التقرير من مجموعة البيانات. وضع الإجراء PrintPreview في تحميل frmReportViewer  راجع التعليمات البرمجية كاملة من frmReportViewer أدناه.


الرمز:

Imports System.Data
Imports System.Data.OleDb
Public Class frmReportViewer
    Dim dsOrder As New DataSet
    Private Sub frmReportViewer_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        PrintPreview()
    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
 
    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
End Class

RANA
....
....

تاريخ التسجيل : 01/08/2013
المساهمات : 64
النقاط : 103
التقيم : 1
الدولة : فلسطين
الجنس : انثى

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

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


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