欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

机房收费系统之报表(二)

程序员文章站 2022-05-13 09:24:35
...

上一篇说道怎么用报表设计器怎么设置报表模板,现在到了到vb里实现报表了,在报表之前,上一篇文章我们已经加载了部件 ,引用之后会在控件工具箱中出现两个第三方控件,分别是GRDisplayViewer和GRPrintViewer。把GRDisplayViewer(报表查询显示器)放在窗体

上一篇说道怎么用报表设计器怎么设置报表模板,现在到了到vb里实现报表了,在报表之前,上一篇文章我们已经加载了部件机房收费系统之报表(二),引用之后会在控件工具箱中出现两个第三方控件,分别是GRDisplayViewer和GRPrintViewer。把GRDisplayViewer(报表查询显示器)放在窗体上,之后我们就用代码导入模板实现报表了。

我的窗体布局如下图

机房收费系统之报表(二)

有刷新,打印,打印预览三个命令按钮。首先在通用中定义

   Dim WithEvents Report As grproLibCtl.GridppReport  '实例化报表
WithEvents注意:处理时间源所引发的事件 变量 Report将用于处理对象的事件。可以通过提供类名来指定对象类型,该类是创建这个对象的类。 WithEvents 变量不能是派生对象变量,也就是说不能把它声明为As Object—当声明该变量时必须指定类名。不能把 WithEvents 变量声明为 As New。必须明确地创建事件源对象并将它赋给WithEvents变量。不能在标准模块中声明 WithEvents 变量。只能在类模块、窗体模块以及其它定义类的模块中声明。不能创建WithEvents 变量数组。 下面是刷新按钮中的代码。
   GRDisplayViewer1.Refresh
打印预览中的代码
   Report.[Print] (True) '打印,因为报表对象的print方法名与vb的内部定义方法有冲突所以要用中括号
下面是Form_Load() 事件中的代码。
Private Sub Form_Load()
    Dim strSQL As String, strMsg As String
    strSQL = "select * from checkday_info where date= '" & Format(Date, "yyyy-mm-dd") & "'"
    Set Report = New grproLibCtl.GridppReport                      '实例化模版
      
    Report.LoadFromFile (App.Path & "\checkday.grf")               '加载模版
    Report.DetailGrid.Recordset.ConnectionString = ConnectString() '连接数据源
    Report.DetailGrid.Recordset.QuerySQL = strSQL                  '通过SELECT查询创建记录集
    GRDisplayViewer1.Report = Report                               '将数据赋给GRD的Report
    GRDisplayViewer1.Start                                         '开始打印
End Sub
在这又一次引用了第三方控件,可见vb的编程就是强大。它就像我们前面将vb中的数据导出到Excel里面的操作步骤差不多,还有记录集(Recordset)对象。
Dim xlsApp As Excel.Application
Set xlsApp = CreateObject("Excel.Application")
它们都是先定义,再赋值,最后执行使用。这几行代码我们之前没有接触过,值得我们好好琢磨琢磨。