تقييم الموضوع :
  • 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
اشكرك من قلبي وادعوا الله لك بمزيد من العلم

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 197 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  [C#.NET] طباعة بيانات داتا جرد فيو h2551996 0 94 25-02-24, 02:31 PM
آخر رد: h2551996
  فلترة datagridview بدون قاعدة بيانات صالح عبدالله 3 317 02-02-24, 04:07 PM
آخر رد: صالح عبدالله
  [VB.NET] ظهور التاريخ غير مرتب بالأقدم في datagridview مبرمج صغير 1 4 308 26-01-24, 03:41 PM
آخر رد: atefkhalf2004
  [VB.NET] التاريخ في أداة أبو سامر لطباعة DataGridView مبرمج صغير 1 17 657 26-01-24, 01:52 AM
آخر رد: مبرمج صغير 1
  مشكلة في datagridview Adata 4 317 17-01-24, 03:00 PM
آخر رد: aljzazy
  ارجو المساعدة فى شاشة طباعة الباركود new_programer 10 583 09-01-24, 08:41 PM
آخر رد: new_programer
  اريد طباعة الباركود المحدد فقط مع الكمية new_programer 5 448 09-01-24, 08:40 PM
آخر رد: new_programer
Lightbulb [VB.NET] إطهار الصورة بمقاس معين في DataGridView أبو خالد الشكري 2 332 14-12-23, 03:01 PM
آخر رد: أبو خالد الشكري
Question [VB.NET] اسم عمود الأرقام في DataGridView أبو خالد الشكري 6 615 03-12-23, 08:01 AM
آخر رد: أبو خالد الشكري

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم