الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن مثال على طريقة عمل تقرير باستخدام DataSet

بدأه ابو رفيق في 14 أبريل 2013 · 3 رد · 1,266 مشاهدة · في تصميم وبرمجة التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

إخواني الكرام أرجو منكم مساعدتي في عمل تقرير كريستال ريبورت باستخدام طريقة DataSet

 

باستخدام vb.net  و Sql2008

بصراحة بحثت وفيه أمثلة كتير موجوده بس مش ظابط الموضوع معايا

مع شرح بالخطوات لطريقة عمله ولكم جزيل الشكر

تم تعديل هذه المشاركة بواسطة ابو رفيق في 14 أبريل 2013 في 08:44

:)  :)  :)  شكرا لكل من علمني حرفا :)  :)  :)


#3

أخي محمد بارك الله فيك

 

جاري دراسة المشاركة وتطبيقها وإعلامك بما وصلت إليه

:)  :)  :)  شكرا لكل من علمني حرفا :)  :)  :)


#4

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

 

طريقتي في ذلك كالتالي:

 

1. أضف ملف Module.vb إلى المشروع وسمه functions.vb، واكتب به الكود التالي:

 

 

Imports System.Data.OleDb

Module functions
    Public Con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\dbName.mdb")
End Module

 

 

حيث dbName هو اسم قاعدة البيانات.

 

2. إذا كنت صممت ملف التقرير خارج فجول بيسك (مثلي) فقم بإضافته إلى المشروع عن طريق فتح القائمة Project ثم Add Existing Item، ثم اختر ملف التقرير من نافذة الحوار التي ستظهر لك.

 

3. الآن اذهب إلى الـForm الذي تود عرض التقرير فيه. وضع عليه CrystalReportViewer، وسمه CryReport مثلاً.

 

4. اكتب الكود التالي في بداية ملف برمجة الفورم:

 

Imports CrystalDecisions.Shared
Imports CrystalDecisions.Shared.OpenReportMethod
Imports CrystalDecisions.CrystalReports.Engine
Imports System.Data.OleDb

 

ثم عرّف متغيراً صحيحاً يمثل رقم السجل الذي تود عرضه في التقرير وكما يلي:

 

 

Public RecID As Integer

 

بعد ذلك، اكتب الكود التالي في حدث التحميل Load للـForm:

 

Dim rpt As New ReportFileName
يعني بنفس اسم ملف التقرير الذي أضناه للمشروع في البند 2
        Dim EmpSql As String = "select * from TABLENAME where ID=" & RecID & ""
        Dim EmpAdapter As New OleDbDataAdapter(EmpSql, Con)
        Dim Empdataset As New DataSet

        If Con.State = ConnectionState.Closed Then
يعني الاتصال غير مفتوح
            Con.Open()
            EmpAdapter.Fill(Empdataset, "LoadAndDisplay")
            If Empdataset.Tables("LoadAndDisplay").Rows.Count > 0 Then
                rpt.SetDataSource(Empdataset)
                CryReport.ReportSource = rpt
                CryReport.Refresh()
                Con.Close()

            Else
                Con.Close()
                Empdataset.Reset()
                Me.Close()
            End If
        Else
يعني الاتصال مفتوح مسبقاً
            EmpAdapter.Fill(Empdataset, "LoadAndDisplay")
            If Empdataset.Tables("LoadAndDisplay").Rows.Count > 0 Then
                rpt.SetDataSource(Empdataset)
                CryReport.ReportSource = rpt
                CryReport.Refresh()
                Con.Close()

            Else
                Con.Close()
                Empdataset.Reset()
                Me.Close()
            End If
        End If
        Empdataset.Reset()

 

ملاحظة:

 

سيتم عرض التقرير بعد أن ترسل قيمة رقم السجل من Form سابق.

 

أرجو أن تجرب الطريقة، وأرجو من الخبراء التصحيح في حال وجود خطأ.

 

لكم تحية.

تم تعديل هذه المشاركة بواسطة أبوبكر بن سويدان في 22 مايو 2013 في 10:21

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…