机房收费系统日周VB报表的制作,Grid++Report与VB的交互、传参(下)

上一篇博客分享了Grid++Report是如何创建初始表格,如何与数据库连接的,这篇重点分享一下Grid++Report是如何与VB交互的,以及VB是如何传参给Grid++Report的。

一、Grid++Report的常用文本框

       想要绘制出如下的表格(机房开放收入总汇表),我们需要通过Grid++Report报表设计器的插入菜单栏,进行插入,分别插入静态框,系统变量框以及参数来完成表格的细化,具体的对应关系如下图。

插入的各类文本框:

机房收费系统日周VB报表的制作,Grid++Report与VB的交互、传参(下)

文本框与表格的对应关系

 

机房收费系统日周VB报表的制作,Grid++Report与VB的交互、传参(下)

系统变量从右侧的属性窗口中进行设置 

机房收费系统日周VB报表的制作,Grid++Report与VB的交互、传参(下)

还可以选择格式,对日期的格式进行设置

机房收费系统日周VB报表的制作,Grid++Report与VB的交互、传参(下)

二、Grid++Report报表设计器内参数的设置

         通过在Grid++Report中创建参数变量来传递VB程序中的参数,Grid++Report报表设计器的参数创建:点击菜单栏上的插入选项,选择插入静态框,输入静态框内容,内容前后需有井号(如:#begindate#),编辑完静态框后选中静态框,在右侧的属性窗口中进行参数的设置,选择begindate参数即可。

机房收费系统日周VB报表的制作,Grid++Report与VB的交互、传参(下)

三、VB向Grid++Report报表设计器已建立好的参数变量传参,代码如何编辑?

Report.ParameterByName("username").Value = frmlogin.txtuserid '向gridreport内传参数

  1. Report.ParameterByName("begindate").Value = begindate.Value

  2. Report.ParameterByName("enddate").Value = enddate.Value

四、代码集

①打印

Private Sub cmdPrint_Click()

  1. Report.[Print] True '打印

  2. End Sub

②打印预览

Private Sub cmdPreview_Click()

  1. Report.PrintPreview (True) '打印预览

  2. End Sub

③刷新

Private Sub cmdRefresh_Click()

Report.DetailGrid.Recordset.QuerySQL = "select * from checkWeek_Info where date between '" & begindate.Value & "' and '" & enddate.Value & "' " '通过SELECT查询创建记录集

  1. GRDisplayViewer1.Refresh '刷新

  2. End Sub

④将Grid++Report报表编辑器的表格实例化到VB中,并显示出来。

Dim WithEvents Report As gregn6LibCtl.GridppReport '带withevents的定义可引出report事件

  1. Dim Report As gregn6LibCtl.GridppReport '未带withevents的定义仅定义,未引出report的其他事件

  2.  
  3. Private Sub Form_Load()

  4.  
  5. Set Report = New gregn6LibCtl.GridppReport '实例化模版

  6. Report.LoadFromFile (App.Path & "\checkweek.grf") '加载模版

  7. Report.DetailGrid.Recordset.ConnectionString = ConnectString() '连接数据源

  8. Report.DetailGrid.Recordset.QuerySQL = "select * from checkWeek_Info " '通过SELECT查询创建记录集

  9. Report.ParameterByName("username").Value = frmlogin.txtuserid '向gridreport内传参数

  10. Report.ParameterByName("begindate").Value = begindate.Value

  11. Report.ParameterByName("enddate").Value = enddate.Value

  12. GRDisplayViewer1.Report = Report

  13. GRDisplayViewer1.Start '开始打印

  14. End Sub

注:带WithEvents的定义与不带WithEvents的定义是有区别的,以上代码已在注释中说明其区别。