Biểu đồ luồng dữ liệu

Một phần của tài liệu Xây dung hệ thống Quản lý thư viện (Trang 41)

II. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG QUẢN LÝ THƯ VIỆN

2.Biểu đồ luồng dữ liệu

2.1. Biểu đồ luồng dữ liệu mức ngữ cảnh

2.2. Biểu đồ luồng dữ liệu mức đỉnh

Độc giả Quản lý thư viện Nhà cung cấp

Yêu cầu độc giả

Trả lời của thư viện

Yêu cầu mua sách

Trả lời của nhà cung cấp Quản lý thẻ quản lý sách quản lý độc giả Sách Thẻ Độc giả Người quản lý độc giả T hô ng ti n v ề t hẻ

Yêu cầu thông tin về độc giả

Y êu c ầu tì m k iế m th ôn g tin v ề độc g iả

Yêu cầu thông tin về sách

2.3. Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng Quản lý thẻ Nhận phiếu yêu cầu Cấp thẻ Hình thức xử lý Xác định độc giả vi phạm Xét duyệt phiếu yêu cầu Người quản lý Độc giả Phiếu Thẻ thư viện Y êu c ầu m ượ n sá ch

trả lời kết quả sau khi duyệt phiếu Đưa ra hình thức xử lý d uy ệt p hi ếu Người quản lý Q uy ết địn h cấ p th ẻ

CHƯƠNG 4: THIẾT KẾ HỆ THỐNG

I. THIẾT KẾ CƠ SỞ DỮ LIỆU 1. Bảng DocGia 2. Bảng LoaiDocGia 3. Bảng Sach 4. Bảng TheLoaiSach 5. Bảng TheMuon

6. Bảng QTMuon

7. Bảng CTMuon

8. Bảng ThamSoNguyen 9. Bảng TaiKhoan

II.THIẾT KẾ GIAO DIỆN MÀN HÌNH 1. Danh sách các màn hình

STT Màn hình Chức năng

1 Màn hình chính Màn hình chính của hệ thống

2 splashscr Màn hình splash giới thiệu

3 Đăng nhập Màn hình đăng nhập vào hệ thống.

4 Danh mục sách Quản lý thông tin về sách của thư viện

5 Danh mục độc giả Quản lý thông tin độc giả. 6 Lập thẻ thư viện Lập thẻ thư viện cho độc giả 7 Mượn trả sách Thực hiện quá trình mượn trả sách 8 Thay đổi quy định Thay đổi những quy định đã thiết lập

9 Thêm người dùng Thêm mới người dùng. 10 Quản lý người dùng Xóa, sửa người dùng của quản lý.

11 Phân quyền Phân quyền cho người dùng.

2. Chi tiết màn hình

2.1. Màn hình chính

1: Form Quản lý thư viện: hệ thống menu

2: Các button view icon: hiển thị những chức năng trên list view 3: List view : hiển thị những icon chức năng

4: frame : hiển thị tên và quyền truy cập vào của người dùng MH Chinh Form_Load MH sflashscr khoidong MH đăng nhập khoidong Connect DB khoidong 2 3 1 4 (adsbygoogle = window.adsbygoogle || []).push({});

2.2. Màn hình danh mục sách

Người dùng sử dụng form này khi nhập sách mới, thêm, cập nhật, xóa, tra cứu sách

1: Form Danh mục sách

2: Textbox để thực hiện tra cứu về sách ( tra cứu tương ứng với cột của lưới datagird ). Người dùng nhập vào thông tin cần tra cứu, chương trình sẽ tự động lọc từ từ trên lưới datagird và hiển thị cho người dùng chọn lựa.

3: DataGrid hiển thị thông tin về danh sách sách và thông tin tương ứng về sách ở bên dưới. Khi người dùng nhấp chuột vào DataGrid thì thông tin tương ứng sẽ được hiển thị ở bên dưới lưới

4: Frame hiển thị thông tin về sách, người dùng có thể nhập thông tin vào frame này để thực hiện các chức năng thêm , cập nhật, xóa sách khi cần theo nhu cầu

2 5 4 MH DM sách Form_Load Lấy dữ liệu Thực hiện MH DM sách Hiển thị thông tin lên form

1

2

3

5: Button thực hiện các chức năng thêm, cập nhật, xóa các sách và thoát form. Groupbox thông tin về sách :

STT Tên Kiểu Ý nghĩa

1 txttext(0) String Mã sách

2 txttext(1) String Tên sách

3 txttext(2) String Tác giả

4 txttext(3) String Nhà xuất bản 5 txttext(4) String Năm xuất bản

6 txttext(5) String Tổng số bản

7 txttext(6) String Tình trạng sách

8 txttext(7) String Số trang

9 cboTheloai String Thể loại sách 10 cboNgonngu String Ngôn ngữ sách

11 DTPkr Date Ngày nhập sách

Tra cứu thông tin của một sách :

- Nhập: nhập thông tin cần tìm vào các ô textbox trên các cột tương ứng của lưới để tra cứu theo tiêu chí mong muốn

- Xuất: Danh sách thông tin sách theo tiêu chuẩn tra cứu / không hiển thị sách nếu không tìm thấy

- Thuật giải: (Mã giả ) IF tìm thấy THEN

Hiển thị danh sách hợp đồng lên màn hình. ELSE

Danh sách sẽ rỗng END IF

Lưu thông tin của một sách :

- Nhập: Thông tin tra cứu theo hình thức phù hợp, thông tin cần cập nhật - Xuất: Thông báo đã lưu/ Thông báo không thể lưu

- Thuật giải: (mã giả ) IF tìm thấy THEN (adsbygoogle = window.adsbygoogle || []).push({});

Hiển thị thông tin tìm được lên màn hình Lưu trong TABLE SACH

IF Lưu được THEN

Thông báo đã lưu và

Hiển thị TABLE SACH mới lên màn hình với mẫu tin đã được lưu

ELSE

Báo lỗi không thể lưu được. END IF

ELSE

Sửa thông tin của một sách :

- Nhập: Thông tin tra cứu theo hình thức phù hợp, thông tin cần sửa - Xuất: Thông báo đã sửa/ Thông báo không thể sửa.

- Thuật giải: (Mã giả) IF tìm thấy THEN

Hiển thị thông tin tìm được lên màn hình Sửa trong TABLE SACH

IF sửa được THEN

Thông báo đã sửa và

Hiển thị TABLE SACH mới lên màn hình với mẫu tin đã được sửa

ELSE

Báo lỗi không thể sửa được. END IF

ELSE

Thông báo không tồn tại mẫu tin END IF

2.3. Màn hình danh mục các độc giả

Người dùng sử dụng form này khi nhập sách mới, thêm, cập nhật, xóa, tra cứu độc giả

1: Form Danh mục độc giả

2: Textbox để thực hiện tra cứu về độc giả ( tra cứu tương ứng với cột của lưới datagird ). Người dùng nhập vào thông tin cần tra cứu, chương trình sẽ tự động lọc từ từ trên lưới datagird và hiển thị cho người dùng chọn lựa.

3: DataGrid hiển thị thông tin về danh sách độc giả và thông tin tương ứng về độc giả ở bên dưới. Khi người dùng nhấp chuột vào DataGrid thì thông tin tương ứng sẽ được hiển thị ở bên dưới lưới

4: Frame hiển thị thông tin về độc giả, người dùng có thể nhập thông tin vào frame này để thực hiện các chức năng thêm , cập nhật, xóa độc giả khi cần theo nhu cầu

MH DM ĐG Form_Load

Lấy dữ liệu Thực hiện

MH DM ĐG Hiển thị thông tin lên form 1 2 2 1 5 4 3

5: Button thực hiện các chức năng thêm, cập nhật, xóa các độc giả và thoát form. Groupbox thông tin về sách :

STT Tên Kiểu Ý nghĩa

1 txttext(0) String Mã độc giả (adsbygoogle = window.adsbygoogle || []).push({});

2 txttext(1) String Tên độc giả

3 txttext(2) String Giới tính

4 txttext(3) String Địa chỉ

