Xõy dựng chương trỡnh

Một phần của tài liệu Tài liệu Luận văn tốt nghiệp "Báo cáo quản lý kho hàng" docx (Trang 52 - 101)

1. Danh mục khỏch hàng

1.1. Chức năng

Phần này cho phộp quản lý tất cả cỏc khỏch hàng cú quan hệ xuất nhập hàng hoỏ, vật tư đối với cụng ty. Nhõn viờn sử dụng chương trỡnh nếu được quyền truy nhập vào chức năng này của chương trỡnh sẽ đựợc phộp thờm những khỏch hàng mới vào trong danh mục, sửa đổi thụng tin về những khỏch hàng dó cú sẵn trong danh mục khỏch hàng.

Do yờu cầu của cụng tỏc quản lý kho hàng, trong danh mục khỏch hàng chỉ lưu giữ những thụng tin tối thiểu về mỗi khỏch hàng, đú là tờn khỏch hàng, địa chỉ và số điện thoại của khỏch hàng.

Tất cả những khỏch hàng cú tham gia vào một quy trỡnh nghiệp vụ xuất hay nhập kho thỡ đều phải đưọc lưu giữ trong danh mục khỏch hàng. Khi xoỏ tờn một khỏch hàng trong danh mục khỏch, tất cả những phiếu nhập xuất cú tờn khỏch hàng đú sẽ được chương trỡnh tự động huỷ bỏ.

Khi nhập một khỏch hàng mới cần phải nhập mó khỏch hàng. Mó này là duy nhất cho mỗi khỏch hàng nờn chương trỡnh phải kiểm tra sự trựng nhau giữa mó nhập vào và mó của những khỏch hàng đó cú trong danh mục.

2. Danh mục vật tư

2.1. Chức năng

Phần này cho phộp quản lý tất cả cỏc vật tư, hàng hoỏ cú trong mỗi kho của cụng ty. Nhõn viờn sử dụng chương trỡnh nếu được quyền truy nhập vào chức năng này của chương trỡnh sẽ đựợc phộp thờm những tờn hàng hoỏ, vật tư mới vào trong danh mục, sửa đổi thụng tin về những vật tư, hàng hoỏ đó cú sẵn trong danh mục vật tư.

Do yờu cầu của cụng tỏc quản lý kho hàng, trong danh mục vật tư chỉ lưu giữ những thụng tin về hàng hoỏ, vật tư sau: tờn vật tư, đơn vị tớnh, số lượng tối đa và số lượng tối thiểu vật tư đú được phộp lưu giữ trong một kho hàng theo quy định của cụng ty. Những thụng tin về từng loại vật tư được lưu giữ trong bảng DmVt trong file “Hethong.mdb”.

Tất cả những vật tư, hàng hoỏ xuất hiện trong một hoỏ đơn xuất hay nhập kho đều phải đưọc lưu giữ trong danh mục vật tư. Khi xoỏ tờn một vật tư, tất cả những phiếu nhập, xuất cú tờn vật tư đú sẽ được chương trỡnh tự động huỷ bỏ.

2.2. Giao diện Form danh mục võt tư (xem ở trang sau)

Khi nhập một vật tư mới cần phải nhập mó vật tư. Mó này là duy nhất cho mỗi vật tư nờn chương trỡnh phải kiểm tra sự trựng nhau giữa mó nhập vào và mó của những vật tư đó cú trong danh mục.

3. Màn hỡnh phiếu Nhập kho

3.1. Chức năng

Phần này cho phộp lưu giữ những phiếu nhập kho đối với tất cả cỏc cỏc kho của cụng ty. Nhõn viờn sử dụng chương trỡnh khi vào màn hỡnh nhập liệu, lựa chọn phiếu nhập kho sẽ được phộp nhập thờm những phiếu nhập kho mới, xem lại những phiếu nhập kho đó nhập trước đú, xoỏ đi những phiếu nhập kho khụng cũn cần phải lưu giữ. Để tạo điều kiện thuận lợi, nhanh chúng cho người sử dụng, trờn màn hỡnh nhập phiếu nhập cú chức năng tỡm kiếm phiếu nhập theo một số điều kiện cho trước như ngày nhập phiếu, mó phiếu...

