图解机房收费系统报表制作的全过程
在学习vb6.0时,使用的报表是第三方的Grid++Report,纠结了一番,现在换到了VB.Net,又花费了一天的时间来学习。不过感觉还是很有收获,拿出来分享一下。
第一阶段【添加数据集】
经过简单的设计出现下图:
下面的图显示的添加报表Reporting
(注意:必须选中Report.dlc)
注意:添加数据集(右击)
第二阶段【连接数据库】
添加我们需要连接到数据库中的表,如下的表:
下面就是连接数据库的简单过程了,按图索骥即可。
下面一定的选择你将要打印报表的数据表
第三阶段【设计报表】
第四阶段【编程部分】
首先在窗体代码页最上面引入2个命名空间
首先在窗体代码页最上面引入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 CheckWeekMgr As New CheckWeekLogMgr
- '大家可以自己的实际情况查询数据。我这里用了分层,查询的具体实现不在这层。
- If chkEnd.Checked Then
- If chkUser.Checked Then
- '获取记录
- dt = CheckWeekMgr.QueryCheckLog(cmbUserID.Text, dtpStart.Text, dtpEnd.Text)
- Else
- '获取记录
- dt = CheckWeekMgr.QueryCheckLog(dtpStart.Text, dtpEnd.Text)
- End If
- Else
- '获取记录
- dt = CheckWeekMgr.QueryCheckLog(dtpStart.Text)
- End If
- '【这里是重点】
- '声明一个报表数据源对象
- Dim rptDataSource As New ReportDataSource
- '设置报表数据源名称,这个名称必须与你创建数据集时起的名称一致。
- rptDataSource.Name = "Check"
- '设置报表数据源实例
- rptDataSource.Value = dt
- '设置嵌入报表的资源的名称
- ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.CheckWeek.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了,运行部分就交给你自己测试了。我也算初识报表吧,如果有什么错误的地方,欢迎大家指正,大家共同探讨,共同进步。