在机房收费系统的日结账单和周结账单里面,用到了报表,感觉这个东西只要按照步骤一步步来,比写一句错误百出的SQL语句容易的多。
以日结账单为例(只写了报表部分代码):
Option Explicit Dim WithEvents Report As grprolibctl.GridppReport '实例化报表 Dim SQL As String Private Sub cmdPreview_Click() '打印预览 Report.PrintPreview (True) End Sub Private Sub cmdPrint_Click() '打印 Report.[Print] (True) End Sub Private Sub cmdRefresh_Click() '日结账单刷新 Call showReport '显示查询到的报表 Viewer.Refresh '刷新 End Sub Private Sub Form_Load() '创建报表对象 Set Report = New grprolibctl.GridppReport '载入报表模板文件 Report.LoadFromFile (App.Path & "\报表\DayAccount.grf") '设置数据源连接 Report.DetailGrid.Recordset.ConnectionString = ConnectionString Call showReport '显示报表 '查看报表 Viewer.Report = Report Viewer.Start End Sub Private Sub showReport() '显示并更新报表 '定义查询表的SQL语句 SQL = "select * from dayaccount where 日期='" & Format(GetSqlTime, "yyyy-mm-dd") & "'" '将查询到的记录显示在报表里面 Report.DetailGrid.Recordset.QuerySQL = SQL End Sub这个是报表使用时在VB里面的代码,另外,SQL的连接字符串和SQL语句可以在报表设计的时候,写在报表里面。
在周结账单里面,还涉及到VB里面向报表传递参数问题,只要加上产生传递的语句即可。
'开始时间和结束时间的参数传递 Report.ParameterByName("TimeBegin").AsDateTime = Format(CDate(DTpcBegin.Value), "yyyy-mm-dd") Report.ParameterByName("TimeEnd").AsDateTime = Format(CDate(DTPcEnd.Value), "yyyy-mm-dd")