Để tạo điều kiện thuận lợi, dễ dàng trong cụng việc, tạo cảm giỏc thõn thiện đối với người sử dụng, màn hỡnh nhập liệu Phiếu nhập kho được thiết kế gần giống với mẫu phiếu nhập kho theo quy định của bộ tài chớnh.

Thụng tin về Phiếu nhập kho được lưu giữ trong hai bảng PhiờuNh và CtNh trong file “Hethong.mdb”. Tuy nhiờn, để cú được thụng tin đầy đủ về một phiếu nhập kho, chương trỡnh cần phải truy nhập vào cỏc bảng DmVt, DmKh và DmKho. Quan hệ giữa cỏc bảng được mụ tả trong phần trước.

3.2. Giao diện Form Phiếu nhập kho

Khi nhập một phiếu nhập kho mới trước hết phải nhập mó chứng từ. Mó chứng từ là yếu tố giỳp phõn biệt giữa những Phiếu nhập kho với nhau, vỡ vậy khụng được phộp cú sự trựng nhau về mó chứng từ. Mỏy sẽ tự động kiểm tra, so sỏnh với những mó chứng từ đang lưu giữ, nếu cú sự trựng lặp mó chứng từ thỡ sẽ thụng bỏo và yờu cầu nhập lại mó chứng từ.

Đối với tờn kho nhận hàng, tờn khỏch giao hàng và vật tư, hàng hoỏ thỡ cần nhập mó số. Sau khi nhập mó số mỏy sẽ kiểm tra xem cú mó đú trong danh mục tương ứng hay khụng. Nếu cú mó đú thỡ sẽ cho hiện tờn tương ứng, ngược lại nếu khụng tồn tại mó đú trong danh mục thỡ cho hiện danh mục với đầy đủ mó số và tờn cho người nhập lựa chọn.

Với việc nhập vật tư hàng húa, sau khi nhập xong một dũng mỏy sẽ tự động tớnh tổng giỏ trị khối lượng hàng đó nhập và tớnh lại lượng thuế giỏ trị gia tăng tương ứng.

Với cụng việc tỡm kiếm những Phiếu nhập kho đó nhập trước đú, ta cú thể dựng nỳt tua để tua lần lượt qua từng phiếu đến phiếu cần tỡm hoặc nhấn nỳt tỡm cho hiện Form tỡm kiếm. Khi đó tỡm được phiếu mỏy sẽ tự động hiển thị phiếu tỡm được trờn màn hỡnh.

Khi lưu lại phiếu nhập kho chương trỡnh sẽ ghi lại phần đầu phiếu vào bảng PhieuNh và ghi lại từng dũng trong phần bảng của phiếu cựng mó phiếu vào bảng CtNh. Sau đú chương trỡnh sẽ thực hiện cụng việc tớnh lại hàng tồn kho.

Dưới đõy là màn hỡnh tỡm kiếm:

- Để phục vụ cho cụng tỏc quản lý kho hàng, đỏp ứng yờu cầu nghiệp vụ quản lý kho, chương trỡnh cho phộp in ra những Phiếu nhập kho, Phiếu xuất kho và phiếu lưu chuyển nội bộ đang được lưu trữ trong mỏy.

- Để phục vụ cho cụng tỏc bỏo cỏo định kỳ về tỡnh hỡnh hàng hoỏ vật tư được lưu giữ trong kho, chương trỡnh cho phộp in ra những bảng bỏo cỏo tỡnh hỡnh xuất nhập hàng hoỏ của cỏc kho theo ngày, theo thỏng hoặc theo năm. - Chương trỡnh cũn cho phộp in ra bảng bỏo cỏo tỡnh hỡnh hàng tồn kho tại cỏc

kho của cụng ty.

- Như chỳng ta đó biết, hàng hoỏ xuất kho với khối lượng lớn là một trong những yếu tố chứng tỏ loại hàng đú đang cú nhu cầu lớn trờn thị trường. Để trợ giỳp cho việc phõn tớch kinh doanh của cụng ty, chương trỡnh cho phộp in ra bảng bỏo cỏo tỡnh hỡnh xuất kho của hàng hoỏ xuất kho theo thứ tự khối lượng xuất kho.

