【机房收费系统——报表与vb交互之日结账和周结账】

前端之家收集整理的这篇文章主要介绍了【机房收费系统——报表与vb交互之日结账和周结账】前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

上一篇中已经介绍了报表模板的制作了,当然我们不能还要介绍报表和vb的交互,当我们建好模板以后就要在vb中引用此报表,下面就结合日结账和周结账来介绍报表的使用。

首先我们应该在窗体加载事件中进行以下代码的编写;最后两行的意思是进行参数的传递,它的作用是用来显示时间段,在这里需要说明以下就是给我们的系统中,报表上的时间段不会改变。

我们应该首先 在通用 里面对报表进行实例化

Dim report As grproLibCtl.GridppReport '实例化报表

  1. <span style="font-family: Arial,Helvetica,sans-serif;"> </span><pre name="code" class="html">Private Sub Form_Load()
  2. Dim strsql As String
  3. Dim strmsg As String
  4. '创建报表对象
  5. Set report = New grproLibCtl.GridppReport
  6. '载入报表模版文件
  7. report.LoadFromFile (App.Path & "\日结报表.grf")
  8. '设置数据连接串
  9. report.DetailGrid.Recordset.ConnectionString = ConnectString
  10. '用来使grdWeekliyBill报表查询器控件显示报表中的内容
  11. grddayliybill.report = report
  12. grddayliybill.Start

Private Sub cmdrefresh_Click()
'账单刷新

Dim strsql As String
Dim strmsg As String
Dim mrc As ADODB.Recordset
Dim mrcc As ADODB.Recordset

'日期的选定


strsql = "select * from checkday_Info where date ='" & Date & "'"
Set mrc = Executesql(strsql,strmsg)

report.DetailGrid.Recordset.Querysql = strsql

grddayliybill.Refresh '刷新

End Sub


  1.  
  1. <span style="font-family: Arial,sans-serif;">
  2. </span>
  1. <span style="font-family: Arial,sans-serif;"><span style="font-size:24px;">Private Sub cmdpreview_Click() '打印预览</span>
  1. report.PrintPreview (True)
  2. End Sub
  3.  
  4. Private Sub cmdprint_Click() '打印
  5. report.[Print] (True)
  6. End Sub</span>

在插入代码之前我们应该在工程——部件中选择

下面简单介绍一下报表中参数的插入:

修改名称以后,下面进行参数的导入:

下面介绍我在编写日结账和周结账的思路:

我认为日结没有很大的问题只要我们在结账窗体中,把数据导入日结账表中即可,也就说我们每结一次账,在数据库中的表中就会有一条记录,当我们 查看日结账的时候就会清楚的看到今天的结账明细账单。下面是我的代码

首先在我们刷新时间之前,删除表中的所有记录(之前说过这是一张空表)

txtsql = "delete * from checkweek_info"

set mrc = executesql (txtsql,msgtext)

在清空表之后,在日结表中区每一天的汇总数:

  1. While (DateValue(enddateview.Value) - DateValue(startdateview.Value) >= 0)
  2. Text1.Text = DateValue(enddateview.Value) - DateValue(startdateview.Value)
  3. txtsql = "select * from checkday_info where date = '" & startdateview.Value & "'"
  4. Set mrcc = Executesql(txtsql,MsgText)
  5. If mrcc.EOF = True Then '判断是否有记录
  6. startdateview.Value = startdateview.Value
  7. Else
  8. While (mrcc.EOF = False)
  9. RechargeCash = RechargeCash + mrcc.Fields(1)
  10. consumecash = consumecash + mrcc.Fields(2)
  11. cancelCash = cancelCash + mrcc.Fields(3)
  12. allcash = allcash + mrcc.Fields(4)
  13. mrcc.MoveNext
  14. Wend
  15. mrcc.Close
  16. '获得上期余额
  17. txtsql = "select * from checkday_info where date='" & Trim(startdateview.Value - 1) & "'"
  18. Set mrcc = Executesql(txtsql,MsgText)
  19. If mrcc.EOF = True Then
  20. remaincash = 0
  21. Else
  22. While (mrcc.EOF = False)
  23. remaincash = remaincash + mrcc.Fields(0)
  24. mrcc.MoveNext
  25. Wend
  26. End If
最后将数据写入周结账单中:

  1. txtsql = "select * from checkweek_info"
  2. Set mrccc = Executesql(txtsql,MsgText)
  3. mrccc.AddNew
  4. mrccc.Fields(0) = remaincash
  5. mrccc.Fields(1) = RechargeCash
  6. mrccc.Fields(2) = consumecash
  7. mrccc.Fields(3) = cancelCash
  8. mrccc.Fields(4) = cancelCash
  9. mrccc.Fields(5) = startdateview.Value
  10. mrccc.update
  11. End If
  12. startdateview.Value = startdateview.Value + 1
  13. Wend
到这我的日结账和周结账就编写完了,当然这是我的理解,如果有不同的想法或者是我的有错误,请读者们留言指正。

下一篇将总结 学生信息管理系统和机房收费系统中的组合查询的对比。

猜你在找的VB相关文章