Sơ đồ mức 1-chức năng lờn bỏo cỏo

Một phần của tài liệu Cơ sở phương pháp luận của phần mềm ứng dụng.DOC (Trang 55)

Sơ đồ 3.5. Mức 1 - Chức năng lờn bỏo cỏo 3.2 Thiết kế

Từ kết quả của quỏ trỡnh phõn tớch, sau khi mụ hỡnh húa thu được cỏc sơ đồ sau. 2.2 Tớnh toỏn Cơ sở dữ liệu yờu cầu bỏo cỏo Ban giỏm đốc 2.1 Truy xuất dữ liệu 3.3 Lờn bỏo cỏo

yờu cầu dữ liệu Dữ liệu kết quả bỏo cỏo kết quả Kết quả tớnh toỏn yờu cầu tớnh toỏn NgayThanhToan

3.2.1 Sơ đồ quan hệ thực thể (ERD)

Sau khi nghiờn cứu về cỏc thực thể và mối quan hệ giữa cỏc thực thể trong hoạt động kinh doanh của cụng ty thu được sơ đồ sau:

Sơ đồ 3.6. Quan hệ thực thể Khỏch hàng Hàng húa Xuất bỏn TenNCC Dia Chi #Ma NCC DVT DonGia # MaHang TenHang Nhõn viờn MaNV Ten NV DiaChi DienThoai NgayThanhToan

3.2.2 Sơ đồ cấu trỳc dữ liệu (DSD)

Sơ đồ 3.7. Cấu trỳc dữ liệu

#Mahang DVT Mahang #SohieuHD Soluong #SoHHD NgayThanhToan MaNV MaKH #SoHHD SoPhieu TenNV #MaNV DiaChi Dongia NgayLap DienThoai TenKH

#MaKH DiaChi DienThoai Tenhang

(Hàng húa)

(Húa đơn chi tiờt)

(Khỏch hàng)

(Húa đơn bỏn hàng)

(Nhõn viờn)

(Phiếu thu khỏch hàng)

3.2.3 Thiết kế cơ sở dữ liệu:

Cơ sở dữ liệu được thiết kế bằng phương phỏp chuyển đổi từ sơ đồ quan hệ thực thể. Mụ tả chi tiết từng bảng cỏc tệp dữ liệu đầu vào.

Bảng 3.1. Danh mục hàng húa

Stt Tờn trường Kiểu Độ rộng Ghi chỳ

1 Mahang Text 10 Mó hàng

2 Tenhang Text 50 Tờn hàng

3 MaNCC Text 10 Mó NCC

4 Donvitinh Text 5 Đơn vị tớnh

5 SoLuong Number LongInteger Số Lượng 6 Dongia Number Decimal Giỏ bỏn

Bảng 3.2. Danh mục khỏch hàng

Stt Tờn trường Kiểu Độ rộng Ghi chỳ

1 MaKH Text 5 Mó KH

2 TenKH Text 45 Tờn KH

3 Diachi Text 45 Địa chỉ

4 Dienthoai Text 10 Điện thoại (adsbygoogle = window.adsbygoogle || []).push({});

Bảng 3.3. Danh mục nhõn viờn

Stt Tờn trường Kiểu Độ rộng Ghi chỳ

1 MaNV Text 7 Mó nhõn viờn

2 TeNV Text 50 Tờn nhõn viờn

3 DiaChi Text 45 Địa chỉ

4 DienThoai Text 10 Điện thoại

Bảng 3.4. Hoỏ đơn bỏn hàng

Stt Tờn trường Kiểu Độ rộng Ghi chỳ

1 SoHHD Text 7 Số hiệu hoỏ đơn

2 MaKH Text 7 Mó khỏch hàng

3 MaNV Text 7 Mó Nhõn viờn

4 Ngaylap Date-time 17 Ngày lập

Stt Tờn trường Kiểu Độ rộng Ghi chỳ

1 SoHHD Text 7 Số hiệu hoỏ đơn

2 Mahang Text 5 Mó hàng hoỏ

3 SoLuong Numberdouble Lượng bỏn

Bảng 3.6. Thanh toỏn với khỏch hàng

Stt Tờn trường Kiểu Độ rộng Ghi chỳ

1 SohieuPT Text 7 Số hiệu

phiếu thu

