Báo cáo thực tập Cơ sở dữ liệu: Xây dựng phần mềm quản lí bán thuốc trình bày nội dung qua 4 chương: Đặc tả hệ thống; phân tích và cài đặt dữ liệu hệ thống; khai thác cơ sở dữ liệu; cài đặt ứng dụng,... Mời các bạn cùng tham khảo.
HỌC VIỆN KỸ THUẬT QN SỰ ĐÀO THỊ LAN ANH ĐỒN THỊ THANH VŨ THỊ TRANG NGUYỄN KHẮC HUYỀN CHÂU Khóa 21VB2 HỆ ĐẠI HỌC LIÊN THƠNG BÁO CÁO MƠN HỌC THỰC TẬP CƠ SỞ DỮ LIỆU CHUN NGÀNH CƠNG NGHỆ THƠNG TIN XÂY DỰNG PHẦN MỀM QUẢN LÍ BÁN THUỐC NĂM 2018 CHƯƠNG 1. ĐẶC TẢ HỆ THỐNG 1. Mục đích u cầu Hiện nay, tại các doanh nghiệp việc quản lý hàng hố, nhân viên, hàng xuất nhập hàng ngày…gặp nhiều khó khăn, chính vì vậy ý tưởng tạo lên một phần mềm để góp phần giải quyết vấn đề trên của mỗi người lập trình là khơng thể tránh khỏi 1.1 Mơ tả hệ thống 1.1.1 Cơ cấu tổ chức và sự phân cơng trách nhiệm 1.1.1.1. Bơ phân kho hang ̣ ̣ ̀ Nhâp hang ̣ ̀ Kiêm kê kho ̉ Xuât hang cho khac ́ ̀ ́ 1.1.1.2 Bô phân quan lý ̣ ̣ ̉ Lâp hoa đ ̣ ́ ơn bá Lập phiếu xuất kho Thanh toan v ́ ới khach hang ́ ̀ Lâp đ ̣ ơn hang mua ̀ Thanh toan v ́ ới nha cung câp ̀ ́ 1.2 Quy trình nghiệp vụ 1.2.1 Ban hang ́ ̀ Khi co nhu câu mua hàng, nhân viên se t ́ ̀ ̃ vân cho khach hang nh ́ ́ ̀ ưng nhân viên ̃ phận quản lý se trao đôi thông tin v ̃ ̉ ơi khach hang đê lâp hóa đ ́ ́ ̀ ̉ ̣ ơn ban hang, đ ́ ̀ ơn hang đ ̀ ược lâp thanh 3 ban: ̣ ̀ ̉ 1 ban l ̉ ưu tai bô phân quan lý ̣ ̣ ̣ ̉ 1 ban đ ̉ ưa cho khach (khi đa thanh toan) ́ ̃ ́ 1 ban chuy ̉ ển sang cho bộ phận bán hàng đê xt hang ̉ ́ ̀ Sau khi khach thanh tốn, nhân viên bơ phân quan ly se g ́ ̣ ̣ ̉ ́ ̃ ửi phiêu xuât ́ ́ hang sang b ̀ ộ phận kho hàng. Nhân viên bộ phận kho se l ̃ ấy hang và bàn giao ̀ cho khach ́ Sau khi kiểm tra hàng xong khách hàng ghi xác nhận vào phiếu xuất kho để kho hàng lưu lại. Còn nhân viên kho hàng sẽ ký xác nhận vào hóa đơn bán của khách 1.2.2 Mua hang ̀ Khi co yêu câu mua hang t ́ ̀ ̀ ừ kho, nhân viên bô phân quan ly se lâp đ ̣ ̣ ̉ ́ ̃ ̣ ơn mua hang ̀ va g ̀ ửi tơi nha cung câp ́ ̀ ́ Nha cung câp s ̀ ́ ẽ theo đơn mua chuyên hang đên công ty, nhân viên kho hang se ̉ ̀ ́ ̀ ̃ tiêp nhân hang ́ ̣ ̀ 1.2.3 Quy tắc nghiệp vụ Hăng ngay, bô phân giao dich phai thông kê tinh hinh ban hang va thông bao v ̀ ̀ ̣ ̣ ̣ ̉ ́ ̀ ̀ ́ ̀ ̀ ́ ới ban quan ly ̉ ́ Thứ 7 hang tuân nhân viên kho hang se kiêm kê kho va nhân hang m ̀ ̀ ̀ ̃ ̉ ̀ ̣ ̀ ới. Cuôí thang bô phân quan ly se thanh toan cho nha cung câp ́ ̣ ̣ ̉ ́ ̃ ́ ̀ ́ 1.3 Lựa chọn giải pháp xây dựng hệ thống Thiết kế theo Winform 1.4 Đặc tả các chức năng cần xây dựng 1.4.1 Lập đơn bán hàng Đầu vào: Yêu cầu mua hàng Đầu ra: Hóa đơn bán hàng Nội dung xử lí: Xác nhận u cầu mua hàng của khách hàng và lập hóa đơn mua hàng 1.4.2 Lập đơn mua hàng Đầu vào: Phiếu u cầu Đầu ra: Đơn hàng mua Nội dung xử lý: Kiểm tra hàng tồn kho, lập đơn mua hàng gửi đến nhà cung cấp 1.4.3 Cập nhật giá mới Đầu vào: Đơn giá mua Đầu ra: Đơn giá bán mới Nội dung xử lý: Cập nhật đơn giá mới 1.4.4 Lập báo cáo trong ngày Đầu vào: Đơn hàng bán Đầu ra: Phiếu hàng bán Nội dung xử lý: Tổng hợp các đơn hàng bán trong ngày và lập ra báo cáo. 1.4.5 Lập phiếu giao hàng Đầu vào: Phiếu giao hàng Đầu ra: Phiếu xuất kho Nội dung xử lý: Kiểm tra phiếu giao hàng và gửi phiếu yêu cầu xuất kho đến kho hàng 1.4.6 Lập phiếu nhập kho Đầu vào: phiếu nhận hàng Đầu ra: phiếu nhập kho Nội dung xử lý: cập nhật hóa đơn mua. Nhận hàng từ nhà cung cấp và gửi lại phiếu nhập kho cho ban quản lý 1.4.7 Kiểm tra hàng Đầu vào: kiểm tra hàng tồn trong kho Đầu ra: + Nếu: hàng trong kho lớn hơn hoặc bằng hàng khách yêu cầu thì dừng kiểm tra hàng. + Nếu: hàng tồn kho nhỏ hơn hàng khách yêu cầu thì lập phiếu yêu cầu nhập hàng Nội dung xử lý: cập nhật hàng tồn trong kho và lên danh sách những mặt hàng cần nhập thêm, sau đó gửi u cầu nhập hàng 1.4.8 Nhập hàng Đầu vào: u cầu nhập hàng Đầu ra: phiếu u cầu mua nhập hàng Nội dung xử lý: gửi phiếu nhập hàng đến ban quản lý, ban quản lý xá nhận phiếu nhập hàng 1.5 Phân chia cơng việc a. Phân chia cơng cơng việc trong mục 1:Các chức năng Thêm sửa xóa Thuốc: Đồn Thị Thanh Thêm sửa xóa Hóa đơn xuất: Đào Thị Lan Anh Thêm sửa xóa Hóa đơn nhập: Nguyễn Khắc Huyền Châu Thêm sửa xóa Nhà phân phối, nhà sản xuất: Nguyễn Thị Trang b.Lên kế hoạch nội dung cơng việc ho mỗi cá nhân trong từng tuần Tuần 1,2,3,4,5:Làm báo cáo , từ tuần 6 cài đặt cơ sở dữ liệu theo chức năng mà từng cá nhân đảm nhiệm. Từng tuần sẽ tổng hợp và báo cáo! CHƯƠNG 2: PHÂN TÍCH VÀ CÀI ĐẶT DỮ LIỆU HỆ THỐNG 2.1 Mơ tả hệ thống dưới dạng mối quan hệ dữ liệu 2.1.1. Xác định kiểu thực thể, kiểu thuộc tính Thuoc (IDThuoc, MaThuoc, TenThuoc, TenNhom, NguonGoc, TenNSX, SoLuong, GiaBan, TenDVT, ThanhPhan, HamLuong, CongDung, PhanTacDung, CachDung, ChuY, HanSuDung, BaoQuan, DangBaoChe) NhomThuoc (MaNhom, TenNhom, GhiChu) NhaSanXuat (MaNSX, TenNSX, DiaChi, DienThoai, Fax, Email, GhiChu) DonViTinh (MaDVT, TenDVT) BenhNhan (IDBN, MaBN, HoTen, Tuoi, DiaChi, DienThoai) NhaPhanPhoi (MaNPP, TenNPP, DiaChi, DienThoai, Fax, Email, MaSoThue, GhiChu) HoaDonNhap (MaHDN, TenNPP, DiaChi, DienThoai, NguoiGiao, NguoiNhan, TenThuoc, SoLuongNhap, GiaNhap, TongTienThuoc, TongThue, TongTienHD, NgayViet, NgayNhap) HoaDonXuat (MaHDX, HoTen, Tuoi, DiaChi, DienThoai, TenThuoc, GiaBan, SoLuongXuat, Thue,DonVi, NgayLap, TongTienThuoc, TongThue, TongTienHD) 2.1.2. Xác định kiểu liên kết 2.2 Xây dựng mơ hình liên hết thực thể Ký hiệu sử dụng Bảng quan hệ (Table) Quan hệ (Relational) Mơ hình Hình 1: Mơ hình thực thể mở rộng 2.3 Vẽ mơ hình quan hệ Hình 2: Mơ hình quan hệ 2.5 Đặc tả các bảng 2.5.1 Bảng hóa đơn nhập – HoaDonNhap Tên trường Kiểu dữ liệu Diễn giải MaHDN Int Mã hóa đơn nhập MaNPP Int Mã nhà phân phối NguoiGiao Nvarchar(50) Người giao NguoiNhan Nvarchar(50) Người nhận TongTienThuoc Money Tổng tiền thuốc TongThue Float Tổng thuế TongTienHD Money Tổng tiền hóa đơn NgayViet Datetime Ngày viết hóa đơn NgayNhap Datetime Ngày nhập hàng ST T Khóa X Khóa ngoại X Bảng : Bảng dữ liệu hóa đơn nhập 2.5.2 Bảng nhà phân phối NhaPhanPhoi STT Khóa Khóa ngoại Tên trường Kiểu dữ liệu Diễn giải MaNPP Int Mã nhà phân phối TenNPP Nvarchar(100) Tên nhà phân phối DiaChi Nvarchar(200) Địa chỉ NPP DienThoai Varchar(100) Điện thoại NPP Fax Varchar(100) Fax Email Varchar(100) Email MaSoThue Varchar(100) Mã số thuế GhiChu Nvarchar(200) Ghi chú X Bảng : Bảng dữ liệu nhà phân phối 2.5.3 Bảng chi tiết hóa đơn nhập ChiTietHoaDonNhap X MaHDN Kiểu dữ Diễn giải liệu Int Mã chi tiết hóa đơn nhập Int Mã hóa đơn nhập X IDThuoc Int Số hiệu thuốc SoLuong Int Số lượng GiaNhap Money Giá nhập STT Khóa chính Khóa ngoại X Tên trường MaCTHDN Bảng : Bảng dữ liệu chi tiết hóa đơn nhập 2.5.4 Bảng đơn vị tính DonViTinh STT Khóa chính Khóa ngoại Tên trường X MaDVT Kiểu dữ Diễn giải liệu Int Mã đơn vị tính TenDVT Nvarchar(50) Tên đơn vị tính Bảng : Bảng dữ liệu đơn vị tính 2.5.5 Bảng thuốc Thuoc Kiểu dữ liệu Diễn giải IDThuoc Int Số hiệu của thuốc MaThuoc Nvarchar(100) Mã thuốc TenThuoc Nvarchar(50) Tên thuốc MaNhom int Mã nhóm thuốc NguonGoc Nvarchar(100) Nguồn gốc MaNSX Int Mã nhà sản xuất SoLuong Int Số lượng tồn GiaBan Money Giá bán MaDVT Int Mã đơn vị tính 10 ThanhPhan Nvarchar(500) Thành phần 11 HamLuong Nvarchar(500) Hàm lượng 12 CongDung Nvarchar(500) Công dụng 13 PhanTacDung Nvarchar(500) Phản tác dụng 14 CachDung Nvarchar(500) Cách dung 15 ChuY Nvarchar(500) Chú ý 16 HanSuDung Nvarchar(500) Hạn sử dụng 17 BaoQuan Nvarchar(500) Bảo quản 18 DangBaoChe Nvarchar(500) Dạng bào chế STT Khóa chính Khóa ngoại Tên trường X X X X Bảng : Bảng dữ liệu thuốc 2.5.6 Bảng nhà sản xuất NhaSanXuat STT Khóa X 10 Khóa ngoại Tên trường Kiểu dữ liệu Diễn giải MaNSX TenNSX DiaChi DienThoai Mã nhà sản xuất Tên nhà sản xuất Địa chỉ Điện thoại Int Nvarchar(100) Nvarchar(200) Varchar(100) WHERE MaNSX=@MaNSX ); sử dụng hàm hiển thị danh sách thuốc thuộc nhà sản xuất select * from fn_DanhSachThuoc('1') 3. Tạo function đếm số hóa đơn nhập theo Người giao (tên Người giao là tham số) CREATE FUNCTION fn_DemSoHoaDonNhap(@NguoiGiao nvarchar(30)) RETURNS int AS BEGIN DECLARE @ret int; SELECT @ret = count(*) FROM HoaDonNhap WHERE NguoiGiao=@NguoiGiao IF (@ret IS NULL) SET @ret = 0; RETURN @ret; END Sử dụng hàm đếm số hóa đơn nhập theo người giao(với tên người giao là Hùng) select dbo.fn_DemSoHoaDonNhap ('Hùng') 4. Xóa hàm đếm số hóa đơn nhập theo Người Giao đã tạo trước đó 31 Drop function dbo.fn_DemSoHoaDonNhap 5. Tạo thủ tục trả về số lượng Thuốc theo nhóm thuốc CREATE PROCEDURE udsDemThuoc @MaNhom varchar(20), @SoLuong int output AS BEGIN SELECT @SoLuong = COUNT(*) FROM Thuoc WHERE MaNhom=@MaNhom END sử dụng thủ tục DECLARE @SoLuong int EXEC udsDemThuoc'1', @SoLuong out print @SoLuong 6. Tạo procedure cho câu INSERT để thêm Nhà phân phối vào bảng CREATE PROCEDURE udsThemNhaPhanPhoi @TenNPP nvarchar(50), @DiaChi nvarchar(200), 32 @DienThoai varchar(100), @Fax varchar(100), @Email varchar(100), @MaSoThue varchar(100), @GhiChu nvarchar(200) AS BEGIN INSERT INTO NhaPhanPhoi(TenNPP, DiaChi, DienThoai, Fax, Email, MaSoThue, GhiChu) VALUES(@TenNPP,@DiaChi,@DienThoai,@Fax,@Email,@MaSoThue,@GhiChu) END drop procedure udsThemNhaPhanPhoi gọi thủ tục thêm Nhà phân phối EXEC udsThemNhaPhanPhoi N'Công ty cổ phần dược phẩm TW 1', N'56 Cầu Giấy Hà nội', '0989898789','12359231','duocpham@gmail.com','3214564','' 7. Xóa thủ tục thêm nhà phân phối đã tạo trước đó Drop procedure udsThemNhaPhanPhoi 33 8. Tạo procedure cho câu INSERT để thêm Hóa đơn nhập vào bảng CREATE PROCEDURE ThemHoaDonNhap @MaNPP nvarchar(50), @NguoiGiao nvarchar(200), @NguoiNhan varchar(100), @TongTienThuoc varchar(100), @TongThue varchar(100), @TongTienHD varchar(100), @NgayNhap nvarchar(200), @NgayViet nvarchar(200) AS BEGIN INSERT INTO HoaDonNhap(MaNPP, NguoiGiao, NguoiNhan, TongTienThuoc, TongThue, TongTienHD, NgayNhap, NgayViet) VALUES(@MaNPP,@NguoiGiao,@NguoiNhan,@TongTienThuoc,@TongThue,@Ton gTienHD,@NgayNhap,@NgayViet) END gọi thủ tục thêm Hóa đơn nhập EXEC ThemHoaDonNhap 3,N'Hòa','Mai',620000,0.8,630000,'03/04/2018','' 34 9. Tạo trigger trên bảng nhà phân phối cho sự kiện insert, trigger thực hiện thơng báo mã nhà phân phối vừa thêm create trigger THEMNPP on NHAPHANPHOI for insert as declare @MaNPP nchar(10) begin select @MaNPP=MaNPP from INSERTED print N'Mã nhà phân phối vừa thêm là '+@MaNPP end 10. Xóa trigger trên bảng nhà phân phối cho sự kiện insert vừa tạo Drop trigger THEMNPP CHƯƠNG 4: CÀI ĐẶT ỨNG DỤNG 4.1 Lưa chọn ngơn ngữ cài đặt Trong chương trình sử dụng: 35 Visual stadio bản 2015 SQL server bản 2012 Dev express bản 2013 Ngơn ngữ lập trình C# 4.1.1. MS SQL 2012 Nền tảng cho các nhiệm vụ then chốt SQL Server 2012 cho phép các tổ chức có thể chạy hầu hết các ứng dụng phức tạp của họ trên một nền tảng an tồn, tin cậy và có khả năng mở rộng, bên cạnh đó còn giảm được sự phức tạp trong việc quản lý sở hạ tầng dữ liệu. SQL Server 2008 cung cấp một nền tảng tin cậy và an tồn bằng cách bảo đảm những thơng tin có giá trị trong các ứng dụng đang tồn tại và nâng cao khả năng sẵn có của dữ liệu. SQL Server 2012 giới thiệu một cơ chế quản lý cách tân dựa trên chính sách, cơ chế này cho phép các chính sách có thể được định nghĩa quản trị tự động cho các thực thể máy chủ trên một hoặc nhiều máy chủ. Thêm vào đó, SQL Server 2012 cho phép thi hành truy vấn dự báo với một nền tảng tối ưu Sự phát triển động SQL Server 2012 cùng với .NET Framework đã giảm được sự phức tạp trong việc phát triển các ứng dụng mới. ADO.NET Entity Framework cho phép các chuyên gia phát triển phần mềm có thể nâng cao năng suất bằng làm việc với các thực thể dữ liệu logic đáp ứng được các u cầu của doanh nghiệp thay vì lập trình trực tiếp với các bảng và cột. Các mở rộng của ngơn ngữ truy vấn tích hợp (LINQ) mới trong .NET Framework đã cách mạng hóa cách các chun gia phát triển truy vấn dữ liệu bằng việc mở rộng Visual C#® và Visual Basic® .NET để hỗ trợ cú pháp truy vấn giống SQL vốn đã có. Hỗ trợ cho các hệ thống kết nối cho phép chun gia phát triển xây dựng các ứng dụng cho phép người dùng mang dữ liệu cùng với ứng dụng này vào các thiết bị và sau đó đồng bộ dữ liệu của chúng với máy chủ trung tâm 4.1.2. C#.Net C# là một ngơn ngữ lập trình ứng dụng, ngơn ngữ biên dịch, ngơn ngữ đa năng phát triển hãng Microsoft, phần khởi đầu cho kế hoạch NET Microsoft phát triển C# dựa trên C, C++ và Java. C# được miêu tả là ngơn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java 36 Ngơn ngữ lập trình C# được đánh giá là dễ học và kết hợp được nhiều ưu điểm của các ngơn ngữ lập trình hướng đối tượng Java và C++. Do đó ngơn ngữ C# đựơc sử dụng rộng rãi nhất. C# có thể được viết với bất kỳ trình soạn thảo văn bản nào như Notepad của Windows, sau đó biên dịch với trình biên dịch dòng lệnh của C#, csc.exe ln đi kèm với .Net framework 4.2 Kiến trúc menu hệ thống 4.3 Giao diện các chức năng Đầu tiên, khi chạy phần mềm, form đăng nhập sẽ hiện lên (hình 16). Muốn truy cập vào phần mềm người dùng sẽ phải đăng nhập 37 Hình 3: Giao diện đăng nhập vào hệ thống Khi đăng nhập thành cơng, giao diện chính của phần mềm sẽ hiện lên (hình 3). Trong giao diện chính sẽ có 4 mục là: Hệ thống, Danh mục, Hóa đơn và Đối tác Hình 4: Giao diện chính của phần mềm quản lý Trong mục “hệ thống” có mục con đó là “Người dùng” (hình 4). “Người dùng” là quản lý những tài khoản người dùng dùng để đăng nhập vào trong phần đăng nhập vào phần mềm 38 Hình 5: Giao diện hệ thống, người dùng 39 Tiếp đến khi người dùng bấm vào phần “danh mục”, thanh menu con bên trái màn hình sẽ hiện lên các phần “nhóm thuốc” , “thuốc”, “đơn vị tính”. Khi bấm vào “thuốc” màn hình hiển thị bên phải sẽ hiển thị lên tất cả các dữ liệu thuốc. Bên trên bảng dữ liệu có các nút “Thêm” “Xóa” để người dùng dễ dàng thêm hoặc xóa dữ liệu Hoặc khi ta nháy đúp chuột trái vào 1 dòng dữ liệu bất kỳ thì 1 thơng tin của dữ liệu hiển thị lên form để người dùng có thể sửa dữ liệu (hình 6) Hình 6: Giao diện danh mục thuốc 40 Tương tự, khi bấm vào “Nhóm thuốc”, dữ liệu nhóm thuốc sẽ hiện lên, người dùng có thể thêm nhóm thuốc mới, sửa thơng tin đang có hoặc xóa 1 nhóm nào đó (hình 7) Hình 7: Giao diện danh mục nhóm thuốc 41 Danh mục đơn vị tính, chứa các kiểu đơn vị của thuốc (hình 8) Hình 8: Giao diện danh mục đơn vị tính Khi bấm sang mục “Hóa đơn” người dùng sẽ xem được thơng tin các hóa đơn đã nhập, xuất và có thể tạo các hóa đơn mới (hình 9, 10) 42 Hình 9: Giao diện hóa đơn nhập Hình 10: Tạo một hóa đơn nhập mới 43 Còn lại là phần “đối tác” bao gồm mục các “nhà sản xuất” và các “nhà phân phối” sản phẩm Hình 10: Giao diện đối tác nhà phân phối 44 45 ... b.Lên kế hoạch nội dung cơng việc ho mỗi cá nhân trong từng tuần Tuần 1,2,3,4,5:Làm báo cáo , từ tuần 6 cài đặt cơ sở dữ liệu theo chức năng mà từng cá nhân đảm nhiệm. Từng tuần sẽ tổng hợp và báo cáo! CHƯƠNG 2: PHÂN TÍCH VÀ CÀI ĐẶT DỮ LIỆU HỆ THỐNG... Đầu ra: Đơn giá bán mới Nội dung xử lý: Cập nhật đơn giá mới 1.4.4 Lập báo cáo trong ngày Đầu vào: Đơn hàng bán Đầu ra: Phiếu hàng bán Nội dung xử lý: Tổng hợp các đơn hàng bán trong ngày và lập ra báo cáo. ... Lựa chọn giải pháp xây dựng hệ thống Thiết kế theo Winform 1.4 Đặc tả các chức năng cần xây dựng 1.4.1 Lập đơn bán hàng Đầu vào: Yêu cầu mua hàng Đầu ra: Hóa đơn bán hàng Nội dung xử lí: Xác nhận u cầu mua hàng của khách hàng và lập hóa đơn