- Để phục vụ cho cụng tỏc tra cứu những thụng tin về một loại hàng tồn kho được nhanh chúng thuận tiện, chương trỡnh cho phộp in ra bỏo cỏo về tỡnh trạng tồn kho (bao gồm khối lượng tồn kho và địa điểm kho đang cất giữ) của một loại hàng hoỏ, vật tư theo yờu cầu của người sử dụng.

Dưới đõy là một số màn hỡnh bỏo cỏo của chương trỡnh

5. Màn hỡnh chớnh của chương trỡnh quản lý kho

Màn hỡnh chớnh của chương trỡnh quản lý kho được thiết kế với một hệ thống Menu, menu popup, cỏc Toolbar và Taskbar giỳp cho người sử dụng cú cảm giỏc thoải mỏi, thuận tiện trong khi sử dụng.

6. Sơ đồ quan hệ thực thể

Cơ sở dữ liệu của chương trỡnh như đó trỡnh bày ở trờn được xõy dựng trờn hệ quản trị cơ sở dữ liệu Access. Màn hỡnh quan hệ giữa cỏc thực thể của Access là một cụng cụ hết sức hữu ớch và tiện lợi. Qua đõy ta cú thể cú đựoc một cỏi nhỡn đầy đủ, rừ ràng về mối quan hệ giữa cỏc thực thể trong cơ sở dữ liệu với nhau.

KẾT LUẬN

Trong quản lý kinh doanh, tin học ngày càng đúng vai trũ quan trọng. Nú đang trở thành một bộ phận cấu thành của hệ thống cụng cụ quản lý kinh tế, tài chớnh, cú vai trũ tớch cực trong quản lý điều hành và kiểm soỏt cỏc hoạt động kinh tế của Nhà nước cũng như cỏc hoạt động kinh tế tài chớnh của doanh nghiệp.

Mụi trường kinh tế mới kết hợp với sự đầu tư nước ngoài ngày càng mở rộng cựng với việc tự chủ trong hạch toỏn kinh doanh buộc cỏc doanh nghiệp phải tổ chức tốt cỏc hoạt động kinh doanh của mỡnh, nắm bắt được tỡnh hỡnh kết quả kinh doanh của đơn vị để đảm bảo lợi nhuận thu được là cao nhất.

Việc sử dụng cỏc chương trỡnh tin học trong quản lý sẽ giỳp cỏc đơn vị giảm bớt được cỏc nguồn chi phớ, giỏn tiếp làm giảm giỏ thành sản phẩm, nõng cao được tớnh cạnh tranh của mỡnh trờn thị trường.

Chương trỡnh Fast Acounting được thiết kế và xõy dựng đó đỏp ứng được mong muốn đú của cỏc doanh nghiệp. Chớnh vỡ vậy Fast Acounting đó được đụng đảo những doanh nghiệp đặc biệt là những doanh nghiệp vừa và nhỏ sử dụng trong hoạt động kinh doanh.

Xõy dựng bài toỏn quản lý kho hàng trong hệ thụng tin kế toỏntuy chỉ là một phần của cả một bài toỏn kế toỏn quản lý doanh nghiệp nhưng em cũng đó cố gắng xõy dựng chương trỡnh nhằm đạt được mục đớch, đem lại những thuận lợi cho người khai thỏc, sử dụng. Việc sử dụng chương trỡnh khụng đũi hỏi người sử dụng phải cú những hiểu biết sõu về tin học hay cụng nghệ thụng

tin. Hệ thống giao diện thực đơn, cửa sổ, hộp thoại, phớm tắt của chương trỡnh mang tớnh đơn giản, tiện dụng và thõn thiện với người sử dụng.

Chương trỡnh này được thiết kế theo hướng cỏc nhà thiết kế cú thể sửa đổi thờm bớt cỏc thuộc tớnh chức năng của chương trỡnh khi cần thiết. Nú cũng được thiết kế theo hướng mở để tạo thuận lợi hơn cho người sử dụng.

Tuy nhiờn, chương trỡnh cũn tồn tại một số nhược điểm như tốc độ xử lý sẽ giảm nếu dữ liệu vào lớn, hỡnh thức bỏo cỏo in ra chưa được đẹp ...

Dẫu vậy, chương trỡnh vẫn là một sản phẩm cú một giỏ trị thực tiễn cao và thực sự đem lại nhiều tiện lợi cho người sử dụng.

PHỤ LỤC CHƯƠNG TRèNH

I. Form DMKH

Dim kt As Boolean

Private Sub Command1_Click()

If Command1.Caption = "Nhập" Then frame1.Enabled = True Command2.Enabled = True Command3.Enabled = False Command1.Caption = "Lưu" Command2.Caption = "Hoón" Text1.SetFocus Else Data1.Recordset.AddNew Data1.Recordset.Fields(0).Value = Text1.Text Data1.Recordset.Fields(1).Value = Text2.Text Data1.Recordset.Fields(2).Value = Text3.Text Data1.Recordset.Update Data1.Refresh frame1.Enabled = False Command2.Enabled = True Command3.Enabled = True Command1.Caption = "Nhập" Command2.Caption = "Xoỏ" End If End Sub

Private Sub Command2_Click()

If Command2.Caption = "Xoỏ" Then

dk = MsgBox("Bạn cú chắc chắn xoỏ khụng ?", vbYesNo + vbQuestion, "Chỳ ý")

If dk = vbYes Then

Data1.Recordset.Delete Data1.Refresh

If Data1.Recordset.BOF = False Then Data1.Recordset.MoveFirst

frame1.Enabled = True Text1.Text = "" Text2.Text = "" frame1.Enabled = False Command2.Enabled = False End If End If Else frame1.Enabled = False Command1.Caption = "Nhập" Command2.Caption = "Xoỏ" Command3.Enabled = True

If Data1.Recordset.BOF = False Then Data1.Recordset.MoveFirst Else frame1.Enabled = True Text1.Text = "" Text2.Text = "" frame1.Enabled = False Command2.Enabled = False End If End If End Sub

Private Sub Command3_Click() Unload Me

End Sub

Private Sub Data1_Reposition() On Error GoTo loi

If kt = False Then Exit Sub

If Not IsNull(Data1.Recordset.Fields(0).Value) Then Text1.Text = Data1.Recordset.Fields(0).Value Else

Text1 = "" End If

If Not IsNull(Data1.Recordset.Fields(1).Value) Then Text2.Text = Data1.Recordset.Fields(1).Value Else

Text2 = "" End If

Text3.Text = Data1.Recordset.Fields(2).Value Else Text3 = "" End If Exit Sub loi: If Err.Number = 3021 Then Exit Sub End If End Sub

Private Sub Data1_Validate(Action As Integer, Save As Integer) Select Case Action

Case vbDataActionMoveFirst kt = True Case vbDataActionMovePrevious kt = True Case vbDataActionMoveNext kt = True Case vbDataActionMoveLast kt = True Case vbDataActionAddNew kt = False Case vbDataActionUpdate kt = True Case vbDataActionDelete kt = False Case vbDataActionFind kt = False Case vbDataActionBookmark Case vbDataActionClose End Select End Sub

Private Sub Form_Load()

Data1.DatabaseName = Loctext + "Hethong.mdb" Data1.RecordSource = "dmkh"

Data1.Refresh

frame1.Enabled = False

If Data1.Recordset.BOF = True Then Command2.Enabled = False

Data1.Recordset.MoveFirst End If

End Sub

Private Sub Form_Resize() Me.Height = 3780

Me.Width = 4590

Me.Top = (Screen.Height - Me.Height) / 3 Me.Left = (Screen.Width - Me.Width) / 2 End Sub

Private Sub Text1_GotFocus() Text1.SelStart = 0

Text1.SelLength = Len(Text1.Text) End Sub

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

Text2.SetFocus End If

End Sub

Private Sub Text2_GotFocus() Text2.SelStart = 0

Text2.SelLength = Len(Text2.Text) End Sub

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

Text3.SetFocus End If

End Sub

Private Sub Text3_GotFocus() Text3.SelStart = 0

