Với phần mềm quản lý sách ta cần cài đặt một số phần mềm để chương trình hoạt động: phần mềm lập trình Visual Basic, hệ quản trị cơ sở dữ liệu Access 2000, phần mềm lập báo cáo CrystalRepor.
Để sử dụng chương trình Quản lý sách đã đĩn gĩi ta cần làm một số thao tác cài đặt sau:
Vào thư mục cĩ bộ cài phàm mềm Quản lý sách chạy file setup chưong trình sẽ cho ra cửa sổ cài đặt sau
từ cửa sổ cài đặt này ta click chuột vào ok và làm các thứ tự thao tác cho các hình tiếp theo như sau: Change Directory ( chọn đường dẫn chứa bộ cài chương trình ) chọn install QLSACH Continue Ok.
để chương trình hiển thị tiếng việt, từ thư mục Font trong bộ cài copy file MYVNFONT.fon vào thư mục Fonts trong Control Panel.
4.5 MỘT SỐ GIAO DIỆN CHƯƠNG TRÌNH
danh sách các sách cĩ từ đĩ. Và bạn chỉ việc lựa chọn loại sách mình cần trong list. Khi bạn đã chọn xong các loại sách cần mua bấm vào nút Bán, chương trình sẽ cho bạn một hố đơn mua hàng ghi đầy đủ các thơng tin như số lượng, số tiền phải thanh tốn…
Tìm kiếm: Tìm kiếm theo mã sách, tên sách, tên tác giả năm xuất bản.
Form nhập sách :
Cập nhật : Các đầu sách mới được cập nhật đây đủ các thơng tin và được hiển thì
trên list.
Form tìm kiếm thơng tin chi tiết sách :
Cho biết đây đủ các thơng tin về từng đầu sách
Form tìm kiếm hố đơn nhập sách: Hố đơn được tìm kiếm theo ngày, tháng, quý, năm.
Cho ta biết thơng tin của những hố đơn nhập hàng, ví dụ như ngày nhập, nhập những sách gì, số lượng, đơn giá của từng đầu sách.
In hố đơn : Bạn sẽ được một danh sách các hố đơn và tổng số tiền của hố đơn
Form tìm kiếm hố đơn bán sách :
Tìm kiếm theo ngày, tháng, quý, năm theo ba chức năng chọn tìm kiếm thơng tin bán lẻ, bán sỉ hoặc tất cả.
Form chi tiết hố đơn nhập sách :
Đưa ra các thơng tin chi tiết về các hố đơn mua hàng, như số lượng của từng đầu sách đã nhập về trong các hố đơn, mã hố đơn, tổng tiền của hố đơn…
In hố đơn : Bạn hãy chọn một trong số các hố đơn mua sách trong list và chọn
Form chi tiết hố đơn Bán sách
Đưa ra các thơng tin chi tiết về các hố đơn bán hàng, như số lượng của từng đầu sách đã nhập về trong các hố đơn, mã hố đơn, tổng tiền của hố đơn…
In hố đơn : Bạn hãy chọn một trong số các hố đơn bán sách trong list và chọn
Form quản lý khách hàng ( Khách hàng mua buơn)
Lưu thơng tin về khách hàng mới.
Đưa ra thơng tin đây đủ về khách hàng. Bạn muốn in thơng tin về khách hàng nào hãy quay về frmmain và chọn mã khách hàng Click vào biểu tượng máy in bạn sẽ cĩ một bản in về thơng tin khách hàng đĩ.
Form quản lý nhân viên :
Đừa ra các thơng tin về nhân viên làm việc trong cửa hàng. Cập nhật nhưng thơng tin của nhân viên mới.
Form quản lý về phần trăm chênh lệch của giá bản ( bán lẻ, bán buơn, theo giá nhập vào )
KẾT LUẬN VÀ ĐÁNH GIÁ HỆ THỐNG 1. KẾT LUẬN
Đứng trước xu hướng phát triển nhanh và mạnh của cơng nghệ thơng tin thế giới cũng như trong nước, thì tin học hố quản lý là vơ cùng quan trọng và bức thiết hiện nay. Nĩ sẽ giúp cho các cơ quan hành chính giải quyết những cơng việc một cách nhanh chĩng và ít sai sĩt nhất, đặc biệt là trong lĩnh vực quản lý liên quan đến sổ sách, hố đơn. Những ứng dụng về cơ sở dữ liệu đã giải quyết được những vấn đề bức thiết nêu trên.
Trong đợt thực tập này em đã em đã nhận đề tài xây dựng chương trình quản lý sách và lấy nhà sách Minh Khai làm mơ hình thực tế để xây dựng chương trình. Tuy chương trình vẫn cịn nhiều hạn chế, song nĩ đã đáp ứng phần nào cơng việc quản lý sách của nhà sách và cho em thấy được vấn đề quan trọng khi xây dựng một chương trình quản lý. Với chương trình quản lý sách khi đưa vào sử dụng sẽ giúp nhà quản lý khắc phục được những khĩ khăn trong quản lý hoạt động nhà sách và tăng hiêu quả cơng việc cũng như hoạt động của nhà sách. Em xin chân thành cảm ơn thầy Đặng Minh Ất đã hướng dẫn, giúp đỡ em hồn thành đề tài thực tập này.
2. NHỮNG HẠN CHẾ CỦA CHƯƠNG TRÌNH
Do thời gian thực hiện phân tích và thiết kế hệ thống là tương đối hạn chế so với một đề tài cĩ nhu cấp lớn hiện nay và địi hỏi độ chính xác và ứng dụng thực
Do đặc thù quản lý của mỗi nhà sách là khác nhau nên việc ứng dụng chương trình đồng thời vào nhiều nhà sách cịn gặp phải những khĩ khăn và chưa đồng nhất. Mục tiêu xây dựng chương trình là thân thiện dễ sử dụng cịn gặp nhiều hạn chế và chưa cĩ tính chuyên nghiệp.
3 . HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
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 Micsrosoft SQL Server hoặc Orcele và chạy trên mạng. Mục đích giúp cho khách hàng tìm được những cuốn sách một cách chủ động mà khơng tốn thời gian lựa chọn trực tiếp tại nhà sách. Giúp nhà quản lý nhà sách cĩ thể quản lý mà khơng cần trực tiếp đến nhà sách vẫn cĩ thể nắm thơng tin về hoạt động nhà sách của minh. Và đặc biệt từ thệ thống cĩ thể giới thiệu nhiều đầu sách tới khách hàng và thơng qua hệ thơng khách hàng cĩ thể đặt hàng mà mua trực tiếp qua mạng.
Về bảo mật cơ sở đữ liệu ta sẽ phân ra 3 mức người sử dụng
Admin : Cĩ quyền thêm, sửa, xố 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ào 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ư 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. Cơ sở dữ liệu quan hệ
Lê Tiến Vương
2. Phân tích & Thiết kế hệ thống
Ngơ Trung Việt
3. Cơ sở dữ liệu & Phân tích thiết kế hệ thống thơng tin quản lý Nguyễn Hữu Trọng
4. Tự học lập trình cơ sở dữ liệu Visual Basic 6.0 tập 1&2
Nguyễn Đình Tê ( Chủ biên )
5. Microsoft Visual Basic 6.0 & Lập trình cơ sở dữ liệu
NguyễnThị Ngọc Mai (Chủ Biên)
6. Nhữ bài thực hành cơ sở dữ liệu Visual Basic
Đinh Xuân Lâm
7. Tin học văn phịng Access 2000
Nguyễn Sĩ Dũng 8. Lập trình Access 2000
PHỤ LỤC
Một số đoạn code trong chương trình :
• code Form chính ( frmmain )
Private Sub cmdThemS_Click() On Error Resume Next
If txtTenSBL.Text = "" Then
lblLoi.Caption = "B¹n h·y nhËp tªn s¸ch" txtTenSBL.SetFocus
Exit Sub End If
'Kiem tra xem co sach voi ten trong CSDL khong If txtMaSaBL.Text <> "" Then
Dim c As Integer
c = lvBan.ListItems.Count Dim G As Double
If OptBan1(0).Value = True Then
G = ModSach.GiaBan(txtMaSaBL.Text, 0) '* CInt(cmbSoLuongBL.Text)
Else
G = ModSach.GiaBan(txtMaSaBL.Text, 1) End If
'Kiem tra so luong sach
Call ModCSDL.MoBang("Select MA_SA,SLS from Sach where MA_SA='" & txtMaSaBL.Text & "'")
lblLoi.Caption = "Cưa hµng cßn " & rs("SLS") & " quyĨn. " cmbSoLuongBL.ListIndex = 0
Exit Sub End If
Set rs = Nothing
'Kiem tra xem lvban co du lieu khong If c = 0 Then
Tien = Tien + G * CLng(cmbSoLuongBL.Text) n = n + 1 tt = tt + 1 Set li = lvBan.ListItems.Add(, , tt, , 1) lvBan.ListItems(n).SubItems(1) = txtMaSaBL.Text lvBan.ListItems(n).SubItems(2) = txtTenSBL.Text lvBan.ListItems(n).SubItems(3) = cmbSoLuongBL.Text lvBan.ListItems(n).SubItems(4) = G Else
Dim bo As Boolean 'Kiem tra xem trong lvBan co MaSaBL chua bo = False Dim s As String Dim i As Integer For i = 1 To c s = lvBan.ListItems(i).SubItems(1) If s = txtMaSaBL.Text Then bo = True End If
Tien = Tien + G * CLng(cmbSoLuongBL.Text) n = n + 1 tt = tt + 1 Set li = lvBan.ListItems.Add(, , tt, , 1) lvBan.ListItems(n).SubItems(1) = txtMaSaBL.Text lvBan.ListItems(n).SubItems(2) = txtTenSBL.Text lvBan.ListItems(n).SubItems(3) = cmbSoLuongBL.Text lvBan.ListItems(n).SubItems(4) = G Else
MsgBox "Ma sach " & txtMaSaBL.Text & " da duoc dua vao danh sach. ", vbOKOnly + vbInformation, "Thong bao"
txtMaSaBL.Text = "" txtTenSBL.SetFocus Exit Sub End If End If lblTongT.Caption = Tien txtTenSBL.Text = "" txtMaSaBL.Text = "" FraKieu.Enabled = False cmbMaKH.Locked = True txtTenSBL.SetFocus Else
MsgBox "Xin loi chung toi khong con sach nay ! ", vbOKOnly + vbInformation, "Thong bao"
txtTenSBL.SetFocus Exit Sub
End If End Sub
• Code xứ lý quá trình Bán sách
Private Sub cmdBan_Click() On Error Resume Next
Dim c As Integer 'Dem so sach trong List c = lvBan.ListItems.Count If c > 0 Then Dim k As String Dim m As Integer k = ModTaoMA.TaoHDBS 'Add HDB_S
Call ModCSDL.MoBang("select * from HDB_S where MA_HDBS='A'") rs.AddNew
rs("MA_HDBS") = k
rs("NGAY") = CDate(Mid(Now(), 1, 10)) If OptBan1(0).Value = True Then
rs("MA_KH") = "KH0000" Else rs("MA_KH") = cmbMaKH.Text End If rs("MA_NV") = lblMaNV.Caption rs("TONG_TG") = lblTongT.Caption rs.Update Set rs = Nothing
Call ModCSDL.MoBang("select * from CTHDBS where MA_HDBS='A'") rs.AddNew rs("STT") = m rs("MA_HDBS") = k rs("MA_SA") = lvBan.ListItems(m).SubItems(1) rs("TEN_SA") = lvBan.ListItems(m).SubItems(2) rs("SLS_B") = CDbl(lvBan.ListItems(m).SubItems(3)) rs("DGIAS_B") = CDbl(lvBan.ListItems(m).SubItems(4)) rs.Update Set rs = Nothing Next m
'Update DL moi cho bang Sach Dim q As String
Dim sl As Integer For m = 1 To c
q = lvBan.ListItems(m).SubItems(1) sl = lvBan.ListItems(m).SubItems(3)
Call ModCSDL.MoBang("select MA_SA,SLS from Sach where MA_SA ='" & q & "'") rs("SLS") = CDbl(CLng(rs("SLS")) - sl) rs.Update Set rs = Nothing Next m lvBan.ListItems.Clear n = 0 tt = 0
FraKieu.Enabled = True cmbMaKH.Locked = False
'Bao cao ban sach Dim obj
Dim sec As Section
For Each sec In DaReBanSach.Sections If sec.Name = "Section4" Then For Each obj In sec.Controls
If obj.Name = "lblMAHDBS" Then obj.Caption = k
End If Next obj End If
If sec.Name = "Section5" Then For Each obj In sec.Controls
If obj.Name = "lblTongTien" Then obj.Caption = Tien
End If Next obj End If Next sec
Call ModCSDL.MoBang("Select STT,MA_SA,TEN_SA,SLS_B,DGIAS_B from CTHDBS where MA_HDBS = '" & k & "' order by STT")
Tien = 0 lblTongT.Caption = Tien Else txtTenSBL.SetFocus End If End Sub • Code xử lý quá trình nhập sách
Private Sub CmdCapNhat_Click() On Error Resume Next
Dim stt As Integer 'So thu tu cac ban ghi trong lvSaMua If txtTenS.Text = "" Then lblloi.Caption = "B¹n h·y nhËp tªn s¸ch" txtTenS.SetFocus Exit Sub End If If txtTenTG.Text = "" Then
lblloi.Caption = "B¹n h·y nhËp tªn t¸c gi¶" txtTenTG.SetFocus
Exit Sub End If
'Kiem tra so luong sach If txtSL.Text = "" Then
lblloi.Caption = "B¹n h·y nhËp sè lỵng s¸ch" txtSL.SetFocus
Else If CLng(txtSL.Text) <= 0 Then lblloi.Caption = "Sè lỵng s¸ch ph¶i lín h¬n 0" txtSL.SetFocus Exit Sub End If End If
'Kiem tra don gia
If txtDonGia.Text = "" Then
lblloi.Caption = "B¹n h·y nhËp d¬n gi¸ s¸ch" txtDonGia.SetFocus
Exit Sub Else
If CLng(txtSL.Text) <= 0 Then
lblloi.Caption = "§¬n gi¸ ph¶i lín h¬n 0" txtDonGia.SetFocus
Exit Sub End If End If
'Kiem tra xem lvSAMua co ban ghi nao khong Dim c As Integer
c = LvSAMua.ListItems.Count
Total = Total + (CLng(txtSL.Text) * CLng(txtDonGia.Text))
Select Case txtTinhTrang.Text Case "0" 'Add new
If MaS = "" Then MaS = ModTaoMA.TaoMaS Else Dim so As String Dim d As Integer so = CStr(CInt(Mid(MaS, 2, 4)) + 1) d = Len(so) Select Case d Case 1
MaS = CStr("S" & "000" & so) Case 2
MaS = CStr("S" & "00" & so) Case 3
MaS = CStr("S" & "0" & so) Case 4
MaS = CStr("S" & so) End Select End If j = j + 1 stt = stt + 1 Set li = LvSAMua.ListItems.Add(, , stt, , 1) LvSAMua.ListItems(j).SubItems(1) = MaS LvSAMua.ListItems(j).SubItems(2) = txtTenS.Text
LvSAMua.ListItems(j).SubItems(3) = txtTenTG.Text LvSAMua.ListItems(j).SubItems(4) = CmbNamXB.Text LvSAMua.ListItems(j).SubItems(5) = CmbLanXB.Text LvSAMua.ListItems(j).SubItems(6) = CmbTapSo.Text LvSAMua.ListItems(j).SubItems(7) = cmbMaNXB.Text LvSAMua.ListItems(j).SubItems(8) = txtSL.Text LvSAMua.ListItems(j).SubItems(9) = txtDonGia.Text Case "1" 'Update j = j + 1 stt = stt + 1 Set li = LvSAMua.ListItems.Add(, , stt, , 1) LvSAMua.ListItems(j).SubItems(1) = txtMaSa.Text LvSAMua.ListItems(j).SubItems(2) = txtTenS.Text LvSAMua.ListItems(j).SubItems(3) = txtTenTG.Text LvSAMua.ListItems(j).SubItems(4) = CmbNamXB.Text LvSAMua.ListItems(j).SubItems(5) = CmbLanXB.Text LvSAMua.ListItems(j).SubItems(6) = CmbTapSo.Text LvSAMua.ListItems(j).SubItems(7) = cmbMaNXB.Text LvSAMua.ListItems(j).SubItems(8) = txtSL.Text LvSAMua.ListItems(j).SubItems(9) = txtDonGia.Text End Select Else Dim bo As Boolean bo = False Dim s As String
s = LvSAMua.ListItems(i).SubItems(1) If s = txtMaSa.Text Then bo = True End If Next i If Not bo Then
Total = Total + (CLng(txtSL.Text) * CLng(txtDonGia.Text))
Select Case txtTinhTrang.Text Case "0" 'Add new
If MaS = "" Then MaS = ModTaoMA.TaoMaS Else so = CStr(CInt(Mid(MaS, 2, 4)) + 1) d = Len(so) Select Case d Case 1
MaS = CStr("S" & "000" & so) Case 2
MaS = CStr("S" & "00" & so) Case 3
MaS = CStr("S" & "0" & so) Case 4
MaS = CStr("S" & so) End Select
End If j = j + 1 stt = stt + 1 Set li = LvSAMua.ListItems.Add(, , stt, , 1) LvSAMua.ListItems(j).SubItems(1) = MaS LvSAMua.ListItems(j).SubItems(2) = txtTenS.Text LvSAMua.ListItems(j).SubItems(3) = txtTenTG.Text LvSAMua.ListItems(j).SubItems(4) = CmbNamXB.Text LvSAMua.ListItems(j).SubItems(5) = CmbLanXB.Text LvSAMua.ListItems(j).SubItems(6) = CmbTapSo.Text LvSAMua.ListItems(j).SubItems(7) = cmbMaNXB.Text LvSAMua.ListItems(j).SubItems(8) = txtSL.Text LvSAMua.ListItems(j).SubItems(9) = txtDonGia.Text Case "1" 'Update j = j + 1 stt = stt + 1 Set li = LvSAMua.ListItems.Add(, , stt, , 1) LvSAMua.ListItems(j).SubItems(1) = txtMaSa.Text LvSAMua.ListItems(j).SubItems(2) = txtTenS.Text LvSAMua.ListItems(j).SubItems(3) = txtTenTG.Text LvSAMua.ListItems(j).SubItems(4) = CmbNamXB.Text LvSAMua.ListItems(j).SubItems(5) = CmbLanXB.Text LvSAMua.ListItems(j).SubItems(6) = CmbTapSo.Text LvSAMua.ListItems(j).SubItems(7) = cmbMaNXB.Text LvSAMua.ListItems(j).SubItems(8) = txtSL.Text
Else
MsgBox "Ma sach " & txtMaSa.Text & " da duoc dua vao danh sach. ", vbOKOnly + vbInformation, "Thong bao"
End If End If lblTongTien.Caption = Total txtTenS.Text = "" txtTenTG.Text = "" txtSL.Text = "" txtDonGia.Text = "" End Sub
Private Sub CmdMuaSach_Click() On Error Resume Next
Dim c As Integer c = LvSAMua.ListItems.Count If c = 0 Then txtTenS.SetFocus SendKeys "{home}+{end}" Exit Sub Else Dim l As Integer Dim i As Integer Dim m As String m = ModTaoMA.TaoMaHDMS
i = LvSAMua.ListItems.Count
'Add HDM_S
Call ModCSDL.MoBang("select * from HDM_S where MA_HDMS='A'") rs.AddNew rs("MA_HDMS") = m rs("NGAY_M") = CDate(Mid(Now(), 1, 10)) rs("MA_NV") = lblMaNV.Caption rs("TTOAN") = lblTongTien.Caption rs.Update Set rs = Nothing 'Add CTHDM_S For l = 1 To i
Call ModCSDL.MoBang("select * from CTHDMS where MA_HDMS='A'") rs.AddNew rs("STT") = l rs("MA_HDMS") = m rs("MA_SA") = LvSAMua.ListItems(l).SubItems(1) rs("TEN_SA") = LvSAMua.ListItems(l).SubItems(2) rs("SLS_MUA") = LvSAMua.ListItems(l).SubItems(8) rs("DGIAS_MUA") = LvSAMua.ListItems(l).SubItems(9) rs.Update Set rs = Nothing Next l
Dim s As String For l = 1 To i
s = LvSAMua.ListItems(l).SubItems(1)
Call ModCSDL.MoBang("select * from Sach where MA_SA='" & s & "'") If rs.EOF Then rs.AddNew rs("MA_SA") = LvSAMua.ListItems(l).SubItems(1) rs("TEN_SA") = LvSAMua.ListItems(l).SubItems(2) rs("TEN_TG") = LvSAMua.ListItems(l).SubItems(3) rs("Nam_XB") = LvSAMua.ListItems(l).SubItems(4) rs("LAN_XB") = LvSAMua.ListItems(l).SubItems(5) rs("TAP_SO") = LvSAMua.ListItems(l).SubItems(6) rs("MA_NXB") = LvSAMua.ListItems(l).SubItems(7) rs("SLS") = LvSAMua.ListItems(l).SubItems(8) rs("GIAMUA") = LvSAMua.ListItems(l).SubItems(9) rs.Update Set rs = Nothing Else rs("TEN_SA") = LvSAMua.ListItems(l).SubItems(2) rs("TEN_TG") = LvSAMua.ListItems(l).SubItems(3) rs("Nam_XB") = LvSAMua.ListItems(l).SubItems(4) rs("LAN_XB") = LvSAMua.ListItems(l).SubItems(5) rs("TAP_SO") = LvSAMua.ListItems(l).SubItems(6) rs("MA_NXB") = LvSAMua.ListItems(l).SubItems(7) rs("SLS") = CLng(rs("SLS")) + CLng(LvSAMua.ListItems(l).SubItems(8)) rs("GIAMUA") = LvSAMua.ListItems(l).SubItems(9) rs.Update
Set rs = Nothing End If
Next l
'Hoa don mua sach Dim obj
Dim sec As Section
For Each sec In DaReHDMS.Sections If sec.Name = "Section4" Then For Each obj In sec.Controls
If obj.Name = "lblMAHDMS" Then obj.Caption = m
End If Next obj End If
If sec.Name = "Section5" Then For Each obj In sec.Controls If obj.Name = "lblTotal" Then obj.Caption = Total
End If Next obj End If Next ec
Call ModCSDL.MoBang("Select STT,MA_SA,TEN_SA,SLS_MUA,DGIAS_MUA from CTHDMS where MA_HDMS = '" & m & "' order by STT")
Set rs = Nothing Total = 0
lblTongTien.Caption = Total End If
'Khoi tao gia tri j, stt,Total,mas moi j = 0 stt = 0 LvSAMua.ListItems.Clear txtTenS.SetFocus MaS = "" End Sub
• Code xử lý quá trình tìm kiếm theo tên tác giá, tên sách, năm xuất bản.
Private Sub cmdTimKiem_Click() On Error Resume Next
If txtTimKiem.Text <> "" Then Select Case lblTK.Caption Case "1"
Call ModCSDL.MoBang("select MA_SA,TEN_SA, TEN_TG, NAM_XB, LAN_XB, TAP_SO, MA_NXB, SLS from Sach where TEN_SA like '%" & txtTimKiem.Text & "%' and SLS>0")
Call Add_lvTimKiem Set rs = Nothing
Exit Sub Case "2"
Call ModCSDL.MoBang("select MA_SA,TEN_SA,TEN_TG,NAM_XB,LAN_XB,TAP_SO,MA_NXB,SLS from Sach where TEN_TG like '%" & txtTimKiem.Text & "%' and SLS>0")
Call Add_lvTimKiem Set rs = Nothing Exit Sub Case "3" Call ModCSDL.MoBang("select MA_SA,TEN_SA,TEN_TG,NAM_XB,LAN_XB,TAP_SO,MA_NXB,SLS from Sach where NAM_XB like '" & txtTimKiem.Text & "%' and SLS>0")
Call Add_lvTimKiem Set rs = Nothing Exit Sub End Select End If End Sub