تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[ تمّ الحل ] : إضافة خاصيّة طباعة التاكست بكود التّقرير
#2
(21-02-20, 08:01 PM)عبد العزيز البسكري كتب :
السّلام عليكم و رحمة الله و بركاته
إخواني الأفاضل .. جمعة مباركة للجميع
عسى أن تكونوا كلّكم بتمام الصحّة و العافية و راحة البال
رغبة منّي في وضع كود الطباعة بالموديل و أستعمله في العديد من المرّات بجميع الفورمات دون الحاجة إلى كتابته كل مرّة بالفورم و أكتفي فقط باستدعائه ..
كود :
   Public Sub Globale_Crystal_Print_Preview_Report(ByVal Sql_String As String, ByVal Report_Name As String, ByVal Table_Name As String)
       Cursor.Current = Cursors.WaitCursor
       Dim Rpt 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\" & Report_Name & ".Rpt"
           Rpt.Load(MyReportPath)
           With crConnectionInfo
               .ServerName = Application.StartupPath & "\ABDELAZIZ.Mdb"
               .DatabaseName = Application.StartupPath & "\ABDELAZIZ.Mdb"
               .UserID = "Admin"
               .Password = "XZ987654SW"
           End With
           CrTables = Rpt.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 = New OleDb.OleDbDataAdapter(Sql_String, Conne_2020)
           Dim Ds As DataSet = New DataSet()
           Adp.Fill(Ds, Table_Name)
           Dim Dt = Ds.Tables(0)
           If Dt.Rows.Count = 0 Then
               XtraMessageBox.Show("لم يتم العثور على بيانات لعرضها في التّقرير", "طباعة التقرير", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
               Cursor.Current = Cursors.Default
               Exit Sub
           Else
               Rpt.SetDataSource(Ds)
               Dim Frm As New FrmCrystalPrinting
               Frm.CrystalReportViewer1.ReportSource = Rpt
               Frm.CrystalReportViewer1.Zoom(100%)
               Frm.CrystalReportViewer1.Refresh()
               Frm.ShowDialog()
           End If
           If Conne_2020.State = ConnectionState.Open Then Conne_2020.Close()
           Rpt.Close()
           Rpt.Dispose()
       Catch ex As Exception
           XtraMessageBox.Show("خطأ غير متوقّع في عمليّة جلب البيانات", "طباعة التقرير")
       End Try
   End Sub

كود الإستدعاء و الطباعة ..
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Call Globale_Crystal_Print_Preview_Report("SELECT * From TBL_STUDENT", "Crystal1", "TBL_STUDENT")
   End Sub

إلى هنا .. الأمور تسير على أحسن وجه .. و بدون أي إلتباسات
المشكلة إخواني الأعزّاء ..
أحيانا أحتاج لإضافة عناوين خاصّة بتمرير قيمة تاكست بكس من الفورم إلى صفحة التّقرير
بواسطة كود تمرير القيم إلى التّقرير
كود :
Dim Text1 As CrystalDecisions.CrystalReports.Engine.TextObject = Rpt.Section2.ReportObjects("Text1")
            Text1.Text = Me.TextBox1.Text

   Dim Text2 As CrystalDecisions.CrystalReports.Engine.TextObject = Rpt.Section2.ReportObjects("Text2")
            Text2.Text = Me.TextBox2.Text

على أساس Text1 و Text2 هي من نوع TextObject الخاصة بالكريستال ريبورت
طبعا من المفروض بالطباعة العادية من خلال الفورم .. يكون الكود بهذا الشكل ..
كود :
    If Dt.Rows.Count = 0 Then
               XtraMessageBox.Show("لم يتم العثور على بيانات لعرضها في التّقرير", "طباعة التقرير", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
               Cursor.Current = Cursors.Default
               Exit Sub
           Else
               Rpt.SetDataSource(Ds)

               Dim Text1 As CrystalDecisions.CrystalReports.Engine.TextObject = Rpt.Section2.ReportObjects("Text1")
               Text1.Text = Me.TextBox1.Text

               Dim Text2 As CrystalDecisions.CrystalReports.Engine.TextObject = Rpt.Section2.ReportObjects("Text2")
               Text2.Text = Me.TextBox2.Text

               Dim Frm As New FrmCrystalPrinting
               Frm.CrystalReportViewer1.ReportSource = Rpt
               Frm.CrystalReportViewer1.Zoom(100%)
               Frm.CrystalReportViewer1.Refresh()
               Frm.ShowDialog()

ما أطلبه .. فضل و كرم و إحسان منكم هو ..
كيف أدمج هذيْن السطريْن أعلاه و أضيفهما على كود الطباعة بالموديل و أتحكم بتسميات التاكسات بوكس التي أريد إضفة قيمها لصفحة الكريستال ريبورت
بارك الله فيكم و لكم و جزاكم خير الجزاء مقدما
تحياتي واحتراماتي

بما ان الاضافة تتم (احيانا) فاستخدم Optional

عدل تعريف الاجراء
كود :
Public Sub Globale_Crystal_Print_Preview_Report(Sql_String As String, Report_Name As String, Table_Name As String, Optional s1 As String = "", Optional s2 As String = "")

واضف الكود التالي بعد Else
كود :
If s1 <> "" Then
   Dim Text1 As CrystalDecisions.CrystalReports.Engine.TextObject = Rpt.Section2.ReportObjects("Text1")
   Text1.Text = s1
End If
If s2 <> "" Then
   Dim Text2 As CrystalDecisions.CrystalReports.Engine.TextObject = Rpt.Section2.ReportObjects("Text2")
   Text2.Text = s2
End If

فيكون الاستدعاء في حالة اضافة عناوين
كود :
Call Globale_Crystal_Print_Preview_Report("SELECT * From TBL_STUDENT", "Crystal1", "TBL_STUDENT", Me.TextBox1.Text, Me.TextBox2.Text)

او كالسابق في حالة لا تريد اضافة عناوين
كود :
Call Globale_Crystal_Print_Preview_Report("SELECT * From TBL_STUDENT", "Crystal1", "TBL_STUDENT")
الرد }}}