2 SoHHD Text 7 Mó KH

3 Ngaynhan Date-time Ngày nhận

Thụng bỏo người dựng nhập sai mật khẩu

Kiểm tra mật khẩu

Mối quan hệ giữa cỏc bảng

Sơ đồ 3.8. Mối quan hệ giữa cỏc bảng

Thụng bỏo người dựng nhập sai mật khẩu

Kiểm tra mật khẩu

Kiểm tra hoỏ (adsbygoogle = window.adsbygoogle || []).push({});

3.2.3 Thiết kế giải thuật

3.2.3.1 Thuật toỏn đăng nhập hệ thống

Sơ đồ 3.9. Thuật toỏn đăng nhập hệ thống Bắt đầu Đếm=1 Nhập tờn người dựng và mật khẩu Đếm = Đếm+1 Thụng bỏo người dựng nhập sai mật khẩu Kiểm tra mật khẩu Đếm<=3 Kết thỳc Khởi động và thực hiện chương trỡnh T F F T

Kiểm tra hoỏ

3.2.3.2 Thuật toỏn cập nhật hoỏ đơn

Kiểm tra tớnh hợp lệ của hoỏ đơn và cập nhật đờn khi nào người sử dụng muốn dừng, khụng nhập hoỏ đơn nữa thỡ thoỏt ra.

Sơ đồ 3.10. Thuật toỏn cập nhập hoỏ đơn Bắt đầu

Lưu dữ liệu hoỏ đơn

Cập nhật tiếp Kết thỳc F T T F Nhập dữ liệu của hoỏ đơn

Kiểm tra hoỏ

đơn cú hợp lệ? T Lựa chọn hỡnh thức bỏo cỏo Kiểm tra mốc thời gian?

3.2.3.3 Thuật toỏn xoỏ dữ liệu

Xoỏ bỏ những hoỏ đơn khụng hợp lệ ra khỏi CSDL.

Sơ đồ 3.11. Thuật toỏn xoỏ dữ liệu Bắt đầu Kết thỳc Chọn bản ghi cần xoỏ Cú xoỏ bản ghi hiện hành Cú xoỏ tiếp ko? Chắc chắn xoỏ? Nhấn nỳt xoỏ Hiện thụng bỏo Khụng xoỏ bản ghi hiện hành T F F T Lựa chọn hỡnh thức bỏo cỏo Kiểm tra mốc thời gian?

3.2.3.4 Thuật toỏn lập bỏo cỏo

Sơ đồ 3.12. Thuật toỏn lập bỏo cỏo Bắt đầu

Kết thỳc

Lựa chọn hỡnh thức bỏo cỏo

Nhập mốc thời gian

Tiến hành in bỏo cỏo Nhấn nỳt in bỏo cỏo

Thụng bỏo lỗi Kiểm tra mốc thời

gian? F

3.2.3.5 Thiết kế kiến trỳc hệ thống.

Sơ đồ 3.13. Thiết kế kiến trỳc hệ thống Thanh toỏn với KH Hệ thống Đăng nhập lại Danh mục Danh mục KH Danh mục HH Cập nhật Húa đơn bỏn hàng DT theo Khỏch hàng DT theoHàng bỏn DT theo Nhõn viờn Lập bỏo cỏo Kết thỳc Danh mục NV Quản lý bỏn hàng

3.3 Một số giao diện chớnh3.3.1 Form chớnh 3.3.1 Form chớnh

3.3.8 Cỏc form bỏo cỏo

3.3.81 Bỏo cỏo doanh thu theo khỏch hàng

3.3.8.3 Bỏo cỏo doanh thu theo nhõn viờn

3.4 Một số đoạn code tiờu biểu:3.4.1 Code Form bỏo cỏo: 3.4.1 Code Form bỏo cỏo:

Private Sub cmdin_Click() 'Bat dau (adsbygoogle = window.adsbygoogle || []).push({});

sql = "select ct.sohhd,ct.MaHang,TenHang,ct.SoLuong,DonGia,ngaylap from DMHangHoa as DM,HoaDonBanHang as HD,ChiTietHoaDon as ct where ct.mahang=dm.mahang and hd.sohhd=ct.sohhd and ct.mahang='" & DBCMa.Text & "'" & _

" and datediff('d',NgayLap,date()) <" & DateDiff("d", TuNgay, Date) & _

