تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[ تمّ الحل ] : تساؤل حول الطباعة من خلال جدولين بقاعدة البيانات
#1
السّلام عليكم و رحمة الله و بركاته
إخواني الأكارم .. أرجو المساعدة لحل هذه الإشكالية بارك الله فيكم و لكم مقدما
لديّ جدولين اثنين بقاعدة البيانات
جدول رأس الفاتورة TBL_INVOICES_VENTE
جدول بيانات الفاتورة TBL_INVOICES_VENTE_DETAILS
الرابط المشترك بينهما هو الحقل : INVOICES_VENTE_Code و INVOICES_VENTE_DETAILS_Code
المشكلة أثناء إختيار كود الفاتورة بالتاكست بوكس رقم 2
عند الطباعة تظهر بيانات تفاصيل الفاتورة مكرّرة
حاولت بالعديد من الأكواد لكن بدون فائدة
هذا هو الكود المستخدم للطباعة
كود :
  Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
       If Me.TextBox2.Text = vbNullString Then
           MessageBox.Show("الرّجاء .. كتابة كود الفاتورة", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
       Else
           Cursor.Current = Cursors.WaitCursor
           Dim AzizCrystal As New ReportDocument
           Dim crtableLogoninfo As New TableLogOnInfo
           Dim crConnectionInfo As New ConnectionInfo
           Dim CrTables As Tables
           Try
               Dim MyReportPath As String = Application.StartupPath & "\FolderReport\Crystal1.Rpt"
               AzizCrystal.Load(MyReportPath)
               With crConnectionInfo
                   .ServerName = Application.StartupPath & "\MARKETING.Mdb"
                   .DatabaseName = Application.StartupPath & "\MARKETING.Mdb"
                   .UserID = "Admin"
                   .Password = "AZERTY987654"
               End With
               CrTables = AzizCrystal.Database.Tables
               For Each CrTable In CrTables
                   crtableLogoninfo = CrTable.LogOnInfo
                   crtableLogoninfo.ConnectionInfo = crConnectionInfo
                   CrTable.ApplyLogOnInfo(crtableLogoninfo)
               Next
               If Conne_2020.State = ConnectionState.Closed Then Conne_2020.Open()
               Dim Ds As DataSet = New DataSet()
               Dim Facture_Code As String = Me.TextBox2.Text
               If Conne_2020.State = ConnectionState.Closed Then
                   Conne_2020.Open()
               End If
               Dim Sql As String = "SELECT TBL_INVOICES_VENTE_DETAILS.INVOICES_VENTE_DETAILS_Code, TBL_INVOICES_VENTE_DETAILS.INVOICES_VENTE_DETAILS_Items_Code, TBL_INVOICES_VENTE_DETAILS.INVOICES_VENTE_DETAILS_Items_Name, TBL_INVOICES_VENTE_DETAILS.INVOICES_VENTE_DETAILS_Quantite, TBL_INVOICES_VENTE_DETAILS.INVOICES_VENTE_DETAILS_Price, TBL_INVOICES_VENTE_DETAILS.INVOICES_VENTE_DETAILS_Total,     TBL_INVOICES_VENTE.INVOICES_VENTE_Code,TBL_INVOICES_VENTE.INVOICES_VENTE_Date,TBL_INVOICES_VENTE.INVOICES_VENTE_Customers_Name,TBL_INVOICES_VENTE.INVOICES_VENTE_Total,TBL_INVOICES_VENTE.INVOICES_VENTE_Total_Arabic,TBL_INVOICES_VENTE.INVOICES_VENTE_Total_Quantite From TBL_INVOICES_VENTE, TBL_INVOICES_VENTE_DETAILS Where TBL_INVOICES_VENTE.INVOICES_VENTE_Code=@Pcode"
               Dim cmd As New OleDbCommand(Sql, Conne_2020)
               cmd.Parameters.AddWithValue("@Pcode", Facture_Code)
               Ds.Clear()
               Dim Da As New OleDbDataAdapter(cmd)
               Da.Fill(Ds, "TBL_INVOICES_VENTE")
               Da.Fill(Ds, "TBL_INVOICES_VENTE_DETAILS")
               Dim Dt = Ds.Tables(0)
               If Dt.Rows.Count = 0 Then
                   MessageBox.Show("لم يتم العثور على بيانات لعرضها في التّقرير", "طباعة التقرير", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                   Cursor.Current = Cursors.Default
                   Exit Sub
               Else
                   AzizCrystal.SetDataSource(Ds)
                   Dim Frm As New FrmPrinting
                   Frm.CrystalReportViewer1.ReportSource = AzizCrystal
                   Frm.CrystalReportViewer1.Zoom(100%)
                   Frm.CrystalReportViewer1.Refresh()
                   Frm.ShowDialog()
               End If
               If Conne_2020.State = ConnectionState.Open Then Conne_2020.Close()
               AzizCrystal.Close()
               AzizCrystal.Dispose()
           Catch ex As Exception
               MessageBox.Show("خطأ غير متوقّع في عمليّة جلب البيانات", "طباعة التقرير")
           End Try
       End If
   End Sub

الرد
تم الشكر بواسطة:
#2
لا ما عندي أخي الكريم .. أصلا أول مرة أسمع به
بارك الله فيك على نية المساعدة
الرد
تم الشكر بواسطة: ابراهيم ايبو
#3
السّلام عليكم و رحمة الله و بركاته
للأسف أخي الكريم
"خطأ غير متوقّع في عمليّة جلب البيانات"
الكود المستعمل رقم 1 :

كود :
       Dim Facture_Code As String = Me.TextBox2.Text

       If Me.TextBox2.Text = vbNullString Then
           XtraMessageBox.Show("الرّجاء .. إختيار كود فاتورة المبيعات", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
       Else
           Cursor.Current = Cursors.WaitCursor
           Dim AzizCrystal As New ReportDocument
           Dim crtableLogoninfo As New TableLogOnInfo
           Dim crConnectionInfo As New ConnectionInfo
           Dim CrTables As Tables
           Try
               Dim MyReportPath As String = Application.StartupPath & "\FolderReport\Crystal1.Rpt"
               AzizCrystal.Load(MyReportPath)
               With crConnectionInfo
                   .ServerName = Application.StartupPath & "\MARKETING.Mdb"
                   .DatabaseName = Application.StartupPath & "\MARKETING.Mdb"
                   .UserID = "Admin"
                   .Password = "AZERTY987654"
               End With
               CrTables = AzizCrystal.Database.Tables
               For Each CrTable In CrTables
                   crtableLogoninfo = CrTable.LogOnInfo
                   crtableLogoninfo.ConnectionInfo = crConnectionInfo
                   CrTable.ApplyLogOnInfo(crtableLogoninfo)
               Next
               If Conne_2020.State = ConnectionState.Closed Then Conne_2020.Open()
               Dim Adp As New OleDb.OleDbDataAdapter("SELECT INVOICES_VENTE_Code,INVOICES_VENTE_Date,INVOICES_VENTE_Customers_Name,INVOICES_VENTE_Total,INVOICES_VENTE_Total_Arabic,INVOICES_VENTE_Total_Quantite,INVOICES_VENTE_DETAILS_Code,INVOICES_VENTE_DETAILS_Items_Code,INVOICES_VENTE_DETAILS_Items_Name,INVOICES_VENTE_DETAILS_Quantite,INVOICES_VENTE_DETAILS_Price,INVOICES_VENTE_DETAILS_Total From TBL_INVOICES_VENTE INNER JOIN TBL_INVOICES_VENTE_DETAILS ON INVOICES_VENTE_DETAILS_Code = INVOICES_VENTE_Code Where INVOICES_VENTE_Code = '" & Facture_Code & "'", Conne_2020)
               Dim Ds As DataSet = New DataSet()
               Adp.Fill(Ds, "TBL_INVOICES_VENTE")
               Adp.Fill(Ds, "TBL_INVOICES_VENTE_DETAILS")
               Dim Dt = Ds.Tables(0)
               If Dt.Rows.Count = 0 Then
                   XtraMessageBox.Show("لم يتم العثور على بيانات لعرضها في التّقرير", "طباعة التقرير", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                   Cursor.Current = Cursors.Default
                   Exit Sub
               Else
                   AzizCrystal.SetDataSource(Ds)
                   Dim Frm As New FrmPrinting
                   Frm.CrystalReportViewer1.ReportSource = AzizCrystal
                   Frm.CrystalReportViewer1.Zoom(100%)
                   Frm.CrystalReportViewer1.Refresh()
                   Frm.ShowDialog()
               End If
               If Conne_2020.State = ConnectionState.Open Then Conne_2020.Close()
               AzizCrystal.Close()
               AzizCrystal.Dispose()
           Catch ex As Exception
               XtraMessageBox.Show("خطأ غير متوقّع في عمليّة جلب البيانات", "طباعة التقرير")
           End Try
       End If
الكود المستعمل رقم 2 :
كود :
       If Me.TextBox2.Text = vbNullString Then
           XtraMessageBox.Show("الرّجاء .. إختيار كود فاتورة المبيعات", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
       Else
           Cursor.Current = Cursors.WaitCursor
           Dim AzizCrystal As New ReportDocument
           Dim crtableLogoninfo As New TableLogOnInfo
           Dim crConnectionInfo As New ConnectionInfo
           Dim CrTables As Tables
           Try
               Dim MyReportPath As String = Application.StartupPath & "\FolderReport\Crystal1.Rpt"
               AzizCrystal.Load(MyReportPath)
               With crConnectionInfo
                   .ServerName = Application.StartupPath & "\MARKETING.Mdb"
                   .DatabaseName = Application.StartupPath & "\MARKETING.Mdb"
                   .UserID = "Admin"
                   .Password = "AZERTY987654"
               End With
               CrTables = AzizCrystal.Database.Tables
               For Each CrTable In CrTables
                   crtableLogoninfo = CrTable.LogOnInfo
                   crtableLogoninfo.ConnectionInfo = crConnectionInfo
                   CrTable.ApplyLogOnInfo(crtableLogoninfo)
               Next
               If Conne_2020.State = ConnectionState.Closed Then Conne_2020.Open()
               Dim Ds As DataSet = New DataSet()
               Dim Facture_Code As String = Me.TextBox2.Text
               If Conne_2020.State = ConnectionState.Closed Then
                   Conne_2020.Open()
               End If
               Dim Sql As String = "SELECT INVOICES_VENTE_Code,INVOICES_VENTE_Date,INVOICES_VENTE_Customers_Name,INVOICES_VENTE_Total,INVOICES_VENTE_Total_Arabic,INVOICES_VENTE_Total_Quantite,INVOICES_VENTE_DETAILS_Code,INVOICES_VENTE_DETAILS_Items_Code,INVOICES_VENTE_DETAILS_Items_Name,INVOICES_VENTE_DETAILS_Quantite,INVOICES_VENTE_DETAILS_Price,INVOICES_VENTE_DETAILS_Total From TBL_INVOICES_VENTE INNER JOIN TBL_INVOICES_VENTE_DETAILS ON INVOICES_VENTE_DETAILS_Code = INVOICES_VENTE_Code Where INVOICES_VENTE_Code = @Pcode"
               Dim cmd As New OleDbCommand(Sql, Conne_2020)
               cmd.Parameters.AddWithValue("@Pcode", Facture_Code)
               Ds.Clear()
               Dim Da As New OleDbDataAdapter(cmd)
               Da.Fill(Ds, "TBL_INVOICES_VENTE")
               Da.Fill(Ds, "TBL_INVOICES_VENTE_DETAILS")
               Dim Dt = Ds.Tables(0)
               If Dt.Rows.Count = 0 Then
                   XtraMessageBox.Show("لم يتم العثور على بيانات لعرضها في التّقرير", "طباعة التقرير", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                   Cursor.Current = Cursors.Default
                   Exit Sub
               Else
                   AzizCrystal.SetDataSource(Ds)
                   Dim Frm As New FrmPrinting
                   Frm.CrystalReportViewer1.ReportSource = AzizCrystal
                   Frm.CrystalReportViewer1.Zoom(100%)
                   Frm.CrystalReportViewer1.Refresh()
                   Frm.ShowDialog()
               End If
               If Conne_2020.State = ConnectionState.Open Then Conne_2020.Close()
               AzizCrystal.Close()
               AzizCrystal.Dispose()
           Catch ex As Exception
               XtraMessageBox.Show("خطأ غير متوقّع في عمليّة جلب البيانات", "طباعة التقرير")
           End Try
       End If
سواء بالكود رقم 1 أو بالكود رقم 2 .. نفس رسالة الخطأ
تحياتي
الرد
تم الشكر بواسطة: ابراهيم ايبو
#4
السّلام عليكم و رحمة الله و بركاته
عملت أخي الكريم مثال صغير بنفس المعلومات و بنفس المعطيات .. لتقريب الإشكالية
بارك الله فيك و لك مقدما و جزاك خير الجزاء إن شاء الله
تحياتي


الملفات المرفقة
.rar   WindowsApplication1.rar (الحجم : 157.6 ك ب / التحميلات : 20)
الرد
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو
#5
السّلام عليكم و رحمة الله و بركاته
تسلم أخي الكريم و سلم يمينك و دينك
مثال يشتغل تمام التمام و ما به أي خلل
لكن يا سيّدي الكريم .. فقط
أريد التعديل على المثال المرفق مثلما هو .. الله يبارك فيك .. طبعا لو كان بالإمكان عمل ذلك
لأنّه بصراحة لا أحب طريقة الداتاسيت Xsd
تحياتي واحتراماتي
الرد
تم الشكر بواسطة: ابراهيم ايبو
#6
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك أخي الكريم و جزاك خير الجزاء و أحسن إليك مثلما أحسنت لي بهذه المتابعة الطيّبة .. عسى الله أن يزيدها بموازين حسناتك إن شاء الله
ما قصّرت صدقني .. و بكل أمانة
المشكلة أخي الكريم أنّك استعملت و أخذت البيانات من جدول واحد و ليس مثل ما هو موجود بقاعدة بياناتي المرفقة
بعد البحث وجدت أنّ الإشكالية لها العديد من التساؤلات و بكل المنتديات
وجدت الحل المؤقت لكنه لم يرقْ لي صراحة
فاتورة المبيعات من الأمور الحسّاسة و لا ينفع معها .. التحايل
الفورميلا .. طبعًا تتغيّر حسب حقل من الحقول الموجودة
هذا مع الكريستال ريبورت .. أكيد يوجد شيء ناقص بالأكواد رغم أنّي عملت View بال Sql Server و حوّلت الأكواد .. لكن لا حياة لمن تنادي
الحل المباشر بدون أي لف أو دوران .. بدون أي التباسات أو تعقيدات
وجدته مع تقارير الديف إكسبرس و الحمد لله
أو ربّما نجد الحل عند السادة أساتذتنا الأكارم إن شاء الله

تحياتي واحتراماتي
الرد
تم الشكر بواسطة:
#7
(24-03-20, 02:39 PM)عبد العزيز البسكري كتب :
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك أخي الكريم و جزاك خير الجزاء و أحسن إليك مثلما أحسنت لي بهذه المتابعة الطيّبة .. عسى الله أن يزيدها بموازين حسناتك إن شاء الله
ما قصّرت صدقني .. و بكل أمانة
المشكلة أخي الكريم أنّك استعملت و أخذت البيانات من جدول واحد و ليس مثل ما هو موجود بقاعدة بياناتي المرفقة
بعد البحث وجدت أنّ الإشكالية لها العديد من التساؤلات و بكل المنتديات
وجدت الحل المؤقت لكنه لم يرقْ لي صراحة
فاتورة المبيعات من الأمور الحسّاسة و لا ينفع معها .. التحايل
الفورميلا .. طبعًا تتغيّر حسب حقل من الحقول الموجودة
هذا مع الكريستال ريبورت .. أكيد يوجد شيء ناقص بالأكواد رغم أنّي عملت View بال Sql Server و حوّلت الأكواد .. لكن لا حياة لمن تنادي
الحل المباشر بدون أي لف أو دوران .. بدون أي التباسات أو تعقيدات
وجدته مع تقارير الديف إكسبرس و الحمد لله
أو ربّما نجد الحل عند السادة أساتذتنا الأكارم إن شاء الله

تحياتي واحتراماتي

PHP كود :
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click
        
If Me.TextBox1.Text vbNullString Then
            MessageBox
.Show("الرّجاء .. إختيار كود فاتورة المبيعات""تنبيه"MessageBoxButtons.OKMessageBoxIcon.ErrorMessageBoxDefaultButton.Button1)

        Else
            
Cursor.Current Cursors.WaitCursor
            Dim AzizCrystal 
As New ReportDocument
            Dim crtableLogoninfo 
As New TableLogOnInfo
            Dim crConnectionInfo 
As New ConnectionInfo
            Dim CrTables 
As Tables
            
Try
                
Dim MyReportPath As String Application.StartupPath "\FolderReport\Crystal1.Rpt"
                
AzizCrystal.Load(MyReportPath)
                
With crConnectionInfo
                    
.ServerName Application.StartupPath "\MARKETING.Mdb"
                    
.DatabaseName Application.StartupPath "\MARKETING.Mdb"
                    
.UserID "Admin"
                    
.Password "AZERTY987654"
                
End With
                CrTables 
AzizCrystal.Database.Tables
                
For Each CrTable In CrTables
                    crtableLogoninfo 
CrTable.LogOnInfo
                    crtableLogoninfo
.ConnectionInfo crConnectionInfo
                    CrTable
.ApplyLogOnInfo(crtableLogoninfo)
                
Next


                Dim Ds 
As New DataSet
                Dim Facture_Code 
As String Me.TextBox1.Text

                Dim sqlINVOICES_VENTE 
As String "SELECT INVOICES_VENTE_Code,INVOICES_VENTE_Date,INVOICES_VENTE_Customers_Name,INVOICES_VENTE_Total,INVOICES_VENTE_Total_Arabic,INVOICES_VENTE_Total_Quantite From TBL_INVOICES_VENTE Where INVOICES_VENTE_Code = @Pcode"
                
Dim Da_INVOICES_VENTE As New OleDbDataAdapter(sqlINVOICES_VENTEConne_2020)
                
Da_INVOICES_VENTE.SelectCommand.Parameters.AddWithValue("@Pcode"Facture_Code)
                
Da_INVOICES_VENTE.Fill(Ds"TBL_INVOICES_VENTE")

                
Dim sqlINVOICES_VENTE_DETAILS As String "SELECT INVOICES_VENTE_DETAILS_Code,INVOICES_VENTE_DETAILS_Items_Code,INVOICES_VENTE_DETAILS_Items_Name,INVOICES_VENTE_DETAILS_Quantite,INVOICES_VENTE_DETAILS_Price,INVOICES_VENTE_DETAILS_Total From TBL_INVOICES_VENTE_DETAILS Where INVOICES_VENTE_DETAILS_Code = @Pcode"
                
Dim Da_INVOICES_VENTE_DETAILS As New OleDbDataAdapter(sqlINVOICES_VENTE_DETAILSConne_2020)
                
Da_INVOICES_VENTE_DETAILS.SelectCommand.Parameters.AddWithValue("@Pcode"Facture_Code)
                
Da_INVOICES_VENTE_DETAILS.Fill(Ds"TBL_INVOICES_VENTE_DETAILS")


                If 
Ds.Tables(0).Rows.Count 0 Then
                    MessageBox
.Show("لم يتم العثور على بيانات لعرضها في التّقرير""طباعة التقرير"MessageBoxButtons.OKMessageBoxIcon.Exclamation)
                    
Cursor.Current Cursors.Default
                    Exit 
Sub
                
Else
                    
AzizCrystal.SetDataSource(Ds)
                    
Dim Frm As New FrmPrinting
                    Frm
.CrystalReportViewer1.ReportSource AzizCrystal
                    Frm
.CrystalReportViewer1.Zoom(100%)
                    
Frm.CrystalReportViewer1.Refresh()
                    
Frm.ShowDialog()
                
End If
                
AzizCrystal.Close()
                
AzizCrystal.Dispose()
            Catch 
ex As Exception
                
'MessageBox.Show("خطأ غير متوقّع في عمليّة جلب البيانات", "طباعة التقرير")
                MessageBox.Show(ex.Message, "طباعة التقرير")
            End Try
        End If

    End Sub 
الرد
تم الشكر بواسطة: عبد العزيز البسكري
#8
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك و جزاك خير الجزاء و زادك من علمه و فضله و نفع بك الاسلام و المسلمين
الآن كلّه شغّال 10 على عشرة .. و هذا ما كنت أبحث عنه بتمامه و كماله
تحياتي و تقييماتي
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  استفسار واتمنى المساعدة في الحل وهج الصحراء 2 65 منذ 10 ساعة مضت
آخر رد: Anas Mahmoud
  [سؤال] اضافة كومبوبكس داخل داتاقريد فيو معبئ من قاعدة البيانات KIKO1992 2 67 02-12-20, 11:50 AM
آخر رد: KIKO1992
  [VB.NET] كيفية ادخال البيانات عن طريق الdatagridviwe ليتم حفظها في sql fadi78 0 51 01-12-20, 02:00 PM
آخر رد: fadi78
Sad [VB.NET] كيفية تحديد صفوف معينة لي الطباعة Aziz170020 1 103 29-11-20, 11:17 PM
آخر رد: اسامه الهرماوي
  [سؤال] فلتره البيانات في الداتا بيز حسن الجلب 4 107 29-11-20, 12:47 AM
آخر رد: Anas Mahmoud
  [سؤال] كود يبحث في ملفات وورد docx ولا يبحث في doc فما الحل؟ السندبااد 1 109 20-11-20, 10:45 PM
آخر رد: السندبااد
  [VB.NET] اضافة ازرار حسب عدد متغير في قاعدة البيانات Ad Heart 5 745 16-11-20, 12:10 AM
آخر رد: sherf
  [VB.NET] طريقة الطباعة على وجهين لبطاقة موظف Ad Heart 1 216 12-11-20, 02:23 AM
آخر رد: Ad Heart
Question [VB.NET] كيف يتم تحديث البيانات في DataGridView بعد حفظ السجل الحالي ؟؟ Microformt 6 213 09-11-20, 07:54 PM
آخر رد: moahmed.abdelmohsen
  كود تعديل البيانات فيجوال بيسك وقاعدة بيانات sql server برحوت 0 172 08-11-20, 12:17 AM
آخر رد: برحوت

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم