تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ارسال بيانات DataGridView الى report Viewer.
#1
السلام عليكم
انا اريد ارسال جميع بيانات ال DataGridView الى Report Viewer لغرض طباعتها
وجدت المثال الاتي في Stack-overflow في هذا الرابط 
وهو يعمل جيدا 
الكود الخاص بالمثال :
كود :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
   Dim cn = "data source=(localdb)\v11.0;initial catalog=TestDB;integrated security=True;"
   Dim cmd = "SELECT Id,Name FROM Category"
   Dim adapter = New SqlDataAdapter(cmd, cn)
   Dim table = New DataTable()
   adapter.Fill(table)
   Me.DataGridView1.DataSource = table
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
   Dim form2 = New Form2()
   Dim rds= New ReportDataSource("DataSet1", Me.DataGridView1.DataSource)
   form2.ReportViewer1.LocalReport.DataSources.Clear()
   form2.ReportViewer1.LocalReport.DataSources.Add(rds)
   form2.ReportViewer1.LocalReport.ReportEmbeddedResource = "Test.Report1.rdlc"
   form2.ShowDialog()
End Sub
ما اريده هو ان اجعل الكود السابق يعمل مع المثود الخاصه بتعبئه ال DataGridView الموجوده لدي 
وهذا الكود الخاص بها :
كود :
Sub FillGridS()
       DataGridView1.CancelEdit()
       DataGridView1.Columns.Clear()
       DataGridView1.DataSource = Nothing

       Dim cbb As New DataGridViewComboBoxColumn() With {.HeaderText = "العملة"}
       cbb.Items.Add("شيقل.ج")
       cbb.Items.Add("د.اردني")
       cbb.Items.Add("د.امريكي")
       cbb.Items.Add("يورو")
       cbb.Items.Add("ر.صيني")
       cbb.FlatStyle = FlatStyle.Flat
       'Delete Button
       Dim btnDelete As New DataGridViewButtonColumn()
       btnDelete.FlatStyle = FlatStyle.Flat
       'Image Button
       Dim btnImage As New DataGridViewButtonColumn()
       btnDelete.FlatStyle = FlatStyle.Popup


       DataGridView1.Columns.Insert(0, btnDelete)
       DataGridView1.Columns.Add("", "المبلغ المرسل")
       DataGridView1.Columns.Add(cbb)
       DataGridView1.Columns.Add("", "العمولة")
       DataGridView1.Columns.Add("", "أسم المستقبل")
       DataGridView1.Columns.Add("", "هاتف المستقبل")
       DataGridView1.Columns.Add("", "البلد المستقبل")
       DataGridView1.Columns.Add("", "أسم المرسل")
       DataGridView1.Columns.Add("", "هاتف المرسل")
       DataGridView1.Columns.Add("", "الشركة المستقبلة")
       DataGridView1.Columns.Add("", "التاريخ")
       DataGridView1.Columns.Add(btnImage)
       DataGridView1.Columns.Add("", "الملاحظات")
       DataGridView1.Columns.Add("", "ID")
       DataGridView1.Columns(13).Visible = False

       'WHERE date >= DATEADD(DAY, -30, GETDATE())
       Const sqlstring As String = "SELECT * FROM money_sent "
       'فحص الاتصال بقاعدة البيانات
       If SQL.conn.State = ConnectionState.Open Then
           SQL.conn.Close()
       End If
       SQL.conn.Open()
       Dim adt As New SqlDataAdapter(sqlstring, SQL.conn)
       Dim dt As New DataTable
       adt.Fill(dt)

       Dim i As Integer
       For i = 0 To dt.Rows.Count - 1
           DataGridView1.Rows.Add()
           DataGridView1.Rows(i).Cells(1).Value = dt.Rows(i).ItemArray(1)
           Dim cell As DataGridViewComboBoxCell = DirectCast(DataGridView1.Rows(i).Cells(2), DataGridViewComboBoxCell)
           cell.Value = dt.Rows(i).ItemArray(2)
           DataGridView1.Rows(i).Cells(3).Value = dt.Rows(i).ItemArray(3)
           DataGridView1.Rows(i).Cells(4).Value = dt.Rows(i).ItemArray(4)
           DataGridView1.Rows(i).Cells(5).Value = dt.Rows(i).ItemArray(5)
           DataGridView1.Rows(i).Cells(6).Value = dt.Rows(i).ItemArray(6)
           DataGridView1.Rows(i).Cells(7).Value = dt.Rows(i).ItemArray(7)
           DataGridView1.Rows(i).Cells(8).Value = dt.Rows(i).ItemArray(8)
           DataGridView1.Rows(i).Cells(9).Value = dt.Rows(i).ItemArray(9)
           DataGridView1.Rows(i).Cells(10).Value = dt.Rows(i).ItemArray(10)
           DataGridView1.Rows(i).Cells(12).Value = dt.Rows(i).ItemArray(12)
           DataGridView1.Rows(i).Cells(13).Value = dt.Rows(i).ItemArray(0)
       Next

       SQL.conn.Close()
       'كود خاص بتخطيط الجريد فيو
       DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal
       Me.DataGridView1.GridColor = Color.WhiteSmoke
   End Sub
يعني اريد استبدال الكود الموجود بال load بالمثود الخاصه بي لاني لا اريد اظهار جميع الصفوف
شكرا
الرد }}}
تم الشكر بواسطة:
#2
فضلاً اخي الكريم ضع مثال حتى يسهل تعديله
الرد }}}
تم الشكر بواسطة: Rabeea Qbaha
#3
اهلا اخ ادريس 
كما تلاحظ في المثال السابق 
الكود الموجود في ال load  يقوم بتعبئه البيانات من قاعدة البيانات 
و button 1 تقوم بتمرير بيانات ال datagridview الى الـ dataset الخاصه بال report viewer 
وبعدها تظهر البيانات في ال report viewer 
ما اريده هو تعبئه ال gridview عن طريق المثود التي استخدمها لتغير اسمائ الاعمده في الهيدر ... الخ.
كل هذا فقط من اجل طباعه ال gridview.
هل لديك حلول للطباعتها ؟؟
بحثت كثيرا لاكن لا شئ كان جيد وفبه الكثير من المشاكل
شكرا
الرد }}}
تم الشكر بواسطة:
#4
ما المشكلة في استخدام هذا الكود طالما أنك تتصل بقاعدة البيانات
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       Dim cmd = "SELECT * FROM Category"
       Dim adapter = New SqlDataAdapter(cmd, cn)
       Dim table = New DataTable()
       adapter.Fill(table)

       Dim rds = New ReportDataSource("DataSet1", table)
       Form2.ReportViewer1.LocalReport.DataSources.Clear()
       Form2.ReportViewer1.LocalReport.DataSources.Add(rds)
       Form2.ReportViewer1.LocalReport.ReportEmbeddedResource = "Test.Report1.rdlc"
       Form2.ReportViewer1.RefreshReport()
       Form2.ShowDialog()

   End Sub

جرب هذا الكود واذكر ملاحظاتك والا ضع مشروعك مع نسخة من قاعدة البيانات على شكل Script
الرد }}}
تم الشكر بواسطة: Rabeea Qbaha
#5
(22-10-16, 06:44 PM)ممدوح كتب : ما المشكلة في استخدام هذا الكود طالما أنك تتصل بقاعدة البيانات
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       Dim cmd = "SELECT * FROM Category"
       Dim adapter = New SqlDataAdapter(cmd, cn)
       Dim table = New DataTable()
       adapter.Fill(table)

       Dim rds = New ReportDataSource("DataSet1", table)
       Form2.ReportViewer1.LocalReport.DataSources.Clear()
       Form2.ReportViewer1.LocalReport.DataSources.Add(rds)
       Form2.ReportViewer1.LocalReport.ReportEmbeddedResource = "Test.Report1.rdlc"
       Form2.ReportViewer1.RefreshReport()
       Form2.ShowDialog()

   End Sub

جرب هذا الكود واذكر ملاحظاتك والا ضع مشروعك مع نسخة من قاعدة البيانات على شكل Script
this code show datagridview with the original header from database 
and i want to show custom header 

يقوم بطباغ
الرد }}}
تم الشكر بواسطة:
#6
بعد التعديل الميثود ستصبح بالشكل التالي
PHP كود :
   Sub FillGridS()
 
       Dim cn As New SqlConnection("data source=(localdb)\v11.0;initial catalog=TestDB;integrated security=True;")
 
       Dim cmd "SELECT * FROM Category"
 
       Dim adapter = New SqlDataAdapter(cmdcn)
 
       Dim table = New DataTable()
 
       adapter.Fill(table)
 
       Me.DataGridView1.DataSource table

        Dim cbb 
As New DataGridViewComboBoxColumn() With {.HeaderText "العملة"}
 
       cbb.Items.Add("شيقل.ج")
 
       cbb.Items.Add("د.اردني")
 
       cbb.Items.Add("د.امريكي")
 
       cbb.Items.Add("يورو")
 
       cbb.Items.Add("ر.صيني")
 
       cbb.FlatStyle FlatStyle.Flat
        
'Delete Button
        Dim btnDelete As New DataGridViewButtonColumn()
        btnDelete.FlatStyle = FlatStyle.Flat
        '
Image Button
        Dim btnImage 
As New DataGridViewButtonColumn()
 
       btnDelete.FlatStyle FlatStyle.Popup


        DataGridView1
.Columns.Insert(0btnDelete)
 
       DataGridView1.Columns(1).HeaderText "المبلغ المرسل"
 
       DataGridView1.Columns.Add(cbb)
 
       DataGridView1.Columns(3).HeaderText "العمولة"
 
       DataGridView1.Columns(4).HeaderText "أسم المستقبل"
 
       DataGridView1.Columns(5).HeaderText "هاتف المستقبل"
 
       DataGridView1.Columns(6).HeaderText "البلد المستقبل"
 
       DataGridView1.Columns(7).HeaderText "أسم المرسل"
 
       DataGridView1.Columns(8).HeaderText "هاتف المرسل"
 
       DataGridView1.Columns(9).HeaderText "الشركة المستقبلة"
 
       DataGridView1.Columns(10).HeaderText "التاريخ"
 
       DataGridView1.Columns.Add(btnImage)
 
       DataGridView1.Columns(12).HeaderText "الملاحظات"
 
       DataGridView1.Columns(13).HeaderText "ID"
 
       DataGridView1.Columns(13).Visible False


        
'كود خاص بتخطيط الجريد فيو
        DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal
        Me.DataGridView1.GridColor = Color.WhiteSmoke
    End Sub 
وكود الطباعة سيبقى بهذا الشكل

PHP كود :
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click
   Dim form2 
= New Form2()
 
  Dim rds= New ReportDataSource("DataSet1"Me.DataGridView1.DataSource)
 
  form2.ReportViewer1.LocalReport.DataSources.Clear()
 
  form2.ReportViewer1.LocalReport.DataSources.Add(rds)
 
  form2.ReportViewer1.LocalReport.ReportEmbeddedResource "Test.Report1.rdlc"
 
  form2.ShowDialog()
End Sub 
الرد }}}
تم الشكر بواسطة: Rabeea Qbaha
#7
(23-10-16, 02:57 PM)Adrees كتب : بعد التعديل الميثود ستصبح بالشكل التالي
PHP كود :
   Sub FillGridS()
 
       Dim cn As New SqlConnection("data source=(localdb)\v11.0;initial catalog=TestDB;integrated security=True;")
 
       Dim cmd "SELECT * FROM Category"
 
       Dim adapter = New SqlDataAdapter(cmdcn)
 
       Dim table = New DataTable()
 
       adapter.Fill(table)
 
       Me.DataGridView1.DataSource table

        Dim cbb 
