机房收费系统日周VB报表的制作,Grid++Report与VB的交互、传参(下)
上一篇博客分享了Grid++Report是如何创建初始表格,如何与数据库连接的,这篇重点分享一下Grid++Report是如何与VB交互的,以及VB是如何传参给Grid++Report的。
一、Grid++Report的常用文本框
想要绘制出如下的表格(机房开放收入总汇表),我们需要通过Grid++Report报表设计器的插入菜单栏,进行插入,分别插入静态框,系统变量框以及参数来完成表格的细化,具体的对应关系如下图。
插入的各类文本框:
文本框与表格的对应关系
系统变量从右侧的属性窗口中进行设置
还可以选择格式,对日期的格式进行设置
二、Grid++Report报表设计器内参数的设置
通过在Grid++Report中创建参数变量来传递VB程序中的参数,Grid++Report报表设计器的参数创建:点击菜单栏上的插入选项,选择插入静态框,输入静态框内容,内容前后需有井号(如:#begindate#),编辑完静态框后选中静态框,在右侧的属性窗口中进行参数的设置,选择begindate参数即可。
三、VB向Grid++Report报表设计器已建立好的参数变量传参,代码如何编辑?
Report.ParameterByName("username").Value = frmlogin.txtuserid '向gridreport内传参数
-
Report.ParameterByName("begindate").Value = begindate.Value
-
Report.ParameterByName("enddate").Value = enddate.Value
四、代码集
①打印
Private Sub cmdPrint_Click()
-
Report.[Print] True '打印
-
End Sub
②打印预览
Private Sub cmdPreview_Click()
-
Report.PrintPreview (True) '打印预览
-
End Sub
③刷新
Private Sub cmdRefresh_Click()
Report.DetailGrid.Recordset.QuerySQL = "select * from checkWeek_Info where date between '" & begindate.Value & "' and '" & enddate.Value & "' " '通过SELECT查询创建记录集
-
GRDisplayViewer1.Refresh '刷新
-
End Sub
④将Grid++Report报表编辑器的表格实例化到VB中,并显示出来。
Dim WithEvents Report As gregn6LibCtl.GridppReport '带withevents的定义可引出report事件
-
Dim Report As gregn6LibCtl.GridppReport '未带withevents的定义仅定义,未引出report的其他事件
-
Private Sub Form_Load()
-
Set Report = New gregn6LibCtl.GridppReport '实例化模版
-
Report.LoadFromFile (App.Path & "\checkweek.grf") '加载模版
-
Report.DetailGrid.Recordset.ConnectionString = ConnectString() '连接数据源
-
Report.DetailGrid.Recordset.QuerySQL = "select * from checkWeek_Info " '通过SELECT查询创建记录集
-
Report.ParameterByName("username").Value = frmlogin.txtuserid '向gridreport内传参数
-
Report.ParameterByName("begindate").Value = begindate.Value
-
Report.ParameterByName("enddate").Value = enddate.Value
-
GRDisplayViewer1.Report = Report
-
GRDisplayViewer1.Start '开始打印
-
End Sub