No.4 报表的初次见面--机房收费

来源:互联网 发布:超时空要塞f知乎 编辑:程序博客网 时间:2024/04/30 00:49

写在前面

最开始到了要用报表的时候,自己是没有新头绪的,于是查了很多资料,也从师哥师姐那里取了很多经。我的经验就是,什么东西都没有现成的,即使是要用别人的东西,自己也要先认识,同时再加上自己的想法,才可以达到你想要的效果。


修改已有的报表

完成机房的任务,我使用的报表是用的现成的报表,自己没有去做一个新的,但是现成的报表也有一些不合适的地方,我们可以通过vb将报表修改一下。


添加控件

我们在引用中添加关于制作报表控件:
先将这个添加上
然后会出现这两个控件:
这里写图片描述s

上面的报表查询显示器,下边的是报表设计器,根据名字我们就知道他们是干什么的了。

设计报表

我们先加载报表设计器,打开之前已有的报表,修改其中的内容:
这里写图片描述

其中红色部分的内容在右侧的设计中都可以修改成自己想要的内容。不过这里我们要注意的几个问题就是下面这张图中圈起的内容:
这里写图片描述
这些内容都在右侧的参数集合中,当然我们可以根据自己的需要,再次添加有关的需要的参数,现在你就要问了,这些参数有什么用呢,他们都是具有特定格式的[# #],而这些参数我们可以在vb中进行设计,我们继续探索。

vb让报表有生命

现在我们有了报表,那么如何将数据库中的内容,放到报表上呢,同时当我们选择时间的时候,如何将时间跟着跑到报表上呢(就像下图的时间)?不要着急,问题总会解决的:
这里写图片描述

Private WithEvents Report As grproLibCtl.GridppReport '定义事件接口 (这里withEvents 声明一个可以引发事件的类)Dim txtSQL As String     '实例化报表     Set Report = New grproLibCtl.GridppReport     '建立报表的位置,将报表拿出来用     Report.LoadFromFile App.Path & "\weekcheck.grf"     '建立表与数据库的联系,connectstring在模块中声明     Report.DetailGrid.Recordset.ConnectionString = ConnectString     '建立查询语句     txtSQL = "select * from checkday_info where date > =             '" & DTP1.Value & "' and date < = '" & DTP2.Value & "'"     Report.DetailGrid.Recordset.QuerySQL = txtSQL     '查看报表,就是把表放在查看的容器里     GRDisplayViewer1.Report = Report     '将其显示     GRDisplayViewer1.Start

现在报表就和数据库联系起来了,还记得,上面的那个时间更改么?这里我们写在了,将他写在初始化的事件里面,今天老师还问到Initialize 和load的区别,Initialize比load触动的更早一点,没有太大的区别。下面看看时间怎么改的吧:

Private Sub Report_Initialize()    Report.ParameterByName("begindate").AsString = Format(DTP1.Value, "yyyy-mm-dd")    Report.ParameterByName("enddate").AsString = Format(DTP2.Value, "yyyy-mm-dd")    Report.ParameterByName("XX").AsString = userIDEnd Sub

这样就完成了时间的设置,这里要说的就是Parameter是参数的意思,就是我们添加的那些参数,现在用到了。


其他功能

Report.[Print] (True)       '实现打印,(true)区别vb中的printReport.PrintPreview (True)  '打印预览GRDisplayViewer1.Refresh    '刷新

结束语

使用已有报表的内容介绍到这里了,我相信,如果你想要知道,很多事情就都会知道的,有的时候只是自己不想变得优秀罢了。很多新鲜的领域,等着我们去开辟。

2 0
原创粉丝点击