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

الطباعة من خلال جدولين أو أكثر

بدأه jamalavec في 12 مارس 2011 · 5 رد · 811 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلا م عليكم

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

وهدا هو الكود المستعمل

Dim SQlR As String
Dim D1 As System.DateTime = DateTime.Parse(Absence.DateTimePicker2.Text, System.Globalization.CultureInfo.CreateSpecificCulture("en-AU").DateTimeFormat)
        Dim D2 As System.DateTime = DateTime.Parse(Absence.DateTimePicker3.Text, System.Globalization.CultureInfo.CreateSpecificCulture("en-AU").DateTimeFormat)
SQlR = "Select CODE_ABS,DATE_ABS" & _
        ",RSN_ABS,Employer.N_EMPL" & _
        ",Nom,PRN,Employer.N_TEL" & _
        ",DATE_EMB " & _
        "FROM Employer,Abscence " & _
        "WHERE Employer.N_EMPL=Abscence.N_EMPL " & _
        "and DATE_ABS BETWEEN Trim(#" & D1 & " #) and Trim(#" & D2 & " #)"

        Conn.Open() 
        Dim DataAdapterCR As New OleDbDataAdapter(SQlR, Conn) : Absence.ProgressBar1.Value = 40 'WHERE N_EMPL = '1
        Dim CR As New ListeAbscence
        Dim DS As New DataSet 
        DataAdapterCR.Fill(DS) 
        CR.SetDataSource(DS.Tables(0)) 
        Me.CrystalReportViewer1.ReportSource = CR
        Conn.Close()

حيث أن البيانات تظهر في DataGridView لكن في التقرير تنجح العملية ادا كان الاستعلام من جدول واحد اما ادا كان أكثر فانه لا يعرض أي شيء

#2

ارفق لنا المثال حتي نتمكن من معرفة الخطء

#3
اقتباس
ارفق لنا المثال حتي نتمكن من معرفة الخطء

ليس هناك أي خطأ كما ترى اخي الكريم في الكود فهو يعمل ادا كان الاستعلام من جدول واحد أي

SQlR = "Select " & _
        "Employer.N_EMPL" & _
        ",Nom,PRN,Employer.N_TEL" & _
        ",DATE_EMB " & _
        "FROM Employer"

اما ادا كان من جدولين أو أكثر فأن التقرير لا يظهر أي شيء

SQlR = "Select CODE_ABS,DATE_ABS" & _
        ",RSN_ABS,Employer.N_EMPL" & _
        ",Nom,PRN,Employer.N_TEL" & _
        ",DATE_EMB " & _
        "FROM Employer,Abscence " & _
        "WHERE Employer.N_EMPL=Abscence.N_EMPL " & _
        "and DATE_ABS BETWEEN Trim(#" & D1 & " #) and Trim(#" & D2 & " #)"

الجدولين هما كما ترى بالكود Employer و Abscence

مع العلم أن الاستعلام من جدولين أو أكثر يطهر في DataGridView

وشكرا أخي الكريم

#4

اعتقد ان المشكله في شكل ربط الجدولين مع البعض في ال Crystal Reports انه يتستخدم join في الربط وليس where

#5
اقتباس
اعتقد ان المشكله في شكل ربط الجدولين مع البعض في ال Crystal Reports انه يتستخدم join في الربط وليس where

قمت بتغيير جملة الاستعلام و جربت الربط ب join لكن بدون جدوى

#6

و بفضل الله عز و جل وجدت الحل و هو باظافة DATASET.XSD الى المشروع و استعمال استعلامين ليصبح الكود

Dim SQLR1 As String
        Dim SQLR2 As String
        Dim D1 As System.DateTime = DateTime.Parse(Absence.DateTimePicker2.Text, System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR").DateTimeFormat) 'en-AU
        Dim D2 As System.DateTime = DateTime.Parse(Absence.DateTimePicker3.Text, System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR").DateTimeFormat) 'en-AU
        SQLR1 = "SELECT * From Abscence WHERE DATE_ABS BETWEEN Trim('" & D1 & "') and Trim('" & D2 & "')"
        SQLR2 = "SELECT * FROM Employer"
        If Conn.State = ConnectionState.Open Then Conn.Close() : Absence.ProgressBar1.Value = 10
        Conn.Open() : Absence.ProgressBar1.Value = 30
        Dim DataAdapterCR1 As New OleDbDataAdapter(SQLR1, Conn) : Absence.ProgressBar1.Value = 40 'WHERE N_EMPL = '1'
        Dim DataAdapterCR2 As New OleDbDataAdapter(SQLR2, Conn)
        Dim CR As New CrystalReport3
        Dim DS As New DataSet1 : Absence.ProgressBar1.Value = 60
        DataAdapterCR1.Fill(DS, "Abscence") : Absence.ProgressBar1.Value = 70
        DataAdapterCR2.Fill(DS, "Employer")
        If Me.BindingContext(DS.Tables(0)).Count = 0 Then
            MsgBox("Aucun Employer a ete abscente dans cette periode", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)
            Me.Dispose()
            'Exit Sub
        End If
        'CR.SetDataSource(DS.Tables(0)) : Absence.ProgressBar1.Value = 100
        CR.Database.Tables(0).SetDataSource(DS)
        Me.CrystalReportViewer1.ReportSource = CR
        'Me.CrystalReportViewer1.Refresh()
        Conn.Close()

والطر يقة تجدونها اخواني مشروحة في المرفقات في ملف PDF

Crystal Reports for Visual Studio .NET.pdf

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

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

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

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

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