Chương trình Quản lý Cửa hàng Thuốc Kim Anh hiện được thiết kế để có thể sẵn sàng bổ sung thêm các chức năng còn thiếu. các chức năng quản lý mới đang và sẽ xảy ra trong tương lai như:
- Chức năng quản lý Thuốc theo hệ thống mã vạch
- Chương trình sẽ được sủ dụng trên mạng để có thể bán hàng trực tuyến , và có thể giao thuốc đến tận nơi khách hàng yêu cầu
- Định hướng thương mại điện tử khi Công ty xây dựng website bán hàng qua mạng.
- Quản lý Nhân sự trong cửa hàng (như tính tiền lương, chấm công cho Nhân viên qua hhệ thống thẻ từ).
77 trang |
Chia sẻ: aloso | Lượt xem: 1685 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Chuyên đề Xây dựng chương trình quản lý cửa hàng thuốc Kim Anh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g nhanh chóng đưa ra các định hướng lập kế hoạch kinh doanh để mang lại hiệu quả kinh doanh cao hơn. Sớm hội nhập với thị trường trong nước và thế giới.
Tóm lại việc quản lý theo phương thức thủ công rất tốn kém về thời gian, nhân lực, hơn nữa độ chính xác lại không cao, tốc độ xử lý chậm do vậy không đáp ứng kịp thời các yêu cầu của lãnh đạo. Vì vậy cần phải có một hệ thống quản lý bằng máy tính là rất cần thiết để đáp ứng tốt nhất các yêu cầu nói trên.
Yêu cầu cho một hệ thống mới ứng dụng tin học trong công tác quản lý bán hàng ở cửa hàng bán thuốc là :
- Tự động hóa các thao tác, các phép tính mà từ trước đến nay phải làm bằng tay.
- Thực hiện các nghiệp vụ một cách nhanh chóng, chính xác.
- Có khả năng kiểm soát, tổng hợp đầy đủ chính xác, kịp thời phản ánh các thông tin về khách hàng, thông tin về nhà cung cấp thông tin về mặt hàng hiện có của cửa hàng
- Đưa ra nhanh chóng danh sách thông tin khách hàng, danh sách nhà cung cấp, danh sách chủng loại thuốc, danh sách nhân viên nhập hàng và bán hàng khi cần tìm kiếm theo yêu cầu.
- Có khả năng lưu trữ dữ liệu trong thời gian dài.
- Có khả năng bổ sung thêm, xóa bỏ, sửa chữa kịp thời thông tin về một khách hàng, một nhà cung cấp, một nhân viên, một mặt hàng
- Giải quyết vấn đê nhập thuốc vào kho (tránh nhầm lẫn).
- Giải quyết tài chính và nguồn hàng với các nhà cung cấp.
- Giải quyết số thuốc quá hạn hoặc không đủ chất lượng.
- Giải quyết việc bán hàng.
- Giúp người bán hàng không bị nhầm lẫn trong việc chuẩn đoán một số bệnh thông thường với đơn thuốc có sẵn.
- Giúp giải quyết việc lập báo cáo tài chính theo ngày, tháng, quý, năm.
CHƯƠNG 2
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1.Phân tích về chức năng
2.1.1. Phuơng pháp phân tích
Phân tích hệ thống theo nghĩa chung nhất là khảo sát nhận diện, phân định các thành phần của một phức hợp và chỉ ra các mối liên quan giữa chúng. Theo nghĩa hẹp phân tích hệ thống là giai đoạn hai, đi sau khảo sát sơ bộ, là giai đoạn bản lề giữa khảo sát sơ bộ và giai đoạn đi sâu vào các thành phần hệ thống.
Từ kết quả của giai đoạn này ta xây dựng được các biểu đồ mô tả logic chức năng xử lý của hệ thống. Giai đoạn này gọi là giai đoạn thiết kế logic chuẩn bị cho giai đoạn thiết kế vật lý. Yêu cầu đòi hỏi thiết kế logic một cách hoàn chỉnh trước khi thiết kế vật lý.
Đường lối thực hiện:
Phân tích trên xuống (top-down): Phân tích từ đại thể đến chi tiết, thể hiện phân rã các chức năng ở biểu đồ phân cấp chức năng và ở cách phân mức ở biểu đồ luồng dữ liệu (BLD).
Đi từ hệ thống cũ sang hệ thống mới.
Chuyển từ mô tả vật lý sang mô tả logic.
Phân tích thiết kế hệ thống là sự nhận thức và mô tả một hệ thống, bởi vậy người ta thường dùng các mô hình, các biểu đồ để trừu tượng hóa và là công cụ giúp con người trao đổi với nhau trong quá trình phát triển hệ thống. Mỗi mô hình là một khuôn dạng để nhận thức về hệ thống và nó mang ý thức chủ quan.
Mục tiêu của phân tích mô hình xử lý là đưa ra một cách xác định các yêu cầu của người dùng trong quá trình phát triển hệ thống, những yêu cầu này được bám sát từ một loạt các sự kiện mà người phân tích thu được qua phỏng vấn, đặt câu hỏi, đọc tài liệu và qua các phép đo thử nghiệm.
2.1.2.Biểu đồ phân cấp chức năng(BPC)
Biểu đồ phân rã chức năng BPC (Tiếng Anh là Business Functional Diagram-BFD) là một loại công cụ cho phép phân rã dần dần các chức năng từ mức cao nhất, tổng thể nhất thành các chức năng chi tiết hơn, cụ thể hơn và cuối cùng ta thu được một cây chức năng. Cây chức năng xác định một cách rõ ràng, dể hiểu cái gì xảy ra trong hệ thống.
Sau khi tìm hiểu và phân tích “Hệ thống quản lý cửa hàng Thuốc Kim Anh “ em đã đưa ra được biểu đồ phân cấp chức năng như sau:
Trong sơ đồ này ta thấy chức năng “Quản lý cửa hàng Thuốc Kim Anh ” được phân thành năm cấp nhỏ hơn .Đó là chức năng “Cập nhật thông tin ” , chức năng “Quản lý kho hàng”, chức năng “Quản lý bán Thuốc ”, chức năng “Quản lý thu chi ”, chức năng “quản lý báo cáo”.Đến lượt mình , một trong năm chức năng trên lại được phân cấp thành các chức năng chi tiết hơn .
Cụ thể , chức năng “Cập nhật thông tin ” được phân chia thành 5 chức năng đó là “Thông tin Thuốc”, “Thông tin Nhà cung cấp”,”Thông tin Khách hàng ”,”Thông tin Nhóm thuốc ,”Thông tin Nước sản xuất “.Chức năng Quản lý kho hàng được phân thành 4 chức năng con là :Kiểm tra kho Thuốc ,”lập Phiếu nhập thuốc ” “Danh sách thuốc hết hạn ”,”Tìm kiếm ”“Quản lý thuốc quá hạn sử dụng” .Chức năng bán hàng được phân thành 4 chức năng con đó là :”quản lý Khách hàng ” , “quản lý bán thuốc ”, “tư vấn khách hàng”,Tìm kiếm .Chức năng “Quản lý thu chi ” được phân thành 4 chức năng con “Lập phiếu thu”, “Danh sách khách nợ ”,”Lập phiếu chi ”,”xem công nợ ” .Chức năng “Báo cáo” được phân thành 4 chức năng con :”Báo cáo doanh thu”, “Báo cáo nhập xuất”,”Báo cáo doanh số bán hàng nhân viên báo cáo hàng tồn ”
2.1.3.Mô tả các chức năng
Stt
Tên chức năng
ý nghĩa
1.1
Cập nhật thông tin về Thuốc
Cập nhật thông tin về danh mục thuốc có trong cửa hàng : thêm mới , sửa, xoá thông tin nhà Thuốc khi cần thiết
1.2
Cập nhật thông tin Nhà cung cấp
Cập nhật thông tin Nhà cung cấp như : thêm mới nhà cung cấp , sửa, xoá thông tin Nhà cung cấp hàng khi cần thiết
1.3
Cập nhật thông tin Khách Hàng
Cập nhật thông tin khách hàng như: thêm mới khách hàng, sửa, xoá thông tin khách hàng khi cần thiết
1.4
Cập nhật nhóm hàng
Cập nhật thông tin về nhóm Thuốc như: thêm mới, sửa, xoá thông tin nhóm Thuốc
1.5
Cập nhật Nuớc sản xuất
Cập nhật thông tin về Nước sản xuất Thuốc như:Thêm mới , sửa , xoá thông tin nước sản xuất
1.6
Tìm kiếm
Tìm kiếm theo yêu cầu thông tin người sử dụng
2.1
Kiểm tra kho Thuốc
Nhân viên sẽ kiểm tra danh mục Thuốc tồn hiện có trong kho trước khi mua, bán hay huỷ hàng.
2.2
Lập phiếu nhập Thuốc
Khi nhận được hàng từ nhà cung cấp thì nhân viên sẽ lập một phiếu nhập hàng.
2.3
Danh sách thuốc hết hạn
Chương trình sẽ tự động cập nhật danh sách thuốc hết hạn .Từ danh sách này người sử dụng lập một phiếu huỷ
2.4
Tìm kiếm
Tìm kiếm theo yêu cầu thông tin người sử dụng
3.1
Kiểm tra kho Thuốc
Khi khách hàng co nhu cầu mua thuốc thì nhân viên sẽ vào kiểm tra kho thuốc của cửa hàng nếu còn đủ cung cấp thì sẽ lập hoá đơn bán
3.2
Lập hoá đơn ban
Nhận viên sẽ lập hoá đơn bán để bán thuốc và thanh toán tiên với khách hàng
3.3
Tư vấn khách hàng
Khi khách hàng yêu cầu được tư vấn thì ta sẽ vào chức năng này
3.4
Tìm kiếm
Tìm kiếm thông tin về hoá đơn bán hàng
4.1
Lập phiếu thu
Nhân viên sẽ lập phiếu thu khi khách hàng thanh toán tiền hàng hoặc muốn trả nợ.
4.2
Xem danh sách khách hàng còn nợ
Hàng tháng nhân viên kiểm tra danh sách khách hàng còn nợ.nếu khách hàng nợ quá hạn thì nhân viên sé lập một phiếu nhắc trả nợ gửi cho khách hàng
4.3
Lập phiếu chi
Nhân viên sẽ lập phiếu chi khi thanh toán tiền hàng cho nhà cung cấp hoặc khi trả nợ cho nhà cung cấp.
4.4
Xem công nợ
Hàng tháng Cửa hàng sẽ xem công nợ.
4.5
Tìm kiếm
Tìm kiếm theo yêu cầu thông tin người sử dụng
5.1
Báo cáo doanh thu
Báo cáo doanh thu theo doanh thu theo ngày , tháng, năm
5.2
Báo cáo nhập xuất
Báo cáo về tình hình bán hàng và nhập hàng của cửa hàng
5.3
Báo cáo doanh số bán hàng của nhân viên
Báo cáo doanh số bán hàng của từng nhân viên trong tháng .
5.4
Báo cáo hàng tồn kho
Thống kê lượng hàng tồn trong kho
2.2.Biểu đồ luồng dữ liễu- BLD (Data Flow Diagram=DFD)
BLD là một loại biểu đồ nhằm mục đích diễn tả một quá trình XLTT với các yêu cầu sau:
+ Sự diễn tả là ở mức logic, nghĩa là nhằm trả lời câu hỏi: “Làm gì?” mà bỏ qua câu hỏi “Làm như thế nào?”.
+ Chỉ rõ các chức năng (con) phải thực hiện để hoàn tất quá trình xử lý cần mô tả.
+ Chỉ rõ các thông tin được chuyển giao giữa các chức năng đó, và qua đó phần nào thấy được trình tự thực hiện của chúng.
Biểu đồ luồng dữ liệu (BLD hay DFD) là một công cụ dùng để trợ giúp cho bốn hoạt động chính sau đây của các phân tích viên hệ thống trong quá trình phân tích thông tin.
+ Phân tích BLD được dùng để xác định yêu cầu của người sử dụng.
+ Thiết kế BLD dùng để vạch kế hoạch và minh họa các phương án cho phân tích viên hệ thống và người dùng khi thiết kế hệ thống mới.
+ Biểu đồ BLD là công cụ đơn giản, dễ hiểu đối với phân tích viên hệ thống và người dùng.
+ Tài liệu BLD cho phép biểu diễn tài liệu phân tích hệ thống một cách đầy đủ, súc tích và ngắn gọn. BLD cung cấp cho người sử dụng một cái nhìn tổng thể về hệ thống và cơ chế lưu chuyển thông tin trong hệ thống đó.
Các thành phần của biểu đồ luồng dữ liệu:
- Quá trình (chức năng –Processes) được ký hiệu bởi vòng tròn tượng trưng cho các chức năng khác nhau mà hệ thống phải thực hiện. Chức năng thay đổi thông tin đầu vào theo một cách nào đó như tổ chức lại thông tin, bổ sung hoặc tạo ra thông tin mới.
- Luồng dữ liệu (Flow) được ký hiệu bằng đường kẻ có mũi tên. Mũi tên chỉ hướng ra của luồng thông tin. Luồng dữ liệu liên kết các Processes với nhau, tượng trưng cho thông tin mà processes yêu cầu cho đầu vào hoặc thông tin mà chúng biến đổi thành đầu ra.
- Kho dữ liệu (Data Store) được ký hiệu bởi 2 đường thẳng song song, biểu diễn hay chứa đựng thông tin mà hệ thống cần phải lưu giữ trong một khoảng thời gian dài để một hay nhiều quá trình hoặc tác nhân truy nhập vào. Một khi công việc xây dựng HTTT kết thúc thì những thông tin này được tồn tại dưới dạng các File hay CSDL.
- Tác nhân ngoài là một người, một nhóm người hoặc một tổ chức bên ngoài lĩnh vực nghiên cứu của hệ thống, nhưng có một số hình thức tiếp xúc với hệ thống. Nhân tố bên ngoài là nguồn cung cấp thông tin cho hệ thống và là phần sống còn của hệ thống.
- Tác nhân trong là một chức năng hay một quá trình bên trong hệ thống.
DFD cung cấp một bức tranh tổng thể, dể hiểu về các chức năng và các dữ liệu chính của hệ thống. Tuy nhiên, nếu xét về khía cạnh chi tiết thì DFD lại chưa được đầy đủ cả từ góc độ chức năng và dữ liệu. Hai công cụ được sử dụng để bổ khuyết cho DFD là: Từ điển dữ liệu (Data Dictionary) và Đặc tả chức năng (Process specification)
Thông qua tìm hiểu hệ thống quản lý Cửa hàng thuốc Kim Anh em xây dựng biểu đồ luồng dữ liệu của hệ thống với các thành phần của biểu đồ như sau:
- Các chức năng: Cập nhật thông tin , Quản lý kho hàng , Quản lý bán Thuốc Quản lý Thu chi , Quản lý báo cáo cùng các chức năng con đã trình bầy ở trên.
- Các luồng dữ liệu: thông tin mua thuốc, thông tin Nhập thuốc, Thanh toán....
- Các kho dữ liệu:Thuốc nhập ,hoá đơn bán ,Khách hàng , Nhà cung cấp, ......
- Các tác nhân trong và các tác nhân ngoài: Tùy theo từng chức năng quản lý cụ thể mà biểu đồ luồng dữ liệu ở các mức có sử dụng thêm các tác nhân trong và ngoài cho phù hợp.
2.2.1.BLD mức ngữ cảnh (mức 0)
Là mô hình hệ thống ở mức tổng quát nhất, ta xem cả hệ thống như một chức năng. Tại mức này hệ thống chỉ có duy nhất một chức năng. Các tác nhân ngoài và đồng thời các luồng dữ liệu vào ra từ tác nhân ngoài đến hệ thống được xác định.
Từ định nghĩa trên, ta có sơ đồ luồng dữ liệu mức ngữ cảnh như sau:
2.2. BLD mức đỉnh (mức 1)
Gồm nhiều chức năng được phân rã từ BLD mức ngữ cảnh với các chức năng phân rã tương ứng mức 1 của biểu đồ phân rã chức năng BPC (hoặc BFD). Các nguyên tắc phân rã:
- Các luồng dữ liệu được bảo toàn.
- Các tác nhân ngoài bảo toàn.
- Có thể xuất hiện các kho dữ liệu.
- Bổ sung thêm các luồng dữ liệu nội tại nếu cần thiết.
2.2.3.BLD mức dưới đỉnh (mức 2)
Phân rã từ BLD mức đỉnh, các chức năng được định nghĩa riêng từng biểu đồ hoặc ghép lại thành một biểu đồ trong trường hợp biểu đồ đơn giản. Các thành phần của biểu đồ được phát biểu như sau:
+ Về chức năng: phân rã chức năng cấp trên thành chức năng cấp dưới thấp hơn.
+ Luồng dữ liệu: vào/ra mức trên thì lặp lại (bảo toàn), ở mức dưới thì phân rã, bổ sung thêm các luồng dữ liệu nội bộ do phân rã các chức năng và thêm vào kho dữ liệu.
+ Kho dữ liệu: dần dần xuất hiện theo nhu cầu nội bộ.
+ Tác nhân ngoài: xuất hiện đầy đủ ở mức khung cảnh, ở mức dưới không thêm gì cả.
Các biểu đồ luồng dữ liệu mức dưới đỉnh của hệ thống quản lý:
2.2.3.1 Biểu đồ luồng dữ liệu chức năng cập nhật thông tin
2.2.3.2.Biểu đồ luồng dữ liệu chức năng quản lý kho hàng
2.2.3.3.Sơ đồ chức năng quản lý Bán Thuốc
2.2.3.4.Sơ đồ chức năng quản lý Thu chi
2.2.3.5.Sơ đồ chức năng quản lý báo cáo
CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ CƠ SỞ DỮ LIỆU
Một hệ thống trong trạng thái vận động bao gồm hai yếu tố là các chức năng xử lý và dữ liệu. Giữa xử lý và dữ liệu có mối quan hệ mật thiết chặt chẽ và bản thân dữ liệu có mối liên kết nội bộ không liên quan đến xử lý đó là tính độc lập dữ liệu. Mô tả dữ liệu được xem như việc xác định tên, kiểu (dạng) dữ liệu và tính chất của dữ liệu. Dữ liệu không phụ thuộc vào người sử dụng đồng thời không phụ thuộc vào yêu cầu tìm kiếm và thay đổi thông tin.
Trong XLTT có nhiều công cụ để mô tả dữ liệu. Các công cụ này là các cách trừu tượng hóa dữ liệu, đặc biệt là mối quan hệ của dữ liệu nhằm phổ biến những cái chung nhất mà con người có thể trao đổi lẫn nhau. Trong phần này chúng ta đề cập tới 4 công cụ chủ yếu:
1. Mã hóa dữ liệu (Coding).
2. Từ điển dữ liệu (Data Dictionary).
3. Mô hình thực thể liên kết ER (Entity Relationship).
4. Mô hình quan hệ (Relational Data Base Modeling).
Như ta đã biết phân tích hệ thống bao gồm hai công việc: Phân tích về chức năng xử lý và phân tích về dữ liệu. Trong phần này chúng ta xem xét phần phân tích dữ liệu. Dữ liệu có tính độc lập tương đối và là đối tượng của xử lý.
Mục đích của giai đoạn phân tích hệ thống về dữ liệu là: Lập lược đồ dữ liệu hay gọi là biểu đồ cấu trúc dữ liệu (BCD). Hệ thống dữ liệu được lưu trữ lâu dài:
- Thông tin gì, bao gồm dữ liệu gì?
- Mối liên quan: xác định liên quan giữa các dữ liệu.
Kết quả của giai đoạn phân tích hệ thống về mặt dữ liệu là cho chúng ta một khuôn dạng hỗ trợ các phân tích viên hệ thống trong quá trình nhận thức và biểu diễn các dữ liệu sử dụng trong HTTT, đồng thời chỉ rõ được cấu trúc của dữ liệu.
Phương pháp thực hiện: Thể hiện theo hai cách tiếp cận:
+ Mô hình thực thể liên kết: phương pháp này trực quan đi từ trên xuống dưới, bằng cách xác định các thực thể, mối liên kết giữa chúng rồi đến các thuộc tính. Phương pháp này bao trùm được nhiều thông tin, tuy nhiên kết quả hay thừa.
+ Mô hình quan hệ: Xuất phát từ danh sách các thuộc tính rồi đến các lược đồ quan hệ. Phương pháp này đi từ dưới lên, kết quả là vừa đủ cho những kết xuất xử lý.
3.1 Lý thuyết thiết kế cơ sở dữ liệu quan hệ
Các thực thể: Là vật thể tồn tại thực sự khá ổn định trong thế giới thực muốn phản ánh. Tập các thực thể cùng loại hình thành lên kiểu thực thể.
Kiểu thực thể: Là tập hợp các thực thể có cùng đặc trưng bản chất
Cách biểu diễn kiểu thực thể: Người sử dụng các hình chữ nhật bên trong ghi tên thực thể.
Tên thực thể
Các thuộc tính: thuộc tính là giá trị mô tả khía cạnh nào đó của thực thể. Thuộc tính bao gồm thuộc tính khóa và thuộc tính mô tả.
- Thuộc tính khóa gọi là các kiểu thuộc tính cho phép phân biệt các kiểu thực thể.
- Các thuộc tính còn lại khác khóa là thuộc tính mô tả.
- Yêu cầu với kiểu thuộc tính: Đảm bảo giá trị là duy nhất và là sơ đẳng.
Tên kiểu thực thể
Các Thuộc tính
Cách biểu diễn:
Các liên kết:
Liên kết: là sự kết nối giữa hai hay nhiều thực thể phản ánh nhiều sự ràng buộc về mặt vật lý.
Kiểu liên kết: là tập hợp các liên kết có cùng bản chất.
Tên lk
Cách biểu diễn:
A
B
Có thể biểu diễn bằng cách khác:
A
B
Có 3 loại liên kết:
- Liên kết 1-1: liên kết giữa hai thực thể A và B là 1 – 1 nếu mỗi thực thể kiểu A tương ứng với một kiểu thực thể B và ngược lại.
A
B
1
1
- Liên kết 1 – n: liên kết giữa hai thực thể A và B là 1 – n nếu mỗi kiểu thực thể A tương ứng với nhiều kiểu thực thể thuộc B. Nhưng mỗi thực thể thuộc B chỉ tương ứng với một kiểu thực thể A.
A
B
n
1
- Liên kết n – n: liên kết giữa hai thực thể A và B là n – n nếu mỗi kiểu thực thể A tương ứng với một hoặc nhiều kiểu thực thể thuộc B và ngược lại.
A
B
n
n
3.2 Một số thực thể
3.2.1 Phát hiện thực thể
Nhóm thuốc
1
n
Danh mục Thuốc
Đơn vị tính
1
n
Danh mục Thuốc
Khách hàng
1
n
Hóa đơn
Khách hàng
1
n
phiếu thu
Nhà cung cấp
1
n
Phiếu nhập
3.2.2. Phát hiện kiểu liên kết
Nhân viên
1
n
Phiếu hủy
Nhân viên
1
n
Phiếu nhập
Nhân viên
1
n
Phiếu chi
Nhân viên
1
n
Hóa đơn bán
Nhân viên
1
n
Phiếu thu
Danh mục Thuốc
n
n
Hóa đơn bán
Nước sản xuất
1
n
Danh Mục Thuốc
Tủ thuốc
1
n
Danh Mục Thuốc
® Thực thể trung gian là Chi tiết hoá đơn để phá vỡ liên kết nhiều - nhiều
Danh mục Thuốc
n
n
Phiếu nhập
Danh mục Thuốc
n
n
Phiếu hủy
® Thực thể trung gian là Chi tiết phiếu nhập để phá vỡ liên kết nhiều - nhiều
® Thực thể trung gian là Thuốc Hủy để phá vỡ liên kết nhiều - nhiều
3.2.3 Phát hiện thuộc tính
1.DM_NhomThuoc(Manhom, Tennhom,MoTa)
2.bang_danhmucThuoc(DMT_Ma,MaNhom,MaNCC, DMT_Ten, DMT_ThanhPhan, DMT_ChiDinh,DMT_ChongChiDinh,DMT_Cachdung,DMT_HanDung,DMT_NSX,
MaTu , Madonvitinh,DMT_GhiChu)
3. DM_KhachHang(Makh, Tenkh, Diachi, Dienthoai, Email,ghichu)
4.HD_BanThuoc(HDB_Ma,Makh,HDB_NgayBan,HDB_GioBan,NV_Ma,HDB_TongTien,HDB_ThanhToan)
5.HD_ChiTietHDB(HDB_Ma,DMT_Ma,HDB_SoLuongBan,HDB_DonGiaBan)
6.PhieuThu(PT_Ma,HDB_Ma, NV_MA,PT_Ngaythu, PT_SoTien, PT_Ghichu,Makh)
8.NhanVien(NV_Ma,NV_HoTen,NV_CMND,NV_Ngaysinh,NV_Que Quan, NV_DCLienHe,NV_Tel,NV_Email)
9.PhieuNhapThuoc(PNH_SoPhieu,MaNCC,NV_Ma,PNH_NgayNhap,PNH_GioNhap,PNH_NguoiGiao,PNH_Tongtien,PNH_DaThanhToan)
10.ChiTiet_PhieuNhap(PNH_SoPhieu,DMT_Ma,PNH_ngaysanxuat,
PNH_NgayHetHanPNH_Soluongnhap,PNH_DonGia,PNH_soluongcon)
11.PhieuChi(PC_SoPhieu, PN_SoPhieu,NV_Ma ,PC_Ngaychi, ,PC_ Sotien,PC_ Ghichu)
12.DM_NhaCC(NCC_Ma,NCC_Ten,NCC_DaiDien,NCC_DiaChi,NCC_DienThoai,NCC_Website,NCC_MaSoThue,NCC_SoDKKD,NCC_TaiKhoan,NC_NGayBD)
13. PhieuHuy(Sophieuhuy, NV_Ma, Ngayhuy, Tongtien)
14. CT_ThuocHuy(Sophieuhuy, DMT_Ma, Soluonghuy)
15. NSD(Manv, TenDN, Matkhau, Quyenhan)
16. TuThuoc(MaTu,TenTu)
17. DonViTinh(Madvitinh, Dvtinh,MoTa)
3.2.4 Thiết kế các bảng cơ sở dữ liệu
Dựa trên sự liên kết giữa các thực thể liên kết và mô hình phân rã chức năng của hệ thống, chúng ta tiến hành thiết kế cụ thể là xác định các Table ( bảng CSDL) của chương trình
3.2.4.1.Bảng DM_KhachHang lưu trữ thông tin về các khách hàng giao dịch với cửa hàng
Tên trường
Kiểu trường
Độ rộng
Mô tả
Makhach
Text
4
Mã khách hàng
Tenkhach
Text
30
Tên khách hàng
Diachi
Text
50
Địa chỉ khách
Dienthoai
Number
Điện thoại khách hàng
Email
Text
50
Email của khách hàng
3.2.4.2.Bảng DM_NCC lưu trữ thông tin chi tiết về nhà cung cấp, chuyên cung cấp các mặt hàng cho cửa hàng .
Tên trường
Kiểu trường
Độ rộng
Mô tả
NCC_Ma
Text
4
Mã nhà cung cấp
NCC_Ten
Text
30
Tên nhà cung cấp
NCC_Diachi
Text
50
Địa chỉ của nhà cung cấp
NCC_DienThoai
Number
Số điện thoai nhà cung cấp
NCC_SODKKD
Number
Số Fax của nhà cung cấp
NCC_Email
Text
50
Email của nhà cung cấp
NCC_MaSoThue
Text
12
Mã số thuế nhà cung cấp
NCC_TTTaiKhoan
Text
12
Tài khoản nhà cung cấp
NCC_NgayBD
Date/Time
NGày bắt đầu cung cấp
3.2.4.3.Bảng NhanVien lưu trữ mọi thông tin chi tiết về các nhân viên của cửa hàng
Tên trường
Kiểu trường
Độ rộng
Mô tả
NV_Ma
Text
10
Mã nhân viên
NV_HoTen
Text
30
Tên nhân viên
NV_NgaySinh
Date/Time
Ngày sinh nhân viên
NV_QQuan
Text
100
Quê quán nhân viên
NV_DiaChiLHe
Text
100
Địa chỉ của nhân viên
NV_Tel
Number
1
Điện thoại của nhân viên
NV_Email
Text
25
Hòm thư của nhân viên
3.2.4.4. Bảng DM_NhomThuoc lưu trữ thông tin về các nhóm Thuốc
Tên trường
Kiểu trường
Độ rộng
Mô tả
Manhom
Text
5
Mã nhóm Thuốc
Tennhom
Text
30
Tên nhóm thuốc
MoTa
Text
50
Mô tả
3.2.4.5.Bảng DonViTinh lưu trữ thông tin về đơn vị tính của Thuốc
Tên trường
Kiểu trương
Độ rộng
Mô tả
Madonvitinh
Text
5
Mã đơn vị tính
Donvitinh
Text
10
Tên đơn vị tính
3.2.4.6.Bảng.DM_Thuoc lưu trữ chi tiết các thông tin về các loại Thuốc hiện có của cửa hàng
Tên trường
Kiểu trường
Độ rộng
Mô tả
DMT_Ma
Text
5
Mã Thuốc
MaNhom
Text
5
Mã nhóm Thuốc
DMT_Ten
Text
30
Tên Thuốc
DMT_ThanhPhan
Text
100
Thành phần Thuốc
DMT_ChiDinh
Text
100
Chỉ định Thuốc
DMT_ChongChiDinh
Text
100
Chống chỉ định
DMT_Cachdung
Text
100
Cách dùng và liều dùng
DMT_HanDung
Date/Time
Hạn dùng trong bao lâu
MaTu
Text
5
Chỗ để thuốc
Madonvitinh
Text
5
Đơn vị TÍnh
Manuoc
Text
5
Nước sản xuất
MaNCC
Text
5
Nhà cung cấp
DMT_GhiChu
Text
100
Ghi chú
DMT_SODK
Number
Số đăng ký của Thuốc
3.2.4.7.Bảng HD_BanThuoc lưu trữ thông tin chi tiết về các hoá đơn bán Thuốc
Tên trường
Kiểu trương
Độ rộng
Mô tả
HDB_Ma
Auto number
Số hoá đơn bán Thuốc
MaKh
Text
5
Mã khách hàng
NV_Ma
Text
5
Ngày lập hoá đơn
HDB_NgayBan
Datetime
Mã nhân viên lập hoá đơn
HDB_GioBan
Datetime
Hạn trả nợ tiền
HDB_TongTien
Number
Tổng tiền Thuốc
HDB_DaThanhToan
Number
3.2.4.8.Bảng ChiTiet_HDB lưu trữ thông tin chi tiết về hàng bán ghi trong hóa đơn bán hàng
Tên trường
Kiểu trương
Độ rộng
Mô tả
HDB_Ma
Number
Số hoá đơn bán Thuốc
DMT_Ma
Text
5
Mã Thuốc bán
HDB_SoLuongBan
Number
Số lượng Thuốc bán
HDB_DonGiaBan
Number
Giá bán
3.2.4.9.Bảng PhieuThu lưu trữ thông tin về các khoản phải thu của cửa hàng
Tên trường
Kiểu trường
Độ rộng
Mô tả
PT_MA
Auto number
Số phiếu thu
HDB_Ma
Number
Số hoá đơn bán Thuốc
NV_Ma
Text
5
Mã nhân viên thu tiền
Makh
Text
5
Khách khách hàng
PT_soTien
Number
Số tiền thu
PT_Ngày Thu
Date Time
Ngày Thu
PT_Ghi Chu
Text
100
Ghi chú về phiếu thu
3.2.4.10. Bảng PhieuNhapThuoc lưu trữ thông tin về loại Thuốc nhập của cửa hàng
Tên trường
Kiểu trường
Độ rộng
Mô tả
PNH_SoPhieu
Auto Number
Số phiếu nhập Thuốc
Makh
Text
5
Mã khách hàng
NCC_Ma
Text
5
Mã nhà cung cấp
NV_Ma
Text
5
Mã nhân viên nhận hàng
PNH_Ngaynhap
Datetime
Ngày nhập Thuốc
PNH_GioNhap
Datetime
Giờ nhập
PNH_TongTien
Number
Tổng tiền nhập
PNH_DaThanhToan
Number
SỐ tiền thanh toán
3.2.5.11.ChiTiet_PhieuNhap lưu trữ chi tiết thông tin về các Thuốc nhập
Tên trường
Kiểu trường
Độ rộng
Mô tả
PC_SoPhieu
AutoNumber
Số phiếu chi
PNH_SoPhieu
Number
Số phiếu nhập Thuốc
PC_NgayChi
Datetime
Ngày chi tiền
NV_Ma
Text
5
Mã nhân viên
PC_SoTien
Number
Số tiền đã chi
PC_GhiChu
Text
100
Ghi chú
3.2.5.12.Bảng PhieuChi lưu trữ thông tin về các khoản phải chi của cửa hàng
Tên trường
Kiểu trường
Độ rộng
Mô tả
PC_SoPhieu
AutoNumber
Số phiếu chi
PNH_SoPhieu
Number
Số phiếu nhập Thuốc
PC_NgayChi
Datetime
Ngày chi tiền
NV_Ma
Text
5
Mã nhân viên
PC_SoTien
Number
Số tiền đã chi
PC_GhiChu
Text
100
Ghi chú
3.2.5.13.Bảng PhieuHuy lưu trữ thông tin về phiếu huỷ hàng
Tên trường
Kiểu trường
Độ rộng
Mô tả
Sophieuhuy
Int
4
Số phiếu huỷ
NV_Ma
Text
5
Mã nhân viên lập phiếu
Ngayhuy
Datetime
Ngày lập phiếu huỷ
Tongtien
Float
Tổng số tiền Thuốc huỷ
3.2.5.14.Bảng ThuocHuy lưu trữ thông tin chi tiêt về hàng cần huỷ
Tên trường
Kiểu trường
Độ rộng
Mô tả
Sophieuhuy
Number
Số phiếu huỷ Thuốc
DMT_Ma
Text
5
Mã hàng cần huỷ
Soluonghuy
Number
Số lượng Thuốc cần huỷ
3.2.5.15.Bảng TuThuoc lưu trữ thông tìn về chỗ để thuốc
Tên trường
Kiểu trường
Độ rộng
Mô tả
MaTu
Text
5
Mã tủ thuốc
TenTu
Text
30
Tên tủ thuốc
MoTa
Text
100
Mô Tả
3.2.5.16.Bảng Nsd lưu trữ thông tin về người sử dụng
Tên trường
Kiểu trường
Độ rộng
Mô tả
NV_ma
Text
5
Mã nhân viên
TenDN
Text
30
Tên đăng nhập của nv
MatKhau
Text
10
Mật khẩu truy cập
QuyenHan
Number
Quyền hạn
MoTa
Text
50
Mô Tả
3.3.6.Biểu đồ quan hệ
CHƯƠNG 4.CÁC CÔNG CỤ SỬ DỤNG VÀ THIẾT KẾ GIAO DIỆN
4.1.Các công cụ sử dụng
4.1.1.Lập trình bằng visual Basic.
4.1.1.1.Giới thiệu về Visual Basic
Visual Basic là một sản phẩm của Microsoft và là một chương trình 32 bit chỉ chạy trên nền Window 95 trở nên .
Visual Basic là một ngôn ngữ lập trình theo kiểu hướng đối tượng
Có thể thấy ngay được thao tác khi thiết kế .
Cho phép chỉnh sửa dễ dàng .
Form
Định nghĩa:Form là một mẫu thiết kế dùng trong chương trình.
Giải thích:khi thiết kế một chương trình tức là đã tạo ra một hay nhiều cửa sổ cho chương trình đó.Một chương trình Windows ban đầu thường có môt cửa sổ chính và trong quá trình làm việc có thể phát triển thêm nhiều cửa sổ con.Khi gọi Visual Basic, luôn có sẵn một form cho thiết kế .
Project:Khi thiết kế một chương trình bằng Visual Basic luôn phải qua hai bước chính:
a.Thiết kế giao diện
Tức là thiết kế hình dạn của form, bố trí các control trên đó như thế nào .
b.Viêt lệnh:
Dùng các lệnh của Visual Basic để quy định cách ứng sử cho mỗi form và cho mỗi control.Khi viết Form như vậy tức là đã tạo lên một dự án bao gồm tất cả các yếu tố để tạo nên chương trình .Mỗi dự án bao gồm nhiều Form , mỗi Form sẽ tạo thành một File trên đĩa .Ngoài ra cần tạo ra một vài Form để chứa mã lệnh riêng để xử lý một số thao tác đặc biệt , một File nữa dùng để quản lý toàn bộ dự án chương trình .Như vậy , một Project bao gồm:
Một File *.FRM cho mỗi Form thiết kế.
Một File Binary *.FRM cho mỗi Form thiết kế mà có các control có các dữ liệu đặc biệt .
Các File*.Bas cho các mã lệnh.
Một File*.RES chứa resourse(tài nguyên ) cho dự án .Tài nguyên ở đây là các Bitmap,icon...dùng trong chương trình .
Một File duy nhất *.VBM cho toàn bộ dự án.
Ngoài ra với các chương trình cao cấp còn có File *.VBX,*.OCX.
4.1.1.2.Đối tượng và cách sử dụng đối tượng
a.Đối tượng (Object)
Visual Basic là một ngôn ngữ lập trình kiểu đối tượng , làm việc với Visual Basic chính là làm việc với các đối tượng .
Đặc điểm của các đối tượng trong chương trình :
Mỗi đối tương đều có một tên để phân biệt .
Mỗi đối tượng đều có nhiều đặc tính , các đặc tính này có thể gọi là property(thuộc tính ) của đối tượng đó.
Mỗi đối tượng có thể có nhiều hoạt động và các hoạt động này gọi là Method(phương thức) của nó.
Truy xuất đối tượng. Truy xuất đối tượng tức là đặt giá trị cho các Property cho đối tượng ,hay gọi phương thức hoạt động cho các đối tượng đó hoạt động .Bất cứ khi nào truy xuất đối tượng đều được viết theo cú pháp sau:
.
b.Viết lệnh cho đối tượng
Khi đặt một đối tượng lên form thì lúc đầu nó chưa hoạt động .Ta cần phải viết lệnh để cho nó làm việc .
Double Click cho đối tượng .
Cửa sổ lệnh khiện ra ,Khi đó hãy viết lệnh cho đôi tượng này .
Sử dụng cửa sổ để viết mã lệnh .
Mỗi phần mã lệnh cho một sự kiện xảy ra trên một đối tượng đều có hai dòng đầu tiên là Sub và cuối cùng là END Sub.Cần phải giữ nguyên hai dòng này và viết mã lệnh vào giữa hai dòng đó .
Cửa sổ lệnh cũng giống như bất kỳ một cửa sổ soạn thảo nào đã dùng trên Window
Visual Basic có đặc điểm tự kiểm tra cú pháp khi viết mã lệnh .Khi viết xong một dòng lệnh và qua một dòng khác thì Visual Basic tự động kiểm tra câu lệnh vừa viết ,nếu sai thì sẽ báo còn lại thì tự động đổi chữ thường , chữ hoa cho chương trình được rõ ràng.
Mỗi dòng lệnh trong Visual Basic đều phải được viết trên một dòng , không được ngắt giữa dòng nửa chừng.
c. Biến
Khái niệm:Biến được dùng để lưu tam thời các giá trị để tính toán trong quá trình xử lý chương trình .
Khi xử lý một chương trình luôn cần phải lưu trữ một giá trị nào để tính toán , để so sánh hay tính toán chùng với nhau và thực hiện các tác vụ khác nhau dựa vào các kết quả so sánh hay tính toán trên chúng.Visual Basic hay bất cứ một ngôn ngữ lập trình nào khác đều dùng các biến chương trình để lưu giữ các giá trị đó . Các giá trị lưu trữ trong các biến có thể có các giá trị khác nhau , có thể là một dòng chữ hay một con số ...Dạng giá trị đó gọi là kiểu dữ liệu .
Một biến được đặc trưng bằng một cái tên.Biến không có sẵn trong chương trình.Muốn sử dụng biến phải tạo ra nó gọi là khai báo.
Cách khai báo biến và sử dụng biến , thời gian sống .
Khai báo biến trong chương trình bằng một trong các dòng lệnh như sau :
DIM/Static/Public/Global as .
Khai báo với từ khoá Dim, Static dùng để khai báo cho những lệnh cục bộ trong Sub hoặc Function đó mà thôi .Khai báo với từ khoá Public và Global(khai báo biến toàn cục ) dùng để khai báo các biến để dùng chung trong toàn bộ chương trình , chú ý ta co thể khai báo trong Modul hoặc trong General của Form mà thôi, ta không thể khai báo từ khoá này trong sub hoặc trong Function.
Đối với biến cục bộ thì thời gian sống của nó chỉ nằm trong sub hoặc Function mà nó được khai báo mà thôi.Đối với biến toàn cục thì thời gian sống của nó là toàn bộ thời gian khi chương trình đang chạy .
4.1.1.3.Các kiểu dữ liệu trong Visual Basic.
Khi khai báo một biến trong chương trình tức là đã định ra một khoảng bộ nhớ để lưu giá trị , khoảng thời gian đó lớn hay nhỏ tuỳ thuộc vào biến đó khai báo kiểu gì.Khi dùng biến trong chương trình , điều quan trọng là xác định kiểu biến cho phù hợp với các giá trị mà ta đặt vào.Visual Basic cho phép khai báo kiểu dữ liệu chuẩn như sau:
Byte
1 byte
0 đến 255
Integer
2 byte
-32768 đến 32768
Long
4 byte
-2.1.4.483.684 tới 2.14.483.674
Single
4 byte
-3,402823E38 tới -1,401298E-45
-1,401298E-45 tới 3,402823E38
Double
8 byte
-1,79769E308 tới -4.94065E-324
4,94065E-324 tới 1,79769E308
Current
8 byte
-9223337203685477,5808 tới 22337203685477
Boolean
2 byte
True và False
String
1 Byte
có thể lên đến 2 mũ 31 ký tự mỗi ký tự
Date
8 byte
Variant
16 Byte
4.1.1.4.Các toán tử
Toán tử tính toán:
+ cộng hai số với nhau
- Trừ hai số với nhau
* nhân hai số với nhau
/ chia, trả về kiểu số thực
\ chia lấy nguyên
mod chia lấy dư
^ lấy luỹ thừa
Các toán tử so sánh:
các toán tử so sánh dùng để so sánh hai giá trị nào đó và luôn trả về kiểu Boolean , tức là chỉ trả về hai giấ trị True hay False.
Toán tử
ý nghĩa
>
So sánh xem số thứ nhất lớn hơn số thứ hai hay không
<
So sánh xem số thứ nhất nhỏ hơn số thứ hai hay không
=
So sanh xem số thứ nhất bằng số thứ hai hay không
>=
So sanh số thứ nhất có lớn hơn hoặc bắng số thứ hai
<=
So sánh số thứ nhất có nhỏ hơn hoặc bằng số thứ hai
So sánh xem số thứ nhất có khác số thứ hai hay không
Các toán tử luận lý:các toán tử luận lý luân trả về các giá trị luận lý và các số hạng cũng là kiểu luận lý .
Toán tử
Ý nghĩa
And
Trả về giá trị true nếu cả hai số hạng đều là True và ngược lại
Or
Trả về giá tri true nếu một trong hai là True, trả về False nếu cả hai là False
Not
Trả về True nếu số hạng là False và trả về False nếu số hạng là True
4.1.1.5.Các kiểu cấu trúc
Câu lệnh IF:
Cú pháp 1:
If Then
........
end if
Cú pháp 2:
If Then
.........
Else
.........
End If
Cấu trúc Select...case
Ý nghĩa:Là một cấu trúc chọn lựa theo một biến hay một điều kiện nào đó .Cấu trúc này sử dụng trong trường hợp cần xét nhiều điều kiện chọn lựa xảy ra trên một biến nào đó
Cú pháp:
Select case
Case
...
Case
[Case Else
]
End select
Cấu trúc For...Next.
Ý nghĩa:Là một cấu trúc lặp với số bước lặp cố định .Cấu trúc này thường được sử dụng khi bạn biết trước số vòng lặp .Ở cấu trúc này câu lệnh được thực hiện cho đến khi hết số bước lặp .
Cú pháp:
For Counter=Start To End [Step step]
[Exit For]
Next[Counter]
Trong đó:
-Counter:Biến đếm kiểu số nguyên .
-Start:Giá trị bắt đầu của Counter.
-End:Giá trị kết thúc của Counter.
Step:Bước nhảy sau mỗi lần lặp
Cấu trúc của Do..while
Ý nghĩa:Là một cấu trúc thực hiện cho đến khi biểu thức điều kiện thực sự được thoả mãn .Ở điều kiện này khi gặp điều kiện thoả mãn thì vòng lặp dừng.Nếu câu lệnh sai thì bỏ qua các câu lệnh và thực hiện các lệnh phía dưới dòng Loop.
Cú pháp:
Do while
[Exit Do]
Loop
Hoặc có thể dùng cú pháp
Do
[Exit Do]
loop Until
Cấu trúc With
Ý nghĩa:
Câu lệnh With cho phép truy cập đến thuộc tính của đối tượng mà không cần phải gọi đầy đủ tên đối tượng và tên thuộc tính .
Cú pháp:
With Đối tượng
.Thuộc tính 1=Thuộc tính
.Thuộc tính 2=Thuộc tính
.....
End with
4.1.1.6.Thủ tục
Trong quá trình viết một chương trình , đôi khi có một đoạn lệnh nào đó cứ viết đi viết lại nhiều lần giống nhau , điều này vừa tốn công lại vừa làm cho chương trình quá dài .Trong trường hợp này để cho hợp lý có thể định riêng đoạn mã này ở một chỗ nào đó trong chương trình ,đặt cho nó một cái tên , khi cần thực hiện đoạn mã đó chỉ cần gọi tên của nó.Đoạn mã này định riêng và gọi qua tên của nó gọi là thủ tục hay Modul trong chương trình .
Cách định nghĩa một thủ tục .
Một thủ tục trước khi muốn sử dụng phải định nghĩa nó.Dùng từ khoá Sub để khai báo thủ tục này .
Private/Public Sub
..... ’Các lệnh mà thủ tục cần thực hiện
End Sub ‘Kết thúc thủ tục
Nếu khai báo từ khoá Public , thủ tục này có thể được gọi để sử dụng trong bất kỳ form nào trong chương trình .
Nếu khai báo bằng từ khoa Private, thủ tục chỉ có thể dùng được trong Form chứa nó.
Thủ tục truyền tham số.
Cú pháp:
Prìvate/Public( As ...)
Tuỳ thuộc muốn nó nhận bao nhiêu tham số ta sẽ khai báo bấy nhiêu tên tham số trong dấu ngoặc và ngăn cách chúng bằng dấu phẩy , khi gọi thủ tục này sau tên nó bạn cũng phải ngoặc và ghi các giá trị tham số tương ứng với tham số mà nó nhận
Thêm modul vào chương trình :
Đôi khi trong chương trình cần định nghĩa nhiều thủ tục để có thể dùng xử lý chung cho các công việc nào đó , ta nên tạo các thủ tục này thành các file riêng .Sau này nếu viết ,một chương trình khác cần những thủ tục như thế này ta có thể lấy ra dùng mà không cần viết lại .
Để thêm modul vào Project
+ chọn menu Project/Add module
+ Cửa sổ viết lệnh mới hiện ra
+Viết tất cả các thủ tục dùng trong cửa sổ này
+Khi lưu Project, File này cũng được lưu với phần đuôi .BAS
-Các thủ tục trong file module thường được dùng chung trong bất kỳ phần nào của Project , vì vậy khi khai báo không cần dùng từ khóa Private hay public để khai báo mà đơn giản chỉ khai báo bằng sub và end sub
-Các biến dùng chung phải khai báo Global nếu không chỉ truy xuất được trong file Module đó mà thôi
Để thêm một File Module ta vào trong Project hiện thời :
+ Chọn menu Project/add file
+ Chon file >BAS thích hợp trên Dialog
Tham số thủ tục trong thủ tục
Khi định nghĩa một thủ tục , nếu phải truyền vào thủ tục này một số giá trị để làm việc , cần định nghĩa thêm những tham số cho nó .Các tham số được truyền vào thủ tục có hai dạng :dạng truyền tham trị và dạng truyền tham chiếu .
ByVal Quy đinh tham số truyền theo kiểu tham trị
Byref Quy định tham số truyền theo kiểu tham chiếu
Khi một tham số truyền theo kiêu tham chiếu bạn phải luôn luôn truyền vào cho nó một biến chứ không được truyền một giá trị cụ thể .
4.1.1.7.HÀM (Function)
Cũng giống như thủ tục nhưng Hàm trả về một giá trị kết quả còn thủ tục thì không.Vì vậy khi nói đến một Hàm thì điều quan trọng chúng ta cần quan tâm là nó trả về cho ta cái gì .
Để định nghĩa một Hàm mới dùng cú pháp sau :
[Private/Public] Function tên hàm (tham số AS kiểu ...) As
.....
Tên hàm =Giá trị trả về
End Function
4.1.1.8.HẰNG(Constant)
Trong một chương trình có một số gía trị mà ta dùng không đổi trong suốt quá trình chương trình thực hiện .Các giá trị naỳ thường được định nghĩa thành các hằng (Contstant)
Cách khai báo hằng trong chương trình .
[Public/Private] Const[As kiểu ]=
ví dụ Public const so=5
4.1.2.Hệ quản trị cơ sở dữ liệu Microsoft Access
4.1.2.1.Giới thiệu chung về Access
Microsft Access đã trở thành phần mềm CSDL liên tục phát triển , thể hiện bước ngoặt quan trọng về sự dễ dàng trong việc sử dụng , nhiều người đã bị cuốn hút vào việc tạo các CSDL hữu ích của riêng mình và các ứng dụng CSDL hoàn chỉnh.
Hiện nay , Microsoft Acces đã trở thành một sản phẩm phần mềm mạnh , dễ dàng, đơn giản khi làm việc .Chúng ta hãy xem xét lợi ích của việc sử dụng phần mềm phát triển ứng dụng CSDL như Microsoft Access
Hệ CSDL:Theo định nghĩa đơn giản nhất , một CSDL là một tập hợp các bản ghi và tệp được tổ chức cho một mục đích cụ thể .
Hầu hết các hệ quản trị CSDL hiện nay đều lưu giữ và xử lý thông tin bằng mô hình quản trị CSDL quan hệ .Từ quan hệ bắt nguồn từ thực tế là mỗi bản ghi trong CSDL chứa các thông tin liên quan đến một chủ đề duy nhất .Ngoài ra , các dữ liệu của hai nhóm thông tin có thể ghép lại thành một chủ thể duy nhất dựa trên các giá trị dữ liệu quan hệ .Trong một hệ quản trị CSDL tất cả các dữ liệu ấy được quản lý theo các bảng , bảng lưu trữ thông tin về một chủ thể . Thậm chí khi sử dụng một trong những phương tiện của một hệ CSDL để rút ra thông tin từ một bảng hay nhiều bảng khác(thường được gọi là truy vấn ) dựa trên kết quả của một truy vấn khác
Các khả năng của một hệ CSDL là cho chúng tâ quyền kiểm soát hoàn toàn bằng cách định nghĩa dữ liệu , làm việc với dữ liệu và chia sẻ dữ liệu với người khác .
Một hệ CSDL có 3 khả năng chính :định nghĩa dữ liệu , xử lý dữ liệu và kiểm soát dữ liệu .
Toàn bộ chức năng trên nằm trên tính năng mạnh mẽ của Microsoft Access
a.Định nghĩa dữ liệu :
Xác định CSDL nào sẽ được lưu giữ trong CSDL loại của dữ liệu và mối quan hệ giữa các dữ liệu .
b.Xử lý dữ liệu :
nhiều cách xử lý dữ liệu là các bảng, các truy vấn , các mẫu biểu ,các báo cáo,các macro và module của Access.
4.1.2.2.Bảng(Table)
Bảng là một đối tượng được định nghĩa và được dùng để lưu dữ liệu .Mỗi bảng chứa các thông tin về một chủ thể xác định .Mỗi bảng gồm các trường (field) hay còn gọi là các cột (column) lưu trữ các loại dữ liệu khác nhau và các bản ghi(record) hay còn gọi là các hàng (Row) lưu trữ tất cả các thông tin về một cá thể xác định của một chủ thể đó.Có thể nói một khoá cơ bản (Primary)(gồm một hoặc nhiều trường hợp) và một hoặc nhiều chỉ mục (index) cho mỗi bảng để giúp tăng tốc độ truy cập dữ liệu .
a.Đặt khoá chính(Primary Key)
Mỗi bảng trong một CSDL quan hệ đều phải có một khoá cơ bản và xác định khoá cơ bản trong Microsoft Access tuỳ theo từng tính chất quan trọng của bảng hay từng CSDL mà ta chon khoá chính cho phù phợp:Mở bảng ở chế độ Design, chọn một hoặc nhiều trường muốn định nghĩa là khoá .Dùng chuột bấm vào nút Primary Key trên thanh công cụ .
b.Định nghĩa khoá trên quan hệ
Sau khi định nghĩa khoá xong hai hay nhiều bảng có quan hệ thì nên báo cho Access biết cách thức quan hệ giữa các bảng .Nếu làm như vậy , Access sẽ biết liên kết tất cả các bảng mỗi khi sử dụng chúng sau này trong các truy vấn , biểu mẫu hay báo cáo
Các tính năng tiên tiến của Microsoft Access:
+ Phương tiện Table wizard giúp định nghĩa các bảng
+ Phép đinh nghĩa đồ hoạ các mối quan hệ
+ Các mặt nạ nhập liệu cho trường để tự động thêm các ký hiệu định dạng vào các dữ liệu .
+ Có khả năng lưu giữ các trường Null cũng như các trường trống trong CSDL
+ Các quy tắc hợp lệ của bảng có khả năng kiểm tra tính hợp lệ của một trường dựa trên các trường khác.
+Công cụ riêng để tạo chỉ mục
Các tính năng tiên tiến của truy vấn trong Access
+ Phương thức tối ưu truy vấn “Rushmore”(Từ Foxpro)
+ Phương tiện Query Wizard giúp thiết kế các truy vấn
+ Truy xuất các thuộc tính cột :quy các định dạng các vị trí thập phân
+ Có khả năng lưu giữ dữ liệu kiểu trình bày bảng dữ liệu hoặc truy vấn
+ Các công cụ tạo truy vấn (Query build) khả dụng trên nhiều vùng.
+ Khả năng định nghĩa các kết nối khả dụng được cải thiện .
+ Hỗ trợ các truy vấn Union và các truy vấn thứ cấp (trong SQL)
+ Cửa sổ soạn thảo SQL được cải thiện .
+ Tăng số trường có thể cập nhật được trong một truy vấn kết nối
4.1.2.3.Mẫu Biểu(Form)
Mẫu biểu là đối tượng được thiết kế chủ yếu dùng đề nhập hoặc hiển thị dữ liệu hoặc điều kiện việc thực hiện một ứng dụng .Các mẫu biểu được dùng để trình bày hoàn toàn theo ý muốn các dữ liệu được truy xuất từ các bảng hoặc các truy vấn
4.1.2.4.Báo cáo
Báo cáo là một đối tượng được thiết kế để định quy cách , tính toán , in và tổng hợp các dữ liệu được chọn
4.2.THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH
4.2.1.Một số Modul chính của chương trình
4.2.2.Một số Form chính của chương trình
Form đăng nhập: Khi bắt đầu vào chương trình người sử dụng phải nhập chính xác tên và mật mã đăng nhập (có phân biệt chữ hoa chữ thường) .
Form Menu Chính:Cho người sử dụng nhìn một cách tổng quá nhất về giao diện của chương trình quản lý sinh viên .Hệ thống menu này được phân thành 6 menu chính là :Quản lý hệ thống , Quản lý danh mục ,Quản lý kho hàng , Quản lý bán hàng , Quản lý thu chi , Thống kê báo cáo. Form này được thiết kế giao diện dưới đây:
Form Lập Hoá đơn bán hàng :Form này được thiết kế nhằm giúp người bán hàng có thể thuận tiện việc lập hoá đơn bán hàng cho khách hàng , đồng thời lưu trữ đầy đủ các thông tin trong quá trình giao dịch bán thuốc với khách hàng nếu khách hàng không thanh toán thì hệ thống sẽ bắt nhập vào hạn trả .Form này được thiết kế như hình dưới đây:
Form Damh Mục Khách hàng : Cập nhật chi tiết về khách hàng giao dịch mua bán với cửa hàng ,Trong Form này người sử dụng có thể thao tác luân chuyển giữa hai chế độ như là Xử lý danh mục (nhập , sửa , xoá ) và Tìm kiếm thông tin về khách hàng với từ khóa nhập từ Textbox.Form này được thiết kế như sau :
Form Nhà cung cấp :Tương tự như form cập nhật Danh mục khách hàng
Form Phiếu nhập Hàng :Giúp người sử dụng có thể kiểm tra những mặt hàng đã nhập của cửa hàng ,đồng thời có thể nhập mới và in trức tiếp ra các hoá đơn đã nhập của cửa hàng .
Form Danh mục Thuốc :Liệt kê chi tiết các thông tin chi tiết về các loại Thuốc được sử dụng trong cửa hàng .Người sử dụng cũng có thể thao tác trực tiếp như :Nhập sửa xoá , Tìm kiếm hay in danh sách các thuốc .
4.2.2.Một số Code chính sử dụng trong chương trình
Code của Modul chính
'Option Explicit
Public list As ListItem
Public l As Columns
Public rs As New ADODB.Recordset
Public str As String
Public strSQL As String
Global Cn As New ADODB.Connection
'Public rs As New ADODB.Recordset
Public Login As Boolean
Public Users_TenDN As String
Public Users_QuyenTC As Integer
Public Users_HoTen As String
Public Users_MaNV As String
Public strlever As String
Public strTK As String
Public flag_Update As Integer ' 1: Them moi; 2: Sua
' Ket noi CSDL
Sub ConnectDB()
On Error Resume Next
Dim strDB As String
strDB = App.Path & "\database\Thuoc.mdb"
Cn.CursorLocation = adUseClient
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDB & ";Persist Security Info=False"
Cn.Open
If Err 0 Then
Call errShow("Lçi! Kh«ng kÕt nèi ®îc víi CSDL", Err.Description)
End If
End Sub
Sub Main()
frmWelCome.Show 1
'frmSplashscr.Show 1
ConnectDB
' frmmain.Show 1
frmlogin.Show 1
End Sub
' Mo bang va truy xuat DL
Public Function getRecordSet(SQL_tem As String) As ADODB.Recordset
On Error Resume Next
If getRecordSet Is Nothing Then Set getRecordSet = New ADODB.Recordset
If getRecordSet.State = adStateOpen Then getRecordSet.Close
getRecordSet.Open SQL_tem, Cn, adOpenDynamic, adLockOptimistic, adCmdText
If Err.Number 0 Then
Call errShow("Lçi! Kh«ng truy xuÊt ®îc d÷ liÖu!", Err.Description)
End If
End Function
'Update du lieu
Public Function execSQL(SQL_tem As String)
On Error Resume Next
Cn.Execute (SQL_tem)
If Err.Number 0 Then
Call errShow("Lçi! Kh«ng cËp nhËt ®îc d÷ liÖu!", Err.Description)
End If
End Function
Public Function getSingleValue(strSQL As String) As String
Dim RsTemp As New ADODB.Recordset
getSingleValue = ""
RsTemp.Open strSQL, Cn, adOpenForwardOnly
If Not RsTemp.EOF Then
If Not IsNull(RsTemp.Fields(0).Value) Then
getSingleValue = RsTemp.Fields(0).Value
End If
End If
RsTemp.Close
End Function
' Hien thi thong bao loi
Sub errShow(errUser, errSQL)
MsgBox errUser & ". Chi tiet loi: " & errSQL, vbExclamation, "Thong bao"
End
End Sub
Function Gia_tri(strTen_cot As String, strTen_bang As String, strDieu_kien As String) As String
Dim sql As String
Dim rsGT As ADODB.Recordset
strSQL = "SELECT " & strTen_cot & " FROM " & strTen_bang & " WHERE " & strDieu_kien
Set rsGT = getRecordSet(strSQL)
Gia_tri = rsGT(0)
End Function
Public Sub CloseDB()
On Error GoTo Loi
Cn.Close
Loi:
Set Cn = Nothing
End sub.
Code Menu chinh của chương trình :
Dim PreWith As Long, PreHeight As Long
Dim mitem
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)
Dim i As Integer
For i = 0 To 6
CmdMenu(i).BackColor = &HC0C0FF
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
End If
End Sub
Private Sub Form_Load()
PreWith = Me.Width
PreHeight = Me.Height
CmdMenu_Click (0)
nextx:
End Sub
Private Sub Cmdtho¸t_Click(Index As Integer)
End
End Sub
Private Sub ListFunct_DblClick()
Dim rs As Recordset
Set rs = New Recordset
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 cha ®îc cµi ®Æt")
End Select
Exit Sub
End If
If CmdMenu(1).BackColor = &H80000018 Then
Select Case ListFunct.SelectedItem.Index
Case 1
frmtracuudauthuoc.Show 1
Case 2
frmPhieuNhap.Show 1
Case 3
frmthuochethan.Show 1
End Select
Exit Sub
End If
If CmdMenu(0).BackColor = &H80000018 Then
Select Case ListFunct.SelectedItem.Key
Case "Danh môc thuèc"
frmDMThuoc.Show 1
Case "Danh môc nhãm thuèc"
frmdmnhomthuoc.Show 1
Case "Danh Môc nhµ cung cÊp"
frmDLNhaCC.Show 1
Case "Danh môc Kh¸ch Hµng"
frmdmkhachhang.Show 1
Case "§¬n vÞ tÝnh"
frmdvt.Show 1
Case "Nuíc s¶n xuÊt"
frmNuocsx.Show 1
End Select
Exit Sub
End If
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 cha ®îc cµi ®Æt")
Case "CÊp QuyÒn"
MsgBox ("Chøc n¨ng nµy cha ®îc cµi ®Æt")
Case "Thay ®æi mËt khÈu"
frmAdmin.Show 1
Case "Ngêi Sö Dông"
frmsd.Show 1
Case "Nhãm Sö Dông"
MsgBox ("Chøc n¨ng nµy cha ®îc cµi ®Æt")
Case "Bá KÕt Nèi CSDL"
mnudisconect_Click
Case "KÕt nèi CSDL"
mnuconect_Click
End Select
Exit Sub
End If
If CmdMenu(3).BackColor = &H80000018 Then
Select Case ListFunct.SelectedItem.Key
Case "LËp ho¸ ®¬n b¸n thuèc"
frmHDBanThuoc.Show 1
Case "Mîn tr¶ s¸ch"
End Select
Exit Sub
End If
If CmdMenu(4).BackColor = &H80000018 Then
Select Case ListFunct.SelectedItem.Key
Case "Thèng kª doanh thu"
frmbcdt.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 MDIForm_Load()
CmdMenu_Click (3)
Me.StatusBar1.Panels(2).Text = Users_HoTen
Me.tmrActive.Interval = 500
Me.tmrActive.Enabled = True
Private Sub mnhdsnv_Click()
frmnsd.Show 1
End Sub
Private Sub mnuconect_Click()
If Cn.State adStateOpen Then
ConnectDB
Frame2.Enabled = True
ListFunct.Enabled = True
CmdMenu(5).Visible = True
End If
End Sub
Private Sub mnudisconect_Click()
Dim Msg As String
Dim response
If Cn.State = adStateOpen Then
Msg = "Kh«ng kÕt nèi vµo CSDL?"
response = MsgBox(Msg, vbQuestion + vbOKCancel, "Th«ng b¸o")
If response = vbOK Then
Cn.Close
CmdMenu_Click 0
Frame2.Enabled = False
ListFunct.Enabled = False
End If
End If
End Sub
Private Sub mnuphieunhap_Click()
frm_PhieuNhapThuoc.Show 1
End Sub
Private Sub tmrActive_Timer()
Static nDot As Integer
nDot = nDot + 1
Me.StatusBar1.Panels(1).Text = Me.StatusBar1.Panels(1).Text & " * "
If nDot = 37 Then
Me.StatusBar1.Panels(1).Text = ""
nDot = 0
End If
End Sub
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Với chương trình Quản lý cửa hàng thuốc này sẽ giúp cho Cửa hàng thuốc Kim Anh dễ dàng quản lý các hoạt động kinh doanh một cách có hiệu quả, nắm bắt dược Tình hình nhập và bán Thuốc, thống kê được sức mua của khách hàng, biết được nhu cầu mua hàng của khách hàng, biết được loại thuốc nào hết hạn va số luợng còn ít để từ đó người quản lý đưa ra yêu cầu nhập thuốc kịp thời ,Giúp người dụng có thể tư vấn cho khách hàng một cách chính xác......
Tóm lại, chương trình Quản lý Cửa hàng thuốc đã được xây dựng một cách tương đối hoàn chỉnh, đáp ứng được nhiều nhu cầu truy vấn thông tin nhanh chóng và giải quyết được việc tổ chức cơ sở dữ liệu nhất quán, dễ dàng cho việc lưu trữ thông tin. Tuy nhiên vẫn còn một số nhược điểm và thiếu sót Em sẽ cố gắng hoàn thiện trong các phiên bản tới. Rất mong nhận được sự quan tâm và góp ý của quý Thầy Cô và các bạn.
HƯỚNG PHÁT TRIỂN
Chương trình Quản lý Cửa hàng Thuốc Kim Anh hiện được thiết kế để có thể sẵn sàng bổ sung thêm các chức năng còn thiếu. các chức năng quản lý mới đang và sẽ xảy ra trong tương lai như:
- Chức năng quản lý Thuốc theo hệ thống mã vạch
- Chương trình sẽ được sủ dụng trên mạng để có thể bán hàng trực tuyến , và có thể giao thuốc đến tận nơi khách hàng yêu cầu
- Định hướng thương mại điện tử khi Công ty xây dựng website bán hàng qua mạng.
- Quản lý Nhân sự trong cửa hàng (như tính tiền lương, chấm công cho Nhân viên qua hhệ thống thẻ từ).
Trong tương lai chương trình Quản lý Cửa hàng này sau khi đã được bổ xung thêm các chức năng cần như trên thì sẽ có thể áp dụng cho các công Ty hay cửa hàng bán Thuốc lớn
Trong các phiên bản tới Em sẽ không ngừng nâng cấp chương trình Quản lý cửa hàng Thuốc này làm cho chương trình ngày càng được hoàn thiện hơn, đi vào thực tế hơn nữa, đáp ứng kịp thời nhu cầu ngày càng phát triển của Xã hội.
TÀI LIỆU THAM KHẢ0
1. Phân tích và thiết kế hệ thống thông tin
Nguyễn Văn Ba – NXB Đại Học Quốc Gia HN
2. Microsoft Visual Basic – Lập trình cơ sở dữ liệu 6.0
Nguyễn Thị Ngọc Mai – NXB Lao Động Xã Hội
3. Nhập môn cơ sỏ dữ liệu quan hệ
Lê Tiến Vương – NXB Thống Kê
MỤC LỤC
Các file đính kèm theo tài liệu này:
- 10294.doc