" and datediff('d',NgayLap,date()) >" & DateDiff("d", DenNgay, Date) Set myrs = mydb.OpenRecordset(sql)

If myrs.RecordCount = 0 Then

If MsgBox("Mặt hàng : " & txtten & " khụng được bỏn trong khoảng thời gian trờn. Bạn cú muốn tiếp tục nữa khụng?", vbCritical + vbQuestion + vbYesNo, "Bỏo lỗi") = vbYes Then

DBCMa.SetFocus Else

Unload Me End If

Else

'Doi dinh dang month -> day truoc khi in 'Tu ngay

Ngay = Day(TuNgay) Thang = Month(TuNgay) Nam = Year(TuNgay) If Day(TuNgay) < 10 Then

Ngay = 0 & Day(TuNgay) End If

If Month(TuNgay) < 10 Then Thang = 0 & Month(TuNgay) End If

ngay1 = Ngay & "/" & Thang & "/" & Nam 'Den ngay

Ngay = Day(DenNgay) Thang = Month(DenNgay) Nam = Year(DenNgay) If Day(DenNgay) < 10 Then Ngay = 0 & Day(DenNgay) End If

If Month(DenNgay) < 10 Then Thang = 0 & Month(DenNgay) End If

ngay2 = Ngay & "/" & Thang & "/" & Nam 'Bat dau in

rptbcdshb.ReportFileName = App.Path & "\reports\bcdshb.rpt" rptbcdshb.SetTablePrivateData 0, 3, myrs

rptbcdshb.Formulas(1) = "Tenhang='" & txtten & "'" rptbcdshb.Formulas(2) = "TuNgay='" & ngay1 & "'" rptbcdshb.Formulas(3) = "DenNgay='" & ngay2 & "'" rptbcdshb.PrintReport

End If End Sub

Private Sub cmdThoat_Click() Unload Me

End Sub

Private Sub DBCMa_Click(Area As Integer)

sql = "select tenhang from DmHanghoa where mahang='" & DBCMa.BoundText & "'"

Set myrs = mydb.OpenRecordset(sql) If Not myrs.EOF Then

txtten = myrs!TenHang End If

myrs.Close End Sub

Private Sub DenNgay_lostfocus() If IsDate(DenNgay) = False Then

If MsgBox("Ngày(thỏng) khụng hợp lệ, xin vui lũng nhập lại", vbCritical + vbQuestion + vbOKOnly, "Bỏo lỗi") = vbOK Then

DenNgay.SetFocus End If

ElseIf IsNull(DenNgay) = True Then (adsbygoogle = window.adsbygoogle || []).push({});

If MsgBox("Ngày tỡm kiếm khụng được bỏ trống, xin vui lũng nhập vào.", vbCritical + vbQuestion + vbOKOnly, "Bỏo lỗi") = vbOK Then

DenNgay.SetFocus End If

End Sub

Private Sub Form_Load()

Data1.DatabaseName = App.Path & "\data\FM.mdb" DenNgay.Enabled = False

End Sub

Private Sub TuNgay_lostfocus() If IsDate(TuNgay) = False Then

If MsgBox("Ngày(thỏng) khụng hợp lệ, xin vui lũng nhập lại.", vbCritical + vbQuestion + vbOKOnly, "Bỏo lỗi") = vbOK Then

TuNgay.SetFocus End If

ElseIf IsNull(TuNgay) = True Then

If MsgBox("Ngày tỡm kiếm khụng được bỏ trống, xin vui lũng nhập vào.", vbCritical + vbQuestion + vbOKOnly, "Bỏo lỗi") = vbOK Then

TuNgay.SetFocus End If Else DenNgay.Enabled = True DenNgay.SetFocus End If End Sub

3.4.2 Code form hàng húa

Private Sub cmdadd_Click() them = True

sua = False Data1.Recordset.AddNew cmdadd.Enabled = False cmdedit.Enabled = False cmddel.Enabled = False cmdupdate.Enabled = True txtma.Enabled = True txtten.Enabled = True txtdg.Enabled = True txtdvt.Enabled = True txtsl.Enabled = True txtma.SetFocus End Sub

Private Sub cmddel_Click()

Connection.OpenData ("ChiTietHoaDon") Do Until rs.EOF

