Những mục tiêu đã đạt được trong đề tài:
ã Xây dựng cơ sở dữ liệu chi tiết, mang tính linh động cao; lưu trữ đầy đủ thông tin cần thiết giúp tổ hợp, chọn lọc dữ liệu đầy đủ, đáp ứng các nhu cầu báo cáo, tổng hợp dữ liệu của người sử dụng
ã Dữ liệu được lưu trữ, quản lý theo thời gian thực.
ã Giao diện chương trình gần gũi, cập nhật dễ dàng, thống nhất trên tất cả các chức năng; tích hợp chức năng tìm kiếm dữ liệu trên hầu hết các chức năng.
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
ã -Không chỉ dừng lại ở mức cho giám đốc công ty ,quản lý của hàng, nhân viên bán hàng quản lý hàng hoá công ty, mà ta cũng có thể dựa vào phần mềm này để đăng tải nên mạng như một cách thức để quảng bá thương hiệu của công ty.
ã -Từ phần mềm quản lý bán hàng nội thất cho công ty F.GROUP chúng ta cũng có thể mở rộng ra để dùng trong những lĩnh vực quản lý các loại hàng hoá khác.
59 trang |
Chia sẻ: aloso | Lượt xem: 1627 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Phân tích thiết kế và xây dựng phần mềm quản lý bán hàng nội thất của công ty F.GOUP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ợc trình bày trong 4 chương, bao gồm:
Chương I – Giíi thiÖu hÖ qu¶n trÞ c¬ së d÷ liÖu SQL server2000 vµ
ng«n ng÷ lËp tr×nh Visual Basic.net8
Chương II – Kh¶o s¸t vµ ph©n tÝch thiÕt kÕ hÖ thèng
Chương III – Cµi ®Æt ch¬ng tr×nh
Được thực hiện trong một thời gian ngắn, mặc dù đã cố gắng hoàn thành đề tài với tất cả sự nổ lực của bản thân nhưng chắc chắn không tránh khỏi những thiếu sót nhất định. Kính mong sự cảm thông và sự đóng góp những ý kiến vô cùng quý báu của các thầy cô, các bạn đồng nghành, nhằm tạo tiền đề thuận lợi cho việc phát triển đề tài trong tương lai.
Cuèi cïng em xin ch©n thµnh c¶m ¬n c« gi¸o Th.S §Æng Thu HiÒn cïng toµn thÓ c¸c thÇy c« trong khoa c«ng nghÖ th«ng tin trêng §¹i Häc Giao Th«ng VËn T¶i ®· tËn t×nh híng dÉn em hoµn thµnh ®Ò tµi nµy.
Xin c¶m ¬n «ng NguyÔn Trung HiÕu Gi¸m §èc c«ng ty F.GROUP ®· gióp ®ì em rÊt nhiÒu trong viÖc thu thËp vµ ph©n tÝch d÷ liÖu.
Xin c¸m ¬n c«ng ty phÇn mÒm VUA ®· gióp ®ì em trong qua tr×nh thùc hiÖn viÕt code cña ch¬ng tr×nh nµy.
SV thực hiện
TrÇn V¨n Méc
CHƯƠNG I
GIỚI THIỆU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
SQL SERVER VÀ NGÔN NGỮ
VISUAL BASIC.NET
A. Giới thiệu hệ quản trị cơ sở dữ liệu SQL Server
Tổng quan về SQL Server.
SQL Server là hệ thống quản lý cơ sở dữ liệu quan hệ client/server hay còn được gọi là Relational Database Management System (RDBMS). RDBMS là một trong những mô hình cơ sở dữ liệu thông dụng và là cách thức cơ bản để lưu trữ dữ liệu cho hầu hết các ứng dụng hiện nay.
Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS ):
Mỗi cơ sở dữ liệu quan hệ là một tập hợp dữ liệu được tổ chức trong những bảng hai chiều cã quan hệ với nhau. Mỗi bảng bao gồm c¸c cột cã tªn và c¸c hàng. Mỗi cột là một thuộc tÝnh của quan hệ, mỗi hàng là một bộ (tuple) c¸c gi¸ trị của những thuộc tÝnh của quan hệ.
Một RDBMS có nhiệm vụ:
Lưu trữ và tạo dữ liệu sẵn cã trong c¸c bảng.
Duy tr× quan hệ giữa c¸c bảng trong cơ sở dữ liệu.
Bảo đảm t¸ch hợp dữ liệu bằng c¸ch tạo c¸c qui tắc quản lý gi¸ trị dữ liệu.
Kh«i phục mọi dữ liệu trong trường hợp hệ thống cã sự cố.
Kiến tróc client / server:
Server:
Một tập hợp c¸c mục dữ liệu và đối tượng trợ gióp được tổ chức và tr×nh bày để thuận tiện phục vụ như :t×m kiếm, sắp thứ tự, kh«i phục, cập nhật và ph©n tÝch dữ liệu. CSDL bao gồm bộ nhớ dữ liệu vật lý và c¸c dịch vụ CSDL. Mọi dữ liệu đều được truy xuất qua hệ phục vụ, kh«ng bao giờ được truy xuất trực tiếp.
Client:
Một chương trình có thể tác động qua lai với người hoặc một quá trình tự động. Nó bao gồm tất cả những phần mềm có liên quan đến server, yêu cầu dữ liệu từ CSDL hoặc gửi dữ liệu đến CSDL.
M« h×nh d÷ liÖu ®a ngêi sö dông trong SQL Server:
Client Application
Serverer
Client Application
Client Application
C¸c thành phần của SQL Server 2000 gồm:
Database : Cơ sở dữ liệu của SQL Server.
Tập tin log : Tập tin lưu trữ những chuyển tác của SQL Server.
Tables : bảng dữ liệu.
Filegroups : Tập tin nhãm.
Diagrams : Sơ đồ thực thể quan hệ.
View : Khung nhìn số liệu dựa trên bảng.
Stored Procedure : Thủ tục và hàm nội.
User defined Function : hàm do người dùng tự định nghĩa.
User : Người sử dụng cơ sở dữ liệu.
Roles : C¸c quy định vai trß và chức năng trong hệ thống SQL Server.
Rules : Những quy tắc.
Defaults : C¸c gi¸ trị mặc nhiªn.
User defined data type : Kiểu dữ liệu do người dùng định nghĩa
Full text catalogs : Tập ph©n loại dữ liệu text.
Kho¸ và ràng buộc dữ liệu (Keys and Constraints)
Kh¸i niệm cơ bản về ràng buộc.
Constrains cßn gọi là ràng buộc. Nã dùng để kiểm tra khi cã sự biến đổi từ phÝa dữ liệu như thªm, xo¸, cập nhật từ bất kỳ một nguồn nào kh¸c nhau chẳng hạn do chương tr×nh C++, Visual Basic, Java, … truy cập đến cơ sở dữ liệu.
Một bảng cã thay đổi về lượng và chất của dữ liệu phải theo một qui định nhất định nào đã nhằm bảo toàn được tÝnh ràng buộc trọn vẹn đối với dữ liệu đang tồn tại trong những bảng cã quan hệ với nhau.
Mỗi khi cã hành động thay đổi dữ liệu xảy ra, qu¸ tr×nh kiểm tra c¸c ràng buộc được thực hiện như một phương thức rà so¸t tất cả c¸c điều kiện và qui luật được thiết lập khi x©y dựng cơ sở dữ liệu.
C¸c loại ràng buộc
Ở mức cao bao gồm:
Ràng buộc miền – Domain Constraints.
Ràng buộc thực thể - Entity Constraints.
Ràng buộc dữ liệu toàn vẹn.
Ở mức đặc thï
Ràng buộc khãa chÝnh - Primary Key constraints.
Ràng buộc kho¸ ngoại - Foreign Key constraints .
Ràng buộc duy nhất – Unique constraints.
Ràng buộc kiểm tra - Check constraints.
Ràng buộc mặc nhiªn - Default constraints.
Ràng buộc theo qui tắc hay qui luật – Rules.
Bảng ảo (Views)
Sử dụng view như là một đối tượng trong SQL Server. Nếu sử dụng ph¸t biểu SQL, khi truy vấn trực tuyến sẽ kh«ng cho phÐp bạn lưu trữ cấu tróc ph¸t biểu SQL như là một đối tượng của SQL Server.
Mục đÝch sử dụng view:
Hạn chế tÝnh phức tạp của dữ liệu đến với người sử dụng.
Kết nỗi dữ liệu từ nhiều bảng lại với nhau.
Sử dụng tài nguyên Server để thực hiện việc truy vấn.
Tạo ra một bảng ảo cã dữ liệu như yªu cầu.
Kết hợp một số hàm với phương thức tạo ra c¸c cột mới.
Khi cần thiết cã những c©u lệnh SQL dùng cho trong qóa tr×nh viết chương tr×nh trªn c¸c platform kh¸c như Visual Basic, Java,… bạn cã thể dùng View để tạo ra c©u lệnh SQL theo như ý m×nh, sau đã copy sang ứng dụng để sử dụng.
Thủ tục thường trú (Stored Procedure)
Stored Procedure là một đối tượng xây dựng bởi những phát biểu của SQL Server và TSQL.
Stored Procedure bao gồm hai loại là Stored Procedure do người dùng định nghĩa và Stored Procedure hệ thống. Stored Procedure được lữu trữ như một phần của cơ sở dữ liệu, cấu trúc của chúng như một văn bản. Mỗi khi muốn thực thi chúng chỉ cần goi chúng tương tự như gọi thực thi thủ tục hoặc hàm.
Bẫy lỗi (Triggers)
Trigger gồm một đoạn mµ được gắn vào bảng dữ liệu, chóng tự động thực thi cã một sự kiện xảy ra tương ứng với trigger được g¾n với sự kiện ®ã.
Một vài ứng dụng th«ng thường của trigger:
Referential Integrity.
Audit Trails.
Check.
Kiểm chứng khi xo¸ mẩu tin trong bảng.
C¸c loại trigger:
INSERT Triggers.
UDPATE Triggers.
DELETE Triggers.
Tập hợp cả ba trigger trªn.
Bảo mật trong hệ thống SQL Server
SQL Server cung cấp một hệ thống bảo mật khá cao, gồm nhiều mức, và cho phép dùng nhiều phương thức bảo mật khác nhau như bảo mật theo quyền sử dụng Windows.
SQL Server có thể phân quyền cho người dùng hoàn toàn độc lập với hệ điều hành, theo cách này thì những tài khoản được cấp quyền mới có thể thao tác trên cơ sở dữ liệu và những quyền đó cũng được giới hạn theo từng nhóm quyến.
B. Giới thiệu ngôn ngữ lập trình Visual Basic.Net
I.Giới thiệu .Net FrameWork
.Net được phát triển từ đầu năm 1998 lúc đầu có tên là Next Generation Windown Services (NGWS). Mục tiêu của Microsoft là xây dựng một Globally Distributed System, dùng XML (chứa những database tí hon) là chất keo để kết hợp chức năng của những Computer khác nhau trong cùng một tổ chức hay trên khắp thế giới.Những Computer này có thể là Desktop, Server, Notebook hay Pockets Computer, đều có thể chạy Software trên cùng một Platform duy nhất độc lập với hardwave và ngôn ngữ lập trình. Đó là .Net Framwork. Nó sẽ trở thành một phần của MS Windows và có thể port qua các platform khác và ngay cả Unix.
.Net Application được chia ra làm hai loại :
Cho Internet gọi là ASP.NET gồm có Web Forms và Web Services. Điểm khác biệt giữa ASP và ASP.NET là trong ASP.NET, phần đại diện Visual Components và code nằm riêng nhau không lộn xộn như trong ASP. Ngoài ra ASP.Net hoàn toàn là Object Oriented.Web Services giống như những Function mà ta có thể gọi dùng từ các URL trên Internet.
Cho Desktop gọi là Window Forms. Window Forms giống như form của VB6, hỗ trợ Unicode hoàn toàn, rất tiện cho chữ Việt và thật sự là Object Oriented. Web Forms có những Server Controls làm việc giống như các Controls trong Window Forms, nhất là có thể dùng code để sử lý như trong Window Forms.
ADO.Net là một loại cache database nhỏ ( gọi là disconnected database) để thay thế ADO. Thay vì Application connects vĩnh viễn đối với database mẹ qua ADO, úng dụng trong .Net làm việc với các portable database chỉ một vài bảng, sao chép từ database mẹ. Các bảng trong ADO.Net có thể được tạo quan hệ với nhau trong Master/Details Relationship.
Nằm phía sau ADO.Net là XML.
TCP\IP và HTTP là hai protocol thông dụng nhất trong .Net, chúng giúp ta có một Remote Procedure (nằm trên computer khác) dễ dàng như một Local Procedure. Kỹ thuật ấy gọi là Remoting.
Metadata là các dữ kiện cắt nghĩa cho ta biết về dữ kiện. Các .Net Application Component, gọi là Assembly, chứa rất nhiều metadata để cắt nghĩa về chính nó (Self describing).
Common Language Runtime (CLR) là Trung tâm điều khiển của .Net FrameWork, nó là hầm máy để chạy các tính năng của .Net . Trong .Net mọi ngôn ngữ lập trình đều được compiled ra Microsoft Intermediate Language (IL), giống như bycode của Java.Nhờ bắt buộc các ngôn ngữ lập trình đều phải dùng các loại datatype (Common Type System) nên CLR có thể kiểm soát mọi Interface, gọi giữa các Component và cho phép các ngôn ngữ có thể hợp tác với nhau một cách thông suốt.
.Net được xây dựng từ các Assemblies. Mỗi Assembly phải có một manifest. Có thể nó nằm trong một file hay trong một module.
Cài đặt đơn giản và an toàn (no more DLL) : chỉ cần Xcopy file, giống như thời vàng son của DOS. Lý do là .Net application chạy trên môi trường Net FrameWork, khi ta đã cài Net FrameWork vào máy rồi thì sẽ có đầy đủ các DLL cần thiết.
Dùng cho từ WindowsCE đến Desktop, đến Web (scalability).
Hỗ trợ và phối hợp mọi ng«n ngữ lập tr×nh.
II.Giới thiệu ng«n ngữ lập tr×nh Visual Basic.Net
Visual Basic.Net, còn gọi là VB7, chính là C# viết theo lối Visual Basic, do vậy Visual Basic.Net hoàn toàn hướng đối tượng.
Namespaces.
Namespaces là một cách đặt tên để giúp sắp đặt các Classes ta dùng trong program một cách thứ tự hầu dễ tìm kiếm chúng. Tất cả code trong .NET, viết bằng VB.NET, C# hay ngôn ngữ nào khác, đều được chứa trong một namespace.
Điểm này cũng áp dụng cho code trong .NET system class libraries. Chẳng hạn, các classes của WinForms đều nằm trong System.Windows.Forms namespace. Và các classes dùng cho collections như Queue, Stack, Hashtable… đều nằm trong System.Collections namespace. Tất cả code ta viết trong program của mình cũng đều nằm trong các namespaces.
Namespaces trong .NET khắc phục được mọi giới hạn trong VB6. Nhiều assemblies có thể nằm trong cùng một namespace, nghĩa là classes tuyên bố trong các components khác nhau có thể có chung một namespace. Điều này cũng áp dụng xuyên qua các ngôn ngữ, giúp cho một class viết trong VB.NET có thể nằm trong cùng một namespace với một class viết trong C#. Hơn nữa, trong một assembly có thể có nhiều namespaces, dù rằng thông thường ta chỉ dùng một namespace duy nhất cho tất cả các classes trong ấy. Một assembly trong .NET tương đương với một COM component.Tất cả code trong .NET đều nằm trong những assemblies.
Namespaces có thể được phân chia thứ bậc giống như Folders trong một File Directory. Nó sẽ giúp user sắp đặt các classes theo đúng nhóm cho trong sáng và dễ đọc.
Một số namespaces thông dụng:
Namespace
Chức năng
Classes điển hình
System.IO
Đọc/Viết files và các data streams khác
FileStream, Path, StreamReader, StreamWriter
System.Drawing
Đồ họa
Bitmap, Brush, Pen Color, Font, Graphics
System.Data
Quản lý data
DataSet, DataTable, DataRow, SQLConnection, ADOConnection
System.Collection
Tạo và quản lý các loại collections
ArrayList, BitArray, Queue, Stack, HashTable
System.Math
Tính toán
Sqrt, Cos, Log, Min
System.Diagnostics
Debug
Debug, Trace
System.XML
Làm việc với XML, Document Object Model
XMLDocument, XMLElement, XMLReader, XMLWriter
System.Security
Cho phép kiểm soát an ninh
Cryptography, Permission, Policy
Truy cập Variable/Class/Structure
Trong Visual Basic.Net ta có thể quyết định giới hạn việc truy cập một Variable, Class, Structure ... bằng cách dùng các keywords sau:
Loại truy cập
Thí dụ
Chú thích
Public
Public Class Class ForEverybody
Cho phép ở đâu cũng dùng nó được. Ta chỉ có thể dùng Public ở mức độ Module, Namespace hay File. Tức là ta không thể dùng Public trong một Sub/Function.
Protected
Protected Class ClassForMyHeirs
Cho phép các classes con, cháu được dùng. Ta chỉ có thể dùng Protected ở mức độ Class.
Friend
Friend StringForThisProject As String
Cho phép code trong cùng một Project được dùng.
Private
Private NumberForMeOnly
As Integer
Cho phép code trong cùng module, class, hay structure được dùng. Lưu ý là Dim coi như tương đương với Private, do đó ta nên dùng Private cho dễ đọc.
Arithmetic Operators.
VB.NET cho ta thêm cách viết Arithmetic Operator mới giống ngôn ngữ C
Arithmetic Operation
Trong VB6
Cách viết tắt mới
Cộng
X = X +5
X += 5
Trừ
X = X - 10
X -= 10
Nhân
X = X * 7
X *= 7
Chia
X = X / 19
X /= 19
Chia Integer
X = X \ 13
X \= 13
Lũy thừa
X = X ^ 3
X ^= 3
Ghép Strings
X = X & "more text"
X &= "more text"
CHƯƠNG II
Kh¶o s¸t vµ ph©n tÝch thiÕt kÕ hÖ thèng
a. Kh¶o s¸t hÖ thèng
I. Giíi thiÖu vÒ c«ng ty TNHH F.GROUP
C«ng ty F.GROUP lµ c«ng ty TNHH do mét nhãm gåm 5 ngêi ®øng ra thµnh lËp n¨m 1998, vµ lÊy tªn lµ F.GROUP. C«ng viÖc chñ yÕu cña c«ng ty lµ thiÕt kÕ kiÕn tróc vµ cung cÊp c¸c s¶n phÈm néi thÊt cho c¸c c¸ nh©n còng nh c¸c c«ng tr×nh.
VÒ c«ng viÖc b¸n hµng:
Víi c¸c s¶n phÈm nhËp ngo¹i cïng c¸c s¶n phÈm tù s¶n xuÊt c«ng ty cung cÊp nh÷ng s¶n phÈm cã chÊt lîng cao, mÉu m· ®Ñp, phï hîp c¸c lo¹i kiÕn tróc nhµ hiÖn ®¹i hiÖn nay. Víi mÉu m· phong phó vµ ®a d¹ng kh¸ch hµng cã thÓ lùa chän tuú thÝch cho phï hîp víi néi thÊt gia ®×nh m×nh. C«ng ty cung cÊp nh÷ng s¶n phÈm chñ yÕu nh: C¸c bé Salon c¸c lo¹i, c¸c lo¹i bµn ghÕ ¨n, c¸c lo¹i bµn trang trÝ, c¸c lo¹i ghÕ víi rÊt nhiÒu mÉu m· trang träng cã thÓ dïng trong v¨n phßng c«ng ty, nhµ ë, qu¸n bar…
II. Khảo sát hiện trạng c«ng ty F.GROUP
2.1. Kh¶o s¸t
HiÖn nay c«ng ty vÉn cha cã phÇn mÒm qu¶n lý b¸n hµng cña c«ng ty. TÊt c¶ mäi viÖc sæ s¸ch giÊy tê ®Òu do nh©n viªn kÕ to¸n lËp b»ng tay, hoÆc lµ dïng c«ng cô word, excel ®Ó qu¶n lý. §iÒu nµy ®· dÉn ®Õn rÊt nhiÒu bÊt cËp khi tiÕn hµnh c«ng viÖc:
- HÖ thèng sæ s¸ch giÊy tê cång kÒnh, rÊt khã qu¶n lý.
- Qu¶n lý c¸c lo¹i mÆt hµng cña c«ng ty rÊt khã, do sè lîng hµng ho¸ thay ®æi thêng xuyªn nªn kÕ to¸n ph¶i thêng xuyªn cËp nhËt d÷ liÖu ®Ó thay ®æi cho ®óng.
- VÊn ®Ò t×m kiÕm hµng hãa cña c«ng ty còng lµ vÊn ®Ò ®îc quan t©m rÊt nhiÒu. Mçi khi muèn tra th«ng tin vÒ mÆt hµng nµo ®ã th× nh©n viªn b¸n hµng ph¶i kh¸ vÊt v¶ víi c«ng viÖc t×m kiÕm th«ng qua sæ s¸ch cña m×nh.
- T¬ng tù nh vËy c«ng viÖc qu¶n lý kho hµng còng gÆp khã kh¨n kh«ng kÐm, c«ng viÖc xuÊt nhËp hµng tån vÉn do nh©n viªn kÕ to¸n thùc hiÖn lËp sæ s¸ch chøng tõ…..
- C«ng viÖc lËp b¸o c¸o th¸ng ®Òu do nh©n viªn kÕ to¸n thùc hiÖn. ViÖc nµy còng rÊt vÊt v¶ ®èi víi nh©n viªn kÕ to¸n do ph¶i kiÓm tra l¹i toµn bé hµng ho¸ cña c«ng ty trong thêi gian ®· qua. Do ®ã gÆp rÊt nhiÒu bÊt cËp.
2.2. Đánh giá
Hiện nay c«ng ty phải trực tiếp quản lý một số lượng hàng rất lớn, lưu lượng xuất nhập kho của mặt hàng, lượng hàng bán ra còng như tình hình mua bán hàng của c«ng ty, từ đó ph¶i cã chiến lược kinh doanh có hiệu quả.
Hiện nay tốc độ tăng trưởng ngày càng nhanh của kinh tế, xã hội, văn hoá làm cho thị trường kinh doanh cũng thay đôi theo, đòi hỏi cao hơn trong công tác quản lý kinh doanh, bán hàng của c«ng ty. Do đó để phù hợp với hoàn cảnh mới việc hiện đại hoá cũng như hiện đại hoá trong công tác quản lý kinh doanh là điều cần thiết đối với c«ng ty.
Mặt khác công tác quản lý hoạt động kinh doanh mà chủ yếu là công tác quản lý b¸n hàng là công việc phức tạp được các chủ kinh doanh quan tâm hơn. Hơn nữa công tác quản lý không chỉ quản lý về mặt hàng, số lượng,…mà phải nắm rõ tình hình thị trường, nhu cầu người tiêu dùng, thống kê số liệu về mặt hàng doanh thu để định hướng, lập kế hoạch hợp lý cho kế hoach kinh doanh. Đây là kho dữ liệu lớn, không thể lưu trữ một cách thñ c«ng như trước mà phải sử dụng máy tính lưu trữ là hiệu quả nhất và khoa học nhất. Ngoài ra việc quản lý này sẽ đáp ứng cho việc tìm kiếm thông tin một mặt hàng nhanh chóng và hiệu quả.
Với chương trình “QUẢN LÝ BÁN HÀNG” này sẽ đáp ứng được các yêu cầu của các nội dung trên và hỗ trợ cho công tác quản lý đạt hiệu quả cao. Ngoài ra chương trình được viết trên m«i trường Windows nên tận dụng được khả năng đồ hoạ, có giao diện đẹp, thân thiện với người dùng.
III. Yªu cÇu hÖ thèng
3.1. Yêu cầu của hệ thống “Quản lý bán hàng”
Việc mua bán hàng là một việc rất quen thuộc đối với mọi người, nên các yêu cầu, của hệ thống bán hàng cũng rất dễ được hình dung. Nhưng để những yêu cầu thực sự trở thành yêu cầu cho việc phân tích thiết kế một hệ bán hàng, thì nó phải rõ ràng, không trùng lặp, diễn tả được các mục đích của hệ thống.
Các yêu cầu của người sử dụng xây dựng một hệ thống quản lý bán hàng gồm:
Hệ thống phải quản lý nhân viên bán hàng, các mặt hàng.
Đối với mỗi phiên bán hàng, phải biết tính tiền, trừ bớt hàng hóa trong kho, in hóa đơn nếu cần.
Hệ thống phải cho phép cập nhật hàng hóa, cũng như thay đổi các nhân sự nhân viên.
Hệ thống cho cập nhật các tỷ giá hối đoái để có nhiều cách thức thanh toán khác nhau.
Hệ thống phải hoạch toán được lãi xuất hàng tháng.
Hệ thống phải quản lý luân chuyển hàng hóa trong kho, kiểm kê hàng hóa trong kho và cảnh báo khi hàng đó đã không còn hàng tồn trong kho hoặc hàng tồn đã vượt quá mức cho phép.
Xây dựng một hệ thống báo cáo đầy đủ và toàn diện.
Dựa trên các yêu cầu này chúng ta xây dựng bài toán như sau:
“Hệ thống phần mềm phục vụ và quản lý hoạt động kinh doanh cña c«ng ty. Hệ thống cần phải ghi nhận c¸c hoạt động nhập hàng, b¸n hàng và xử lý c¸c c«ng việc thanh to¸n với kh¸ch hµng. Ngoài ra hệ thống cÇn gióp Người quản lý theo dâi được c¸c hoạt động kinh doanh, tự động kiểm tra c¸c mặt hàng tồn đọng trong kho, c¸c mặt hàng b¸n chạy, v.v. để hỗ trợ ra quyết định trong c¸c hoạt động kinh doanh, hỗ trợ người quản lý quản lý nh©n viªn b¸n hàng. Trong c«ng ty cã c¸c thiết bị như: m¸y tÝnh, phần mềm hệ thống để chạy hệ thống sẽ được x©y dựng”.
3.2.Nhiệm vụ của Hệ thống bán hàng
Quản lý nhân viên bán hàng : Mỗi nhân viên bán hàng đều có mật khẩu khi đăng nhập chương trình, do đó ta có thể dễ dàng biết được ai đã thực hiện phiên bán hàng.
Quản lý hàng hóa gồm: Tªn chñng lo¹i hµng, Tªn lo¹i mÆt hàng, Mã hàng, Loại hàng, Mô tả hàng, Ngày sản xuất, Ngày nhập kho, Số lượng còn, Số lượng đã bán, Giá nhập, Giá bán.
Thanh toán với khách hàng bằng các phương thức: tiền mặt.
Thực hiện tự động kiểm kê các mặt hàng trong kho, theo dõi được những mặt hàng bán chạy, những mặt hàng tồn kho để có được những quyết định kịp thời trong kinh doanh.
Trên cơ sở định nghĩa bài toán, và các nhiệm vụ của hệ thống bắt đầu phân tích, các yêu cầu, các thành phần, các công cụ, chức năng cần thiết cho hệ thống.
B. Ph©n tÝch vµ thiÕt kÕ hÖ thèng
I. S¬ ®å chøc n¨ng
§Ó ®¸p øng nhu cÇu qu¶n lý b¸n hµng cña c«ng ty hÖ thèng cÇn cã c¸c chøc n¨ng nh sau:
Qu¶n lý b¸n hµng
Danh môc
B¸n hµng
DM hµng
Theo sè tiÒn
Chñng lo¹i
Danh s¸ch kh¸ch hµng
DM nhµ cung cÊp
Danh s¸ch nh©n viªn
DM kho
B¸n hµng
Tr¶ hµng b¸n
Cho nî b¸n hµng
§Æt hµng
ChÝnh s¸ch khuyÕn m¹i
Theo sè lîng
Tr¶ hµng
NhËp hµng chi tiÕt
NhËp hµng
Kh¸ch hµng
Nh©n viªn
NhËp hµng
§Æt gi¸ b¸n
II. S¬ ®å luång d÷ liÖu
S¬ ®å luång d÷ liÖu møc khung c¶nh
Qu¶n lý b¸n hµng c«ng ty F.GROUP
Gi¸m ®èc c«ng ty
Hµng hãa c«ng ty
III. S¬ ®å quan hÖ
IV. C¸c b¶ng chÝnh
4.1.1. Bảng dmChungLoai: Các chủng loại mặt hàng
MaChungLoai: Mã chủng loại mặt hµng
TenChungLoai: Tên chủng loại mặt hang
MaNhaCungCap: M· nhµ cung cÊp.
4.1.2. Bảng tblDonVi: Lưu trữ các đơn vị hàng hóa
MaDVT: Mã đơn vị tính
TenDVT: Tên đơn vị tính
4.1.3. Bảng tblLoaiKho: Các loại kho hàng hóa
MaLoai: Mã Loại kho
TenLoai: Tên loại kho
4.1.4. Bảng tblDonViThanhToan
MaDVTT: Mã đơn vị tính toán (dùng để tính đơn vị tiền tệ)
TenDVTT: Tên đơn vị tính toán
NgayDoi: Ngày quy đổi đơn vị tiền tệ
HeSo: Hệ số quy đổi
4.2. Mảng hàng hóa (Đưa ra các bảng chính)
4.2.1. Bảng dsMatHang: Lưu trữ các mặt hàng
TenHang: Tên của mặt hµng
MaMatHang: M· mÆt hµng
MaChungLoai: Mặt hàng trên thuộc chủng loại nào
4.2.2. Bảng NhapHang: Lưu trữ thông tin vÒ nhập hàng
SoHieuNhap: Số hoá đơn nhập hàng
MaNhanVien: M· nh©n viªn nhËp hµng.
NgayNhap: Ngµy nhËp hµng.
Nguoigiao: Ngêi giao hµng.
4.2.3. Bảng NhapHangChiTiet: Lưu trữ thông tin chi tiết của từng lần nhập hàng
Tương tự như b¶ng NhapHang, nhưng bảng này lưu giữ những thông tin của từng lần nhập hµng. Th«ng qua sè hiÖu ho¸ ®¬n ®Ó truy nhËp ®Õn b¶ng nµy.
MaHang: M· sè hµng nhËp.
SoLuong: Sè lîng hµng nhËp.
DonGia: §¬n gi¸ hµng nhËp.
MaKho: M· sè kho nhËp hµng vÒ.
4.2.4. Bảng tblHangTrongKho: Lưu trữ dữ liệu hàng hóa trong các kho hàng
MaHang: Mã của mặt hàng trong kho
SoLuongTon: Số lượng tồn của mặt hàng trong kho
MaKho: Mã kho chứa hµng
4 .3.1. B¶ng BanHang: Lu tr÷ th«ng tin vÒ hµng b¸n
SoHieuHoaDon: Sè ho¸ ®¬n b¸n hµng
MaNhanVien: M· nh©n viªn b¸n hµng.
ConNo: Sè tiÒn kh¸ch hµng cßn nî.
MaKhachHang: M· sè kh¸ch hµng mua hµng.
4.3.2. B¶ng ChiTietBanHang: Lu tr÷ th«ng tin chi tiÕt cña tõng ®ît b¸n hµng
T¬ng tù nh b¶ng BanHang, nhng b¶ng nµy lu gi÷ th«ng tin cña tõng ®ît b¸n hµng. Th«ng qua SoHieuHoaDon ®Ó truy nhËp ®Õn b¶ng nµy.
SoHieuHoaDon: T¬ng tù nh trong b¶ng BanHang.
MaMatHang: M· sè mÆt hµng b¸n trong ®ît.
SoLuong: Sè lîng hµng b¸n.
DonGia: §¬n gi¸ hµng b¸n lµ bao nhiªu.
4.3.3. B¶ng dsDatHang: Cho biÕt danh s¸ch kh¸ch hµng ®Æt hµng
DatHangID: Sè thø tù ®Æt hµng
SoHieuDatHang: Sè ho¸ ®¬n ®Æt hµng.
MaKhachHang: M· sè kh¸ch hµng ®Æt mua hµng.
TienDatHang: Sè tiÒn mµ kh¸ch hµng ®Æt ®Ó mua hµng.
NgayGiaoHang: Ngay kh¸ch hµng ®Æt hµng.
NgayTraHang: Ngµy kh¸ch hµng yªu cÇu tr¶ hµng ®Æt.
4.3.4. B¶ng DatHangChiTiet: Lu gi÷ th«ng tin chi tiÕt cña ®ît ®Æt hµng
§atHangChiTietID: Sè thø tù ®¬n ®Æt hµng chi tiÕt.
MaHang: M· sè hµng ®Æt.
4. 4.1. Bảng TraHang: Lưu trữ dữ liệu về trả hàng (theo ngày trả hàng)
SoHieuTra: Hoá đơn trả hµng
SoHieuNhap: Hoá đơn nhập hang
NgayTra: Ngày trả hàng
4.4.2. Bảng ChiTietTraHang: Lưu trữ dữ liệu trong từng lần trả hàng
TraHangChiTietID: Hoá đơn cho từng lần trả
MaMatHang: Mã hàng trả
SoLuongTra: Số lượng trả
4.5. Mảng quán lý kho
Bảng tblHangToiThieu: Thiết lập hàng tối thiểu ở trong kho
MaHang: Mã hàng thiết lập số lượng tối thiểu
MaKho: Mã kho hµng
SoLuong: Số lượng tối thiểu
V. THIẾT KẾ CHI TIẾT MỘT SỐ MODULE CHÍNH
5.1. Chñng lo¹i hµng
Chức năng này được dùng để nhËn biÕt chñng lo¹i c¸c mÆt hµng
- M· chñng lo¹i: Mçi chñng lo¹i cã mét m· nhÊt ®Þnh. Cho biÕt mÆt hµng ®ã thuéc chñng lo¹i g×.
- Nhµ cung cÊp: Cho biÕt hµng ®ã cña nhµ cung cÊp nµo.
H×nh ¶nhform minh ho¹:
5.2. Nhập hàng
Chức năng này cho phép nhập số hàng vào trong kho:
- Sè hiÖu nhËp : Mçi ®ît nhËp hµng sÏ cã mét sè hiÖu nhËp hµng kh¸c nhau. Dùa vµo sè hiÖu nhËp hµng nay sÏ truy nhËp ®Õn chi tiÕt nhËp hµng.
- Ngày nhËp: Cho phép người dùng nhập ngày nhập
- Ngêi giao: Cho biÕt ®ît nhËp hµng nµy la do ngêi nao giao.
H×nh ¶nh Form minh ho¹
Víi mçi ®ît nhËp ta ph¶i cã chi tiÕt nhËp hµng. Cho biÕt chi tiÕt cu thÓ tõng lo¹i mÆt hµng nhËp vÒ trong ®ît nh: Tªn mÆt hµng,sè lîng, ®¬n gi¸, tiÒn khuyÕn m·i, thµnh tiÒn.
H×nh ¶nh Form minh ho¹
- Số lượng: Nhập số lượng cho lần nhập này
- Đơn giá: Nhập đơn giá của mặt hàng
- Kho: Chọn kho để nhập hµng
- TiÒn khuyÕn m·i: Sè tiÒn ®îc khuyÕn m·i trong ®ît nhËp hµng nµy
- PhÇn tr¨m khuyÕn m·i : Sè phÇn tr¨m ®îc khuyÔn m·i
- Thành tiền: Nó sẽ tự động nhập khi nhập số lượng và đơn giá
5.3. Bán hµng
Chức năng này dùng trong việc bán hàng hóa
Sè hiÖu ho¸ ®¬n: Lu tr÷ th«ng tin chi tiÕt cña ®ît b¸n hµng.
Ngày bán: Lấy ngày hệ thống
Mã hàng: Dùa vµo m· hµng sÏ cho biÕt c¸c th«ng sè cña hµng nh: Tªn mÆt hµng,®ơn giá, Thành Tiền,Khuyến mãi, Tổng tiền hµng…sẽ tự động được đưa ra.
Tiền khách trả: Số tiền khách trả
- TiÒn khuyÕn m·i: Cho biÕt sè tiÒn kh¸ch hµng ®îc khuyÕn m·i khi chän mua hµng.
Tiền trả lại khách: Cho biÕt sè tiÒn ph¶i tr¶ l¹i kh¸ch khi kh¸ch tr¶ tiÒn.
Kh¸ch cßn nî: Cho biÕt sè tiÒn kh¸ch cßn nî khi mua hµng.
Hình ảnh form minh họa:
5.4. §Æt hµng
Cho phÐp kh¸ch hµng ®Æt hµng tríc khi mua hµng
Sè hiÖu ®Æt hµng: Mçi kh¸ch hµng ®Æt hµng cã sè hiÖu ®Æt hµng riªng
TiÒn ®Æt hµng: Cho biÕt sè tiÒn kh¸ch hµng ®Æt tríc lµ bao nhiªu
M· hµng: Th«ng qua m· hµng sÏ cho biÕt chi tiÕt cô thÓ vÒ mÆt hµng mµ kh¸ch hµng ®Æt tríc
Sè lîng: Cho biÕt sè lîng mµ kh¸ch hµng ®Æt mua lµ bao nhiªu
Ngµy ®Æt hµng: Ngµy kh¸ch hµng ®Æt hµng lµ khi nµo.
Ngµy giao hµng: Ngµy ph¶i giao hµng cho kh¸ch.
H×nh ¶nh Form minh ho¹
55. Tr¶ hµng
5.5.1 Tr¶ hµng b¸n
Cho biÕt chi tiÕt vÒ ®ît tr¶ hµng cña c«ng ty cho nhµ cung cÊp
Sè hiÖu tr¶: Mçi ®ît tr¶ hµng cã mét m· sè x¸c ®Þnh cho ®ît tr¶ hµng ®ã.
Sè hiÖu nhËp: Cho biÕt ®ît tr¶ hµng ®ã lµ hµng cña ®ît nhËp hµng nµo.
Ngµy tr¶: Cho biÕt ngµy tr¶ hµng lµ khi nµo.
Sè lîng tr¶: Cho biÕt sè lîng tr¶ hµng lµ bao nhiªu.
H×nh ¶nh Form minh ho¹
5.5.2 Tr¶ hµng b¸n
Cho biÕt chi tiÕt vÒ ®ît tr¶ hµng cña kh¸ch hµng ®èi víi c«ng ty
Sè hiÖu tr¶: Mçi ®ît tr¶ hµng cã mét m· sè x¸c ®Þnh cho ®ît tr¶ hµng ®ã.
Sè hiÖu nhËp: Cho biÕt ®ît tr¶ hµng ®ã lµ hµng cña ®ît nhËp hµng nµo.
Ngµy tr¶: Cho biÕt ngµy tr¶ hµng lµ khi nµo.
Sè lîng tr¶: Cho biÕt sè lîng tr¶ hµng lµ bao nhiªu.
Hinh ¶nh Form minh ho¹
5.6 Nî kh¸ch hµng
Lu danh s¸ch kh¸ch hµng cßn nî tiÒn cña c«ng ty. Sè tiÒn cßn nî, cña ®ît mua hµng nµo.
H×nh ¶nh Form minh ho¹
Ch¬ng III
Cµi ®Æt ch¬ng tr×nh
Môi trường cài đặt chương trình
Chương tr×nh Quản lý b¸m hµng ®· x©y dựng được viết trªn nền Visual Basic .Net kết nối cơ sở dữ liệu SQL server 2000 nªn cần chạy trên m«i trường sau:
M¸y ph¶i ®¹t chip P4 2.4 trở lªn, Ram 256MB trở lªn, Ổ cứng 40G trở lªn.
M¸y cài Windows XP hoặc Windows 2003 Server + SQL server 2000.
M¸y ph¶i ®îc cài .Net FrameWork và Crystal report 9.0 for .Net.
Giao diện chương trình
Sau đ©y là giao diện một số chức năng chÝnh của chương tr×nh:
Phô lôc
Mét sè thñ tôc hµm sö dông trong ch¬ng tr×nh
1. fgmMain
Private Sub mnuDatHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDatHang.Click
Dim frm As New DatHang
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuThoat.Click
Me.Close()
End Sub
Private Sub mnuChungLoaiMatHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuChungLoaiMatHang.Click
Dim frm As New frmChungLoaiHang
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuDmCaLamViec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDmCaLamViec.Click
Dim frm As New frmDmCaLamViec
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuDmTienTe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDmTienTe.Click
Dim frm As New frmDmTienTe
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuDmKho_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDmKho.Click
Dim frm As New frmKho
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuNhaCungCap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuNhaCungCap.Click
Dim frm As New frmNhaCungCap
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuKhachHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuKhachHang.Click
Dim frm As New frmKhachHang
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuNhanVien_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuNhanVien.Click
Dim frm As New frmNhanVien
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuNhapHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuNhapHang.Click
Dim frm As New frmNhapHang
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuTraHangNhap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTraHangNhap.Click
Dim frm As New frmTraHangNhap
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuKMHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuKMHang.Click
Dim frm As New frmKMMatHang
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuKMTien_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuKMTien.Click
Dim frm As New frmKMTien
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuBanHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBanHang.Click
Dim frm As New frmBanHang
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuTraHangBan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTraHangBan.Click
Dim frm As New frmTraHangBan
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuChoNoBanHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuChoNoBanHang.Click
Dim frm As New frmChungLoaiHang
'frm.FormBorderStyle = FormBorderStyle.None
'frm.MdiParent = Me
'ViewForm(frm)
frm.ShowDialog()
'frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuDangNhap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDangNhap.Click
Dim frm As New frmDangNhap
'frm.FormBorderStyle = FormBorderStyle.None
'frm.MdiParent = Me
'ViewForm(frm)
frm.ShowDialog()
'frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuDangXuat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDangXuat.Click
Dim frm As New frmDangXuatHT
'frm.FormBorderStyle = FormBorderStyle.None
'frm.MdiParent = Me
'ViewForm(frm)
frm.ShowDialog()
'frm.Dock = DockStyle.Fill
End Sub
Private Sub MenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDmHang.Click
Dim frm As New frmDsMatHang
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuDatGiaBan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDatGiaBan.Click
Dim frm As New DatGiaBan
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub mnuChiTietNhapHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuChiTietNhapHang.Click
Dim frm As New frmChiTietNhapHang
frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me
ViewForm(frm)
frm.Show()
frm.Dock = DockStyle.Fill
End Sub
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim frm2 As New frmAnh
frm2.FormBorderStyle = FormBorderStyle.None
frm2.MdiParent = Me
ViewForm(frm2)
frm2.Show()
frm2.Dock = DockStyle.Fill
'Goi tien ich - Word
Catch
End Try
End Sub
Private Sub mnuWork_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuWork.Click
Try
System.Diagnostics.Process.Start("winword.exe")
Catch ex As Exception
MsgBox("Không tìm th?y ?ng d?ng c?n ch?y !", MsgBoxStyle.Exclamation, "Thông báo")
End Try
End Sub
Private Sub mnuExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuExcel.Click
'Goi tien ich - Exel
Try
System.Diagnostics.Process.Start("Excel.exe")
Catch ex As Exception
MsgBox("Không tìm th?y ?ng d?ng c?n ch?y !", MsgBoxStyle.Exclamation, "Thông báo")
End Try
End Sub
Private Sub mnuAccess_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuAccess.Click
'Goi tien ich - Access
Try
System.Diagnostics.Process.Start("MSACCESS.EXE")
Catch ex As Exception
MsgBox("Không tìm th?y ?ng d?ng c?n ch?y !", MsgBoxStyle.Exclamation, "Thông báo")
End Try
End Sub
Private Sub mnuNotepad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuNotepad.Click
''Goi tien ich - NotePad
Try
System.Diagnostics.Process.Start("Notepad.exe")
Catch ex As Exception
MsgBox("Không tìm th?y ?ng d?ng c?n ch?y !", MsgBoxStyle.Exclamation, "Thông báo")
End Try
End Sub
Private Sub mnuMayTinh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuMayTinh.Click
'Goi tien ich - Calculator
Try
System.Diagnostics.Process.Start("Calc.exe")
Catch ex As Exception
MsgBox("Không tìm th?y ?ng d?ng c?n ch?y !", MsgBoxStyle.Exclamation, "Thông báo")
End Try
End Sub
End Class
NhËp hµng:
Private Sub frmNhapHang_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Load_Luoi()
Me.Lock_Text()
Me.Load_NhanVien()
End Sub
Private Sub Load_ComBo(ByVal cmbName As Janus.Windows.EditControls.UIComboBox, ByVal strsql As String)
Dim ds As New DataSet
'strSql = "select MaLoi,ThongBao from dmLoiNN"
ds = g_clscommon.AddDataset(strCnn, strsql, "Name")
Dim DataRow As DataRow
Dim i As Integer
For Each DataRow In ds.Tables("Name").Rows
i = 0
cmbName.Items.Add(DataRow.Item(1))
cmbName.Items(DataRow.Item(1)).Value = DataRow.Item(0)
i = i + 1
Next
cmbName.SelectedIndex = -1
End Sub
Private Sub Load_NhanVien()
Me.cmbNhanVien.Items.Clear()
strSql = "select Manhanvien,TenNhanVien from dsNhanVien"
Me.Load_ComBo(Me.cmbNhanVien, strSql)
End Sub
Private Sub Load_Luoi()
strSql = " select NhapHang.SoHieuNhap as 'S? hi?u nh?p', " & _
" NhapHang.MaNhanVien as 'Mã nhân viên'," & _
" dsNhanVien.TenNhanVien as 'Tên nhân viên'," & _
" NhapHang.NgayNhap as 'Ngày nh?p'," & _
" NhapHang.NguoiGiao as 'Ngu?i giao'," & _
" NhapHang.GhiChu as 'Ghi chú'" & _
" from Nhaphang " & _
" inner join dsNhanVien on dsNhanVien.MaNhanVien= Nhaphang.MaNhanVien"
ds = g_clscommon.AddDataset(strCnn, strSql, "NhaCungCap")
grdLuoi.DataSource = ds.Tables("NhaCungCap")
g_clsValid.FormatGrid(grdLuoi)
End Sub
Private Sub ClearText()
Me.txtSoHieuNhap.Text = ""
Me.cmbNhanVien.Text = ""
Me.txtNguoiGiao.Text = ""
Me.txtGhiChu.Text = ""
Me.cmbNgayNhap.Value = Now
End Sub
Private Sub UnLock_Text()
Me.txtSoHieuNhap.ReadOnly = False
Me.cmbNhanVien.ReadOnly = False
Me.txtNguoiGiao.ReadOnly = False
Me.cmbNgayNhap.ReadOnly = False
txtGhiChu.ReadOnly = False
cmdXoabo.Enabled = False
cmdTimkiem.Enabled = False
cmdThemmoi.Text = " &Ch?p nh?n"
cmdSuachua.Text = " &Hu? b?"
End Sub
Private Sub Lock_Text()
Me.txtSoHieuNhap.ReadOnly = True
Me.cmbNhanVien.ReadOnly = True
Me.txtNguoiGiao.ReadOnly = True
Me.cmbNgayNhap.ReadOnly = True
txtGhiChu.ReadOnly = True
cmdXoabo.Enabled = True
cmdTimkiem.Enabled = True
cmdThemmoi.Text = " &Thêm m?i"
cmdSuachua.Text = " &S?a ch?a"
End Sub
Private Sub cmdThemmoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdThemmoi.Click
If Trim(cmdThemmoi.Text) = "&Thêm m?i" Then
Call UnLock_Text()
Call ClearText()
AddNew = True
Me.txtSoHieuNhap.Focus()
Else
If AddNew Then
Save_Addnew()
Else
Save_Edit()
End If
End If
End Sub
Private Function CheckControlNull() As Boolean
If Me.txtSoHieuNhap.Text.Trim = "" Then
MessageBox.Show("B?n ph?i nh?p s? hi?u nh?p!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.txtSoHieuNhap.Focus()
Return True
Exit Function
End If
If Me.cmbNhanVien.SelectedIndex < 0 Then
MessageBox.Show("B?n ph?i nh?p tên nhân viên!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.cmbNhanVien.Focus()
Return True
Exit Function
End If
If Me.txtNguoiGiao.Text.Trim = "" Then
MessageBox.Show("B?n ph?i nh?p tên ngu?i giao!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.txtNguoiGiao.Focus()
Return True
Exit Function
End If
Return False
End Function
Private Sub Save_Addnew()
If CheckControlNull() Then
Exit Sub
End If
strSql = "insert into NhapHang(SoHieuNhap,NgayNhap,MaNhanVien,NguoiGiao,GhiChu) values " & _
"(N'" & Me.txtSoHieuNhap.Text.Trim & "'," & _
" '" & Format(Me.cmbNgayNhap.Value, "yyyy/MM/dd") & "'," & _
" N'" & Me.cmbNhanVien.SelectedValue & "',N'" & Me.txtNguoiGiao.Text.Trim & "'," & _
" N'" & Me.txtGhiChu.Text.Trim & "')"
Try
g_clscommon.InsertByString(strCnn, strSql)
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
' Load lu?i
Me.Load_Luoi()
Call Lock_Text()
End Sub
Private Sub Save_Edit()
If CheckControlNull() Then
Exit Sub
End If
strSql = "Update NhapHang set MaNhanVien=N'" & Me.cmbNhanVien.SelectedValue & "'," & _
" NgayNhap=N'" & Format(Me.cmbNgayNhap.Value, "yyyy/MM/dd") & "'," & _
" NguoiGiao=N'" & Me.txtNguoiGiao.Text.Trim & "'," & _
" GhiChu=N'" & Me.txtGhiChu.Text.Trim & "'" & _
" where SohieuNhap=N'" & Me.txtSoHieuNhap.Text.Trim & "'"
Try
g_clscommon.UpdateByString(strCnn, strSql)
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
Me.Load_Luoi()
Call Lock_Text()
End Sub
Private Sub btnSuachua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSuachua.Click
If Trim(cmdSuachua.Text) = "&S?a ch?a" Then
If Me.txtSoHieuNhap.Text.Trim = "" Then
MsgBox("B?n ph?i ch?n s? hi?u nh?p ", MsgBoxStyle.Exclamation, "Thông báo l?i")
Exit Sub
End If
AddNew = False
Call UnLock_Text()
Me.txtSoHieuNhap.ReadOnly = True
Me.cmbNhanVien.Focus()
Else
Call Lock_Text()
Call ClearText()
End If
End Sub
Private Sub cmdXoabo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdXoabo.Click
If Me.txtSoHieuNhap.Text.Trim = "" Then
MsgBox("B?n hãy ch?n 1 b?n ghi d? xóa.", MsgBoxStyle.Exclamation, "Thông báo")
Exit Sub
End If
If MsgBox("B?n có mu?n xóa b?n ghi này không?", MsgBoxStyle.YesNo, "Thông báo") = MsgBoxResult.Yes Then
strSql = "Delete from NhapHang where SoHieuNhap=N'" & Me.txtSoHieuNhap.Text.Trim & "'"
Try
g_clscommon.DeleteByString(strCnn, strSql)
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
'Load lu?i
Me.Load_Luoi()
ClearText()
End If
End Sub
Private Sub grdLuoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles grdLuoi.Click
Dim row As Integer
row = grdLuoi.CurrentRowIndex
If row < 0 Then Exit Sub
With grdLuoi
Me.txtSoHieuNhap.Text = .Item(row, 0)
Me.cmbNhanVien.SelectedValue = .Item(row, 1)
Me.cmbNhanVien.Text = .Item(row, 2)
Me.cmbNgayNhap.Text = .Item(row, 3)
Me.txtNguoiGiao.Text = .Item(row, 4)
Me.txtGhiChu.Text = .Item(row, 5)
End With
End Sub
Private Sub cmdThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdThoat.Click
Me.Close()
End Sub
3. §Æt gi¸ b¸n:
Private Sub DatGiaBan_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Lock_Text()
Me.Load_ChungLoai()
Me.DinhDang_date()
Me.Load_Luoi()
End Sub
Private Sub cmdThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdThoat.Click
Me.Close()
End Sub
Private Sub DinhDang_date()
Me.cmbNgayBatDau.DateFormat = Janus.Windows.CalendarCombo.DateFormat.Custom
Me.cmbNgayBatDau.CustomFormat = "dd/MM/yyyy"
Me.cmbNgayKetThuc.DateFormat = Janus.Windows.CalendarCombo.DateFormat.Custom
Me.cmbNgayKetThuc.CustomFormat = "dd/MM/yyyy"
Me.cmbNgayKetThuc.IsNullDate = True
Me.cmbNgayKetThuc.Nullable = True
End Sub
Private Sub Load_ChungLoai()
strsql = " Select dmChungLoai.MaChungLoai,TenChungLoai as [ChungLoai]" & _
" from dmChungLoai "
dsChungLoai = g_clscommon.AddDataset(strCnn, strsql, "ChungLoai")
g_clscommon.LoadListbox(lstNhaCungCap, dsChungLoai, "ChungLoai", "ChungLoai")
End Sub
Private Sub lstNhaCungCap_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstNhaCungCap.Click
Dim index As Integer
index = lstNhaCungCap.SelectedIndex()
If index < 0 Then Exit Sub
strMaChungLoai = dsChungLoai.Tables("ChungLoai").Rows(index).Item(0)
' load MaHang
strsql = " Select dsMatHang.MaMatHang,TenMatHang as [TenMatHang]" & _
" from dsMatHang " & _
" where MaChungLoai='" & strMaChungLoai & "'"
dsMatHang = g_clscommon.AddDataset(strCnn, strsql, "TenMatHang")
g_clscommon.LoadListbox(lstMatHang, dsMatHang, "TenMatHang", "TenMatHang")
End Sub
Private Sub lstMatHang_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstMatHang.Click
Dim index As Integer
index = lstMatHang.SelectedIndex()
If index < 0 Then Exit Sub
Me.txtMaHang.Text = dsMatHang.Tables("TenMatHang").Rows(index).Item(0)
End Sub
Private Sub Load_Luoi()
strsql = "select dsMatHang.MaMatHang as 'Mã m?t hàng'," & _
" dsMatHang.TenMatHang as 'Tên m?t hàng'," & _
" DatGiaBan.GiaBan as 'Giá bán' ,DatGiaBan.NgayBatDau as 'Ngày b?t d?u'," & _
" DatGiaBan.NgayKetThuc as 'Ngày k?t thúc',DatGiaBan.GhiChu as 'Ghi chú'," & _
" DatGiaBan.GiaBanID " & _
" from DatGiaBan " & _
" inner join DsMathang on dsMatHang.MaMatHang=DatGiaBan.MaMatHang"
ds = g_clscommon.AddDataset(strCnn, strsql, "NhapHangChiTiet")
grdLuoi.DataSource = ds.Tables("NhapHangChiTiet")
g_clsValid.FormatGrid(grdLuoi)
End Sub
Private Sub ClearText()
Me.txtMaHang.Text = ""
Me.txtGiaBan.Text = ""
Me.cmbNgayKetThuc.IsNullDate = True
Me.txtGhiChu.Text = ""
End Sub
Private Sub UnLock_Text()
Me.lstMatHang.Enabled = True
Me.lstNhaCungCap.Enabled = True
Me.txtMaHang.ReadOnly = True
Me.txtGiaBan.ReadOnly = False
Me.cmbNgayBatDau.ReadOnly = False
Me.cmbNgayKetThuc.ReadOnly = False
txtGhiChu.ReadOnly = False
cmdXoabo.Enabled = False
cmdTimkiem.Enabled = False
cmdThemmoi.Text = " &Ch?p nh?n"
cmdSuachua.Text = " &Hu? b?"
End Sub
Private Sub Lock_Text()
Me.lstMatHang.Enabled = False
Me.lstNhaCungCap.Enabled = False
Me.txtMaHang.ReadOnly = True
Me.txtGiaBan.ReadOnly = True
Me.cmbNgayBatDau.ReadOnly = True
Me.cmbNgayKetThuc.ReadOnly = True
txtGhiChu.ReadOnly = True
cmdXoabo.Enabled = True
cmdTimkiem.Enabled = True
cmdThemmoi.Text = " &Thêm m?i"
cmdSuachua.Text = " &S?a ch?a"
End Sub
Private Sub cmdThemmoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdThemmoi.Click
If Trim(cmdThemmoi.Text) = "&Thêm m?i" Then
Call UnLock_Text()
Call ClearText()
AddNew = True
Me.txtGiaBan.Focus()
Else
If AddNew Then
Save_Addnew()
Else
Save_Edit()
End If
End If
End Sub
Private Function CheckControlNull() As Boolean
If Me.txtMaHang.Text.Trim = "" Then
MessageBox.Show("B?n ph?i nh?p mã hàng!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.txtMaHang.Focus()
Return True
Exit Function
End If
If Me.txtGiaBan.Text.Trim = "" Then
MessageBox.Show("B?n ph?i nh?p don giá!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.txtGiaBan.Focus()
Return True
Exit Function
End If
If Me.cmbNgayKetThuc.IsNullDate = False Then
If Me.cmbNgayBatDau.Value > Me.cmbNgayKetThuc.Value Then
MessageBox.Show("B?n ph?i nh?p ngày b?t d?u tru?c ngày k?t thúc!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.cmbNgayBatDau.Focus()
Return True
Exit Function
End If
End If
Return False
End Function
Private Sub Save_Addnew()
If CheckControlNull() Then
Exit Sub
End If
strsql = "insert into DatGiaBan (MaMatHang,GiaBan," & _
" NgayBatDau,NgayKetThuc,GhiChu) values " & _
" (N'" & Me.txtMaHang.Text.Trim & "'," & Me.txtGiaBan.Value & "," & _
" '" & Format(Me.cmbNgayBatDau.Value, "yyyy/MM/dd") & "',"
If Me.cmbNgayKetThuc.IsNullDate = True Then
strsql = strsql & " null,"
Else
strsql = strsql & " '" & Format(Me.cmbNgayKetThuc.Value, "yyyy/MM/dd") & "',"
End If
strsql = strsql & "N'" & Me.txtGhiChu.Text.Trim & "')"
Try
g_clscommon.InsertByString(strCnn, strsql)
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
' Load lu?i
Me.Load_Luoi()
Call Lock_Text()
End Sub
Private Sub Save_Edit()
If CheckControlNull() Then
Exit Sub
End If
strsql = "Update DatGiaBan set GiaBan=" & Me.txtGiaBan.Value & "," & _
" NgayBatDau='" & Format(Me.cmbNgayBatDau.Value, "yyyy/MM/dd") & "',"
If Me.cmbNgayKetThuc.IsNullDate = True Then
strsql = strsql & "NgayKetThuc=null,"
Else
strsql = strsql & "NgayKetThuc='" & Format(Me.cmbNgayKetThuc.Value, "yyyy/MM/dd") & "',"
End If
strsql = strsql & " GhiChu=N'" & Me.txtGhiChu.Text.Trim & "'" & _
" where GiaBanID=" & GiaBanID & ""
Try
g_clscommon.UpdateByString(strCnn, strsql)
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
Me.Load_Luoi()
Call Lock_Text()
End Sub
Private Sub btnSuachua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSuachua.Click
If Trim(cmdSuachua.Text) = "&S?a ch?a" Then
If Me.txtMaHang.Text.Trim = "" Then
MsgBox("B?n ph?i ch?n m?t hàng c?n s?a !", MsgBoxStyle.Exclamation, "Thông báo l?i")
Exit Sub
End If
AddNew = False
Call UnLock_Text()
Me.txtMaHang.ReadOnly = True
Me.txtGiaBan.Focus()
Else
Call Lock_Text()
Call ClearText()
End If
End Sub
Private Sub cmdXoabo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdXoabo.Click
If Me.txtMaHang.Text.Trim = "" Then
MsgBox("B?n hãy ch?n 1 b?n ghi d? xóa.", MsgBoxStyle.Exclamation, "Thông báo")
Exit Sub
End If
If MsgBox("B?n có mu?n xóa b?n ghi này không?", MsgBoxStyle.YesNo, "Thông báo") = MsgBoxResult.Yes Then
strsql = "Delete from DatGiaBan where GiaBanID=" & GiaBanID & ""
Try
g_clscommon.DeleteByString(strCnn, strsql)
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
'Load lu?i
Me.Load_Luoi()
ClearText()
End If
End Sub
Private Sub grdLuoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles grdLuoi.Click
Dim row As Integer
row = grdLuoi.CurrentRowIndex
If row < 0 Then Exit Sub
With grdLuoi
If Me.grdLuoi.Item(row, 4).value Is DBNull.Value Then
Me.cmbNgayKetThuc.ResetValue()
cmbNgayKetThuc.IsNullDate = True
Else
Me.cmbNgayKetThuc.Value = .Item(row, 4)
End If
Me.txtMaHang.Text = .Item(row, 0)
Me.txtGiaBan.Value = .Item(row, 2)
Me.cmbNgayBatDau.Value = .Item(row, 3)
GiaBanID = .Item(row, 6)
Me.txtGhiChu.Text = .Item(row, 5)
End With
End Sub.
KẾT LUẬN
Nh÷ng môc tiªu ®· ®¹t ®îc trong ®Ò tµi:
X©y dựng cơ sở dữ liệu chi tiết, mang tÝnh linh động cao; lưu trữ đầy đủ th«ng tin cần thiết gióp tổ hợp, chọn lọc dữ liệu đầy đủ, đ¸p ứng c¸c nhu cầu b¸o c¸o, tổng hợp dữ liệu của người sử dụng
Dữ liệu được lưu trữ, quản lý theo thời gian thực.
Giao diện chương tr×nh gần gũi, cập nhật dễ dàng, thống nhất trªn tất cả c¸c chức năng; tÝch hợp chức năng t×m kiếm dữ liệu trªn hầu hết c¸c chức năng.
HƯỚNG PHÁT TRIỂN CỦA ®Ò tµi
-Kh«ng chØ dõng l¹i ë møc cho gi¸m ®èc c«ng ty ,qu¶n lý cña hµng, nh©n viªn b¸n hµng qu¶n lý hµng ho¸ c«ng ty, mµ ta còng cã thÓ dùa vµo phÇn mÒm nµy ®Ó ®¨ng t¶i nªn m¹ng nh mét c¸ch thøc ®Ó qu¶ng b¸ th¬ng hiÖu cña c«ng ty.
-Tõ phÇn mÒm qu¶n lý b¸n hµng néi thÊt cho c«ng ty F.GROUP chóng ta còng cã thÓ më réng ra ®Ó dïng trong nh÷ng lÜnh vùc qu¶n lý c¸c lo¹i hµng ho¸ kh¸c.
Môc lôc
Lêi nãi ®Çu 1
Ch¬ngI :Giíi thiÖu hÖ qu¶n trÞ c¬ së d÷ liÖu SQL Server 2000 vµ
ng«n ng÷ lËp tr×nh Visual Basic.net 3
A. Giíi thiÖu hÖ qu¶n trÞ c¬ së d÷ liÖu SQL Server2000 3
I. Tæng quan vÒ SQL Server 3
1. HÖ qu¶n trÞ c¬ së d÷ liÖu quan hÖ 3
2. KiÕn tróc client/server 3
3. C¸c thµnh phÇn SQL Server2000 4
II.Kho¸ vµ rµng buéc d÷ liÖu 5
1. Kh¸i niÖm rµng buéc 5
2. C¸c lo¹i rµng buéc 5
III. B¶ng ¶o 6
IV. Thñ tôc thêng tró 6
V. BÉy lçi 6
Vi. B¶o mËt trong hÖ thèng SQL Server 7
B. Giíi thiÖu nh÷ng lËp tr×nh Visual Basic.net 7
I. Giíi thiÖu Net Frame Work 7
II. Giíi thiÖu ng«n ng÷ lËp tr×nh Visual Basic.net 9
Ch¬ng II: Kh¶o s¸t vµ ph©n tÝch thiÕt kÕ hÖ thèng 12
A. Kh¶o s¸t hÖ thèng 12
I. Giíi thiÖu vÒ c«ng ty F.Grovp 12
II. Kh¶o s¸t hiÖn tr¹ng c«ng ty F.Grovp 12
2.1. Kh¶o s¸t 12
2.2. §¸nh gi¸ 13
III. Yªu cÇu hÖ thèng 14
3.1. Yªu cÇu cña hÖ thèng b¸n hµng 14
3.2. NhiÖm vô cña hÖ thèng b¸n hµng 15
B. Ph©n tÝch vµ thiÕt kÕ hÖ thèng 16
I. S¬ ®å chøc n¨ng 16
II. S¬ ®å luång d÷ liÖu 16
III. S¬ ®å quan hÖ 19
IV. C¸c b¶ng chÝnh 20
V. ThiÕt kÕ mét sè modun chÝnh 26
Ch¬ng III: Cµi ®Æt ch¬ng tr×nh 33
I. M«i trêng cµi ®Æt 33
II. Giao diÖn ch¬ng tr×nh 34
Phô lôc 35
KÕt luËn 55
TÀI LIỆU THAM KHẢO
LËp tr×nh øng dông chuyªn nghiÖp SQL server 2000
T¸c gi¶: Ph¹m H÷u Khang- NXB Gi¸o dôc
Kỹ thuật lập tr×nh ứng dụng chuyªn nghiệp Visual Basic .NET
T¸c giả: Phạm Hữu Khang, Phương Lan, Hoàng Đức Hải.
Nhập môn CSDL quan hệ : Lª Tiến Vương- NXB Thống kª.
Ph©n tÝch và thiết kế hệ thống th«ng tin - Nguyễn Văn Ba- NXB Khoa học kỹ thuật.
Các file đính kèm theo tài liệu này:
- 24837.doc