ارسال بيانات DataGridView الى report Viewer. - Rabeea Qbaha - 20-10-16
السلام عليكم
انا اريد ارسال جميع بيانات ال 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 بالمثود الخاصه بي لاني لا اريد اظهار جميع الصفوف
شكرا
RE: ارسال بيانات DataGridView الى report Viewer. - Adrees - 21-10-16
فضلاً اخي الكريم ضع مثال حتى يسهل تعديله
RE: ارسال بيانات DataGridView الى report Viewer. - Rabeea Qbaha - 22-10-16
اهلا اخ ادريس
كما تلاحظ في المثال السابق
الكود الموجود في ال load يقوم بتعبئه البيانات من قاعدة البيانات
و button 1 تقوم بتمرير بيانات ال datagridview الى الـ dataset الخاصه بال report viewer
وبعدها تظهر البيانات في ال report viewer
ما اريده هو تعبئه ال gridview عن طريق المثود التي استخدمها لتغير اسمائ الاعمده في الهيدر ... الخ.
كل هذا فقط من اجل طباعه ال gridview.
هل لديك حلول للطباعتها ؟؟
بحثت كثيرا لاكن لا شئ كان جيد وفبه الكثير من المشاكل
شكرا
RE: ارسال بيانات DataGridView الى report Viewer. - ممدوح - 22-10-16
ما المشكلة في استخدام هذا الكود طالما أنك تتصل بقاعدة البيانات
كود :
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
RE: ارسال بيانات DataGridView الى report Viewer. - Rabeea Qbaha - 23-10-16
(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
يقوم بطباغ
RE: ارسال بيانات DataGridView الى report Viewer. - Adrees - 23-10-16
بعد التعديل الميثود ستصبح بالشكل التالي
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(cmd, cn) 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(0, btnDelete) 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 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
RE: ارسال بيانات DataGridView الى report Viewer. - Rabeea Qbaha - 23-10-16
(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(cmd, cn) 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(0, btnDelete) 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 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
Thank you Adrees
and sorry because i'm typing in English my keyboard don't have Arabic characters
|