As New DataGridViewComboBoxColumn() With {.HeaderText "العملة"}
 
       cbb.Items.Add("شيقل.ج")
 
       cbb.Items.Add("د.اردني")
 
       cbb.Items.Add("د.امريكي")
 
       cbb.Items.Add("يورو")
 
       cbb.Items.Add("ر.صيني")
 
       cbb.FlatStyle FlatStyle.Flat
        
'Delete Button
        Dim btnDelete As New DataGridViewButtonColumn()
        btnDelete.FlatStyle = FlatStyle.Flat
        '
Image Button
        Dim btnImage 
As New DataGridViewButtonColumn()
 
       btnDelete.FlatStyle FlatStyle.Popup


        DataGridView1
.Columns.Insert(0btnDelete)
 
       DataGridView1.Columns(1).HeaderText "المبلغ المرسل"
 
       DataGridView1.Columns.Add(cbb)
 
       DataGridView1.Columns(3).HeaderText "العمولة"
 
       DataGridView1.Columns(4).HeaderText "أسم المستقبل"
 
       DataGridView1.Columns(5).HeaderText "هاتف المستقبل"
 
       DataGridView1.Columns(6).HeaderText "البلد المستقبل"
 
       DataGridView1.Columns(7).HeaderText "أسم المرسل"
 
       DataGridView1.Columns(8).HeaderText "هاتف المرسل"
 
       DataGridView1.Columns(9).HeaderText "الشركة المستقبلة"
 
       DataGridView1.Columns(10).HeaderText "التاريخ"
 
       DataGridView1.Columns.Add(btnImage)
 
       DataGridView1.Columns(12).HeaderText "الملاحظات"
 
       DataGridView1.Columns(13).HeaderText "ID"
 
       DataGridView1.Columns(13).Visible False


        
'كود خاص بتخطيط الجريد فيو
        DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal
        Me.DataGridView1.GridColor = Color.WhiteSmoke
    End Sub 
وكود الطباعة سيبقى بهذا الشكل

PHP كود :
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click
   Dim form2 
= New Form2()
 
  Dim rds= New ReportDataSource("DataSet1"Me.DataGridView1.DataSource)
 
  form2.ReportViewer1.LocalReport.DataSources.Clear()
 
  form2.ReportViewer1.LocalReport.DataSources.Add(rds)
 
  form2.ReportViewer1.LocalReport.ReportEmbeddedResource "Test.Report1.rdlc"
 
  form2.ShowDialog()
End Sub 


Thank you Adrees 
and sorry because i'm typing in English my keyboard don't have Arabic characters 
الرد }}}
تم الشكر بواسطة: Adrees


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مرفق سورس كود ارسال ملفات الى الواتس بدون API new_programer 0 48 14-04-24, 02:16 PM
آخر رد: new_programer
  هل من الممكن العمل على قاعدة بيانات اكسل على الفيجوال بيسك خالد كامل1 4 140 24-03-24, 02:00 AM
آخر رد: خالد كامل1
  تعديل كود ارسال صورة الى الواتس new_programer 2 166 21-03-24, 10:07 PM
آخر رد: new_programer
  [سؤال] أتمنى اجابة وافية:عمل برنامج بقاعدة بيانات SQL دون حاجة تثبيت SQLSERVER dr.programming 6 652 19-03-24, 08:56 AM
آخر رد: سلامه محمد11
  استعلام select عن مجموعة بيانات Adel27213 1 209 15-03-24, 01:11 AM
آخر رد: justforit
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 194 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  [VB.NET] تحديث بيانات فى كلاس من جدول سيكوال asdfar1977 6 194 26-02-24, 01:07 AM
آخر رد: asdfar1977
  كيفية جمع أرقام عمود فى الداتا جريد فيو بناءاً على بيانات معينة heem1986 5 235 25-02-24, 11:26 PM
آخر رد: heem1986
  [C#.NET] طباعة بيانات داتا جرد فيو h2551996 0 94 25-02-24, 02:31 PM
آخر رد: h2551996
  [VB.NET] معرفة بيانات الجهاز محمد بوقزاحة 1 326 21-02-24, 11:44 PM
آخر رد: AHMED213

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


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