تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طباعة متعددة اعتماداً على DataGridView
#1
السلام عليكم ايها الزملاء الاعزاء
كلعادة كلما تعثرة في شي الجاء الى منتدانا المحترم هذا
وفقكم الله لمساعدة الاعضاء قليلي الخبرة مثلي

لدي مشروع بالـ Visual Studio 2015
مرتبط بقاعدة بيانات Access

لدي مجموعة كمبيالات

لكل كمبيالة كود خاص بها وتاريخ استحقاق

اقوم بعمل تقرير للكمبيالات المستحقة خلال الفترة من 2019/9/1 الى 2019/9/30 مثلاً وتظهر النتيجة فى   DataGridView

ولدي ريبورت مصمم بـ CrystalReport على هيئة خطاب يتم ارساله للعميل استعجال لدفع الكمبيالة

اريد الاتي

عمل زر اسفل الــ  DataGridView يقوم بطباعة كل الكمبيالات التى ظهرة فى الــ DataGridView 
مستخدماً التقارير التى صممتها
حيث تكون الطباعة دفعة واحدة وكل خطاب على حدي



شكرا لكم جميعاً



سبحان الله وبحمده ..... سبحان الله العظيم
الرد }}}
تم الشكر بواسطة:
#2
ده شرح مبسط اللي انا عاوزه 
الرد }}}
تم الشكر بواسطة: asemshahen5
#3
اصنع تقرير جديد ضع به ما تريد في قسم الديتال و اسند له الداتا سورس نفس الداتا سورس الخاصة بلداتا غريد فيو ليكون كالتالي :

   

و عند المعاينة يكون كالتالي :

   

او اعمل لوب على حقول الجدول و اطبع مباشرة او معاينة كود :

PHP كود :
   Private Sub Button10_Click(sender As ObjectAs EventArgsHandles Button10.Click
        If MsgBox
("هل تريد معاينة الطباعة"MsgBoxStyle.YesNo"") = MsgBoxResult.Yes Then
            For i 
0 To DataGridView1.Rows.Count 2
                Dim Frm 
As New RptForm
                Dim rpt 
As New RptCard
                Dim dt 
As New DataTable
                dt
.Clear()
 
               dt LoadDataTable("select * From TestTable where ID=" DataGridView1.Rows(i).Cells(0).Value)
 
               rpt.SetDataSource(dt)
 
               Frm.CrystalReportViewer1.ReportSource rpt
                Frm
.CrystalReportViewer1.Refresh()
 
               Frm.Show()
 
           Next
        Else
            For i 
0 To DataGridView1.Rows.Count 2
                Dim rpt 
As New RptCard
                rpt
.SetDataSource(LoadDataTable("select * From TestTable where id=" DataGridView1.Rows(i).Cells(0).Value))
 
               Dim prnt As New System.Drawing.Printing.PrinterSettings
                
'prnt.PrinterName = "إسم الطابعة"'
 
               rpt.PrintToPrinter(prnt, New System.Drawing.Printing.PageSettings(prnt), False)
 
           Next
        End 
If
 
   End Sub
    Public 
Function LoadDataTable(SqlStr As String) As DataTable
        Dim DT 
As New DataTable
        Dim da 
As New SqlClient.SqlDataAdapter(SqlStrCon)
 
       da.Fill(DT)
 
       Return DT
    End 
Function 
الرد }}}
تم الشكر بواسطة: محمد كريّم , mr_hso
#4
(05-10-19, 05:31 AM)asemshahen5 كتب : اصنع تقرير جديد ضع به ما تريد في قسم الديتال و اسند له الداتا سورس نفس الداتا سورس الخاصة بلداتا غريد فيو ليكون كالتالي :



و عند المعاينة يكون كالتالي :



او اعمل لوب على حقول الجدول و اطبع مباشرة او معاينة كود :

PHP كود :
   Private Sub Button10_Click(sender As ObjectAs EventArgsHandles Button10.Click
        If MsgBox
("هل تريد معاينة الطباعة"MsgBoxStyle.YesNo"") = MsgBoxResult.Yes Then
            For i 
0 To DataGridView1.Rows.Count 2
                Dim Frm 
As New RptForm
                Dim rpt 
As New RptCard
                Dim dt 
As New DataTable
                dt
.Clear()
 
               dt LoadDataTable("select * From TestTable where ID=" DataGridView1.Rows(i).Cells(0).Value)
 
               rpt.SetDataSource(dt)
 
               Frm.CrystalReportViewer1.ReportSource rpt
                Frm
.CrystalReportViewer1.Refresh()
 
               Frm.Show()
 
           Next
        Else
            For i 
0 To DataGridView1.Rows.Count 2
                Dim rpt 
As New RptCard
                rpt
.SetDataSource(LoadDataTable("select * From TestTable where id=" DataGridView1.Rows(i).Cells(0).Value))
 
               Dim prnt As New System.Drawing.Printing.PrinterSettings
                
'prnt.PrinterName = "إسم الطابعة"'
 
               rpt.PrintToPrinter(prnt, New System.Drawing.Printing.PageSettings(prnt), False)
 
           Next
        End 
If
 
   End Sub
    Public 
Function LoadDataTable(SqlStr As String) As DataTable
        Dim DT 
As New DataTable
        Dim da 
As New SqlClient.SqlDataAdapter(SqlStrCon)
 
       da.Fill(DT)
 
       Return DT
    End 
Function 



مشكور اخي الفاضل   asemshahen5  على مجهودك ووقتك
لكن حين لصقت الكود فى المشروع الخاص بي وعدلت الجزء لاول ظهر خطاء فى الجز الثاني 
هل لاني استخدم قاعدة بيانات اكسس

الجزء الذي به الخطاء
كود :
       Dim DT As New DataTable
       Dim da As New SqlClient.SqlDataAdapter(SqlStr, Con)
       da.Fill(DT)
       Return DT
   End Function
جزاك الله خيرا
الرد }}}
تم الشكر بواسطة: asemshahen5
#5
ممكن صورة للخطأ .