Text3.SelLength = Len(Text3.Text) End Sub

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

Command1.SetFocus End If

End Sub

Form Nhập liệu : Dim kt As Boolean Dim dk As String Dim dk1 As String Dim nut1 As Byte Dim i As Byte 'Dim DK As String

Private Sub Command1_Click()

If Command1.Caption = "Nhập" Then xoa

MaskEdBox1.Text = Date

Text1.Text = Mid(MaskEdBox1.Text, 4, 2) & "-" Text2.Text = "" Text12.Text = "" Text13.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" Text11.Text = "" Text10.Text = "" 'Text3.Enabled = True 'Text4.Enabled = True Frame1.Enabled = True Frame2.Enabled = True Frame3.Enabled = True MaskEdBox1.SetFocus nut1 = 1 Command1.Caption = "Nhập tiếp" Command2.Enabled = False Command3.Enabled = True Command4.Enabled = True Command5.Enabled = False Command6.Enabled = False Command7.Enabled = False Command8.Enabled = False i = 1 Else If Len(Text5.Text) = 0 Then

MsgBox "Mó vật tư khụng thể trống", vbInformation, "Chỳ ý" Text5.SetFocus

Exit Sub End If

If Len(Text7.Text) = 0 Then

MsgBox "Số lượng khụng thể trống", vbInformation, "Chỳ ý" Text7.SetFocus

Exit Sub End If

If Len(Text8.Text) = 0 Then

MsgBox "Đơn giỏ khụng thể trống", vbInformation, "Chỳ ý" Text8.SetFocus Exit Sub End If Data1.Recordset.AddNew Data1.Recordset.Fields(0).Value = Text1.Text Data1.Recordset.Fields(1).Value = i Data1.Recordset.Fields(2).Value = Text5.Text Data1.Recordset.Fields(3).Value = Text6.Text Data1.Recordset.Fields(4).Value = Text7.Text Data1.Recordset.Fields(5).Value = Text8.Text

Data1.Recordset.Fields(6).Value = Val(Text7.Text) * Val(Text8.Text) Data1.Recordset.Update Data1.Refresh Text5.SetFocus i = i + 1 End If End Sub

Private Sub Command2_Click()

Data5.DatabaseName = Loctext + "ht1.mdb" Data5.RecordSource = "lpnk1" Data5.Refresh Command1.Enabled = False Command2.Enabled = False Command3.Enabled = True Command4.Enabled = True Command5.Enabled = False Command6.Enabled = False Command7.Enabled = False Command8.Enabled = False Text3.Enabled = True

Text4.Enabled = True Frame1.Enabled = True Frame2.Enabled = True Text3.SetFocus nut1 = 2 End Sub

Public Sub xoa() Data1.Refresh

If Not Data1.Recordset.BOF Then Data1.Recordset.MoveFirst

Do While Not Data1.Recordset.EOF Data1.Recordset.Delete

Data1.Recordset.MoveNext Loop

End If End Sub

Public Sub chuyen() xoa

Set db = OpenDatabase(Loctext + "hethong.mdb") If nut = 1 Then

db.Execute "insert into phu select mact,stt0,mavt,tenvt,soluong,dongia,tien from query1 where mact='" & Text1.Text & "'"

Else

db.Execute "insert into phu select mact,stt0,mavt,tenvt,soluong,dongia,tien from query2 where mact='" & Text1.Text & "'"

End If db.Close Dim tt1 tt1 = 0

Set db = OpenDatabase(Loctext + "hethong.mdb") Set rs = db.OpenRecordset("phu")

rs.MoveFirst

Do While rs.EOF = False

tt1 = tt1 + rs.Fields("tien").Value rs.MoveNext

Loop rs.Close db.Close

Text10.Text = Str(tt1) Text11.Text = Str(tt1 / 10) Data1.Refresh

DBGrid1.Refresh End Sub

Private Sub Command3_Click() If Len(Text5.Text) = 0 Then

MsgBox "Mó vật tư khụng thể trống", vbInformation, "Chỳ ý" Text5.SetFocus

Exit Sub End If

If Len(Text7.Text) = 0 Then