5 txttext(4) String Điện thoại

6 txttext(5) String Email

7 cboMaloaiDG String Thể loại độc giả

8 DTPkr Date Ngày sinh

Tra cứu thông tin của một độc giả :

- Nhập: nhập thông tin cần tìm vào các ô textbox trên các cột tương ứng của lưới để tra cứu theo tiêu chí mong muốn

- Xuất: Danh sách thông tin độc giả theo tiêu chuẩn tra cứu / không hiển thị độc giả nếu không tìm thấy

- Thuật giải: (Mã giả ) IF tìm thấy THEN

Hiển thị danh sách hợp đồng lên màn hình. ELSE

Danh sách sẽ rỗng END IF

Lưu thông tin của một độc giả :

- Nhập: Thông tin tra cứu theo hình thức phù hợp, thông tin cần cập nhật - Xuất: Thông báo đã lưu/ Thông báo không thể lưu

- Thuật giải: (Mã giả ) IF tìm thấy THEN

Hiển thị thông tin tìm được lên màn hình Lưu trong TABLE DOCGIA

IF Lưu được THEN

Thông báo đã lưu và

Hiển thị TABLE DOCGIA mới lên màn hình với mẫu tin đã được lưu

ELSE Báo lỗi không thể lưu được. END IF

ELSE

Sửa thông tin của một độc giả :

- Nhập: Thông tin tra cứu theo hình thức phù hợp, thông tin cần sửa - Xuất: Thông báo đã sửa/ Thông báo không thể sửa.

- Thuật giải: (Mã giả) IF tìm thấy THEN

Hiển thị thông tin tìm được lên màn hình Sửa trong TABLE DOCGIA

IF sửa được THEN

Thông báo đã sửa và

Hiển thị TABLE DOCGIA mới lên màn hình với mẫu tin đã được sửa

ELSE (adsbygoogle = window.adsbygoogle || []).push({});

Báo lỗi không thể sửa được. END IF

ELSE

Thông báo không tồn tại mẫu tin END IF

2.4. Màn hình lập thẻ thư viện cho độc giả

Thực hiện các chức năng lưu, xóa thẻ thư viện của độc giả :

+ Chọn độc giả cần lập thẻ trong combobox : nếu độc giả chưa có thẻ thư viện thì button Lưu-F2 sẽ hiện ra cho lưu, nếu độc giả đã có thẻ thư viên rồi thì nút Lưu-F2 sẽ không hiện ra mà chỉ có button Xóa-F4 hiển thị

+Chọn những yêu cầu cần thiết nhấn Lưu hoặc Xóa để thực hiện +Chọn Trở ra để quay về màn hình chính

2.5. Màn hình Mượn – Trả Sách

Thực hiện các chức năng mượn trả sách của độc giả : + Chọn Tab Mượn hoặc Trả sách theo yêu cầu

*Mượn sách : ( chưa thực hiện hoàn chỉnh )

+ Chọn độc giả cần mượn sách trong combobox : nếu độc giả chưa có thẻ thư viện thì button Lập thẻ sẽ hiện ra cho lập thẻ

+Chọn những Quyển sách độc giả muốn mượn : double_click lên sách muốn mượn hoặc chọn sách rồi nhấn vào button “>>” để chọn, làm ngược lại để bỏ.

+ Kiểm tra số sách độc giả đang giữ ( nếu có), thời hạn trả sách để độc giả biết. +Nhấp nút chấp nhận khi muốn mượn sách

+Chọn Trở ra để quay về màn hình chính *Trả sách : (tương tự như Mượn sách)

2.6. Màn hình thay đổi quy định

Khi có nhu cầu thay đổi các quy đinh của quản lý thì người dùng mở form này lên thực hiện.

+ Cho phép thay đổi, xóa, tra cứu các tham số

2.7. Màn hình thêm người dùng

Khi có nhu cầu thêm người dùng, quản lý chạy form này để thêm

2.8. Màn hình danh sách người dùng

Hiển thị những người đang có quyền trong phần mềm này, người quản lý có thể thay đổi, xóa , cập nhật những người dùng.

