تقييم الموضوع :
  • 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 ك ب / التحميلات : 28)
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو
#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 على عشرة .. و هذا ما كنت أبحث عنه بتمامه و كماله
تحياتي و تقييماتي
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] أتمنى اجابة وافية:عمل برنامج بقاعدة بيانات SQL دون حاجة تثبيت SQLSERVER dr.programming 6 601 19-03-24, 08:56 AM
آخر رد: سلامه محمد11
  [VB.NET] حل مشكلة الاتصال بقواعد البيانات access loay775 2 158 25-02-24, 06:29 AM
آخر رد: loay775
  كيفية انشاء سكريبت لقاعدة بيانات من خلال الكود heem1986 1 194 20-02-24, 12:00 AM
آخر رد: Kamil
  سؤال عن عملية حذف سجل من قاعدة البيانات assuhimi 3 249 11-02-24, 08:43 PM
آخر رد: assuhimi
  [VB.NET] منع تكرار البيانات في عند الادخال مبرمج صغير 1 2 255 24-01-24, 05:18 PM
آخر رد: مبرمج صغير 1
  التحقق من خلال محتوى خلية عن طريق textbox صالح عبدالله 2 222 24-01-24, 12:54 PM
آخر رد: صالح عبدالله
  طلب مساعدة بخصوص كود الطباعة paveldida 2 461 19-01-24, 12:00 AM
آخر رد: العتيق
  [VB.NET] مساعدة في استدعاء البيانات معينه من form الأول إلى form 2 بدون التعديل loay775 2 275 18-01-24, 05:04 PM
آخر رد: loay775
  مطلوب كود الطباعة لهذا البرنامج melad2002 2 234 13-01-24, 06:42 PM
آخر رد: melad2002
  [VB.NET] إعادة استدعاء البيانات من قاعدة بيانات اكسس والاهم الصورة مبرمج صغير 1 1 273 13-01-24, 01:17 PM
آخر رد: مبرمج صغير 1

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


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