MsgBox "Số lượng khụng thể trống", vbInformation, "Chỳ ý" Text7.SetFocus

Exit Sub End If

If Len(Text8.Text) = 0 Then

MsgBox "Đơn giỏ khụng thể trống", vbInformation, "Chỳ ý" Text8.SetFocus Exit Sub End If Data1.Recordset.AddNew Data1.Recordset.Fields(0).Value = Text1.Text Data1.Recordset.Fields(1).Value = i Data1.Recordset.Fields(2).Value = Text5.Text Data1.Recordset.Fields(3).Value = Text6.Text Data1.Recordset.Fields(4).Value = Text7.Text Data1.Recordset.Fields(5).Value = Text8.Text

Data1.Recordset.Fields(6).Value = Val(Text7.Text) * Val(Text8.Text) Data1.Recordset.Update

Data1.Refresh

If Len(Text1.Text) = 0 Then

MsgBox "Mó chứng từ khụng thể trống", vbInformation, "Thụng Bỏo" Text1.SetFocus

Exit Sub End If

If Len(MaskEdBox1.Text) = 0 Then

MsgBox "Ngày nhập phiếu khụng thể trống", vbInformation, "Thụng Bỏo" MaskEdBox1.SetFocus

Exit Sub End If

If Len(Text12.Text) = 0 Then

MsgBox "Mó kho hàng khụng thể trống", vbInformation, "Thụng Bỏo" Text12.SetFocus Exit Sub End If Data2.Recordset.AddNew Data2.Recordset.Fields(1).Value = Text1.Text Data2.Recordset.Fields(2).Value = MaskEdBox1.Text Data2.Recordset.Fields(3).Value = Text13.Text Data2.Recordset.Fields(4).Value = Text12.Text Data2.Recordset.Fields(5).Value = Text9.Text Data2.Recordset.Fields(6).Value = Text3.Text Data2.Recordset.Fields(7).Value = Text4.Text Data2.Recordset.Update Data2.Refresh If nut = 1 Then

Set db = OpenDatabase(Loctext + "hethong.mdb")

db.Execute "Insert into ctx select mact,stt0,mavt,soluong,dongia,tien from phu"

Dim rs1 As Recordset

Set rs = db.OpenRecordset("phu") rs.MoveFirst

Do While rs.EOF = False

Set rs1 = db.OpenRecordset("select * from tonkho where makho='" & Text12.Text & "' and mavt='" & rs.Fields(2).Value & "'")

rs1.Edit

rs1.Fields(2).Value = rs1.Fields(2).Value - rs.Fields(4).Value rs1.Update rs1.Close rs.MoveNext Loop rs.Close db.Close Else

Set db = OpenDatabase(Loctext + "hethong.mdb")

db.Execute "Insert into ctnh select mact,stt0,mavt,soluong,dongia,tien from phu"

Set rs = db.OpenRecordset("phu") rs.MoveFirst

Set rs1 = db.OpenRecordset("select * from tonkho where makho='" & Text1.Text & "' and mavt='" & rs.Fields(2).Value & "'")

If rs1.BOF = rs1.EOF And rs1.EOF = True Then rs1.AddNew rs1.Fields(0).Value = Text12.Text rs1.Fields(1).Value = rs.Fields(2).Value rs1.Fields(2).Value = rs.Fields(4).Value rs1.Update Else rs1.Edit

rs1.Fields(2).Value = rs1.Fields(2).Value + rs.Fields(4).Value rs1.Update End If rs1.Close rs.MoveNext Loop rs.Close db.Close End If Frame1.Enabled = False Frame2.Enabled = False Frame3.Enabled = False Command1.Enabled = True Command2.Enabled = True Command3.Enabled = False Command4.Enabled = False Command5.Enabled = True Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command1.Caption = "Nhập" Data2.Recordset.MoveLast chuyen Command1.SetFocus End Sub

Private Sub Command4_Click() xoa

Command1.Enabled = True

Một phần của tài liệu Tài liệu Luận văn tốt nghiệp "Báo cáo quản lý kho hàng" docx (Trang 52 - 101)

Tải bản đầy đủ (DOC)

(101 trang)
w