机房收费系统(VB.NET)——超具体的报表制作过程
之前做机房收费系统用的报表是Grid++Report,这次VB.NET重构中用到了VisualStudio自带的报表控件。
刚開始当然对这块功能非常不熟悉,只是探究了一段时间后还是把它做出来了。
以下把在VisualStudio(我用的是VisualStudio2013,假设与您使用的版本号不同,过程中如有不符还请考虑实际情况)中制作报表的过程尽可能具体地记录下来,供刚開始学习的人学习參考。
做事要有全局观,先看一下成品,做好的报表例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHV5dXlhbmc2Njg4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
事实上可以达到这种效果须要做双方面的工作:加入报表控件ReportViewer和加入编辑RDLC文件。
个人感觉RDLC文件的作用是绑定数据库中须要的数据,ReportViewer则是引用RDLC文件来显示RDLC文件从数据库中绑定的数据。
1、加入报表控件ReportViewer:
加入报表控件非常easy:工具箱—报表—ReportViewer控件。
2、加入和编辑编辑RDLC文件:
Version=11.0.0.0, Culture=neutral,PublicKeyToken=89845dcd8080cc91”或它的一个依赖项。
系统找不到指定的文件】这个错误,那么能够下载安装SharedManagementObject.msi。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHV5dXlhbmc2Njg4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHV5dXlhbmc2Njg4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
其它文本如“開始时间:”、“结束时间:”等也是一样;
08:08:08”,则可输入“ =Format(Now,"yyyy-MM-dd hh:mm:ss") ”。
以下就到了最后阶段。加上代码,核心代码为(限于篇幅。在这仅仅贴上刷新button事件代码):
'在本代码层首先要加入下面引用
Imports System
Imports Microsoft.Reporting.WinForms
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一样,否则将会出现“尚未为数据源***提供数据源实例”的错误。
最新文章
- Ajax接收不到PHP return后的结果的原因
- mysql 常用语句模板
- Hibernate 注解的用法以及说明(二)
- [译] 企业级 OpenStack 的六大需求(第 1 部分):API 高可用、管理和安全
- sql server还原数据库文件(.bak)常见问题解决办法笔记
- 远程控制篇:在DELPHI程序中拨号上网
- java中执行js代码
- [Python学习笔记][第八章Python异常处理结构与程序调试]
- 算法系列——huffman编码
- Xsser
- UILabel的讲解
- KVM架构及模块简介
- 项目设计day1
- Python API简单验证
- Python语音识别(计算器)
- 使用Phar来打包发布PHP程序
- 论文泛读 A Novel Ensemble Learning-based Approach for Click Fraud Detection in Mobile Advertising [1/10]
- YAML 知识点
- .NET正则平衡组
- LeetCode 561 Array Partition I 解题报告
热门文章
- 【FinancialKnowledge】拨备
- JavaScript | JQuery插件定义方法
- c#导出到excel的几种解决方案
- (五)Lucene——中文分词器
- Mysql报错......\xE6\x80\xBB\xE7\x9B\x91' for column...
- RDS经典网络平滑迁移到VPC的混访方案
- Backbone.js 1.0.0源码架构分析(一)
- python selenium --一些常用方法
- 一.软件介绍(apache lighttpd nginx)
- memcache基础知识-stats参数