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

原创
2016-06-07 16:00:03 811浏览

上一篇说道怎么用报表设计器怎么设置报表模板,现在到了到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")
它们都是先定义,再赋值,最后执行使用。这几行代码我们之前没有接触过,值得我们好好琢磨琢磨。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。