III. THỬ NGHIỆM VÀ KIỂM TRA

Các số liệu thử nghiệm và kiểm tra

Sách

ThamSoNguyen

TaiKhoan

PHỤ LỤC

CODE MỘT SỐ MODULE CHÍNH CỦA CHƯƠNG TRÌNH

* Form main:

'Option Explicit (adsbygoogle = window.adsbygoogle || []).push({});

Public taikhoan As String Public quyen As String

Dim PreWith As Long, PreHeight As Long Private Sub CmdIcon_Click()

If ListFunct.View = lvwIcon Then ListFunct.View = lvwList

Else

ListFunct.View = lvwIcon End If

End Sub

Private Sub CmdMenu_Click(Index As Integer) On Error GoTo exitt

Dim i As Integer For i = 0 To 5 CmdMenu(i).BackColor = &HC0FFC0 Next CmdMenu(Index).BackColor = &H80000018 ListFunct.ListItems.Clear ListFunct.Icons = ImageList1(Index) ListFunct.SmallIcons = ImageList1(Index) For i = 1 To ImageList1(Index).ListImages.Count

If ImageList1(Index).ListImages.Item(i).Tag <> "un" Then Set mItem = ListFunct.ListItems.Add(key:=ImageList1(Index).ListImages.Item(i).key, Text:=ImageList1(Index).ListImages.Item(i).key, Icon:=ImageList1(Index).ListImages.Item(i).key, SmallIcon:=ImageList1(Index).ListImages.Item(i).key) End If Next i exitt: End Sub

Private Sub Command7_Click() frmSplashscr.Show 1

End Sub

Private Sub Command9_Click()

If MsgBox("Bạn có chắc chắn thoát không ?", vbYesNo, "Thông Báo") = vbYes Then

End If End Sub

Private Sub Form_Load() ''On Error GoTo nextx 'Dim rs As Recordset 'Set rs = New Recordset

'rs.Open "select * from sec_user where isadmin=1 and usergroupid=" + curuser.EmployeeID, cn, 1, 3

'If rs.RecordCount = 0 Then 'CmdMenu(5).Visible = False 'End If frmDangnhap.Show vbModal, Me Text1.Text = taikhoan Text2.Text = quyen Connect_To_DataBase PreWith = Me.Width PreHeight = Me.Height CmdMenu_Click (0) nextx: End Sub

Private Sub Form_Unload(Cancel As Integer) ' deletePWD

End End Sub

Private Sub ListFunct_DblClick() Dim rs As Recordset

Set rs = New Recordset 'Tro giup

If CmdMenu(2).BackColor = &H80000018 Then Select Case ListFunct.SelectedItem.Index

Case 1

frmSplashscr.Show 1 Case 2

MsgBox ("Chức năng này chưa được cài đặt") End Select

Exit Sub End If ' Tra cuu

If CmdMenu(1).BackColor = &H80000018 Then Select Case ListFunct.SelectedItem.key

Case "Tra cứu sách" FrmDMSach.Show 1 Case "Tra cứu độc giả"

FrmDSDG.Show 1

Case "Tra cứu thẻ thư viện" (adsbygoogle = window.adsbygoogle || []).push({});

MsgBox ("Chức năng này chưa được cài đặt") End Select

Exit Sub End If 'danh muc

If CmdMenu(0).BackColor = &H80000018 Then Select Case ListFunct.SelectedItem.key

Case "Danh sách độc giả" FrmDSDG.Show 1

Case "Ca làm việc"

MsgBox ("Chức năng này chưa được cài đặt") Case "Danh mục thẻ thư viện"

MsgBox ("Chức năng này chưa được cài đặt ") Case "Danh mục sách " FrmDMSach.Show 1 End Select Exit Sub End If ' Hệ thống

If CmdMenu(5).BackColor = &H80000018 Then Select Case ListFunct.SelectedItem.key

Case "Cấu hình chương trình"

MsgBox ("Chức năng này chưa được cài đặt ") Case "Cấp quyền"

frmPhanQuyen.Show 1 Case "Thay đổi quy định" frmTDQD.Show 1

