您的位置:首页 > 其它

机房收费系统之结账

2017-12-12 19:55 246 查看
前言:

结账部分是机房的一个重点;



思路:

1.通过UserID查询姓名;(通过Combo1的Click事件,将表中姓名栏信息赋给Combo2)

2.点击SSTab控件查询到相应表中信息;

3.结账更新相应表中信息(将student表,recharge表,cancelCard表中未结账部分更新为结账,并更新checkDay和ckeckWeek表)

问题及重点代码:

1.数据类型不要随便更改,会报错;

2.汇总部分:

售卡张数=注册的卡号个数

退卡张数=cancelCard表中退卡的个数

总售卡数=售卡张数-退卡张数

退卡金额=退卡的金额数总和

充值金额=student表中的注册金额和充值金额总和(充值金额会更新到student表recharge列中)

临时收费总和=上机中花费的金额总和(line表中的Cost金额)

应收金额=临时收费金额+充值金额-退卡金额

Private Sub Combo1_Click()
txtSQL3 = "select * from User_Info where UserID = '" & Trim(Combo1.Text) & "'"
Set mrc3 = ExecuteSQL(txtSQL3, MsgText)
Combo2.Text = mrc3.Fields(3)          '把查询到的信息赋值给Combo2.Text;
End Sub

结账部分:
Private Sub Command1_Click()   '点击结账让文本框清空
txtCard.Text = ""
txtCancelCard.Text = ""
...

txtSQL5 = "select * from checkDay_Info"
Set mrc5 = ExecuteSQL(txtSQL5, MsgText)

txtSQL = "select sum(cash) from student_Info"
Set mrc = ExecuteSQL(txtSQL, MsgText)

mrc5.AddNew      '更新checkDay表
mrc5.Fields(0) = mrc.Fields(0)
mrc5.Fields(1) = Val(txtAddCash.Text)
mrc5.Fields(2) = Val(txtCostCash.Text)
mrc5.Fields(3) = Val(txtCancelCash.Text)
mrc5.Fields(4) = Val(txtAllCash.Text)
mrc5.Fields(5) = Date
mrc5.Update
mrc5.Close

mrc6.AddNew     '将表中记录更新到checkWeek表中
mrc6.Fields(0) = mrc.Fields(0)
mrc6.Fields(1) = Val(txtAddCash.Text)
mrc6.Fields(2) = Val(txtCostCash.Text)
mrc6.Fields(3) = Val(txtCancelCash.Text)
mrc6.Fields(4) = Val(txtAllCash.Text)
mrc6.Fields(5) = Date
mrc6.Update
mrc6.Close

'以学生表为例,更新学生表
txtSQL = "select * from student_Info where UserID = '"        & Trim(Combo1.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)

Do While Not mrc.EOF
mrc!Ischeck = "已结账"
mrc.Update
mrc.MoveNext
Loop
mrc.Close

'同样更新money表
'更新退卡表
MsgBox "结账成功!"
End Sub


Private Sub SSTab_Click(PreviousTab As Integer)

'以购卡为例,代码如下:
txtSQL = "select * from student_Info where Ischeck = '未结账' and UserID = '" & Trim(Combo1.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
'将查询内容显示在表格控件中
With MSHFlexGrid1
.Rows = 2
.CellAlignment = 4
.TextMatrix(1, 0) = "学号"
.TextMatrix(1, 1) = "卡号"
.TextMatrix(1, 2) = "日期"
.TextMatrix(1, 3) = "时间"
'判断是否移动到数据集对象的最后一条记录
Do While Not mrc.EOF
.Rows = .Rows + 1
.CellAlignment = 4
.TextMatrix(.Rows - 1, 0) = Trim(mrc.Fields(1))
.TextMatrix(.Rows - 1, 1) = Trim(mrc.Fields(0))
.TextMatrix(.Rows - 1, 2) = Trim(mrc.Fields(11))
.TextMatrix(.Rows - 1, 3) = Trim(mrc.Fields(12))
'移动到下一条记录
mrc.MoveNext
Loop
End With

充值、退卡、临时用户同上;

txtSQL2 = "select sum(cancel_Cash) from cancelCard_Info where status = '未结账' and UserID = '" & Trim(Combo1.Text) & "'"
Set mrc2 = ExecuteSQL(txtSQL2, MsgText)

txtSQL = "select sum(cash) from student_Info where Ischeck = '未结账' and UserID = '" & Trim(Combo1.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)

txtSQL4 = "select sum(costCash) from line_Info "
Set mrc4 = ExecuteSQL(txtSQL4, MsgText)

If IsNull(Trim(mrc.Fields(0))) Then '为空
txtAddCash.Text = "0"
Else
txtAddCash.Text = mrc.Fields(0)
End If
If IsNull(Trim(mrc2.Fields(0))) Then
txtCancelCash.Text = "0"
Else
txtCancelCash.Text = mrc2.Fields(0)
End If
If IsNull(Trim(mrc4.Fields(0))) Then
txtCostCash.Text = "0"
Else
txtCostCash.Text = mrc4.Fields(0)
End If

txtAllCash.Text = Val(txtAddCash.Text) + Val(txtCostCash.Text) - Val(txtCancelCash.Text)
If SSTab.Caption = "退出" Then
Unload Me
End If
End Sub
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机房管理系统