机房收费系统中管理员可以打印账单。
窗体展示:
上一篇博客已经介绍了如何设置报表点击查看:Grid++Report报表查询显示器
下面来介绍一下如何使用报表查询器
实例化报表
Dim report As GridppReport '实例化报表
初始化数据
Private Sub report_initialize() '初始化数据
report.ParameterByName("username").AsString = Username
report.ParameterByName("begindate").AsString = Format(beginDate.Value, "yyyy-mm-dd")
report.ParameterByName("enddate").AsString = Format(endDate.Value, "yyyy-mm-dd")
End Sub
首先设置日期
窗体加载时显示当前日期,并且开始日期不能大于截止日期。
Dim z As Date
'窗体加载显示当前日期
beginDate.Value = Now()
endDate.Value = Now()
'开始日期的最大值为截止日期
z = endDate.Value
beginDate.MaxDate = z
实例化模板
Set report = New GridppReport '实例化模版
report.LoadFromFile (App.Path & "\weekcheck.grf") '加载模版
report.DetailGrid.Recordset.ConnectionString = ConnectString() '连接数据源
report.DetailGrid.Recordset.QuerySQL = "select * from checkWeek_Info " '通过SELECT查询创建记录集
report.ParameterByName("begindate").Value = beginDate.Value
report.ParameterByName("enddate").Value = endDate.Value
GRDisplayViewer1.report = report
GRDisplayViewer1.Start
连接各种数据表
Dim MsgText As String
Dim txtSQL As String
Dim mrcLine As ADODB.Recordset '连接在线记录表
Dim mrcCancel As ADODB.Recordset '连接退卡表
Dim mrcRe As ADODB.Recordset '连接充值表
Dim mrcWeek As ADODB.Recordset '连接周账单表
Dim mrcch As ADODB.Recordset
Dim mrcch5 As ADODB.Recordset '
Rem:Currency为货币型
Dim Cancelcash As Currency '本期退卡金额
Dim Rechargecash As Currency '本期充值金额
Dim Consumecash As Currency '本期消费金额
Dim RemainCash As Currency
Dim allcash As Currency '本期充值卡余额
Dim rechargecard As Currency '上期充值卡余额
连接数据表进行查询消费金额退卡金额
'查询时间的消费金额
txtSQL = "select sum(consume) from line_info where ondate between'" & Format(beginDate.Value, "yyyy-mm-dd") & "'" & "and'" & Format(endDate.Value, "yyyy-mm-dd") & "'"
Set mrcLine = ExecuteSQL(txtSQL, MsgText)
If IsNull(mrcLine.Fields(0)) = True Then
Consumecash = 0
Else
Consumecash = Trim(mrcLine.Fields(0))
End If
'查询时间的退卡金额
txtSQL = "select sum(CancelCash) from CancelCard_info where date between'" & Format(beginDate.Value, "yyyy-mm-dd") & "'" & "and'" & Format(endDate.Value, "yyyy-mm-dd") & "'"
Set mrcCancel = ExecuteSQL(txtSQL, MsgText)
If IsNull(mrcCancel.Fields(0)) = True Then
Cancelcash = 0
Else
Cancelcash = Trim(mrcCancel.Fields(0))
End If
'查询时间充值金额
txtSQL = "select sum(addmoney) from ReCharge_info where date between'" & Format(beginDate.Value, "yyyy-mm-dd") & "'" & "and'" & Format(endDate.Value, "yyyy-mm-dd") & "'"
Set mrcRe = ExecuteSQL(txtSQL, MsgText)
If IsNull(mrcRe.Fields(0)) = True Then
Rechargecash = 0
Else
Rechargecash = Trim(mrcRe.Fields(0))
End If
然后对周账单进行更新
'周账单更新
txtSQL = "select * from checkweek_info "
Set mrcWeek = ExecuteSQL(txtSQL, MsgText)
mrcWeek.AddNew
mrcWeek.Fields(0) = 0 '本期充值金额
mrcWeek.Fields(1) = Trim(Rechargecash)
mrcWeek.Fields(2) = Trim(Consumecash)
mrcWeek.Fields(3) = Trim(Cancelcash)
mrcWeek.Fields(4) = 0
mrcWeek.Fields(5) = Trim(Date)
mrcWeek.Update
mrcWeek.Close
report.DetailGrid.Recordset.QuerySQL = "select * from checkweek_info where date between'" & Format$(beginDate.Value, "yyyy-mm-dd") & "'" & "and'" & Format$(endDate.Value, "yyyy-mm-dd") & "'"
report.ParameterByName("begindate").Value = Format$(beginDate.Value, "yyyy-mm-dd")
report.ParameterByName("enddate").Value = Format$(endDate.Value, "yyyy-mm-dd")
GRDisplayViewer1.Refresh
然后就是对报表进行操作哦
账单刷新
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
打印
Private Sub cmdPrint_Click()
report.[Print] True '打印
End Sub
打印预览
Private Sub cmdPreview_Click()
report.PrintPreview (True) '打印预览
End Sub
感谢阅读~