Case "Người sử dụng" frmNewUser.Show 1 Case "Nhóm sử dụng" frmUser.Show 1

Case "Bỏ kết nối cơ sở dữ liệu" mnudisconnect_Click

Case "Kết nối cơ sở dữ liệu" mnuconnect_Click

End Select Exit Sub End If ' xu ly

If CmdMenu(3).BackColor = &H80000018 Then Select Case ListFunct.SelectedItem.key

Case "Thẻ độc giả" frmLapthe.Show 1 Case "Mượn trả sách" frmMuonTraSach.Show 1 End Select Exit Sub End If End Sub

Private Sub ListFunct_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then

ListFunct_DblClick End If

End Sub

Private Sub mnubackup_Click() Dim rs As Recordset

End Sub

Private Sub mnuconnect_Click() If cn.State <> adStateOpen Then 'frmODBCLogon.Show 1 Frame2.Enabled = True ListFunct.Enabled = True Dim rs As Recordset Set rs = New Recordset 'Connect_To_DataBase

'rs.Open "select * from sec_user where isadmin=1 and usergroupid=" + curuser.EmployeeID, cn, 1, 3

'If rs.RecordCount = 0 Then ' CmdMenu(5).Visible = False 'Else CmdMenu(5).Visible = True 'End If Else Exit Sub End If End Sub

Private Sub mnuDangnhap_Click() frmDangnhap.Show 1

Text1.Text = taikhoan Text2.Text = quyen End Sub

Private Sub mnuDG_Click() FrmDSDG.Show 1

Private Sub mnudisconnect_Click() Dim Msg As String

If cn.State = adStateOpen Then Msg = "Không kết nối vào CSDL" (adsbygoogle = window.adsbygoogle || []).push({});

response = MsgBox(Msg, vbQuestion + vbOKCancel, "Thông báo") If response = vbOK Then

cn.Close CmdMenu_Click 0 Frame2.Enabled = False 'ListFunct.Enabled = False ListFunct.Enabled = False Else 'txtQuery.SetFocus End If End If End Sub

Private Sub mnuexit_Click()

If MsgBox("Bạn có chắc chắn thoát không?", vbYesNo, "Thông báo") = vbYes Then End

End If End Sub

Private Sub mnuGT_Click() frmSplashscr.Show 1

End Sub

Private Sub mnuLTDG_Click() frmLapthe.Show 1

End Sub

Private Sub mnuMuontra_Click() frmMuonTraSach.Show 1

End Sub

Private Sub mnurestore_Click() Dim rs As Recordset

End Sub

Private Sub Form_Resize() On Error GoTo nextt Dim i, j, k As Integer If Me.Width < 10395 Then Me.Width = 10395 End If If Me.Height < 6960 Then Me.Height = 6960 End If i = Me.Width - PreWith

k = Me.Height - PreHeight Frame2.Width = Frame2.Width + i Frame3.Left = Frame3.Left + i Frame1.Height = Frame1.Height + k Frame1.Width = Frame1.Width + i ListFunct.Width = ListFunct.Width + i ListFunct.Height = ListFunct.Height + k StatusBar1.Panels(1).Width = StatusBar1.Panels(1).Width + i / 3 StatusBar1.Panels(2).Width = StatusBar1.Panels(2).Width + i / 3 StatusBar1.Panels(3).Width = StatusBar1.Panels(3).Width + i / 3 StatusBar1.Top = StatusBar1.Top + k Picture1.Left = Picture1.Left + i Picture1.Height = Picture1.Height + k CmdIcon.Left = CmdIcon.Left + i CmdIcon.Top = CmdIcon.Top + k Command8(0).Left = Command8(0).Left + i Command8(0).Top = Command8(0).Top + k Command7.Left = Command7.Left + i Command7.Top = Command7.Top + k Command9.Left = Command9.Left + i Command9.Top = Command9.Top + k 'CmdMenu(5).Left = CmdMenu(5).Left + i PreWith = Me.Width PreHeight = Me.Height nextt: End Sub

'Private Sub Connect_To_DataBase() Set cn = New ADODB.Connection

