机房收费系统(VB.NET)——超详细的报表制作过程
之前做机房收费系统用的报表是Grid++Report,这次VB.NET重构中用到了VisualStudio自带的报表控件。刚开始当然对这块功能很不熟悉,不过探究了一段时间后还是把它做出来了。
下面把在VisualStudio(我用的是VisualStudio2013,如果与您使用的版本不同,过程中如有不符还请考虑实际情况)中制作报表的过程尽可能详细地记录下来,供初学者学习参考。
做事要有全局观,先看一下成品,做好的报表如下图:
其实能够达到这样的效果需要做两方面的工作:添加报表控件ReportViewer和添加编辑RDLC文件。个人感觉RDLC文件的作用是绑定数据库中需要的数据,ReportViewer则是引用RDLC文件来显示RDLC文件从数据库中绑定的数据。
1、添加报表控件ReportViewer:
添加报表控件很简单:工具箱—报表—ReportViewer控件。
2、添加和编辑编辑RDLC文件:
Private Sub btnRefresh_Click(sender As Object, e As EventArgs) Handles btnRefresh.Click '根据时间段查询结账记录 Dim startTime As String = Format(dtpBegin.Value, "yyyy-MM-dd") Dim endTime As String = Format(dtpEnd.Value, "yyyy-MM-dd") Dim dt As New DataTable '对象【checkReportFacade】的【QueryCheckOut】方法功能是根据两个日期,查询此时间段的结账记录 dt = checkReportFacade.QueryCheckOut(startTime, endTime) '声明一个报表数据源对象 Dim rptDateSource = New ReportDataSource '设置报表数据集名称 rptDateSource.Name = "DataSetCheckoutReport" '设置报表数据源实例 rptDateSource.Value = dt '设置嵌入报表的资源名称 reportViewer.LocalReport.ReportEmbeddedResource = "UI.CheckReport.rdlc" '清空报表数据源 reportViewer.LocalReport.DataSources.Clear() '添加报表数据源 reportViewer.LocalReport.DataSources.Add(rptDateSource) '设置报表中的参数集合(注意:这里的参数和报表中的参数大小写和数据类型都要一致) Dim strUserID As String = Entity.UtilUserEntity.UtilUser.UserID Dim params As ReportParameter() params = {New ReportParameter("startTime", startTime), New ReportParameter("endTime", endTime), New ReportParameter("userId", strUserID)} '传递报表中的参数集合 reportViewer.LocalReport.SetParameters(params) '刷新报表 Me.reportViewer.RefreshReport() End Sub
温馨提示:代码中的数据集名称DataSetCheckoutReport一定要与刚开始创建RDLC文件时设定的数据集名称DataSetCheckoutReport一样,否则将会出现“尚未为数据源***提供数据源实例”的错误。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。