【机房收费】--VB让报表有生命
【前言】 机房收费系统完成了,收获很多,想要把现在的收获定格一下,写了这篇博客,希望与同学们一起交流,互相学习,共同进步。报表在数据库视频里面是有所耳闻的,但是并没有自己去做。现在接触报表,觉得还是比较容易接受的。 【问题一】-- 报表制作与连接数据表 报表是用来显示我们数据库中某张表的内容的,打开Grid++Report设计器,所以第一步我们要做一张报表,第二步是连接报表与数据库,这个内容大家参考迎迎的博客:报表连接数据库。总结的非常的详细,图片很详细,这里我就不再赘述,关于报表与VB的连接我做一些补充。 【问题二】-- VB让报表参数正确显示 这一部分我也分了几个步骤来解释,以周报表为例,我们添加了系统变量来显示当前日期和时间,还添加了三个参数与VB中的内容作为连接。 这一部分很喜欢用VB让报表有生命这个形容词,PS:是借用雅雯同学的,下面看看如何操作吧~~ ①制表时间:当前日期时间。这个在VB里面有date函数,在报表里面它是一个系统变量,首先我们可以点击上面的钟表一样的图形,就是插入系统变量,将变量插入到想要到位置,感觉类似于VB中的添加控件,设置变量类型为当期日期时间就好了。
②开始时间与结束时间:VB中咱们用周报表的时候展示的是一段时间的收入,从几号到几号。 ③首先我们需要添加需要的参数,在参数集合那里,添加我们需要的三个参数:BeginDate,EndDate,XX,接下来要做的是把这些参数和报表界面里的综合文字框联系起来,让这些类似于label一样的综合文字框有生命。
④其次,在插入菜单选择插入综合文字框到想要插入的位置。这里我们插入了三个综合文字框,以BeginDate为例,其他两个也一样。我们可以在右侧更改文字框的属性.从数据里更改文本为BeginDate,这里的begindate要作为一个参数与VB里的DTPicker联系起来。所以要设置它的文本为参数类型的。 ⑤下面是将这些综合文字框和参数联系起来的顺序。这样这三个文字框就有了生命,显示的内容可以随着我们的在VB中的操作而变动。
=============================================================================== 走到这里,当然我们只是做好了报表里的工作,要实现整个过程还需要代码。
(1)显示具体某一段时间内各项数据,连接好数据表,代码如下 <span style="font-family:FangSong_GB2312;font-size:18px;"><strong>Dim StrSQL As String Dim strMsg As String '创建报表对象 StrSQL = "select * from CheckWeek_info where date > = '" & DTP1.Value &"' and date < = '" & DTP2.Value & "'" '实例化报表 Set Report = New grproLibCtl.GridppReport '载入报表模板文件 Report.LoadFromFile (App.Path & "周报表.grf") '数据源连接 Report.DetailGrid.Recordset.ConnectionString = Connectstring() '通过SELECT查询创建记录集 Report.DetailGrid.Recordset.QuerySQL = StrSQL Report.ParameterByName("begindate").AsString =Format(DTP1.Value,"yyyy-mm-dd") Report.ParameterByName("enddate").AsString =Format(DTP2.Value,"yyyy-mm-dd") Report.ParameterByName("XX").AsString = Nowuser '显示报表中的内容 GRDisplayViewer1.Report = Report GRDisplayViewer1.start </strong></span>
(2)刷新日结账单,将最新的数据重新加载一次。
Private Sub CmdSX_Click() '刷新日结账单 '按照降序排列,ASC是按照升序排列 Report.DetailGrid.Recordset.QuerySQL = "SELECT TOP 1 * FROM Checkweek_Info ORDER BY Date DESC" Report.ParameterByName("begindate").AsString =Format(DTP1.Value,"yyyy-mm-dd") Report.ParameterByName("XX").AsString = Nowuser GRDisplayViewer1.Refresh End Sub (3)打印预览
Private Sub CmdShowPrint_Click() Report.PrintPreview (True) '打印预览 End Sub (4)打印
Private Sub CmdPrint_Click() '打印 Report.[Print] (True) 'Print用中括号括起来, 为了与VB中的Print方法区别开 End Sub 【总结】 报表初次见面可能会有陌生感,特别是Grid++Report设计器这个新事物,这个时候我们需要站在巨人的肩膀上,看看其他同学是怎么做的,看看师哥师姐是怎么做的,我们在参考他们的时候先盲人摸象,囫囵吞枣,然后当我们遇到问题的时候就要仔细去探索,精益求精了。 感谢您的阅读~~ 未完待续~~ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – 将UTC DateTime转换为特定时区xamarin表单pcl
- cocos2d-x Lua编译成二进制
- ruby – 奇怪的“未定义的方法`absolute_path’”错误
- cocos2d-x Helloworld 详解
- 读写config,xml配置文件
- 如何在PostgreSQL中指定新列的位置?
- c# – 应该关闭/处理WebException.Response.GetResponseStr
- ruby – celluloid-io或具有mosquitto环的事件机器
- oracle – 在sqlplus中假脱机csv文件时的标头格式
- flash – 如何为您的网络应用程序创建精美的Screencast?