' cn.Provider = "Microsoft.Jet.OLEDB.4.0"

' cn.ConnectionString = App.Path + "\Library.mdb" ' cn.Open

'End Sub

Private Sub mnuSach_Click() FrmDMSach.Show 1

End Sub

* Form đăng nhập:

Public quyen As Integer Dim flag As Boolean

Private Sub cmdCancel_Click() End

End Sub

Private Sub cboTHUTHU_Click() If cboThuthu.Text <> "OTHER" Then

txtPassword.Visible = True txtPassword.Enabled = True txtPassword_Change txtPassword.SetFocus Else txtPassword.Visible = False Cmdok.Enabled = True Cmdok.SetFocus End If End Sub

Private Sub cmdOK_Click() Dim quyen As String

If cboThuthu.Text <> "OTHER" Then

quyen = CheckPasswd(Trim(cboThuthu.Text), Trim(txtPassword.Text)) If quyen <> "" Then (adsbygoogle = window.adsbygoogle || []).push({});

frmMain.quyen = quyen

frmMain.taikhoan = cboThuthu.Text Unload Me

Else

MsgBox "Nhập sai Password" txtPassword.SetFocus End If Else frmMain.quyen = "USER" frmMain.taikhoan = cboThuthu.Text Unload Me End If End Sub

Private Sub Form_Load() TruyVan

txtPassword.Visible = False Cmdok.Enabled = False End Sub

Private Sub TruyVan()

'Connection.ConnectDataBase

Connection.OpenData ("SELECT TENTK FROM TAIKHOAN") Do Until rs.EOF cboThuthu.AddItem rs!TenTK rs.MoveNext Loop cboThuthu.AddItem "OTHER" Connection.Closedata End Sub

Function CheckPasswd(user As String, password As String) As String 'Connection.ConnectDataBase

Connection.OpenData ("SELECT * FROM TAIKHOAN WHERE TENTK ='" & user & "'")

'Dim rs As Recordset 'Dim sql As String 'Set rs = New Recordset

'sql = "select * from THUTHU WHERE TENTHUTHU ='" & user & "'" 'rs.Source = sql

'rs.ActiveConnection = frmMain.cn 'rs.Open

If rs!Matkhau = password Then CheckPasswd = rs!GHICHU Else CheckPasswd = "" End If Exit Function End Function

Private Sub txtPassword_Change() If txtPassword.Text <> "" Then Cmdok.Enabled = True Else Cmdok.Enabled = False End If End Sub * Form danh mục sách:

Dim bsort As Boolean, tf As Boolean, stFilte As String Dim PreWith As Long, PreHeight As Long

Private Sub CmdButton_Click(Index As Integer) ''On Error GoTo exitt

'Dim rs As Recordset Dim rst As Recordset Select Case Index Case 0 txttext(0).Text = "MS" txttext(1).Text = "" txttext(2).Text = "" txttext(3).Text = "" txttext(4).Text = "" txttext(5).Text = "" txttext(7).Text = "" txttext(6).Text = "" cboTheloai.Text = "A"

DTPkr.Value = Date DTPkr.Enabled = True cboTheloai.Enabled = True cboNgonngu.Enabled = True Case 1

Connection.OpenData ("SELECT * from SACH") Do Until (rs.EOF)

If (rs!MASACH = txttext(0).Text) Then MsgBox "Mã sách đã tồn tại!" Exit Sub End If rs.MoveNext Loop Dim i As Integer For i = 0 To 5 If txttext(i).Text = "" Then

MsgBox ("Dữ liệu chưa đủ để thêm") Exit Sub End If Next i 'For i = 5 To 7 If txttext(7).Text = "" Then txttext(7).Text = 0 End If 'Next i

sql = "INSERT INTO SACH VALUES" & _

"('" & txttext(0).Text & "','" & txttext(1).Text & "','" & cboTheloai.Text & "','" & txttext(2).Text & "','" & txttext(3).Text & "','" & txttext(4).Text & "','" &

Một phần của tài liệu Xây dung hệ thống Quản lý thư viện (Trang 41)