機房收費係統之周結賬單
在做係統的過程中,應該說報表這塊兒,尤其是周結賬和日結賬這塊是最繁瑣的了,我用了3、4天吧,拿下了這塊兒。
首先看一下這個周結賬單
這個窗體的控件我也找了很長時間才找到,顯示時間的是DTpicker,日曆是monthview。
首先實例化報表
Dim WithEvents report As grproLibCtl.GridppReport '實例化報表
在報表中初始化日期、用戶名
Private Sub report_initialize() '初始化數據 report.ParameterByName("username").AsString = username report.ParameterByName("datestart").AsString = Format(startDate.Value, "yyyy-mm-dd") report.ParameterByName("dateend").AsString = Format(endDate.Value, "yyyy-mm-dd") End Sub
下麵看一下我的周結賬單是如何計算的
Private Sub cmdUpdate_Click() Dim strMsg As String Dim strSqlRe As String Dim mrcRe As ADODB.Recordset Dim strSqlCan As String Dim mrcCan As ADODB.Recordset Dim strSqlWeek As String Dim mrcWeek As ADODB.Recordset Dim strSQLL As String Dim mrcL As ADODB.Recordset Dim Toconsume As Long Dim consume As Long Dim dateIndex As Date Dim datestart As Date Dim dateend As Date Dim Toremain As Integer Dim Torecharge As Integer Dim Tocancel As Integer Dim remain As Integer Dim charge As Integer Dim cancel As Integer Dim all As Long 'GRDisplayViewer1.Refresh datestart = Format(startDate.Value, "yyyy-mm-dd") dateend = Format(endDate.Value, "yyyy-mm-dd") '刪除周表中的數據 strSqlWeek = "delete from checkweek_info " Set mrcWeek = executeSQL(strSqlWeek, strMsg) For dateIndex = datestart To dateend remain = 0 Recharge = 0 consume = 0 cancel = 0 all = 0 '上期充值卡餘額計算 If dateIndex = datestart Then remain = 0 Call Form_Load Else '先算總的recharge strSqlRe = "select sum(addmoney) as rechargecash from recharge_info where date<='" & Format(dateIndex - 1, "yyyy-mm-dd") & "'" Set mrcRe = executeSQL(strSqlRe, strMsg) If Not IsNull(mrcRe!rechargecash) Then Recharge = mrcRe!rechargecash mrcRe.Close End If '總的cancelcard strSqlCan = "select sum(cancelcash) as cancel from cancelcard_info where date<='" & Format(dateIndex - 1, "yyyy-mm-dd") & "'" Set mrcCan = executeSQL(strSqlCan, strMsg) If Not IsNull(mrcCan!cancel) Then cancel = mrcCan!cancel mrcCan.Close End If '總的consume strSQLL = "select sum(consume) as consumecash from line_info where offdate<= '" & Format(dateIndex - 1, "yyyy-mm-dd") & "'" Set mrcL = executeSQL(strSQLL, strMsg) If Not IsNull(mrcL!consumeCash) Then consume = mrcL!consumeCash mrcL.Close End If '上期充值卡餘額 remain = Recharge - consume - cancel '本期充值金額 strSqlRe = "select sum(addmoney) as rechargecash from recharge_info where date='" & Format(dateIndex, "yyyy-mm-dd") & "'" Set mrcRe = executeSQL(strSqlRe, strMsg) If Not IsNull(mrcRe!rechargecash) Then Torecharge = mrcRe!rechargecash mrcRe.Close End If '本期退卡 strSqlCan = "select sum(cancelcash) as cancel from cancelcard_info where date='" & Format(dateIndex, "yyyy-mm-dd") & "'" Set mrcCan = executeSQL(strSqlCan, strMsg) If Not IsNull(mrcCan!cancel) Then Tocancel = mrcCan!cancel mrcCan.Close End If '本期消費 strSQLL = "select sum(consume) as consumecash from line_info where offdate= '" & Format(dateIndex, "yyyy-mm-dd") & "'" Set mrcL = executeSQL(strSQLL, strMsg) If Not IsNull(mrcL!consumeCash) Then Toconsume = mrcL!consumeCash mrcL.Close End If '本期充值卡餘額 all = remain + Torecharge - Toconsume - Tocancel strSqlWeek = "select * from checkweek_info " Set mrcWeek = executeSQL(strSqlWeek, strMsg) mrcWeek.AddNew mrcWeek.Fields("remaincash") = remain mrcWeek.Fields("rechargecash") = Torecharge mrcWeek.Fields("consumecash") = Toconsume mrcWeek.Fields("cancelcash") = Tocancel mrcWeek.Fields("allcash") = all mrcWeek.Fields("date") = Format(dateIndex, "yyyy-mm-dd") mrcWeek.Update mrcWeek.Close End If Next Call Form_Load End Sub Private Sub Form_Load() Dim strSQL As String Dim strMsg As String Dim mrc As ADODB.Recordset Dim strSqlRe As String Dim mrcRe As ADODB.Recordset Dim strSqlCan As String Dim mrcCan As ADODB.Recordset Dim strSqlWeek As String Dim mrcWeek As ADODB.Recordset Dim strSQLL As String Dim mrcL As ADODB.Recordset Dim Toconsume As Long Dim consume As Long Dim remain As Integer Dim Recharge As Integer Dim cancel As Integer Dim all As Integer Dim Toremain As Integer Dim Torecharge As Integer Dim Tocancel As Integer MonthViewStart.Visible = False MonthViewEnd.Visible = False strSQL = "select * from checkweek_info where date between '" & Format(startDate.Value, "yyyy-mm-dd") & "' and '" & Format(endDate.Value, "yyyy-mm-dd") & "'" Set mrc = executeSQL(strSQL, strMsg) strSQL = strSQL & "order by date" Set report = New grproLibCtl.GridppReport GRDisplayViewer1.Stop report.LoadFromFile (App.Path & "\周結賬單.grf") report.DetailGrid.Recordset.ConnectionString = connectstring() report.DetailGrid.Recordset.QuerySQL = strSQL GRDisplayViewer1.report = report GRDisplayViewer1.Start strSqlRe = "select sum(addmoney) as rechargecash from recharge_info where date<='" & Format(startDate.Value - 1, "yyyy-mm-dd") & "'" Set mrcRe = executeSQL(strSqlRe, strMsg) If Not IsNull(mrcRe!rechargecash) Then Recharge = mrcRe!rechargecash mrcRe.Close End If '總的cancelcard strSqlCan = "select sum(cancelcash) as cancel from cancelcard_info where date<='" & Format(startDate.Value - 1, "yyyy-mm-dd") & "'" Set mrcCan = executeSQL(strSqlCan, strMsg) If Not IsNull(mrcCan!cancel) Then cancel = mrcCan!cancel mrcCan.Close End If '總的consume strSQLL = "select sum(consume) as consumecash from line_info where offdate<= '" & Format(startDate.Value - 1, "yyyy-mm-dd") & "'" Set mrcL = executeSQL(strSQLL, strMsg) If Not IsNull(mrcL!consumeCash) Then consume = mrcL!consumeCash mrcL.Close End If '上期充值卡餘額 remain = Recharge - consume - cancel '本期充值金額 strSqlRe = "select sum(addmoney) as rechargecash from recharge_info where date='" & Format(startDate.Value, "yyyy-mm-dd") & "'" Set mrcRe = executeSQL(strSqlRe, strMsg) If Not IsNull(mrcRe!rechargecash) Then Torecharge = mrcRe!rechargecash mrcRe.Close End If '本期退卡 strSqlCan = "select sum(cancelcash) as cancel from cancelcard_info where date='" & Format(startDate.Value, "yyyy-mm-dd") & "'" Set mrcCan = executeSQL(strSqlCan, strMsg) If Not IsNull(mrcCan!cancel) Then Tocancel = mrcCan!cancel mrcCan.Close End If '本期消費 strSQLL = "select sum(consume) as consumecash from line_info where offdate= '" & Format(startDate.Value, "yyyy-mm-dd") & "'" Set mrcL = executeSQL(strSQLL, strMsg) If Not IsNull(mrcL!consumeCash) Then Toconsume = mrcL!consumeCash mrcL.Close End If '本期充值卡餘額 all = remain + Torecharge - Toconsume - Tocancel strSqlWeek = "select * from checkweek_info " Set mrcWeek = executeSQL(strSqlWeek, strMsg) mrcWeek.AddNew mrcWeek.Fields("remaincash") = remain mrcWeek.Fields("rechargecash") = Torecharge mrcWeek.Fields("consumecash") = Toconsume mrcWeek.Fields("cancelcash") = Tocancel mrcWeek.Fields("allcash") = all mrcWeek.Fields("date") = Format(startDate.Value, "yyyy-mm-dd") mrcWeek.Update End Sub
我的方法很麻煩,這是我使勁想出來的,大家有好的方法可以給我一個連接哦,讓我借鑒一下。
最後更新:2017-04-03 15:22:13
上一篇:
URAL 1204 中國剩餘定理
下一篇:
java學習路線圖------(java1234)
Linux Debugging(三): C++函數調用的參數傳遞方法總結(通過gdb+反匯編)
XP用戶噩耗來襲:微軟將於2014年停止其技術支持
前端開發中的柯裏化
Linux平台使用二進製包將MySQL 5.1安裝到個人目錄簡易指南
雲服務器 ECS 實例自定義數據:自定義 yum 源、NTP 服務和 DNS 服務
員工(人才),留得住是因為本身就留得住;留不住的,你永遠留不住 .
《Spring 5 官方文檔》1. Spring入門指南(二)
shell 循環刷新輸出方法
手把手 | 30行JavaScript代碼,教你分分鍾創建神經網絡
《HttpClient官方文檔》2.6 連接維持存活策略