Chuyên đề Xây dựng chương trình quản lý cửa hàng thuốc Kim Anh

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ừ).

doc77 trang | Chia sẻ: aloso | Lượt xem: 1672 | Lượt tải: 0download
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 ch­a ®­î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 ch­a ®­îc cµi ®Æt") Case "CÊp QuyÒn" MsgBox ("Chøc n¨ng nµy ch­a ®­î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 ch­a ®­î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:

  • doc10294.doc