الردود في هذا الموضوع
RE: إضافة خاصيّة طباعة التاكست بكود التّقرير - بواسطة alsalamoni - 21-02-20, 09:05 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] اريد طباعة تقرير ريبورت فيو مباشرة فور عرض التقرير mh66 1 562 22-03-25, 09:59 AM
آخر رد: mh66
  طريقة طباعة ملف pdf بقاعدة بيانات sql heem1986 0 525 25-02-25, 09:31 AM
آخر رد: heem1986
  ما الحل dwidar07@gmail.com 3 428 21-02-25, 01:08 AM
آخر رد: أبو خالد الشكري
  جلب اللون الى التاكست بكس محمد خيري 2 311 17-01-25, 03:26 AM
آخر رد: محمد خيري
  اضافة لون للالوان في التاكست بكس أحمد فتح الرحمن 4 467 08-01-25, 04:05 PM
آخر رد: أحمد فتح الرحمن
  طباعة تقرير كرستال DOX.1 7 2,264 14-10-24, 06:59 AM
آخر رد: am000er
  طباعة تقرير بطول وعرض معين (التقرير عبارة عن سطر) atefkhalf2004 7 637 15-07-24, 01:53 AM
آخر رد: atefkhalf2004
  طباعة report viewer دون فتح نافذة الطابعات atefkhalf2004 6 690 18-06-24, 02:35 PM
آخر رد: atefkhalf2004
  اريد طباعة الباركود من غير ظهور نافذة المعاينة new_programer 1 532 23-05-24, 03:55 AM
آخر رد: new_programer
  [كود] مطلوب إضافة حقل بجدول بعد التأكد من عدم وجوده AmeenRashed 6 638 18-05-24, 02:35 AM
آخر رد: justforit

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


يقوم بقرائة الموضوع: