第一阶段【添加数据集】
会弹出一个新建数据集的界面:
选择你所需要的表、视图、函数或存储过程。
这样在“报表数据”栏中就可以看到新建的数据集了。
第二阶段【设计报表】
对于需要汇总比较数据的用户来说,图表则是你的不二选择。在右侧添加要比较的字段,顶部则添加汇总的项,底部则添加类别字段。仪表则用线性或径性方式来显示数据、字段、表达式等,我们可以针对仪表、仪表刻度、仪表指针、仪表范围的进行数据绑定。
第三阶段【编程部分】
下面是我做的报表模版及运行结果界面:
首先,在项目中新建一个windows窗体,将ReportViewer拖放到窗体上,调整合适的大小与位置。
首先在窗体代码页最上面引入2个命名空间
Imports System Imports Microsoft.Reporting.WinForms
双击查询,打开Click事件:
Private Sub btnQuery_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles btnQuery.Click Dim dt As DataTable Dim b_CheckDay As New B_CheckDayLog '大家可以自己的实际情况查询数据。我这里用了分层,查询的具体实现不在这层。 If chkEnd.Checked Then If chkUser.Checked Then '获取记录 dt = b_CheckDay.QueryCheckLog(cmbUserID.Text,dtpStart.Text,dtpEnd.Text) Else '获取记录 dt = b_CheckDay.QueryCheckLog(dtpStart.Text,dtpEnd.Text) End If Else '获取记录 dt = b_CheckDay.QueryCheckLog(dtpStart.Text) End If '【这里是重点】 '声明一个报表数据源对象 Dim rptDataSource As New ReportDataSource '设置报表数据源名称 rptDataSource.Name = "Check" '设置报表数据源实例 rptDataSource.Value = dt '设置嵌入报表的资源的名称 ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.CheckDay.rdlc" '清空报表数据源 ReportViewer1.LocalReport.DataSources.Clear() '添加报表数据源 ReportViewer1.LocalReport.DataSources.Add(rptDataSource) '设置报表中的参数集合,这里传递的参数,名字大小写必须一致, '且其本身数据类型必须与报表中定义的数据类型也必须一致。 Dim params() As ReportParameter = { New ReportParameter("DateStart",Date.Parse(dtpStart.Text)),New ReportParameter("DateEnd",Date.Parse(dtpEnd.Text)) } '传递报表中的参数集合 ReportViewer1.LocalReport.SetParameters(params) '刷新报表 Me.ReportViewer1.RefreshReport() End Sub
现在一切OK了,运行部分就交给你自己测试了。我也算初识报表吧,如果有什么错误的地方,欢迎大家指正,大家共同探讨,共同进步。
转载的朋友请说明出处:
http://www.jb51.cc/article/p-uotyjoxr-ts.html