على كل حال هذا كود ليتماشى مع قواعد البيانات أكسيس :

PHP كود :
   Private Sub Button10_Click(sender As ObjectAs EventArgsHandles Button10.Click
        If MsgBox
("هل تريد معاينة الطباعة"MsgBoxStyle.YesNo"") = MsgBoxResult.Yes Then
            For i 
0 To DataGridView1.Rows.Count 2
                Dim Frm 
As New RptForm
                Dim rpt 
As New RptCard
                Dim dt 
As New DataTable
                dt
.Clear()
 
               dt LoadDataTableAccdb("select * From TestTable where ID=" DataGridView1.Rows(i).Cells(0).Value)
 
               rpt.SetDataSource(dt)
 
               Frm.CrystalReportViewer1.ReportSource rpt
                Frm
.CrystalReportViewer1.Refresh()
 
               Frm.Show()
 
           Next
        Else
            For i 
0 To DataGridView1.Rows.Count 2
                Dim rpt 
As New RptCard
                rpt
.SetDataSource(LoadDataTableAccdb("select * From TestTable where id=" DataGridView1.Rows(i).Cells(0).Value))
 
               Dim prnt As New System.Drawing.Printing.PrinterSettings
                
'prnt.PrinterName = "إسم الطابعة"'
 
               rpt.PrintToPrinter(prnt, New System.Drawing.Printing.PageSettings(prnt), False)
 
           Next
        End 
If
 
   End Sub
    Dim Con1 
As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Test.accdb;Jet OLEDB:Database Password=;")
 
   Public Function LoadDataTableAccdb(SqlStr As String) As DataTable
        Dim DT 
As New DataTable
        Dim da 
As New OleDb.OleDbDataAdapter(SqlStrCon1)
 
       da.Fill(DT)
 
       Return DT
    End 
Function 
الرد }}}
تم الشكر بواسطة: mr_hso , Moneam
#6
(05-10-19, 05:59 AM)asemshahen5 كتب : ممكن صورة للخطأ .

على كل حال هذا كود ليتماشى مع قواعد البيانات أكسيس :

PHP كود :
   Private Sub Button10_Click(sender As ObjectAs EventArgsHandles Button10.Click
        If MsgBox
("هل تريد معاينة الطباعة"MsgBoxStyle.YesNo"") = MsgBoxResult.Yes Then
            For i 
0 To DataGridView1.Rows.Count 2
                Dim Frm 
As New RptForm
                Dim rpt 
As New RptCard
                Dim dt 
As New DataTable
                dt
.Clear()
 
               dt LoadDataTableAccdb("select * From TestTable where ID=" DataGridView1.Rows(i).Cells(0).Value)
 
               rpt.SetDataSource(dt)
 
               Frm.CrystalReportViewer1.ReportSource rpt
                Frm
.CrystalReportViewer1.Refresh()
 
               Frm.Show()
 
           Next
        Else
            For i 
0 To DataGridView1.Rows.Count 2
                Dim rpt 
As New RptCard
                rpt
.SetDataSource(LoadDataTableAccdb("select * From TestTable where id=" DataGridView1.Rows(i).Cells(0).Value))
 
               Dim prnt As New System.Drawing.Printing.PrinterSettings
                
'prnt.PrinterName = "إسم الطابعة"'
 
               rpt.PrintToPrinter(prnt, New System.Drawing.Printing.PageSettings(prnt), False)
 
           Next
        End 
If
 
   End Sub
    Dim Con1 
As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Test.accdb;Jet OLEDB:Database Password=;")
 
   Public Function LoadDataTableAccdb(SqlStr As String) As DataTable
        Dim DT 
As New DataTable
        Dim da 
As New OleDb.OleDbDataAdapter(SqlStrCon1)
 
       da.Fill(DT)
 
       Return DT
    End 
Function 




استاذي الفاضل asemshahen5
اشكرك من قلبي وادعوا الله لك بمزيد من العلم

الكود تمام شكرا لك 
الرد }}}


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] اريد طباعة تقرير ريبورت فيو مباشرة فور عرض التقرير mh66 1 557 22-03-25, 09:59 AM
آخر رد: mh66
  [VB.NET] محتاج اربط DataGridView بزر بحث bakrycold 1 549 28-02-25, 12:11 AM
آخر رد: bakrycold
  طريقة طباعة ملف pdf بقاعدة بيانات sql heem1986 0 518 25-02-25, 09:31 AM
آخر رد: heem1986
  [VB.NET] استعراض بيانات في Datagridview واضافة جميع البيانات لجدول محدد sql skode 0 486 12-01-25, 12:50 AM
آخر رد: skode
Information [VB.NET] تنسيق أعمدة DataGridView أبو خالد الشكري 3 571 21-12-24, 02:40 PM
آخر رد: aljzazy
  طباعة تقرير كرستال DOX.1 7 2,255 14-10-24, 06:59 AM
آخر رد: am000er
Exclamation [VB.NET] اريد كود لتصدير البيانات من DataGridView الى ملف Excel zazasami 1 494 04-08-24, 09:15 PM
آخر رد: mrfenix93
  طباعة تقرير بطول وعرض معين (التقرير عبارة عن سطر) atefkhalf2004 7 629 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

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


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