Chương 7: THIẾT KẾ GIAO DIỆN VÀ XÂY DỰNG MODUL CHƯƠNG TRÌNH
7.4. Thiết kế giao diện chức năng xử lí thông tin
7.4.3. Chức năng thống kê thông tin
a. Giao diện.
b. Modul chương trình.
+ Chức năng thống kê thu tiền: Hiện thị thu phí vào - ra, phí bến đậu, tiền bán vé và tổng thu trong ngày.
+ Chức năng thống kê chi tiết: Tìm trong bảng checkbox số xe cần thu phí và thông tin cần thống kê như phí vào – ra, phí bến đậu, tiền bán vé và số vé bán sẽ hiện ra theo số xe đó trong ngày.
+ Chức năng thống kê về xe: Tổng xbe vào – ra, tổng số xe đang ở tại bến, tổng số xe ngoại tỉnh, và tổng số xe nội tỉnh trong ngày.
c. Code
Dim rssoxe As ADODB.Recordset Dim rsphivaora As ADODB.Recordset Dim rsphibendau As ADODB.Recordset Dim rstbv As ADODB.Recordset
Dim rsngoaitinh As ADODB.Recordset Private Sub cbsx_Click()
'''''''''Tinh phi vao ra trong ngay cho xe Set rsphivaora = New ADODB.Recordset
rsphivaora.Open "SELECT Phivaora.tuyen, Phivaora.mucphi, Xetaiben.soxe, Xetaiben.ngayvao, Xetaiben.ngayxuat, Xetaiben.Giochay, Soxe.chatluongcao, Xetaiben.songay, Phivaora.socho " & _
"FROM Phivaora INNER JOIN (Soxe INNER JOIN Xetaiben ON Soxe.soxe = Xetaiben.soxe) ON (Phivaora.socho = Soxe.soghe) AND (Phivaora.tuyen = Xetaiben.tuyen) where ngayvao=# " & Format(Date, "mm/dd/yyyy") & " # and xetaiben.soxe='" & cbsx.Text & "'", kn, adOpenDynamic, adLockReadOnly
Dim pvr As Single pvr = 0
Do While Not rsphivaora.EOF pvr = pvr + rsphivaora!mucphi rsphivaora.MoveNext
Loop
LBPVR1.Caption = pvr Else
LBPVR1.Caption = "0"
lbpbd1.Caption = "0"
MsgBox "Bạn cập nhật đầy đủ thông tin phí vào ra chưa", vbQuestion, "Thông báo"
MsgBox "Xe này không có thu phí vào ra trong ngày", vbOKOnly + vbExclamation, "Thông báo"
End If
rsphivaora.Close
'''''''''''''''Tinh phi ben dau cho xe
Set rsphibendau = New ADODB.Recordset
rsphibendau.Open "SELECT Xetaiben.tuyen, Xetaiben.soxe, Xetaiben.ngayvao, Xetaiben.ngayxuat, Xetaiben.Giochay, Xetaiben.songay, Phibendau.sotien " & _
"FROM Xetaiben INNER JOIN Phibendau ON Xetaiben.songay = Phibendau.songay where xetaiben.ngayvao=# " & Format(Date, "mm/dd/yyyy") &
" # and xetaiben.soxe='" & cbsx.Text & "'", kn, adOpenDynamic, adLockReadOnly If rsphibendau.RecordCount > 0 Then
lbpbd1.Caption = rsphibendau!sotien
''''''''''''''''Tinh tien ban ve cho xe Dim tbv As Single
tbv = 0
rstbv.Open "select * from datve where ngay=# " & Format(Date, "mm/dd/yyyy") &
" # and datve.soxe='" & cbsx.Text & "'", kn, adOpenDynamic, adLockReadOnly If rstbv.RecordCount > 0 Then
rstbv.MoveFirst
Do While Not rstbv.EOF tbv = tbv + Val(rstbv!giave) rstbv.MoveNext
Loop
lbtbv1.Caption = tbv
lbsvb.Caption = rstbv.RecordCount Else
MsgBox "Xe này không có tiền bán vé", vbOKOnly + vbExclamation, "Thông báo
lbtbv1.Caption = "0"
lbsvb.Caption = "0"
End If rstbv.Close End Sub
Private Sub Form_Load() LBPVR1.Caption = "0"
lbpbd1.Caption = "0"
lbtbv1.Caption = "0"
lbsvb.Caption = "0"
If rssoxe.RecordCount > 0 Then rssoxe.MoveFirst
Do While Not rssoxe.EOF cbsx.AddItem rssoxe!Soxe rssoxe.MoveNext
Loop Else
MsgBox "Mời bạn cập nhật số xe", vbOKOnly + vbInformation, "Thông báo"
End If
'''Tinh phi vao ra
Set rsphivaora = New ADODB.Recordset
rsphivaora.Open "SELECT Xetaiben.tuyen, Xetaiben.soxe, Phivaora.socho, Xetaiben.ngayvao, Xetaiben.ngayxuat, Xetaiben.Giochay, Phivaora.mucphi " & _
"FROM Phivaora INNER JOIN (Soxe INNER JOIN Xetaiben ON Soxe.soxe = Xetaiben.soxe) ON (Phivaora.socho = Soxe.soghe) AND (Phivaora.tuyen = Xetaiben.tuyen) where xetaiben.ngayvao= # " & Format(Date, "mm/dd/yyyy") & "
# ", kn, adOpenDynamic, adLockReadOnly Dim phivaora As Single
If rsphivaora.RecordCount > 0 Then rsphivaora.MoveFirst
phivaora = 0
Do While Not rsphivaora.EOF
phivaora = phivaora + Val(rsphivaora!mucphi)
lbvr.Caption = "0"
End If
rsphivaora.Close '''Tinh phi ben dau
Dim phibendau As Single
Set rsphibendau = New ADODB.Recordset
rsphibendau.Open "SELECT Xetaiben.tuyen, Xetaiben.soxe, Xetaiben.ngayvao, Xetaiben.ngayxuat, Xetaiben.Giochay, Xetaiben.songay, Phibendau.sotien " & _
"FROM Xetaiben INNER JOIN Phibendau ON Xetaiben.songay = Phibendau.songay where xetaiben.ngayvao=# " & Format(Date, "mm/dd/yyyy") &
" # ", kn, adOpenDynamic, adLockReadOnly phibendau = 0
If rsphibendau.RecordCount > 0 Then rsphibendau.MoveFirst
Do While Not rsphibendau.EOF
phibendau = phibendau + Val(rsphibendau!sotien) rsphibendau.MoveNext
Loop
lbpbd.Caption = phibendau
lbtb.Caption = rsphibendau.RecordCount Else
lbpbd.Caption = "0"
lbtb.Caption = "0"
End If
rsphibendau.Close '''' Tinh tien ban ve Dim tienbanve As Single
" # ", kn, adOpenDynamic, adLockReadOnly tienbanve = 0
If rstbv.RecordCount > 0 Then rstbv.MoveFirst
Do While Not rstbv.EOF
tienbanve = tienbanve + Val(rstbv!giave) rstbv.MoveNext
Loop
lbtbv.Caption = tienbanve Else
lbtbv.Caption = "0"
End If rstbv.Close
lbtt.Caption = Str(tienbanve + phibendau + phivaora) Dim tnt As Integer
Dim tnoit As Integer tnt = 0
tnoit = 0
Set rsngoaitinh = New ADODB.Recordset
rsngoaitinh.Open "SELECT Xetaiben.tuyen, Xetaiben.soxe, Xetaiben.ngayvao, Luongchay.Noitinh " & _
"FROM Xetaiben INNER JOIN Luongchay ON Xetaiben.tuyen = Luongchay.tuyen where ngayvao=#" & Format(Date, "mm/dd/yyyy") & "#", kn, adOpenDynamic,
Else
tnoit = tnoit + 1 End If
rsngoaitinh.MoveNext Loop
End If
lbnoit.Caption = tnoit lbnt.Caption = tnt Exit Sub
End Sub.