Các hàm kiểm tra ràng buộc được viết bằng ngôn ngữ vb
1. Số tiền nợ đầu kỳ (CNO.nodk) của tháng này phải bằng số tiền nợ cuối kỳ của tháng trước
Function ktra_R1 (k as String, t as String) as Boolean Dim dauthg As Date, cuoithg As Date, thgtruoc As String Dim rsCNO As ADODB.recordset
Dim nock_thgtruoc As Single, nodk_thg As Single
Dauthg = Cdate (“01”+ “/”+Right (t, 2) +”/”+ Left (t, 4)) Cuoithg = dauthg – 1
Thgtruoc = Format (cuoithg, “yyyymm”)
Set rsCNO = Mo_Bang (“SELECT nodk, tienno, tienthu FROM CNO WHERE makh=’”& k &”’ AND namthgcno=’”&thgtruoc &”’)
Nock_thgtruoc = rsCNO (“nodk”.Value + rsCNO (“tienno”).Value – rsCNO (“tienthu”).Value
rsCNO.Close
Set rsCNO=Mo_Bang (“SELECT nodk FROM CNO WHERE makh=’” & k & “’ AND namthgcno=’”& t & “’”)
Nodk_thg=rsCNO (“nodk”).Value rsCNO.Close
2. Số lượng tồn kho đầu kỳ của tháng này bằng số lượng tồn kho cuối kỳ của tháng trước.
Function ktra_R2 (h As String, t As String) As Boolean Dim dauthg As Date, cuoithg As Date, thgtruoc As String Dim rsTKHO As ADODB.Recordset
Dim tonck_thgtruoc As Single, tondk_thg As Single
Dauthg = Cdate (“01” + “/” + Right (t,2) + “/” + Left(t,4)) Cuoithg = dauthg – 1
Thgtruoc = Format ( cuoithg,”yyyymm”)
Set rsTKHO= Mo_Bang “SELECT tondk, lnhap, oxuat FROM TKHO WHERE mahh=’” & h & “’ AND namthgtkho= ‘” thgtruoc & “’”)
Tondk_thg=rsTKHO (“tondk”).Value rsTKHO.Close
3. Số tiền nợ (CNO.tienno) trong tháng t của khách hàng k bằng tổng trị giá hàng giao và số tiền chi cho khách k trong tháng t đó.
Function ktra_R4 (k As String, t As String) As Boolean Dim rs As ADODB.Recordset
Dim tsotien_gh As Single, tsotien_pc As Single Dim sotienno As Single
Set rs=Mo_Bang (“LECT SUM sotiengh) FROM CTGH WHERE sogh IN ( SELECT sogh FROM PGH WHERE makh=’”& k & “’ AND Format ngaygh,’yyyymm’) =’” & t & “’)”)
Tsotien_gh = rs (0).Value Rs.Close
Set rs = Mo_Bang (“SELECT SUM ( sotienpc) FROM PCHI WHERE makh = ‘” & k & “’ AND Format(ngaypc,’yyyymm’)=’” & t & “’”)
Tsotien_pc = rs (0).Value Rs.Close
Set rs = Mo_Bang (“SELECT SUM (sotienpc) FROM PCHI WHERE makh = ‘” & k & “’ AND Format (ngaypc,’yyyymm’) = ‘” & t & “’”)
Tsotien_pc = rs (0).Value Rs.Close
Set rs=Mo_Bang (“SELECT tienno FROM CNO WHERE makh = ‘” & k & “’ AND namthgcno = ‘” & t & “’”)
Sotienno = rs (“tienno”).Value Rs.Close
4. Số tiền thu (CNO.tienthu) trong tháng t của khách hàng k bằng tổng trị giá hàng nhập và số tiền thu của khách hàng k trong tháng t
Function ktra_R4 (k As String, t As String) As Boolean Dim rs As ADODB.Recordset
Dim tsotien_pn As Single, tsotien_pt As Single Dim tienthu As Single
SET rs = Mo_Bang (“SELECT SUM (sotienpn) FROM CTPN WHERE sopn IN (SELECT sopn FROM PNHAP WHERE makh = ‘” & k & “’ AND Format (ngaypn,’yyyymm’) = ‘” & t & “’)”)
Tsotien_pn = rs (0).Value Rs.Close
SET rs = Mo_Bang (“SELECT SUM (sotienpt) FROM PTHU WHERE makh = ‘” & k & “’ AND Format(ngaypt, ‘yyyymm’)= ‘” & t & “’)”)
Tsotien_pt = rs (0).Value Rs.Close
SET rs = Mo_Bang (“SELECT tienthu FROM CNO WHERE makh = ‘” & k & “’ AND namthgcno = ‘” & t & “’”)
Rs.Close
5. Số lượng nhập (TKHO.slnhap) trong tháng t của mặt hàng h bằng tồng số lượng các chi tiết phiếu nhập của mặt hàng m trong tháng t.
Function ktra_R5 (h As String, t As String) As Boolean Dim rs As ADODB.Recordset
Dim tso_pn As Single, tsonhap As Single
Set rs = Mo_Bang (“SELECT SUM (slpn) FROM CTPN WHERE mahh = ‘”& h & “’ AND sopn IN (SELECT sopn FROM PNHAP WHERE Format (ngaypn,’yyyymm’) = ‘” & t & “’)”)
Tso_pn = rs (0).Value Rs.Close
Set rs = Mo_Bang
(“SELECT slnhap FROM TKHO WHERE mahh = ‘” & h & “’ AND namthgtkho = ‘” & t & “’”)
Rs.Close
6. Số lượng xuất (TKHO.slxuat) trong tháng t của mặt hàng h bằng tồng số lượng các chi tiết phiếu giao hàng và chi tiết hóa đơn của mặt hàng m trong tháng t.
Function ktra_R6 (h As String, t As String) As Boolean Dim rs As ADODB.Recordset
Dim tso_gh As Single, tso_hd As Single, tsoxuat As Single
Set rs = Mo_Bang (“SELECT SUM (slgh) FROM CTGH WHERE mahh = ‘” & h & “’ AND sogh IN (SELECT sogh FROM PGH WHERE Format (ngaygh, ‘yyyymm’) = ‘” & t & “’”)
Tso_gh = rs (0).Value Rs.Close
Set rs = Mo_Bang (“SELECT SUM (slhd) FROM CTHD WHERE mahh = ‘” & h & “’ AND sohd IN (SELECT sohd FROM HDON WHERE Format (ngayhd, ‘yyyymm’) = ‘” & t & “’”)
Tso_hd = rs (0).Value Rs.Close
Set rs = Mo_Bang (“SELECT slxuat FROM TKHO WHERE mahh = ‘” & h & “’ AND namthgtkho = ‘” & t & “’”)
Tsoxuat = rs (“slxuat”).Value Rs.Close
7. Chỉ giao những mặt hàng được khách hàng đặt hàng với số lượng giao không vượt quá số lượng đặt hàng.
Function ktra_R7 (so_gh As String)
Dim rsCTGH As ADODB.Recordset Dim rs As ADODB.Recordset
Dim so_dh As String, hople As Boolean, sl_dh As Single
Set rs = Mo_Bang (“SELECT sodh FROM PGH WHERE sogh = ‘”& so_gh &”’”)
So_dh = rs (“sodh”).Value Rs.Close
Hople = true
Set rsCTGH = Mo_Bang (“SELECT * FROM CTGH WHERE sogh = ‘” & so_gh & “’”)
rsCTGH.MoveFirst Do Until rsCTGH.EOF
Set rs = Mo_Bang (“SELECT sldh FROM CTDH WHERE sodh = ‘” & so_dh & “’AND CTDH.mahh = ‘” & rsCTGH (“mahh”).Value & “’”)
Sl_dh = rs (“sldh”).Value Rs.Close If rsCTGH (“slgh”).Value > sl_dh then Hople = False Exit Do End if rsCTGH.MoveNext Loop rsCTGH.Close
PHẪN 4: THIẾT KẾ GIAO DIỆN