If txtma.Text = rs!MaHang Then

MsgBox ("Bạn khụng thể xoỏ được!") Exit Sub

End If

rs.MoveNext Loop

Connection.Closedata

Xacnhan = MsgBox("Bạn cú thực sự muốn xúa khụng?", vbYesNo + vbDefaultButton2, "Xỏc nhận xoỏ!")

Data1.Recordset.Delete Data1.Recordset.MoveLast End If

End Sub

Private Sub cmdedit_Click() sua = True them = False Data1.Recordset.Edit cmdedit.Enabled = False cmdadd.Enabled = False cmddel.Enabled = False cmdupdate.Enabled = True txtma.Enabled = True txtten.Enabled = True txtdvt.Enabled = True txtdg.Enabled = True txtsl.Enabled = True txtma.SetFocus End Sub

Private Sub cmdend_Click() Unload frmDMHangHoa MDIFormmain.Show End Sub

Private Sub cmdKiemTra_Click() Dim sql As String

sql = "select * from DMHangHoa where soluong<=" & TxtGioiHan Data1.RecordSource = sql

Data1.Refresh End Sub (adsbygoogle = window.adsbygoogle || []).push({});

Private Sub cmdTim_Click()

sql = "select * from DMHangHoa where MaHang like '" & txttim & "*'" & _ " or TenHang like '" & txttim & "*'" & ""

Data1.RecordSource = sql Data1.Refresh

End Sub

Private Sub cmdupdate_Click() cmdedit.Enabled = True cmdadd.Enabled = True cmddel.Enabled = True cmdupdate.Enabled = False txtma.Enabled = False txtten.Enabled = False txtsl.Enabled = False txtdg.Enabled = False txtdvt.Enabled = False Data1.Recordset.Update Data1.Refresh End Sub

Private Sub Command1_Click() Unload Me

frmDMHangHoa.Show 1 End Sub

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

SendKeys "{TAB}" KeyAscii = 0

End If End Sub

Private Sub Form_Load()

Data1.DatabaseName = App.Path & "\data\FM.mdb" cmdupdate.Enabled = False txtma.Enabled = False txtten.Enabled = False txtdg.Enabled = False txtdvt.Enabled = False txtsl.Enabled = False End Sub

Private Sub txtma_LostFocus() Dim dem1 As Integer

If sua = True Then If txtma = "" Then

If MsgBox("Bạn chưa nhập mó hàng!", vbOKOnly + vbCritical + vbQuestion, "Xỏc nhận") = vbOK Then

txtma.SetFocus

cmdupdate.Enabled = True End If

End If

If txtma <> Data1.Recordset.Fields("MaHang") Then

sql = "select count(MaHang) as dem from DMHangHoa where MaHang='" & txtma & "'"

Set myrs = mydb.OpenRecordset(sql) myrs.MoveFirst

dem1 = myrs!dem myrs.Close

If dem1 > 0 Then

If MsgBox("Mó vừa nhập đó tồn tại, xin vui lũng nhập mó mới!", vbOKOnly + vbCritical + vbQuestion, "Chỳ ý") = vbOK Then

txtma.SetFocus cmdupdate.Enabled = True cmddel.Enabled = False cmdedit.Enabled = False cmdadd.Enabled = False End If End If End If End If

If them = True Then If txtma = "" Then

If MsgBox("Bạn chưa nhập mó hàng!", vbOKOnly + vbCritical + vbQuestion, "Xỏc nhận") = vbOK Then

txtma.SetFocus

cmdupdate.Enabled = True End If

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

sql = "select MaHang from DMHangHoa where MaHang='" & txtma & "'" Set myrs = mydb.OpenRecordset(sql)

If myrs.RecordCount > 0 Then dem1 = 1 Else dem1 = 0 End If myrs.Close If dem1 = 1 Then

If MsgBox("Mó vừa nhập đó tồn tại, xin vui lũng nhập mó mới!", vbOKOnly + vbCritical + vbQuestion, "Chỳ ý") = vbOK Then

txtma.SetFocus cmdupdate.Enabled = True cmddel.Enabled = False cmdedit.Enabled = False cmdadd.Enabled = False End If End If End If End Sub

Private Sub TxtTim_Change() If chkhienthi = 1 Then

