在上一篇中已经介绍了报表模板的制作了,当然我们不能还要介绍报表和vb的交互,当我们建好模板以后就要在vb中引用此报表,下面就结合日结账和周结账来介绍报表的使用。
首先我们应该在窗体加载事件中进行以下代码的编写;最后两行的意思是进行参数的传递,它的作用是用来显示时间段,在这里需要说明以下就是给我们的系统中,报表上的时间段不会改变。
我们应该首先 在通用 里面对报表进行实例化
Dim report As grprolibCtl.GrIDppReport '实例化报表
<span > </span><pre name="code" >Private Sub Form_Load() Dim strsql As String Dim strmsg As String '创建报表对象 Set report = New grprolibCtl.GrIDppReport '载入报表模版文件 report.LoadFromfile (App.Path & "\日结报表.grf") '设置数据连接串 report.DetailGrID.Recordset.ConnectionString = ConnectString '用来使GrdWeekliyBill报表查询器控件显示报表中的内容 Grddayliybill.report = report 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
<span ></span>
<span ><span >Private Sub cmdprevIEw_Click() '打印预览</span>
report.PrintPrevIEw (True)End SubPrivate Sub cmdprint_Click() '打印 report.[Print] (True)End Sub</span>
在插入代码之前我们应该在工程——部件中选择
下面简单介绍一下报表中参数的插入:
修改完名称以后,下面进行参数的导入:
下面介绍我在编写日结账和周结账的思路:
我认为日结没有很大的问题只要我们在结账窗体中,把数据导入日结账表中即可,也就说我们每结一次账,在数据库中的表中就会有一条记录,当我们 查看日结账的时候就会清楚的看到今天的结账明细账单。下面是我的代码:
首先在我们刷新时间之前,删除表中的所有记录(之前说过这是一张空表)
txtsql = "delete * from checkweek_info"
set mrc = executesql (txtsql,msgtext)
在清空表之后,在日结表中区每一天的汇总数:
While (DateValue(enddatevIEw.Value) - DateValue(startdatevIEw.Value) >= 0) Text1.Text = DateValue(enddatevIEw.Value) - DateValue(startdatevIEw.Value) txtsql = "select * from checkday_info where date = '" & startdatevIEw.Value & "'" Set mrcc = Executesql(txtsql,MsgText) If mrcc.EOF = True Then '判断是否有记录 startdatevIEw.Value = startdatevIEw.Value Else While (mrcc.EOF = False) RechargeCash = RechargeCash + mrcc.FIElds(1) consumecash = consumecash + mrcc.FIElds(2) cancelCash = cancelCash + mrcc.FIElds(3) allcash = allcash + mrcc.FIElds(4) mrcc.MoveNext Wend mrcc.Close '获得上期余额 txtsql = "select * from checkday_info where date='" & Trim(startdatevIEw.Value - 1) & "'" Set mrcc = Executesql(txtsql,MsgText) If mrcc.EOF = True Then remaincash = 0 Else While (mrcc.EOF = False) remaincash = remaincash + mrcc.FIElds(0) mrcc.MoveNext Wend End If最后将数据写入周结账单中:
txtsql = "select * from checkweek_info" Set mrccc = Executesql(txtsql,MsgText) mrccc.AddNew mrccc.FIElds(0) = remaincash mrccc.FIElds(1) = RechargeCash mrccc.FIElds(2) = consumecash mrccc.FIElds(3) = cancelCash mrccc.FIElds(4) = cancelCash mrccc.FIElds(5) = startdatevIEw.Value mrccc.update End If startdatevIEw.Value = startdatevIEw.Value + 1 Wend到这我的日结账和周结账就编写完了,当然这是我的理解,如果有不同的想法或者是我的有错误,请读者们留言指正。
下一篇将总结 学生信息管理系统和机房收费系统中的组合查询的对比。
总结以上是内存溢出为你收集整理的【机房收费系统——报表与vb交互之日结账和周结账】全部内容,希望文章能够帮你解决【机房收费系统——报表与vb交互之日结账和周结账】所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)