تقييم الموضوع :
  • 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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  انشاء قاعدة بيانات بإمتداد خاص بك thevirus 5 114 أمس, 03:09 PM
آخر رد: thevirus
  [سؤال] كيف اجعل البرنامج يحفظ بيانات؟ The Light Fire 9 125 أمس, 12:58 AM
آخر رد: ali.alfoly
  [VB.NET] استدعاء بيانات من الاكسس لل vb.net مهند الموسوي 1 70 02-12-16, 03:14 PM
آخر رد: مهند الموسوي
  [سؤال] مشاركة برنامج متصل بقاعدة بيانات sql على شبكه محلية mohammedbassim 3 84 24-11-16, 11:40 PM
آخر رد: mohammedbassim
  التعديل علي datagridview باستخدام sql command dark1459 6 139 21-11-16, 11:55 AM
آخر رد: dark1459
  [VB.NET] DataGridView بطيء جدا ساعدوني لاجد حل dubai.eig 4 139 20-11-16, 09:22 PM
آخر رد: ابو ليلى
  اضافة عمود من نوع image ل bound datagridview noway 1 70 17-11-16, 12:08 PM
آخر رد: Genius Live
  ارسال محتوى DataGridView1 الى ايميل nabil.1710 11 363 16-11-16, 09:05 PM
آخر رد: nabil.1710
Photo [سؤال] لدي مشكله DataGridView أحمد العرب 4 138 16-11-16, 10:26 AM
آخر رد: أحمد العرب
  كيف يمكن اضافة مجموعة حقول الي datagridview والتعديل عليها مباشرتا dark1459 2 68 15-11-16, 10:30 PM
آخر رد: السرور

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


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