机房收费系统(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一样,否则将会出现“尚未为数据源***提供数据源实例”的错误。
机房收费系统(VB.NET)——超具体的报表制作过程的更多相关文章
- 机房收费系统vb.net之打包与部署(一)
从机房重构到如今,我最大的感受就是万事开头难,万事结尾难!开头难是由于那个思路理不清,对三层已经设计模式的应用不够熟悉,结尾难就是打包部署了!这几天非常头疼,以为完毕了代码就大功告成了,但是没想到啊, ...
- 机房收费系统vb.net之打包与部署(二)
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wangdan199112/article/details/28286365 ...
- VB.NET版机房收费系统---导出Excel表格
datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,能够显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件很easy和直观,大多数情 ...
- VB.NET版机房收费系统---七仙女之系统登录
VB.NET第一版机房收费系统,告一段落,验收的时候.问题也是大大的存在,没实用上设计模式,什么触发器.存储过程,都没实用上.看看其她小伙伴的,七层实现登录?那是什么东东,相比較我的三层而言,多了两倍 ...
- 机房收费系统——在VB中将MSHFlexGrid控件中的数据导出到Excel
机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系 ...
- 机房收费系统之vb报表的模板的制作(一)
机房收费系统有报表的功能,报表对于我们来说有点陌生.这不是会计的事吗?怎么机房收费系统也參合进来了,事实上我们学会了报表的步骤.理解了代码后.报表变得不是非常难,世上无难事,仅仅怕肯登攀 ...
- VB.NET 机房收费系统项目总结
VB.NET机房收费系统项目总结 从2013年5月3日——2013年8月20日历时三个多月的.NET机房收费系统终于完成了.项目做完了,真有一种如释重负的感觉. 下面我将从文档.UML图,代码这三个方 ...
- VB.NET版机房收费系统---外观层如何写
外观设计模式,<大话设计模式>第103页详细讲解,不记得这块知识的小伙伴可以翻阅翻阅,看过设计模式,敲过书上的例子,只是学习的第一步,接着,如果在我们的项目中灵活应用,把设计模式用出花儿来 ...
- VB.NET版机房收费系统---报表
报表,即报告情况的表格,简单的说:报表就是用表格.图表等格式来动态显示数据,可以用公式表示为:"报表 = 多样的格式 + 动态的数据". 在没有计算机以前,人们利用纸和笔来记录数据 ...
随机推荐
- codeforces C. Diverse Permutation
C. Diverse Permutation time limit per test 1 second memory limit per test 256 megabytes input standa ...
- JDBC数据库编程:callableStatement接口
了解MySQL存储过程建立, 了解存储过程中参数传递的三种方式 了解callablestatement调用存储过程操作. 因为在现在开发中,使用存储过程的地方越来越少,所以,对于存储过程使用,只需要了 ...
- TCP协议详解(理论篇)
TCP协议详解(理论篇) 2012-08-20 0个评论 作者:陈立龙 收藏 我要投稿 TCP协议详解(理论篇) 1. 与UDP不同的是,TCP提供了一种面向连接 ...
- spring Di依赖注入
依赖注入有两种方式 通过 get set 方法 Person.java package cn.itcast.spring.sh.di.set; import java.util.List; imp ...
- CRC校验和网络通信中writen、readn函数
1.对网络传输的数据进行CRC32校验. #include <stdint.h> #include <stdio.h> #include <string.h> st ...
- 爬虫1:get请求的翻页及思考
刚开始接触爬虫,理解还不透彻,说一些初始阶段的想法{1.因为get请求的方式(请求体无数据,不能通过Request.add_data()函数来添加数据,实现对网址翻页:需要直接对网址进行操作来实现翻页 ...
- PHP中获取当前页面的完整URL & php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<b ...
- 《MVC +EasyUI 》——表单的提交
之前用AJax给Controller传递參数,然后再调用服务端的方法对数据库进行更改,今天碰到一个新的方法,就是表单的提交.这样能够省去AJax穿參.当表单提交后.我们能够获取表单上控件中的值 ...
- Jmeter常用操作
一,Jmeter-http 接口脚本添加cookie 实例:学生金币充值接口 该接口有权限验证,需要admin 用户才可以操作,需要添加cookie cookie 中key 为登录的用户名,valu ...
- MySQL分组查询获取每个学生前n条分数记录(分组查询前n条记录)
CREATE TABLE `t_test` ( `id` ) NOT NULL AUTO_INCREMENT, `stuid` ) NOT NULL, `score` ) DEFAULT NULL, ...