关于报表

  在机房收费系统的日结账单和周结账单里面,用到了报表,感觉这个东西只要按照步骤一步步来,比写一句错误百出的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")
    



你可能感兴趣的:(机房收费系统)