23-03-20, 04:39 PM
(آخر تعديل لهذه المشاركة : 24-03-20, 07:29 PM {2} بواسطة عبد العزيز البسكري.)
السّلام عليكم و رحمة الله و بركاته
إخواني الأكارم .. أرجو المساعدة لحل هذه الإشكالية بارك الله فيكم و لكم مقدما
لديّ جدولين اثنين بقاعدة البيانات
جدول رأس الفاتورة 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
قناتنا على اليوتوب