تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[ تمّ الحل ] : إضافة خاصيّة طباعة التاكست بكود التّقرير
#1
السّلام عليكم و رحمة الله و بركاته
إخواني الأفاضل .. جمعة مباركة للجميع
عسى أن تكونوا كلّكم بتمام الصحّة و العافية و راحة البال
رغبة منّي في وضع كود الطباعة بالموديل و أستعمله في العديد من المرّات بجميع الفورمات دون الحاجة إلى كتابته كل مرّة بالفورم و أكتفي فقط باستدعائه ..
كود :
   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()

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


الردود في هذا الموضوع
[ تمّ الحل ] : إضافة خاصيّة طباعة التاكست بكود التّقرير - بواسطة عبد العزيز البسكري - 21-02-20, 08:01 PM

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

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


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