Tầm quantrọng của việc quản lý doanh nghiệp Minilab của nhóm chúng em có rất nhiều cácchức năng như: quản lý doanh mục, đặt hàng, bán hàng, các dịch vụ tiện ích khácnữa tại quán Minilab,
KHẢO SÁT HIỆN TRẠNG VÀ XÁC LẬP DỰ ÁN
Mô tả bài toán
1.1.1 Nhiệm vụ cơ bản của hệ thống
- Hệ thống quản lý bán hàng của cửa hàng Minilab giúp cho người quản lý cửa hàng có thể kiểm soát một khối lượng lớn dữ liệu khách hàng, các sản phẩm ảnh, vật liệu, và các loại hạng mục mà không tốn nhiều công sức để tìm kiếm
- Cửa hàng có thể tra cứu số lượng các mặt hàng nhập vào và bán ra từ đó tính toán và lên hóa đơn cho khách hàng đồng thời thống kê báo cáo doanh thu của cửa hàng.
- Lấy hàng từ nhà cung cấp bán cho khách hàng
- Nhận tiền thanh toán từ khách hàng
- Thanh toán tiền hàng cho nhà cung cấp Chương trình có thể thống kê lượng khách hàng đến, đi và sử dụng những loại dịch vụ nào.
1.1.2 Quy trình xử lý và quy tắc quản lý
- Quầy hàng của cửa hàng sẽ đưa ra quảng cáo, tạo các bài viết, nhằm đưa các sản phẩm , máy ảnh và dịch vụ tráng phim , in ảnh chất lượng đến gần với khách hàng Từ đó khách hàng biết đến sản phẩm, khi khách hàng đến mua hàng, quầy hàng vấn trao đổi và từ đó phát sinh đơn hàng sẽ gửi cho bộ phận kế toán tổng hợp
- Bộ phận kế toán tổng hợp sẽ lập hóa đơn, sau khi thanh toán, bộ phận sẽ chuyển phiếu xuất kho xuống cho bộ phận cung ứng vật tư
- Bộ phận cung ứng vật tư sẽ kiểm tra, nếu còn vật tư thì sẽ gửi vật tư cho khách, nếu không còn vật sẽ lên kế hoạch nhập hàng từ nhà cung cấp Bộ phận cung ứng vật tư sẽ kiểm tra tình trạng vật tư còn tồn đọng trong kho, xem loại vật tư nào còn nhiều thì sẽ chưa nhập thêm vật tư, loại vật tư nào nhanh bán hết còn tồn động trong kho số lượng ít hoặc không còn vật tư thì sẽ nhập thêm Trong đơn đặt hàng nhập vật tư phải có đầy đủ thông tin chi tiết về từng loại vật tư và số lượng nhập Mỗi lần nhập vật tư phải đầy đủ thông tin của nhà cung cấp, danh sách các vật tư, số lượng, ngày nhập về và phải lưu lại
- Nhà cung cấp nhận đơn đặt hàng, chuyển vật tư đến cho cửa hàng, quầy hàng sẽ kiểm tra chất lượng nếu đạt yêu cầu theo hợp đồng sẽ lập phiếu nhập kho và chuyển cho bộ phận cung ứng vật tư để thanh toán đơn đặt hàng cho nhà cung cấp (Hợp đồng được ký kết bởi bộ phận quản lý với nhà cung cấp)
- Bộ phận kế toán tổng hợp báo cáo, thống kê doanh thu mỗi ngày cũng như thông tin nhập hàng gửi lên ban quản lý để kiểm soát và quản lý cửa hàng
Công cụ thực hiện
SQL Server là một hệ quản trị cơ sở dữ liệu (DBMS) do Microsoft phát triển Đây là một phần quan trọng của nền tảng Microsoft SQL Server, cung cấp các dịch vụ quản lý cơ sở dữ liệu cho ứng dụng và hệ thống thông tin.
Dưới đây là một số điểm quan trọng về SQL Server:
- Ngôn ngữ truy vấn: SQL Server sử dụng ngôn ngữ truy vấn SQL (Structured
Query Language) để tương tác với cơ sở dữ liệu SQL cung cấp các lệnh như SELECT, INSERT, UPDATE, DELETE để thao tác dữ liệu.
- Quản lý dữ liệu: SQL Server hỗ trợ lưu trữ và quản lý dữ liệu trong các bảng Các bảng này có thể tương tác với nhau thông qua các quan hệ khóa ngoại.
- Bảo mật: SQL Server cung cấp các cơ chế bảo mật như quản lý người dùng và vai trò, giúp kiểm soát quyền truy cập đến cơ sở dữ liệu.
- Quản lý hiệu suất: SQL Server cung cấp các công cụ giúp theo dõi và tối ưu hóa hiệu suất của cơ sở dữ liệu, bao gồm lập chỉ mục, tối ưu hóa truy vấn và quản lý tài nguyên.
- Dự trữ và phục hồi: SQL Server hỗ trợ các phương pháp sao lưu và phục hồi dữ liệu để đảm bảo an toàn và khả dụng của thông tin.
SQL Server không chỉ là một hệ quản trị cơ sở dữ liệu mà còn cung cấp các tính năng tích hợp mở rộng khả năng của nó Những tính năng này bao gồm tích hợp với các ngôn ngữ lập trình khác như Python, Java và C#, cho phép dễ dàng truy cập và thao tác dữ liệu Ngoài ra, SQL Server cũng tích hợp chặt chẽ với hệ điều hành Windows, giúp quản trị và triển khai trở nên thuận tiện hơn Hơn nữa, hỗ trợ dịch vụ web cho phép các ứng dụng dựa trên web truy cập và quản lý dữ liệu một cách liền mạch, giúp mở rộng khả năng tương tác và tích hợp với các hệ thống khác.
- Khả năng mở rộng: SQL Server có khả năng mở rộng để đáp ứng nhu cầu ngày càng tăng về lưu trữ và xử lý dữ liệu thông qua các tính năng như cụm dữ liệu và dịch vụ đám mây.
SQL Server là một trong những hệ quản trị cơ sở dữ liệu phổ biến được sử dụng rộng rãi trong doanh nghiệp và tổ chức để quản lý và tối ưu hóa cơ sở dữ liệu của họ.
C# (hay C Sharp) là một ngôn ngữ lập trình đa mục đích được phát triển bởi Microsoft.
Dưới đây là một giới thiệu ngắn gọn về C#:
C# là ngôn ngữ lập trình hướng đối tượng, cho phép mô phỏng các thực thể trong thế giới thực trong ứng dụng thông qua các đối tượng Các đối tượng này sở hữu dữ liệu (thuộc tính) và hành vi (phương thức), giúp lập trình viên xây dựng và quản lý các ứng dụng theo cách linh hoạt, mô-đun và có khả năng tái sử dụng.
- Tính chất an toàn: C# được thiết kế với mục tiêu an toàn, giúp tránh được một số lỗi phổ biến như truy cập không an toàn vào bộ nhớ.
- Tích hợp mạnh mẽ với NET Framework: C# là một phần quan trọng của NET
Framework, nền tảng phần mềm của Microsoft Điều này giúp C# tận dụng các thư viện, khung phát triển và công cụ mạnh mẽ của NET.
- Đa nền tảng: Với sự ra đời của NET Core và sau này là NET 5 và NET 6, C# đã trở nên đa nền tảng, có thể chạy trên nhiều hệ điều hành như Windows, Linux và macOS.
- Hiệu suất cao: C# được tối ưu hóa để cung cấp hiệu suất tốt, đặc biệt là trong việc phát triển ứng dụng đòi hỏi tốc độ xử lý cao.
- Dễ học và đọc: Cú pháp của C# được thiết kế để dễ đọc và dễ học, giúp người phát triển nhanh chóng làm quen và xây dựng ứng dụng.
- Hỗ trợ đa dạng ứng dụng: C# có thể được sử dụng cho nhiều loại ứng dụng khác nhau, từ ứng dụng Windows đến ứng dụng web và di động.
- Hỗ trợ lập trình hàm: Ngoài lập trình hướng đối tượng, C# cũng hỗ trợ lập trình hàm, cho phép sử dụng các khái niệm như lambda expression và LINQ.
Microsoft liên tục cập nhật C# với các phiên bản mới, bổ sung các tính năng và cải tiến để duy trì sự hiện đại của ngôn ngữ và phù hợp với nhu cầu phát triển hiện nay.
C# là một ngôn ngữ mạnh mẽ và linh hoạt, được ưa chuộng trong cộng đồng phát triển phần mềm và đặc biệt là phổ biến trong việc xây dựng ứng dụng trên nền tảng Microsoft.
PHÂN TÍCH HỆ THỐNG
Phân tích chức năng của hệ thống
Các bảng dữ liệu quan hệ Từ mô hình quan hệ của hệ thống chuyển thành các bảng dữ liệu quan hệ như sau:
- LOẠI DỊCH VỤ (#Mã Loại, Tên loại)
- DỊCH VỤ (#Mã dịch vụ, Mã loại, Giá dịch vụ)
- HÓA ĐƠN (#Mã hóa đơn, Mã khách hàng, Ngày bán, Tổng tiền)
- CHI TIẾT HÓA ĐƠN (#Mã hóa đơn, Mã vật tư, Số lượng, Mã dịch vụ)
- VẬT TƯ (#Mã vật tư, Tên vật tư, Mã loại, Gía nhập, Gía bán, Số lượng tồn kho)
- LOẠI VẬT TƯ (#Mã loại, Tên loại)
- KHÁCH HÀNG (#Mã khách hàng, Tên khách hàng, Địa chỉ, Số điện thoại)
- ĐƠN ĐẶT HÀNG (#Mã đơn đặt hàng, Nhà cung cấp, Ngày đặt)
- CHI TIẾT ĐƠN ĐẶT HÀNG (#Mã đơn đặt hàng, Mã vật tư, Số lượng)
- NHÀ CUNG CẤP (#Mã nhà cung cấp, Tên nhà cung cấp, Địa chỉ, Số điện thoại)
- PHIẾU CHI (#Mã phiếu chi, Mã đơn đặt hàng, Tổng tiền, Ngày nhập)
- CHI TIẾT PHIẾU CHI (#Mã phiếu chi, Gía bán, Giam giá)
2.1.1 Các hoạt động chính của hệ thống
Từ quy trình - quy tắc quản lý, ta phân thành các hoạt động chính của hệ thống như sau:
Bộ phận cung ứng vật tư sẽ kiểm tra tình trạng vật tư còn tồn đọng trong kho, xem loại vật tư nào còn nhiều thì sẽ chưa nhập thêm vật tư , loại vật tư nào nhanh bán hết còn tồn động trong kho số lượng ít hoặt không còn hàng thì sẽ nhập thêm Khi đơn vị cung cấp vật tư đến thì nhân viên kho sẽ kiểm tra, tiếp nhận vật tư, nhân viên kế toán sẽ thanh toán với đơn vị cung cấp hàng và lưu lại đơn đặt hang và phiếu chi
2 Tiếp nhận đơn đặt hang và yêu cầu từ khách hàng và bán vật tư và cung cấp dịch vụ Khi khách hàng trực tiếp đến mua vật tư đặt hàng yêu cầu dịch vụ qua số điện thoại, quầy hàng sẽ lưu thông tin khách hàng, sản phẩm đặt hàng và dịch vụ khách hang yêu cầu vào phiếu mua hàng rồi chuyển cho bộ phận kế toán lập hóa đơn, tiến hành thanh toán đơn hàng cho khách hàng Sau đó nhân viên sẽ chuyển phiếu xuất kho xuống kho hàng cho bộ phận cung ứng vật tư
3 Lưu đơn đặt hàng, phiếu chi và hóa đơn bán hàng
Bộ phận kế toán tổng hợp lưu đơn đặt hàng, phiếu chi và hóa đơn khách hàng trong quá trình mua bán vật tư và cung cấp dịch vụ
4 Tính toán tiền nhập hàng, tiền bán hàng
Cuối mỗi ngày, bộ phận kế toán tổng hợp sẽ tổng hợp hóa đơn bán hàng trong ngày để tính toán tiền bán hàng trong ngày
Cuối mỗi tháng, bộ phận kế toán tổng hợp sẽ tổng hợp hóa đơn bán hàng trong tháng để tính toán tiền bán hàng trong tháng
5 Theo dõi tình trạng của vật tư trong kho
Vào cuối tháng, nhân viên kho sẽ kiểm kê các mặt hàng còn tồn đọng lại trong kho
6 In báo cáo hàng ngày
Cuối mỗi ngày, bộ phận kế toán tổng hợp sẽ lập báo cáo về tình trạng bán hàng trong ngày hôm đó, gồm các chi tiết về những mặt hàng bán chạy, tổng tiền hàng hóa bán được trong ngày hôm đó và gửi báo cáo cho ban giám đốc
2.1.2 Các chức năng chính của hệ thống
1 Nhập hàng Kiểm tra hàng nhập, nếu hàng đủ tiêu chuẩn sẽ lập phiếu nhập và yêu cầu nhập hàng vào kho sau đó lập hóa đơn nhập hàng, thanh toán tiền hàng
2 Tiếp nhận đơn đặt hàng từ khách hàng và bán hàng
3 Lưu hoá đơn nhập hàng, hoá đơn bán hàng bộ phận kế toán tổng hợp lưu hóa đơn nhập vật tư, bán vật tư trong quá trình mua bán hàng hóa
4 Tính toán tiền bán hàng và cung cấp dịch vụ cho khách hàng Cuối mỗi ngày, bộ phận kế toán sẽ tổng hợp hóa đơn bán hàng trong ngày để tính toán tiền bán hàng trong ngày.
5 Khi khách hàng trực tiếp đến mua hàng hoặc đặt hàng qua số điện thoại, quầy hàng sẽ lưu thông tin khách hàng, sản phẩm đặt hàng và dịch vụ khách hàng yêu cầu vào phiếu mua hàng rồi chuyển cho bộ phận kế toán tổng hợp lập hóa đơn, tiến hành thanh toán đơn hàng cho khách hàng Sau đó quầy hàng sẽ chuyển phiếu xuất kho xuống kho hàng cho bộ phận cung ứng vật tư
Biểu đồ phân cấp chức năng
Hình 2.1 Sơ đồ phân cấp chức năng
3.1.4 Khởi tạo bảng Loại Vật Tư
STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải
1 X MaLoaiVatTu Varchar(50) Mã loại vật tư
Số Tên Cột khóa ngoài Quan hệ với bảng
Câu truy vấn để tạo bảng
3.1.5 Khởi tạo bảng Dịch Vụ
STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải
1 X MaDichVu Varchar(50) Mã Dịch Vụ
2 TenDichVu Varchar(50) Tên Dịch Vụ
Số Tên Cột khóa ngoài Quan hệ với bảng
Câu truy vấn để tạo bảng
FOREIGN KEY (MaLoai REFERENCES) LoaiDichVu(MaLoai)
3.1.6 Khởi tạo bảng Khách Hàng
STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải
Số Tên Cột khóa ngoài Quan hệ với bảng
Câu truy vấn để tạo bảng
3.1.7 Khởi tạo bảng Hóa Đơn
STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải
1 X MaHoaDon Varchar(50) Mã Hóa Đơn
2 MaKhachHang Varchar(50) Mã Khách Hàng
Số Tên Cột khóa ngoài Quan hệ với bảng
Câu truy vấn để tạo bảng
FOREIGN KEY (MaKhachHang ) REFERENCES KhachHang( MaKhachHang )
3.1.8 Khởi tạo bảng Đơn Đặt Hàng
Câu truy vấn để tạo bảng
FOREIGN KEY ( MaNCC ) REFERENCES NhaCungCap( MaNCC )
STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải
1 X MaDonDatHang Varchar(50) Mã Đơn Hàng
2 MaNCC Varchar(50) Mã Nhà Cung Cấp
Số Tên Cột khóa ngoài Quan hệ với bảng
3.1.9 Khởi tạo bảng Dịch Vụ
Câu truy vấn để tạo bảng
FOREIGN KEY ( MaLoai ) REFERENCES LoaiDichVu( MaLoai )
STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải
1 X MaDichVu Varchar(50) Mã Dịch Vụ
2 TenDichVu Varchar(50) Tên Dịch Vụ
4 GiaDichVu float Giá Dịch Vụ
Số Tên Cột khóa ngoài Quan hệ với bảng
3.1.10.Khởi tạo bảng Phiếu Chi
STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải
1 X MaPhieuChi Varchar(50) Mã Phiếu Chi
2 MaDonDatHang Varchar(50) Mã Đơn Đặt Hàng
Số Tên Cột khóa ngoài Quan hệ với bảng
Câu truy vấn để tạo bảng
FOREIGN KEY (MaDonDatHang ) REFERENCES DonDatHang( MaDonDatHang )
3.1.11.Khởi tạo bảng Chi Tiết Hóa Đơn
STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải
1 X MaHoaDon Varchar(50) Mã Hóa Đơn
2 X MaVatTu Varchar(50) Mã Vật Tư
3 X MaDichVu Varchar(50) Mã Dịch Vụ
Số Tên Cột khóa ngoài Quan hệ với bảng
Câu truy vấn để tạo bảng
PRIMARY KEY (MaHoaDon, MaVatTu MaDichVu, ),
FOREIGN KEY (MaHoaDon)REFERENCES HoaDon(MaHoaDon),
FOREIGN KEY (MaVatTu)REFERENCES VatTu(MaVatTu),
FOREIGN KEY (MaDichVu)REFERENCES DichVu(MaDichVu)
3.1.12.Khởi tạo bảng Chi Tiết Đơn Đặt Hàng
Câu truy vấn để tạo bảng
STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải
1 X MaDonDatHang Varchar(50) Mã Đơn Đặt Hàng
2 X MaVatTu Varchar(50) Mã Vật Tư
FOREIGN KEY (MaDonDatHang) REFERENCES DonDatHang MaDonDatHang( ),
FOREIGN KEY (MaVatTu)REFERENCES VatTu(MaVatTu)
3.2.1 Một số câu lệnh truy vấn
Hinh 3.1 Bảng dữ liệu NhaCungCap
3.2.2 Cập Nhập – Thêm Thông Tin Khách Hàng Để cập nhập thông tin giữa SQL và C# ta sử dụng Stored Procedure:
Stored procedures là các chương trình hoặc tập hợp các câu lệnh SQL được lưu trữ trong cơ sở dữ liệu.
Chúng được lưu trữ một cách an toàn và có thể được gọi và thực thi từ xa bằng cách sử dụng các lệnh gọi thích hợp từ các ứng dụng hoặc các truy vấn SQL khác
Stored procedure thường chứa logic xử lý phức tạp hoặc thực hiện các nhiệm vụ cụ thể trong cơ sở dữ liệu như thêm, sửa đổi hoặc xóa dữ liệu Chúng được sử dụng để tối ưu hóa hiệu suất và bảo mật của cơ sở dữ liệu.
Khởi tạo một Stored procedures cho “Thêm Nhà Cung Cấp”
Khởi tạo một Stored procedures cho “Sửa Nhà Cung Cấp”
Khởi tạo một Stored procedures cho “Xóa Nhà Cung Cấp”
Khởi tạo một Stored procedures cho “Tìm Kiếm Nhà Cung Cấp”
Khởi tạo một Stored procedures cho “ Thêm Thông Tin Khách Hàng”
Khởi tạo một Stored procedures cho “Sửa Khách Hàng”
Khởi tạo một Stored procedures cho “Xóa Thông Tin Khách Hàng”
Khởi tạo một Stored procedures cho “Tìm Kiếm Khách Hàng"
3.2.3 Sự kiện và cấu trúc của các nút chức năng (thêm, sửa, xóa, tìm kiếm)
Những procedures trên có nhiệm vụ kết nối và lưu trữ cập nhập liên tục khi ta thao tác, làm việc trên chương trình C#
3.2.3.1 Tạo kết nối từ C# sang SQL
Ta dùng chức năng Connect Database, để kết nối và dẫn xuất dữ liệu ra bảng DataGridView trong winform C#
String connectString = @"Data Source=LAPTOP-7OALMS8B\
SQLEXPRESS;Initial Catalog=DoAn1Nhom3;IntegratedSecurity=True;Encryptse";
SqlCommand cmd; //thực hiện câu lệnh
DataTable dt; //đổ dữ liệu vào Để Load dữ liệu giữa SQL và WinForm C# ta cần khởi tạo hàm private LoadData private void LoadData()
// Tạo câu lệnh SQL để lấy dữ liệu từ bảng NCC string query = "SELECT * FROM NhaCungCap";
// Tạo đối tượng SqlCommand cmd = new SqlCommand(query, con);
// Tạo đối tượng SqlDataAdapter để đổ dữ liệu vào DataTable adt = new SqlDataAdapter(cmd); dt = new DataTable();
// Đổ dữ liệu vào DataTable adt.Fill(dt);
// Đặt DataTable làm nguồn dữ liệu cho DataGridView dataGridViewNCC.DataSource = dt; con.Close();
3.2.3.2 Cập Nhập Nhà Cung Cấp hình 3.2 Bảng Cập Nhập Nhà Cung Cấp
A Sự kiện nút Button “Thêm” private void ThemNCC_Click(object sender, EventArgs e)
// Tạo kết nối và command using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())
{ cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "SP_ThemNhaCungCap";
// Giả sử tên stored procedure là SP_ThemNhaCungCap
// Thêm tham số cmd.Parameters.Add("@MaNCC", SqlDbType.NVarChar).Value = txtMaNCC.Text; cmd.Parameters.Add("@TenNCC", SqlDbType.NVarChar).Value = txtTenNCC.Text; cmd.Parameters.Add("@DiaChi", SqlDbType.NVarChar).Value
= txtDiaChiNCC.Text; cmd.Parameters.Add("@SoDienThoai", SqlDbType.NVarChar).Value = txtSdtNCC.Text;
// Mở kết nối và thực hiện stored procedure conn.Open(); cmd.ExecuteNonQuery();
Ta kích hoạt được nút “Thêm”
B Sự kiện kích hoạt nút sửa của bảng Cập Nhập Nhà Cung Cấp private void SuaNCC_Click( object sender, EventArgs e)
( if string IsNullOrEmpty(txtMaNCC.Text) || txtMaNCC.Text == "Thêm mới không cần ID" ) {
MessageBox.Show( "Vui lòng điền ID nhà cung cấp." "Thông báo"); , txtMaNCC.Focus(); txtMaNCC.SelectAll();
{ using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())
The command object's connection property is set to the established connection The command type is specified as a stored procedure The command text is assigned the name of the stored procedure, which is "SP_SuaNhaCungCap." Parameters are added to the command, including "@MaNCC" for the supplier ID, "@TenNCC" for the supplier name, "@DiaChi" for the supplier address, and "@SoDienThoai" for the supplier phone number The values for these parameters are obtained from the corresponding text boxes on the user interface.
// Thực hiện kiểm tra thông tin trước khi mở kết nối
// Mở kết nối và thực hiện stored procedure conn.Open(); cmd.ExecuteNonQuery(); conn.Close();
MessageBox.Show( "Sửa nhà cung cấp thành công." "Thông báo" , , MessageBoxButtons.OK, MessageBoxIcon.Information);
Ta kích hoạt được nút Sửa:
C Sự kiện kích hoạt nút “Xóa” của bảng Cập Nhập Nhà Cung Cấp private void XoaNCC_Click( object sender, EventArgs e)
(txtMaNCC.Text == if "Thêm mới không cần ID" || string.IsNullOrEmpty(txtMaNCC.Text))
MessageBox.Show( "Vui lòng điền mã nhà cung cấp cần xóa." "Thông báo" , , MessageBoxButtons.OK, MessageBoxIcon.Information); txtMaNCC.Focus();
{ using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())
{ cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "SP_XoaNhaCungCap";
// Thêm tham số cho stored procedure cmd.Parameters.Add( "@MaNCC" , SqlDbType.NVarChar).Value = txtMaNCC.Text; conn.Open(); cmd.ExecuteNonQuery(); conn.Close();
MessageBox.Show( "Xóa nhà cung cấp thành công." "Thông báo" , , MessageBoxButtons.OK, MessageBoxIcon.Information);
Khi ta nhập tên Mã Nhà Cung Cấp và click vào nút “Xóa”
D Sự kiện kích hoạt nút Tìm Kiếm của bảng private void TimKiemNCC_Click( object sender, EventArgs e)
{ using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())
{ cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "SP_TimKiemMaNCC";
// Truyền giá trị tìm kiếm tổng quát từ người dùng cmd.Parameters.Add( "@MaNCC" , SqlDbType.NVarChar).Value = txtMaNCC.Text; conn.Open();
SqlDataAdapter adt = new SqlDataAdapter(cmd);
DataTable dt = new DataTable(); adt.Fill(dt); dataGridViewNCC.DataSource = dt;
CHƯƠNG 4 THIẾT KẾ GIAO DIỆN
Hình 4.1 Giao diện from Đăng Nhập
Mục tiêu: Đăng nhập thành công vào hệ thống với các nhóm quyền hạn khác nhau
- Người sử dụng: Quản lý và Nhân viên.
- Các bảng dữ liệu sử dụng: Dangnhap.
- Hướng dẫn sử dụng: Khi nhập tên tài khoản và mật khẩu và click vào “Đăng nhập”,quyền hạn sẽ được khởi tạo, câu lệnh truy vấn sẽ truy vấn đến bảng Dangnhap chứa username và password Kiểm tra thông tin đăng nhập và xác định nhóm quyền Tài khoản gồm 2 nhóm quyền chính là:
Admin/quản lý: có tất cả quyền như quản lý nhân viên, quản lý hàng hoá, quản lý danh mục hàng hoá, báo cáo thống kê, quản lý hoá đơn, xem thông tin tài khoản và đổi mật khẩu
- Kết quả: Đăng nhập thành công và có thể sử dụng hệ thống.
4.1.1 Sự kiện và chức năng nút Botton Đăng Nhập
4.1.2 Sự kiện chức năng nút thoát
4.1.3 Sự kiện đăng nhập thành công
4.1.4 Sự kiện đăng nhập thất bại khi sai tài khoản hoặc mật khẩu
4.2 Quản lý Nhà cung cấp
Mục tiêu: Hiển thị dữ liệu từ cơ sở dữ liệu lên lưới DataGridView và các thao tác cơ bản.
- Người sử dụng: Người quản lý và Nhân viên
- Các bảng dữ liệu sử dụng: Nhacungcap
- Hướng dẫn sử dụng: Người dùng click vào từng Button thực hiện các thao tác cơ bản như: thêm, xóa, sửa, lưu dữ liệu
- Kết quả: Các thao tác người dùng thực hiện được cập nhật vào cơ sở dữ liệu
Mục tiêu: Hiển thị dữ liệu từ cơ sở dữ liệu lên lưới DataGridView và các thao tác cơ bản.
- Người sử dụng: Người quản lý và Nhân viên
- Các bảng dữ liệu sử dụng: Khachhang
- Hướng dẫn sử dụng: Người dùng click vào từng Button thực hiện các thao tác cơ bản như: thêm, xóa, sửa, lưu dữ liệu.
- Kết quả: Các thao tác người dùng thực hiện được cập nhật vào cơ sở dữ liệu.
Sau khoảng thời gian thực hiện đồ án, sự nỗ lực của bản thân cùng sự hướng dẫn tận tình của cô Trần Thị Lan Anh, đồ án đã thành công đáp ứng được các yêu cầu đặt ra.
Từ những nghiên cứu lý thuyết về lập trình giao diện với ngôn ngữ C# và hệ quản trị cơ sở dữ liệu SQL Server, em đã xây dựng thành công Ứng dụng Quản lý bán hàng cửa hàng Minilab Chương trình được thiết kế với giao diện tiện dụng, dễ dàng thao tác Ứng dụng cung cấp các chức năng dành cho Người quản lý và Nhân viên của cửa hàng: quản lý tài khoản, khách hàng, nhà cung cấp; quản lý hàng hoá và danh mục hàng hoá; quản lý hoá đơn và báo cáo thống kê…
- Kiến thức, kinh nghiệm lập trình còn nhiều hạn chế, nên các phần chức năng chưa được tối ưu
- Chưa nghiên cứu về thiết kế giao diện báo cáo thống kê bằng dạng biểu đồ Định hướng phát triển
- Tiếp tục nghiên cứu về thiết kế giao diện báo cáo thống kê bằng dạng biểu đồ - Cải thiện giao diện ứng dụng thân thiện và dễ sử dụng hơn
- Xây dựng thêm các chức năng: đăng ký tài khoản, tương tác giữa khách hàng và cửa hàng, Tích hợp thiết bị đọc mã vạch cho chương trình.
THIẾT KẾ HỆ THỐNG
Thiết kế giao diện
3.2.1 Một số câu lệnh truy vấn
Hinh 3.1 Bảng dữ liệu NhaCungCap
3.2.2 Cập Nhập – Thêm Thông Tin Khách Hàng Để cập nhập thông tin giữa SQL và C# ta sử dụng Stored Procedure:
Stored procedures là các chương trình hoặc tập hợp các câu lệnh SQL được lưu trữ trong cơ sở dữ liệu.
Chúng được lưu trữ một cách an toàn và có thể được gọi và thực thi từ xa bằng cách sử dụng các lệnh gọi thích hợp từ các ứng dụng hoặc các truy vấn SQL khác
Stored procedures thường chứa logic xử lý phức tạp hoặc thực hiện các nhiệm vụ cụ thể trong cơ sở dữ liệu như thêm, sửa đổi hoặc xóa dữ liệu, và chúng có thể được sử dụng để tối ưu hóa hiệu suất và bảo mật của cơ sở dữ liệu.
Khởi tạo một Stored procedures cho “Thêm Nhà Cung Cấp”
Khởi tạo một Stored procedures cho “Sửa Nhà Cung Cấp”
Khởi tạo một Stored procedures cho “Xóa Nhà Cung Cấp”
Khởi tạo một Stored procedures cho “Tìm Kiếm Nhà Cung Cấp”
Khởi tạo một Stored procedures cho “ Thêm Thông Tin Khách Hàng”
Khởi tạo một Stored procedures cho “Sửa Khách Hàng”
Khởi tạo một Stored procedures cho “Xóa Thông Tin Khách Hàng”
Khởi tạo một Stored procedures cho “Tìm Kiếm Khách Hàng"
3.2.3 Sự kiện và cấu trúc của các nút chức năng (thêm, sửa, xóa, tìm kiếm)
Những procedures trên có nhiệm vụ kết nối và lưu trữ cập nhập liên tục khi ta thao tác, làm việc trên chương trình C#
3.2.3.1 Tạo kết nối từ C# sang SQL
Ta dùng chức năng Connect Database, để kết nối và dẫn xuất dữ liệu ra bảng DataGridView trong winform C#
String connectString = @"Data Source=LAPTOP-7OALMS8B\
SQLEXPRESS;Initial Catalog=DoAn1Nhom3;IntegratedSecurity=True;Encryptse";
SqlCommand cmd; //thực hiện câu lệnh
DataTable dt; //đổ dữ liệu vào Để Load dữ liệu giữa SQL và WinForm C# ta cần khởi tạo hàm private LoadData private void LoadData()
// Tạo câu lệnh SQL để lấy dữ liệu từ bảng NCC string query = "SELECT * FROM NhaCungCap";
// Tạo đối tượng SqlCommand cmd = new SqlCommand(query, con);
// Tạo đối tượng SqlDataAdapter để đổ dữ liệu vào DataTable adt = new SqlDataAdapter(cmd); dt = new DataTable();
// Đổ dữ liệu vào DataTable adt.Fill(dt);
// Đặt DataTable làm nguồn dữ liệu cho DataGridView dataGridViewNCC.DataSource = dt; con.Close();
3.2.3.2 Cập Nhập Nhà Cung Cấp hình 3.2 Bảng Cập Nhập Nhà Cung Cấp
A Sự kiện nút Button “Thêm” private void ThemNCC_Click(object sender, EventArgs e)
// Tạo kết nối và command using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())
{ cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "SP_ThemNhaCungCap";
// Giả sử tên stored procedure là SP_ThemNhaCungCap
// Thêm tham số cmd.Parameters.Add("@MaNCC", SqlDbType.NVarChar).Value = txtMaNCC.Text; cmd.Parameters.Add("@TenNCC", SqlDbType.NVarChar).Value = txtTenNCC.Text; cmd.Parameters.Add("@DiaChi", SqlDbType.NVarChar).Value
= txtDiaChiNCC.Text; cmd.Parameters.Add("@SoDienThoai", SqlDbType.NVarChar).Value = txtSdtNCC.Text;
// Mở kết nối và thực hiện stored procedure conn.Open(); cmd.ExecuteNonQuery();
Ta kích hoạt được nút “Thêm”
B Sự kiện kích hoạt nút sửa của bảng Cập Nhập Nhà Cung Cấp private void SuaNCC_Click( object sender, EventArgs e)
( if string IsNullOrEmpty(txtMaNCC.Text) || txtMaNCC.Text == "Thêm mới không cần ID" ) {
MessageBox.Show( "Vui lòng điền ID nhà cung cấp." "Thông báo"); , txtMaNCC.Focus(); txtMaNCC.SelectAll();
{ using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())
- Established a connection to the database with the 'conn' object.- Configured the command to execute a stored procedure named "SP_SuaNhaCungCap."- Added parameters to the command to specify the supplier's code, name, address, and phone number.
// Thực hiện kiểm tra thông tin trước khi mở kết nối
// Mở kết nối và thực hiện stored procedure conn.Open(); cmd.ExecuteNonQuery(); conn.Close();
MessageBox.Show( "Sửa nhà cung cấp thành công." "Thông báo" , , MessageBoxButtons.OK, MessageBoxIcon.Information);
Ta kích hoạt được nút Sửa:
C Sự kiện kích hoạt nút “Xóa” của bảng Cập Nhập Nhà Cung Cấp private void XoaNCC_Click( object sender, EventArgs e)
(txtMaNCC.Text == if "Thêm mới không cần ID" || string.IsNullOrEmpty(txtMaNCC.Text))
MessageBox.Show( "Vui lòng điền mã nhà cung cấp cần xóa." "Thông báo" , , MessageBoxButtons.OK, MessageBoxIcon.Information); txtMaNCC.Focus();
{ using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())
{ cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "SP_XoaNhaCungCap";
// Thêm tham số cho stored procedure cmd.Parameters.Add( "@MaNCC" , SqlDbType.NVarChar).Value = txtMaNCC.Text; conn.Open(); cmd.ExecuteNonQuery(); conn.Close();
MessageBox.Show( "Xóa nhà cung cấp thành công." "Thông báo" , , MessageBoxButtons.OK, MessageBoxIcon.Information);
Khi ta nhập tên Mã Nhà Cung Cấp và click vào nút “Xóa”
D Sự kiện kích hoạt nút Tìm Kiếm của bảng private void TimKiemNCC_Click( object sender, EventArgs e)
{ using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())
{ cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "SP_TimKiemMaNCC";
// Truyền giá trị tìm kiếm tổng quát từ người dùng cmd.Parameters.Add( "@MaNCC" , SqlDbType.NVarChar).Value = txtMaNCC.Text; conn.Open();
SqlDataAdapter adt = new SqlDataAdapter(cmd);
DataTable dt = new DataTable(); adt.Fill(dt); dataGridViewNCC.DataSource = dt;
THIẾT KẾ GIAO DIỆN
Đăng nhập chương trình
Hình 4.1 Giao diện from Đăng Nhập
Mục tiêu: Đăng nhập thành công vào hệ thống với các nhóm quyền hạn khác nhau
- Người sử dụng: Quản lý và Nhân viên.
- Các bảng dữ liệu sử dụng: Dangnhap.
- Hướng dẫn sử dụng: Khi nhập tên tài khoản và mật khẩu và click vào “Đăng nhập”,quyền hạn sẽ được khởi tạo, câu lệnh truy vấn sẽ truy vấn đến bảng Dangnhap chứa username và password Kiểm tra thông tin đăng nhập và xác định nhóm quyền Tài khoản gồm 2 nhóm quyền chính là:
Admin/quản lý: có tất cả quyền như quản lý nhân viên, quản lý hàng hoá, quản lý danh mục hàng hoá, báo cáo thống kê, quản lý hoá đơn, xem thông tin tài khoản và đổi mật khẩu
- Kết quả: Đăng nhập thành công và có thể sử dụng hệ thống.
4.1.1 Sự kiện và chức năng nút Botton Đăng Nhập
4.1.2 Sự kiện chức năng nút thoát
4.1.3 Sự kiện đăng nhập thành công
4.1.4 Sự kiện đăng nhập thất bại khi sai tài khoản hoặc mật khẩu
Quản lý Nhà cung cấp
Mục tiêu: Hiển thị dữ liệu từ cơ sở dữ liệu lên lưới DataGridView và các thao tác cơ bản.
- Người sử dụng: Người quản lý và Nhân viên
- Các bảng dữ liệu sử dụng: Nhacungcap
- Hướng dẫn sử dụng: Người dùng click vào từng Button thực hiện các thao tác cơ bản như: thêm, xóa, sửa, lưu dữ liệu
- Kết quả: Các thao tác người dùng thực hiện được cập nhật vào cơ sở dữ liệu
Quản lý Khách hàng
Mục tiêu: Hiển thị dữ liệu từ cơ sở dữ liệu lên lưới DataGridView và các thao tác cơ bản.
- Người sử dụng: Người quản lý và Nhân viên
- Các bảng dữ liệu sử dụng: Khachhang
- Hướng dẫn sử dụng: Người dùng click vào từng Button thực hiện các thao tác cơ bản như: thêm, xóa, sửa, lưu dữ liệu.
- Kết quả: Các thao tác người dùng thực hiện được cập nhật vào cơ sở dữ liệu.
Sau khoảng thời gian thực hiện đồ án, với sự nỗ lực của bản thân và sự hướng dẫn của cô Trần Thị Lan Anh, đồ án đã hoàn thành và đáp ứng được các yêu cầu đặt ra.
Từ những nghiên cứu lý thuyết về lập trình giao diện với ngôn ngữ C# và hệ quản trị cơ sở dữ liệu SQL Server, em đã xây dựng thành công Ứng dụng Quản lý bán hàng cửa hàng Minilab Chương trình được thiết kế với giao diện tiện dụng, dễ dàng thao tác Ứng dụng cung cấp các chức năng dành cho Người quản lý và Nhân viên của cửa hàng: quản lý tài khoản, khách hàng, nhà cung cấp; quản lý hàng hoá và danh mục hàng hoá; quản lý hoá đơn và báo cáo thống kê…
- Kiến thức, kinh nghiệm lập trình còn nhiều hạn chế, nên các phần chức năng chưa được tối ưu
- Chưa nghiên cứu về thiết kế giao diện báo cáo thống kê bằng dạng biểu đồ Định hướng phát triển
- Tiếp tục nghiên cứu về thiết kế giao diện báo cáo thống kê bằng dạng biểu đồ - Cải thiện giao diện ứng dụng thân thiện và dễ sử dụng hơn
- Xây dựng thêm các chức năng: đăng ký tài khoản, tương tác giữa khách hàng và cửa hàng, Tích hợp thiết bị đọc mã vạch cho chương trình.