sql = "select * from DMHangHoa where TenHang like '" & txttim & "*'" & _ " or MaHang like '" & txttim & "*'" & ""

Data1.RecordSource = sql Data1.Refresh

End If End Sub

3.4.3 Code form login

Dim dem As Integer Dim ten As String Dim mk As String

Private Sub cmdend_Click() End

End Sub

Private Sub cmdok_Click() ten = txtten.Text

mk = txtmk.Text

sql = "select * from DangNhap where Username='" & ten & "' and Password='" & mk & "'"

Set myrs = mydb.OpenRecordset(sql) If myrs.AbsolutePosition = 0 Then Unload frmlogin

MDIFormmain.Show Else

dem = dem + 1 If dem >= 3 Then

MsgBox "Bạn đã đăng nhập sai quá 3 lần. Chơng trình tự động kết thúc" End

Else

MsgBox "Tên hoặc mật khẩu không đúng.Xin vui lòng nhập lại!" txtten.SetFocus

End If myrs.Close End If End Sub

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

SendKeys "{TAB}" KeyAscii = 0

End If End Sub

Private Sub Form_Load() dem = 0

Set myrs = mydb.OpenRecordset("Ghinhomatkhau") If myrs.RecordCount > 0 Then

myrs.MoveLast

txtten = myrs!TenTruyCap txtmk = myrs!MatKhau

txtten = "" txtmk = "" End If myrs.Close End Sub (adsbygoogle = window.adsbygoogle || []).push({});

Private Sub Form_Unload(Cancel As Integer) If chklogin.Value = 1 Then

sql = "insert into Ghinhomatkhau values('" & ten & "','" & mk & "')" mydb.Execute sql

Else

sql = "delete * from Ghinhomatkhau" mydb.Execute sql

End If End Sub

Kết luận

Việc ứng dụng cụng nghệ thụng tin trong quản lý thực sự là rất cần thiết để cỏc doanh nghiệp tăng cường ưu thế cạnh tranh. Phần mềm quản lý hoạt động kinh doanh đú làm thay đổi rất nhiều hoạt động của bộ phận được sử dụng theo hướng tiện dụng hơn, xử lý cỏc nghiệp vụ nhanh chỳng hơn. Với chức năng phõn quyền người sử dụng, mỗi nhõn viờn sẽ được cấp một tài khoản đăng nhập tạo điều kiờn dễ dàng quản lý húa đơn lập theo nhõn viờn. Xõy dựng được cỏc danh mục tương ứng với cỏc thực thể xưởng sản xuất, khỏch hàng…

Em hy vọng phần mềm này cú thể giải quyết được những khú khăn và vướng mắc trong cụng tỏc quản lý bỏn hàng của cụng ty và giảm được những chi phớ phỏt sinh khụng đỏng cú, nõng cao hiệu quả nguồn nhõn lực.

Em xin gửi lời cảm ơn tới Phũng Bỏn Hàng Cụng Ty Việt Nam Stanley đó nhiệt tỡnh giỳp đỡ em trong quỏ trỡnh tỡm hiểu và thiết kế phần mềm.. Xin gửi lời cảm ơn đến Giảng Viờn Bựi Thế Ngũ, thầy đó giỳp đỡ và hướng dẫn tận tỡnh, cung cấp nhiều kinh nghiệm quý bỏu trong cụng tỏc để em cú thể hoàn thành chuyờn đề này. Tuy vậy do thời gian cú hạn và hạn chế của người thực hiện cú thể đề tài cú nhiều thiếu sút, mong được cỏc thầy gúp ý cho chuyờn đề được thực hiện thành cụng !

Tài liệu tham khảo

Giỏo trỡnh “Hệ thống thụng tin quản lý” xuất bản năm 2000 nhà xuất bản Thống Kờ của cỏc tỏc giả: T.S Trương Văn Tỳ và T.S Trần Thị Song Minh.

Bài giảng mụn Cụng Nghệ Phần Mềm của PGS.TS Hàn Viết Thuận.. Bài giảng mụn Hệ Thống Thụng Tin Quản Lý của TS Trương Văn Tỳ. Bài giảng mụn Lập Trỡnh của Th.S Trỡnh Hoài Sơn.

Một phần của tài liệu Cơ sở phương pháp luận của phần mềm ứng dụng.DOC (Trang 55)