VB查询数据库之报表——机房收费系统总结(六)
我们要用一个软件做报表的模板、然后在VB里面添加部件、代码调用模板,详细步骤如下。
一、下载安装
首先做报表要下载安装Grid++Report 4.5 报表设计器
点击下载(内含破解补丁)
二、制作模板
1、打开软件——插入——页眉、明细网格、页脚、如图
2。制作页眉
静态框:好像Label,能写入文字并显示
综合文字框:可以写入函数、变量等、跟文字结合并显示、在这里我们用作显示日期
上图右下角[#date3#][#time#]制作是自定义了date3跟time这两个变量、并且在VB代码中付给他俩当前的日期与时间、做法如下。
(1)新建参数
这里叫做参数、其实也是数据的容器、我还是习惯叫变量、都差不多
在软件的右边如图、参数集合---插入---参数
(2)更改属性
这个就是相当于给参数或者说变量命名、定义格式、定义数据类型
名称:VB付给这个参数值的时候要写
格式:日期是yyyy/mm/dd时间的是hh:mm:ss如图
我一共定义了4个参数、
date1和date2是显示周报表查询从日期1到日期2的日期如图
date3和time是显示当前日期和时间
具体效果如图
(3)放到页眉上
参数定义好、下面就放上去了、首先在页眉新建一个综合文字框
然后双击文字框、弹出窗口点击、插入域-----引用类型选参数----然后选择参数
效果如图
3、制作表格
(1)连接数据库(从左到右依次点击)
——查询的SQL语句写自己的表
记得点下测试、一般没问题、有问题的话看下SQL语句是否写错
(2)生成字段和列
先点击1、然后点击2、便可以自动执行刚刚的SQL语句获得表里的字段和行
页眉就不说了、直接用静态框就可以了
1.添加Grid++Report 的控件、如图
2.选择名字为GRDisplayViewer的控件、放到From上(蓝色第一个)
3.其他控件也放上去、名字如下图(跟我名字一样才能用.名字不一样要改代码)
4.开始时间和结束时间用的是时间控件DTPicter时间控件,部件载入名上图有(本人忘了是哪个了……)
5.引用(菜单--工程--引用)引用Grid++Re…………如图
6.代码(复制进去应该就行了、有详细备注、实在不懂的可以点我)
[vb] view plaincopyprint?
1.Dim WithEvents Report As grproLibCtl.GridppReport '实例化报表</SPAN>
2.'报表刷新
3.Private Sub cmdCheckDay_Click()
4. Dim txtsql As String
5. '判定终止日期不能小于起始日期
6. If StartDateView.Value > EndDateView.Value Then '条件限制
7. MsgBox "终止日期不能小于起始日期!", ,"温馨提示"
8. Exit Sub
9. End If
10.
11. Report.DetailGrid.Recordset.ConnectionString = ConnectString '数据源连接数据库直接调用写好的模块内容
12. If txtBalance.Text = "" Then '判断上期text里是否为空
13. '查询日期1到日期2的记录
14. txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & _
15. StartDateView.Value & "' and '" & EndDateView.Value & "'"
16. Else
17. '如果上期余额的text里不为空则查询日期1到日期2中、上期余额是文本中的记录
18. txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & _
19. StartDateView.Value & "' and '" _
20. & EndDateView.Value & "' And Balance = '" & txtBalance.Text & "'"
21. End If
22.
23. '显示报表中的内容
24. Report.DetailGrid.Recordset.QuerySQL = txtsql
25. grdWeekliyBill.Refresh
26.
27. '报表模板上的4个日期或时间赋值
28. Report.ParameterByName("Date1").Value = Format$(StartDateView.Value, "yyyy-mm-dd")
29. Report.ParameterByName("Date2").Value = Format$(EndDateView.Value, "yyyy-mm-dd")
30. Report.ParameterByName("Date3").Value = Date
31. Report.ParameterByName("time").Value = Time
32.
33.End Sub
34.'预览
35.Private Sub cmdpreview_Click()
36. Report.PrintPreview (True)
37.End Sub
38.
39.'打印
40.Private Sub cmdput_Click()
41. Report.[Print] (True)
42.End Sub
43.
44.'载入窗体
45.Private Sub Form_Load()
46. '创建报表对象
47. Set Report = New grproLibCtl.GridppReport
48. '载入报表模版文件
49. Report.LoadFromFile (App.Path & "\周报表.grf")
50. '设置数据连接串
51. Report.DetailGrid.Recordset.ConnectionString = ConnectString
52.
53. '查询语句
54. txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & StartDateView.Value & "' and '" & EndDateView.Value & "'"
55. Report.DetailGrid.Recordset.QuerySQL = txtsql '执行
56. '显示报表中的内容
57. grdWeekliyBill.Report = Report
58. grdWeekliyBill.Start
59.
60. '报表模板上的4个日期或时间赋值
61. Report.ParameterByName("Date1").Value = Format$(StartDateView.Value, "yyyy-mm-dd")
62. Report.ParameterByName("Date2").Value = Format$(EndDateView.Value, "yyyy-mm-dd")
63. Report.ParameterByName("Date3").Value = Date
64. Report.ParameterByName("time").Value = Time
65.
66.End Sub
Dim WithEvents Report As grproLibCtl.GridppReport '实例化报表</SPAN>
'报表刷新
Private Sub cmdCheckDay_Click()
Dim txtsql As String
'判定终止日期不能小于起始日期
If StartDateView.Value > EndDateView.Value Then '条件限制
MsgBox "终止日期不能小于起始日期!", ,"温馨提示"
Exit Sub
End If Report.DetailGrid.Recordset.ConnectionString = ConnectString '数据源连接数据库直接调用写好的模块内容
If txtBalance.Text = "" Then '判断上期text里是否为空
'查询日期1到日期2的记录
txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & _
StartDateView.Value & "' and '" & EndDateView.Value & "'"
Else
'如果上期余额的text里不为空则查询日期1到日期2中、上期余额是文本中的记录
txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & _
StartDateView.Value & "' and '" _
& EndDateView.Value & "' And Balance = '" & txtBalance.Text & "'"
End If '显示报表中的内容
Report.DetailGrid.Recordset.QuerySQL = txtsql
grdWeekliyBill.Refresh '报表模板上的4个日期或时间赋值
Report.ParameterByName("Date1").Value = Format$(StartDateView.Value, "yyyy-mm-dd")
Report.ParameterByName("Date2").Value = Format$(EndDateView.Value, "yyyy-mm-dd")
Report.ParameterByName("Date3").Value = Date
Report.ParameterByName("time").Value = Time End Sub
'预览
Private Sub cmdpreview_Click()
Report.PrintPreview (True)
End Sub '打印
Private Sub cmdput_Click()
Report.[Print] (True)
End Sub '载入窗体
Private Sub Form_Load()
'创建报表对象
Set Report = New grproLibCtl.GridppReport
'载入报表模版文件
Report.LoadFromFile (App.Path & "\周报表.grf")
'设置数据连接串
Report.DetailGrid.Recordset.ConnectionString = ConnectString '查询语句
txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & StartDateView.Value & "' and '" & EndDateView.Value & "'"
Report.DetailGrid.Recordset.QuerySQL = txtsql '执行
'显示报表中的内容
grdWeekliyBill.Report = Report
grdWeekliyBill.Start '报表模板上的4个日期或时间赋值
Report.ParameterByName("Date1").Value = Format$(StartDateView.Value, "yyyy-mm-dd")
Report.ParameterByName("Date2").Value = Format$(EndDateView.Value, "yyyy-mm-dd")
Report.ParameterByName("Date3").Value = Date
Report.ParameterByName("time").Value = Time End Sub
版权声明:本文为博主原创文章,未经博主允许不得转载。
VB查询数据库之报表——机房收费系统总结(六)的更多相关文章
- VB查询数据库之结账——机房收费系统总结(五)
对于机房收费的结账,我感觉是所有窗体中,最难的一个.这个窗体我真的做了好多天.它的难度系数我感觉是最高的. 首先,你要理清上机时间和收费标准的关系,在预备时间中,是不收费的. 其次,在超过预备时间,一 ...
- VB查询数据库之终极篇——机房收费系统总结(七)
机房收费系统总结系列到此就算是要结束了.在做机房收费系统之前,做了学生管理系统,可以说,对机房收费系统的帮助很大. 在机房收费系统中,数据库的查询,数据写入数据库,更改数据库内的信息等一些操作在学生信 ...
- VB查询数据库之写入数据库——机房收费系统总结(三)
在机房收费系统中,新注册的用户,更改的密码,上机下级记录,上机收费记录等等都要写入数据库,这样,后面的查询才能生效.像数据库中写入数据,首先,找到你要写入数据的数据库中的表,在表中建立新的行,让后再把 ...
- VB.NET版机房收费系统---报表
报表,即报告情况的表格,简单的说:报表就是用表格.图表等格式来动态显示数据,可以用公式表示为:"报表 = 多样的格式 + 动态的数据". 在没有计算机以前,人们利用纸和笔来记录数据 ...
- VB查询数据库之登陆窗体——机房收费总结(一)
机房收费系统已经做了很长一段时间了,虽然到目前为止,仍然没有结束,但已经结节尾声了.我感觉现在有必要回首总结一下整个机房收费系统. 除了结账做了一半,报表接触一点之外,其他的都基本上差不多了.从做过的 ...
- 机房收费系统(VB.NET)——超具体的报表制作过程
之前做机房收费系统用的报表是Grid++Report,这次VB.NET重构中用到了VisualStudio自带的报表控件. 刚開始当然对这块功能非常不熟悉,只是探究了一段时间后还是把它做出来了. 以下 ...
- 机房收费系统之vb报表的模板的制作(一)
机房收费系统有报表的功能,报表对于我们来说有点陌生.这不是会计的事吗?怎么机房收费系统也參合进来了,事实上我们学会了报表的步骤.理解了代码后.报表变得不是非常难,世上无难事,仅仅怕肯登攀 ...
- VB查询数据库之组合查询——机房收费总结(二)
在机房收费系统中,组合查询用的还是挺多的,像上机状态查询窗体.学生上机统计信息窗体.操作员工记录窗体.基本信息维护窗体.这其中,学生基本信息维护窗体中的东西比较多,就以它为例子,说说组合查询吧! 学生 ...
- 机房收费系统——技术总结 标签: vb数据库技术 2014-09-07 22:29 1153人阅读 评论(30)
说完了经验,再谈谈技术方面,其实对于技术,师哥师姐们都已经写了好多博客,这也是我在敲机房几乎没写这方面的博客的原因,不过别人的再好也是别人的,下面说说自己的. (一)数据库的设计 其实虽然说是数据库的 ...
随机推荐
- Android项目分包---总结-------直接使用
注: 本文是从该文摘抄而来的.简单的说,就是阅读了该文,然后,再自己复述,复制形成该文. 1.罗列Android项目的分包规则 微盘使用分包规则 如下: 1).第一层com.sin ...
- Anniversary party(树上dp+HDU1520)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520 题目: 题意:一个学校要办校庆,校长决定邀请员工参加,但是下属和他的直系同时参加的话,下属将会无 ...
- 大聊Python----进程和线程
什么是线程? 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. ...
- js_判断当前url是否合法http(s)
alert(checkURL('http:555')); //false function checkURL(URL) { var str = URL, Expression = /http(s)?: ...
- 海康解码器对接总结(java 版)
本文只是对接海康解码器的动态解码功能,即配置解码器大屏上指定的某个窗口去解某一路IP视频源. 1. 首先,定义所需的结构体与接口.海康SDK中包含的结构体与接口非常之多,在官方的例子中,实现了大部分的 ...
- 线程,JSP,Servlet面试题
线程编程方面 60.java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 答:有两种实现方法,分别是继承Thread类与实现Runna ...
- Perl6 Bailador框架(4):路径匹配
use v6; use Bailador; =begin pod /:one/:two/:....路径选择 这个路径, 用/分隔 每个/分隔一个, 如果你只设置两个(/admin/login),时, ...
- js原生读取json
function showJson(){ var test; if(window.XMLHttpRequest){ test = new XMLHttpRequest(); }else if(wind ...
- win10出现"win10系统即将过期,请激活"的处理办法
当打开电脑时,出现"你的win10系统即将过期,请前往激活”的提示.上网查了解决方案,避免以后在出现这样的情况,现将解决步骤整理如下: 1.下载KMSpico激活软件,百度网盘下载链接如下: ...
- Linux操作系统中内存buffer和cache的区别--从free命令说起(转)
原文链接:http://os.51cto.com/art/200709/56603.htm 我们一开始,先从Free命令说起. Free free 命令相对于top 提供了更简洁的查看系统内存使用情况 ...