机房收费系统之日结账,周结账--下篇(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

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

       以上便是机房收费系统中涉及到的Grid++Report报表设计器的所有内容,如果不足之处还望小伙伴们多多给予指导,下一站日结账、周结账逻辑篇走起^_^

猜你喜欢

转载自blog.csdn.net/Elsa15/article/details/83349038