在做机房收费系统过程中,遇到了几个难点:1,MSHFlexGrid控件,中表格单行的选中和删除;2,上下机窗体消费金额的计算;3,组合查询;4,结账;5,导出Excel;6,报表
先总结两个:
1,在“添加删除用户”窗体中有删除用户这项功能。要求在单击“删除”按钮后,将MSHFlexGrid控件中单击选中的一行删除。
实现单击选中一行的代码;
'单击,选中一行
Private Sub myflexgrid_mousedown(button As Integer, shift As Integer, x As Single, y As Single)
x = myflexgrid.Row
For j = 0 To myflexgrid.Rows - 1
myflexgrid.Row = j
For i = 0 To myflexgrid.Cols - 1
myflexgrid.Col = i
myflexgrid.CellBackColor = vbWhite
Next i
Next j
myflexgrid.Row = x
If myflexgrid.CellBackColor = vbBlue Then
For i_Col = 0 To myflexgrid.Cols - 1
myflexgrid.Col = i_Col
myflexgrid.CellBackColor = vbWhite
Next i_Col
Else
For i_Col = 0 To myflexgrid.Cols - 1
myflexgrid.Col = i_Col
myflexgrid.CellBackColor = vbBlue
Next i_Col
End If
End Sub
然后在“删除”按钮的单击事件中,利用MSHFlexGrid的RemoveItem属性,删除选中行。
2,上、下机窗体,消费时间的计算。
此处用到的函数有:DateDiff()、CDate()
这里一定要注意DateDiff()函数中后面两个参数的数据类型是日期型,所以如果要将数据类型为字符串的文本框文本转换为日期型——用CDate()函数;还要注意上机与下机不在同一天的情况(学校机房可能极少有这种情况,但是我们得考虑)
实现代码:
txtConsumeTime.Text = DateDiff("n", CDate(txtOnComputerDate.Text), CDate(txtDownComputerDate.Text)) + DateDiff("n", TimeValue(mrc.Fields(7)), TimeValue(txtDownComputerTime.Text))