08-07-20, 04:07 AM
السّلام عليكم و رحمة الله و بركاته
سادتي الأفاضل
الرّجاء تنويري لحل هذه الإشكالية .. بارك الله فيكم و لكم
لدي جدوليْن : جدول رأس الفاتورة و جدول بيانات الفاتورة
الطباعة تتم على أكمل وجه و الحمد الله
و هذا الكود المستعمل :
كود :
Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click
If XtraMessageBox.Show("هل ترغب في طباعة بيانات فاتورة المبيعات الفورية ؟", "رسالة", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = MsgBoxResult.No Then Exit Sub
Try
Dim Facture_Code As String = Me.TxtFacturePosCode.Text
Dim Rept As New XtraPosReport
Dim Ds As New DataSet
Dim Invoices_Pos As DataTable = Sql_Globale_Query("SELECT INVOICES_POS_Code , INVOICES_POS_Date , INVOICES_POS_Horaire , INVOICES_POS_Total , INVOICES_POS_Grand_Total , INVOICES_POS_Username From TBL_INVOICES_POS Where INVOICES_POS_Code = '" & Facture_Code & "'")
Dim Invoices_Pos_Details As DataTable = Sql_Globale_Query("SELECT INVOICES_POS_DETAILS_Code,INVOICES_POS_DETAILS_Items_Code,INVOICES_POS_DETAILS_Items_Name,INVOICES_POS_DETAILS_Items_Quantite,INVOICES_POS_DETAILS_Unite_Price,INVOICES_POS_DETAILS_Total_Price From TBL_INVOICES_POS_DETAILS Where INVOICES_POS_DETAILS_Code = '" & Facture_Code & "'")
Invoices_Pos.TableName = "TBL_INVOICES_POS"
Invoices_Pos_Details.TableName = "TBL_INVOICES_POS_DETAILS"
Ds.Tables.Add(Invoices_Pos)
Ds.Tables.Add(Invoices_Pos_Details)
Ds.Relations.Add(Ds.Tables("TBL_INVOICES_POS").Columns("INVOICES_POS_Code"), Ds.Tables("TBL_INVOICES_POS_DETAILS").Columns("INVOICES_POS_DETAILS_Code"))
Dim Dt = Ds.Tables(0)
If Dt.Rows.Count = 0 Then
XtraMessageBox.Show("لم يتم العثور على بيانات لعرضها في التّقرير", "طباعة التقرير", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
End If
Rept.DataSource = Ds
Rept.DataMember = "TBL_INVOICES_POS"
Rept.DataMember = "TBL_INVOICES_POS_DETAILS"
Dim Tool_Report As ReportPrintTool = New ReportPrintTool(Rept)
Rept.CreateDocument()
Dim Frm As New FrmXtraPrinting
Frm.DocumentViewer1.DocumentSource = Rept
Frm.ShowDialog()
If Conne_2020.State = ConnectionState.Open Then Conne_2020.Close()
Catch ex As Exception
XtraMessageBox.Show("خطأ غير متوقّع في عمليّة جلب البيانات", "طباعة التقرير")
End Try
End Sub
أريد إضافة بعض البيانات العامّة من جدول ثالث TBL_GENERALE
و المشار إليها باللون الأصفر
و أضفت الكود التالي داخل الكود الأوّل أعلاه .. لتمييزه كتبت أمامه " البيانات العامّة " :
كود :
Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click
If XtraMessageBox.Show("هل ترغب في طباعة بيانات فاتورة المبيعات الفورية ؟", "رسالة", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = MsgBoxResult.No Then Exit Sub
Try
Dim Facture_Code As String = Me.TxtFacturePosCode.Text
Dim Rept As New XtraPosReport
Dim Ds As New DataSet
Dim Invoices_Pos As DataTable = Sql_Globale_Query("SELECT INVOICES_POS_Code , INVOICES_POS_Date , INVOICES_POS_Horaire , INVOICES_POS_Total , INVOICES_POS_Grand_Total , INVOICES_POS_Username From TBL_INVOICES_POS Where INVOICES_POS_Code = '" & Facture_Code & "'")
Dim Invoices_Pos_Details As DataTable = Sql_Globale_Query("SELECT INVOICES_POS_DETAILS_Code,INVOICES_POS_DETAILS_Items_Code,INVOICES_POS_DETAILS_Items_Name,INVOICES_POS_DETAILS_Items_Quantite,INVOICES_POS_DETAILS_Unite_Price,INVOICES_POS_DETAILS_Total_Price From TBL_INVOICES_POS_DETAILS Where INVOICES_POS_DETAILS_Code = '" & Facture_Code & "'")
Invoices_Pos.TableName = "TBL_INVOICES_POS"
Invoices_Pos_Details.TableName = "TBL_INVOICES_POS_DETAILS"
Ds.Tables.Add(Invoices_Pos)
Ds.Tables.Add(Invoices_Pos_Details)
Ds.Relations.Add(Ds.Tables("TBL_INVOICES_POS").Columns("INVOICES_POS_Code"), Ds.Tables("TBL_INVOICES_POS_DETAILS").Columns("INVOICES_POS_DETAILS_Code"))
Dim Dt = Ds.Tables(0)
If Dt.Rows.Count = 0 Then
XtraMessageBox.Show("لم يتم العثور على بيانات لعرضها في التّقرير", "طباعة التقرير", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
End If
Rept.DataSource = Ds
Rept.DataMember = "TBL_INVOICES_POS"
Rept.DataMember = "TBL_INVOICES_POS_DETAILS"
'البيانات العامّة
Dim Adp_Generale As New OleDbDataAdapter("SELECT GENERALE_Entreprise,GENERALE_Mobile,GENERALE_Adresse From TBL_GENERALE", Conne_2020)
Dim Ds_Generale As New DataSet
Adp_Generale.Fill(Ds_Generale)
Dim Dt_Generale = Ds_Generale.Tables(0)
If Dt_Generale.Rows.Count = 0 Then
Exit Sub
End If
Rept.DataSource = Ds_Generale
Rept.DataAdapter = Adp_Generale
Rept.DataMember = "TBL_GENERALE"
'البارامترات
'Rept.Parameters("Parameter1").Value = Me.TextBox1.Text
'Rept.Parameters("Parameter2").Value = Me.TextBox2.Text
'Rept.Parameters("Parameter3").Value = Me.TextBox3.Text
Dim Tool_Report As ReportPrintTool = New ReportPrintTool(Rept)
Rept.CreateDocument()
Dim Frm As New FrmXtraPrinting
Frm.DocumentViewer1.DocumentSource = Rept
Frm.ShowDialog()
If Conne_2020.State = ConnectionState.Open Then Conne_2020.Close()
Catch ex As Exception
XtraMessageBox.Show("خطأ غير متوقّع في عمليّة جلب البيانات", "طباعة التقرير")
End Try
End Sub
فإذا بمعلومات رأس الفاتورة و بياناتها تختفي تماما .. و تظهر البيانات العامّة فقط
طبعا يمكن جلب البيانات إلى التاكسات بكس و تمريرها كبارامترات لصفحة التقرير
لكن ما أريده هو كيفية إدماج كود البيانات العامة مع الكود الأوّل أعلاه دون استعمال البارامترات
بارك لله فيكم و لكم مقدما و جزاكم خير الجزاء
قناتنا على اليوتوب