Mô hình này chính là lược đồ cơ sở dữ liệu của hệ thống. Đây là bước trung gian chuyển đổi giữa mô hình thực thể (gần với người sử dụng) và mô hình vật lý dữ liệu (mô hình trong máy tính), chuẩn bị cho việc cài đặt hệ thống.
II.1. THIẾT KẾ CƠ SỞ DỮ LIỆU
II.1.1. Khách Hàng
KHACHHANG (Dùng cho cả nhà cung cấp và khách mua hàng)
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaKH nvarchar PK Mã KH
2 HoKH nvarchar Họ KH
3 TenKH nvarchar Tên KH
4 TenGiaoDich nvarchar Tên giao dịch
5 SoNhaKH nvarchar Số nhà KH
6 DTKhachHang nvarchar DT khách hàng
7 FaxKH nvarchar Fax KH
8 TaiKhoan nvarchar Tài khoản
9 STNoCoThe nvarchar ST nợ có thể
10 MaDuong nvarchar FK Mã huyện
11 MaHuyen nvarchar FK Mã đường
12 MaNH nvarchar FK Mã NH
II.1.2. Mặt Hàng
Mặt hàng <MATHANG>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaHang nvarchar PK Mã hàng
2 TenHang nvarchar Tên hàng
3 SLTonTT Int SL tồn TT
4 SLTonTD Int SL tồn TD
5 MaDVT nvarchar v Mã HSX
6 MaHSX nvarchar FK Mã DVT
7 MaNhom nvarchar FK Mã nhóm
II.1.3. Quản Lý Kho Quản lý kho <KHO>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaKho nvarchar PK Mã kho
2 TenKho nvarchar Tên kho
3 DTKho nvarchar DT kho
4 FaxKho nvarchar Fax kho
5 SoNhaKho Int Số nhà kho
6 ThuKho nvarchar Thủ kho
7 MaDuong nvarchar FK Mã đường
II.1.4. Quản Lý Đơn Đặt Hàng
Quản lý đơn đặt hàng <DONDHANG>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaDDH nvarchar PK Mã DDH
2 NgayDH datetime Mã KH
3 HanNgaygiao Nvarchar Ngày DH
4 MaKH Nvarchar FK Hạn ngày giao
VI.1.5. Dòng Đơn Đặt Hàng
Dòng đơn đặt hàng <DONGDONDH>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaDDH Nvarchar PK Mã DDH
2 MaHang Nvarchar Mã hàng
3 SoLuongDH Int Số lượng DH
4 DonGiaDH Int Đơn giá DH
II.1.6.
Quản lý phiếu nhập xuất hàng <NXHANG>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaPNXH nvarchar PK Mà PNXH
2 MaDDH nvarchar FK Mã DDH
3 MaKho nvarchar FK Mã kho
4 NgayNXH datetime Ngày NXH
5 NgayHTT datetime Ngày HTT
6 NgayLapPNX datetime Ngày lập PNX
II.1.7.
Quản lý dòng phiếu nhập xuất hàng <DONGNXHANG>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaPNXH nvarchar PK Mà PNXH
2 MaHang nvarchar Mã hàng
3 SoLuongNXH Int Số lượng NXH
4 DonGiaNXH Float Đơn giá NXH
II.1.8.
Quản lý phiếu thanh toán <THANHTOAN>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaPTT nvarchar PK Mã PTT
2 MaPNXH nvarchar Mã PNXH
3 NgayTT Datetime Ngày TT
4 SoTien Float Số tiền
II.1.9.
Quản lý đường <DUONG>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaDuong Nvarchar PK Mã đường
2 TenDuong Nvarchar Tên đường
II.1.10.
Quản lý ngân hàng <NGANHANG>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaNH Nvarchar PK Mã NH
2 TenNH Nvarchar Tên NH
II.1.11.
Quản lý huyện <HUYEN>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaHuyen Nvarchar PK Mã huyện
2 TenHuyen Nvarchar Tên huyện
3 MaTinh Nvarchar FK Mã tỉnh
II.1.12.
Quản lý tỉnh <TINH>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaTinh nvarchar PK Mã tỉnh
2 TenTinh nvarchar Tên tỉnh
3 MaNuoc nvarchar FK Mã nước
II.1.13.
Quản lý nước <NUOC>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaNuoc nvarchar PK Mã nước
2 TenNuoc nvarchar Tên nước
II.1.14.
Quản lý hãng sản xuất <HANGSX>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaHSX nvarchar PK Mã HSX
2 TenHSX nvarchar Tên HSX
3 MaNuoc nvarchar FK Mã nước
II.1.15.
Quản lý đơn vị tính <DONVITINH>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaDVT nvarchar PK Mã DVT
2 TenDVT nvarchar Tên DVT
II.1.16.
Quản lý nhóm hàng <NHOM>
STT Tên trường Kiểu dữ liệu Khóa Diễn giải
1 MaNhom nvarchar PK Mã nhóm
2 TenNhom nvarchar Tên nhóm
III. Một số giao diện chính :
III.1. Hình ảnh Form Đăng nhập hệ thống
III.2. Hình ảnh Form chính của chương trình:
III.3. Hình ảnh Form cập nhật hàng hóa :
III.4. Hình ảnh Form cập nhật khách hàng
III.5. Hình ảnh Form Đơn đặt hàng
III.6. Hình ảnh Form cập nhật kho
III.7. Hình ảnh Form Phiếu nhập hàng
III.8. Hình ảnh Form Phiếu chi
III.9. Hình ảnh Form Phiếu xuất
III.10. Hình ảnh Form Phiếu thu
III.11. Hình ảnh Form Thống kê báo cáo theo khoảng thời gian
III.12. Hình ảnh Báo cáo Phiếu đặt hàng
III.13. Hình ảnh Báo cáo phiếu nhập kho
III.14. Hình ảnh Báo cáo phiếu xuất kho
III.15. Hình ảnh Báo cáo phiếu thu
III.16. Hình ảnh Báo cáo phiếu chi
IV. Một số mô đun chính : IV.1. Mô đun kết nối CSDL :
Public Function Ketnoi() As Boolean On Error Resume Next
con.ConnectionTimeout = 5
'su dung sqloledb de ket noi toi sqlserver ' phuong thuc chuoi ket noi
con.ConnectionString = "PROVIDER=SQLOLEDB.1;server =(local)" & ";Database=dulieu1" & ";Trusted_Connection=yes"
'con.Properties("Prompt") = adPromptComplete con.Open
End Function
IV.2. Mô đun kiểm tra ngày tháng nhập vào :
' Ham kiem tra ngay nhap vao
Public Function checkdate(strdate As String) As String Dim temp As Integer
Dim strtemp As String temp = 3
If IsNumeric(Left(strdate, 1)) Then ' Neu ky tu dau la so thi
If IsNumeric(Mid(strdate, 2, 1)) Then ' Neu ky tu thu hai la so thi If Left(strdate, 2) <= 31 Then ' Neu gia tri 2 ky tu
' <=31 thi kiem tra dau "/" mask1:
If Mid(strdate, temp, 1) = "/" Then
If IsNumeric(Mid(strdate, temp + 1, 1)) Then If IsNumeric(Mid(strdate, temp + 2, 1)) Then If Mid(strdate, temp + 1, 2) <= 12 Then
If Mid(strdate, temp + 3, 1) = "/" Then
strtemp = Left(strdate, temp + 3) ' Cat bo 6 ky tu dau If IsDate(strdate) Then ' Chuyen phan con lai th nam checkdate = strtemp & Format(strdate, "yyyy") Else GoTo msgdate End If End If Else GoTo msgdate End If Else
If Mid(strdate, temp + 2, 1) = "/" Then strtemp = Left(strdate, temp + 2) If IsDate(strdate) Then
checkdate = strtemp & Format(strdate, "yyyy") Else GoTo msgdate End If End If End If Else GoTo msgdate End If Else GoTo msgdate End If Else GoTo msgdate End If Else
If Mid(strdate, 2, 1) = "/" Then temp = 2 GoTo mask1 Else GoTo msgdate End If End If Else msgdate: checkdate = "1" End If End Function
IV.3. Mô đun lưu dữ liệu xuất hàng:
Public Sub Luudl()
On Error GoTo error1
Dim rs As New ADODB.Recordset Dim cmd As New ADODB.Command Dim str As String
If Trim(txtmapnx) = "" Or Trim(txtngaylappnx) = "" Or Trim(Combomaddh.Text) = "" Or Trim(txtngaynx) = "" Or Trim(txtngayhtt) = "" Or Trim(Combomahang.Text) = "" Or Trim(txtsoluongnx) = "" Or Trim(txtdongianx) = "" Then
MsgBox "Chu y: Phai nhap day du thong tin truoc khi luu!", vbOKOnly + vbExclamation, "Thong bao"
txtmapnx.SetFocus Exit Sub
End If
'Neu kiem tra ma khach hang co bat dau bang chu 'K' hay khong
If Left(Trim(txtmapnx), 1) <> "X" Then
MsgBox "Chu y: Ma phieu xuat hang phai bat dau boi 'X ...' !", vbOKOnly + vbExclamation, "Thong bao"
txtmapnx.SetFocus Exit Sub
End If
'Tim xem da ton tai Maduong nay trong Table duong hay chua? Set cmd.ActiveConnection = con
str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'"
rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai
Set rs = Nothing ' Dong record lai toithieu = 0 'Xoa gia tri ban dau toida = 0 'Xoa gia tri ban dau Set cmd.ActiveConnection = con
str = "select MATHANG.mahang, MATHANG.sltontt, MATHANG.sltontd from MATHANG where MATHANG.mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'"
rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = False Then ' Neu da ton tai, chac chan co
toithieu = rs!sltontt toida = rs!sltontd Set rs = Nothing End If
Set cmd.ActiveConnection = con
str = "select CTMATHANG.mahang, CTMATHANG.soluongton from CTMATHANG where CTMATHANG.mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'"
rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = False Then ' Neu da ton tai
sltontam = rs!soluongton - Val(txtsoluongnx) If sltontam < toithieu Then
MsgBox "So luong hang ton duoi muc toi thieu. Can phai nhap them truoc da.", vbOKOnly + vbExclamation, "Thong bao"
txtsoluongnx.SetFocus Me.MousePointer = 0 Set rs = Nothing Exit Sub
Else ' Neu khong duoi muc ton toi thieu, cap nhat SL
Set rs = Nothing
Set cmd.ActiveConnection = con 'Mo lai de luu
str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'"
rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai, chac chan chua co rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!ngaylappnx = Trim(txtngaylappnx) rs!maddh = Trim(Left(Combomaddh.Text, 5)) rs!makho = Trim(Left(Combomakho.Text, 5)) rs!ngaynxh = Trim(txtngaynx) rs!ngayhtt = Trim(txtngayhtt) rs.Update
Set rs = Nothing ' Dong record lai End If
Set cmd.ActiveConnection = con
str = "Select DONGNXHANG.mapnxh, DONGNXHANG.mahang, DONGNXHANG.soluongnxh, DONGNXHANG.dongianxh from DONGNXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "' and mahang = '" & Trim(Left(Combomahang.Text, 4)) & "'"
rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai
rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongnxh = Trim(txtsoluongnx) rs!dongianxh = Trim(txtdongianx) rs.Update Set rs = Nothing End If
'Chi tiet mat hang duoc cap nhat sau cung
Set rs.ActiveConnection = con 'Cap nhat phai nhu vay
str = "Update CTMATHANG set soluongton ='" & sltontam & "' where mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'"
rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText sltontam = 0 ' Xoa
Set rs = Nothing 'Dong ban ghi lai End If
Else ' Neu chua co (chua xuat lan nao)
sltontam = Val(txtsoluongnx) ' Kiem tra vuot Sltontd If sltontam < toithieu Then
MsgBox "So luong hang ton duoi muc toi thieu. Can phai nhap them truoc da.", vbOKOnly + vbExclamation, "Thong bao"
txtsoluongnx.SetFocus Me.MousePointer = 0 Set rs = Nothing Exit Sub
Else ' Khong duoi SLtontt, tao moi Set rs = Nothing
Set cmd.ActiveConnection = con 'Mo lai de luu
str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'"
rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai, chac chan chua co rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!ngaylappnx = Trim(txtngaylappnx) rs!maddh = Trim(Left(Combomaddh.Text, 5)) rs!makho = Trim(Left(Combomakho.Text, 5)) rs!ngaynxh = Trim(txtngaynx) rs!ngayhtt = Trim(txtngayhtt) rs.Update
Set rs = Nothing ' Dong record lai End If
Set cmd.ActiveConnection = con
str = "Select DONGNXHANG.mapnxh, DONGNXHANG.mahang, DONGNXHANG.soluongnxh, DONGNXHANG.dongianxh from DONGNXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "' and mahang = '" & Trim(Left(Combomahang.Text, 4)) & "'"
rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText
If rs.EOF = True Then 'Neu chua ton tai rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongnxh = Trim(txtsoluongnx) rs!dongianxh = Trim(txtdongianx) rs.Update Set rs = Nothing End If
'Chi tiet mat hang phai duoc tao moi sau cung Set cmd.ActiveConnection = con
str = "select CTMATHANG.mahang, CTMATHANG.soluongton from CTMATHANG where CTMATHANG.mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'"
rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Chac chan chua co
rs.AddNew
rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongton = sltontam
rs.Update
Set rs = Nothing
sltontam = 0 'Xoa gia tri End If
End If End If
toithieu = 0 'Xao gia tri toida = 0 'Xao gia tri
Else 'Neu da ton tai phieu xuat hang nay roi
MsgBox "Phieu xuat hang co ma so [" & Trim(txtmapnx) & "] da ton tai. Vui long kiem tra lai !", vbOKOnly + vbExclamation, "Thong bao"
txtmapnx.SetFocus Me.MousePointer = 0 Exit Sub
End If
DisplayGrid 'Hien thi danh sach cac hang san xuat
error1:
If Err.Number <> 0 Then
MsgBox Err.Number & Err.Description Else
MsgBox "Luu thanh cong phieu xuat hang co ma so: '" & Trim(txtmapnx) & "'"
response = MsgBox("Ban co muon them mat hang vao phieu xuat hang nua khong ?", vbYesNo + vbQuestion, "Thong bao")
If response = vbYes Then 'Neu chon NO thi khong Xoa Locktext
Unlocktext2
Setnull2 'Xoa Textbox Combomahang.SetFocus Flag = True
Else
Setnull2 'Xoa Textbox Locktext
End If End If End Sub
KẾT LUẬN VÀ ĐÁNH GIÁ
HỆ THỐNG THÔNG TIN QUẢN LÝ HÀNG HOÁ I. Những kết quả đạt được
Hệ thống quản lý xuất nhập hàng giúp cho việc quản lý mua bán của công ty được thực hiện một cách thuận tiện nhanh chóng và an toàn, góp phần tiết kiệm thời gian và giảm bớt các công việc thủ công (tuy nhiên không thể thay thế hoàn toàn).
Hệ thống đáp ứng được những yêu cầu cơ bản trong công tác cập nhật, xử lý xuất nhập hàng một cách nhanh chóng, chính xác như cập nhật dữ liệu, tìm kiếm thông tin, báo cáo tổng hợp xuất, nhập, tồn hàng.
Giao diện thân thiện và dễ dàng cho người sử dụng.
II. Những tồn tại của chương trình
Trong điều kiện hạn hẹp về thời gian và kiến thức còn hạn chế nên chương trình vẫn còn một số tồn tại như sau:
- Hệ thống chỉ mới phát triển bằng ngôn ngữ Visual Basic, lưu trữ dữ liệu bằng hệ quản trị cở sở dữ liệu MicroSoft SQL Server và chạy trên máy đơn.
- Một số phần xử lý Tiếng Việt còn chưa tốt.
- Chưa xây dựng hệ thống bảo mật cơ sở dữ liệu và phân quyền người sử dụng.
III. Hướng phát triển chương trình
Dựa vào kết quả khảo sát bài toán thực tế và phân tích thiết kế hệ thống ở trên, em xin đề xuất hướng phát triển chương trình như sau:
III.1. Phát triển hệ thống
Xây dựng hệ thống thương mại điện tử Web bằng công nghệ ASP (Active Server Pages) hoặc ASP.Net, lưu trữ dữ liệu bằng hệ quản trị cơ sở dữ liệu MicroSoft SQL Server hoặc Orecle và chạy trên mạng.
III.2. Bảo mật cơ sở dữ liệu và phân quyền người sử dụng
Ta sẽ phân cấp ra 3 mức người sử dụng:
- Addmin: có quyền thêm, sửa, xoá database, phân cấp, phân quyền cho người sử dụng.
- User mức 1: có quyền thêm dữ liệu và database.
- User mức 2: chỉ được quyền xem mà không được thực hiện bất cứ thao tác gì trên database.
Một vấn đề nữa là database sẽ được đặt trên máy chủ chứ không đặt trên các máy con như hiện nay nữa và như vậy việc quản trị và bảo mật database sẽ dễ dàng hơn.
TÀI LIỆU THAM KHẢO
1. Microsoft Visual Basic 6.0 & Lập trình cơ sở dữ liệu – Nguyễn Thị Ngọc Mai (Chủ biên), NXB GIÁO DỤC
2. Lập trình Visual Basic trong 21 ngày – Nathan Gurewich – On Gurewich, NXB GIÁO DỤC.
3. Kế toán doanh nghiệp với Visual Basic – VN GUIDE, NXB Thống Kê.
4. Giáo trình phân tích và thiết kế hệ thống thông tin quản lý – ThS.Nguyễn Hữu Trọng, Trường Đạ Học Thuỷ Sản.
5. Phân tích và thiết kế hệ thống thông tin - Nguyễn Văn Ba, NXB ĐẠI HỌC QUỐC GIA HÀ NỘI.
6. Hướng dẫn triển khai Căn Cứ Dữ Liệu sử dụng SQL SERVER 7.0 và VISUAL BASIC 6.0 - Biên dịch: Dương Quang Thiện, NXB Thống Kê.