Phần 1 xây dựng và truy xuất cơ sở dữ liệu.
1. Giới thiệu.
Menu là một phần trong giao diện của chương trình, là nơi thể hiện các chức năng cua hệ thống và là nơi cho phép người dùng tương tác với hệ thống.
Menu có thể phân thành các cấp: Menu cấp 1, Menu nu cấp 2, Menu cấp 3 ….
Khi người dùng Click chuột vào một chức năng nào đó của Menu cấp 1 có thể hiển ra danh sách các chức năng của Menu cấp 2 và tượng tự như vậy đối với menu cấp 3.
Tại thời điểm hiện tại những chức năng nào của Menu được sáng lên là người dùng có thể sử dụng còn chức năng nào mờ đi thì người dùng không thể sử dụng được.
Vậy, việc tổ chức menu trong hệ thống chương trình chúng ta tổ chức theo mô hình trên và việc phần quyền người dùng chúng ta cho ẩn/hiện các chức năng trên menu.
2. Xây dựng cơ sở dữ liệu.
- Nội dung của bảng menu cấp 1 sẽ được đưa vào Menu cấp 1 ở trên Form.
- Ứng với mỗi User đăng nhập, mỗi mục trong Menucap1 và hai bảng Menucap2, Phanquyencap2 ta lấy về Macap2, tencap2 và trangthai. Tencap2 sẽ được đưa vào Menucap2 và trangthai giúp ta cho ẩn hoặc cho hiện chức năng này.
- Ứng với mỗi User đăng nhập, mỗi mục trong Menucap2 và hai bảng Menucap3, Phanquyencap3 ta lấy về Macap3, tencap3 và trangthai. Tencap3 sẽ được đưa vào Menucap3 và trangthai giúp ta cho ẩn hoặc cho hiện chức năng này.
- Trường trangthai chỉ nhận giá trị 0 hoặc 1 (ẩn hoặc hiện chức năng tương ứng trên menu) dùng để qui định quyền của User.
3. Xây dựng thủ tục truy vấn cơ sở dữ liệu.
3.1 Thủ tục truy vấn trả về Menu cấp 1
USE[phanquyen]
GO
SETANSI_NULLS ON
GO
SETQUOTED_IDENTIFIER ON
GO
ALTERPROCEDURE [dbo].[SP_lay_Menucap1]
AS
begin
select * from Menucap1
end
3.2 Thủ tục truy vấn trả về menu cấp 2.
Tham số truyền vào cho thủ tục này là MaUser và Macap1.
USE[phanquyen]
GO
SETANSI_NULLS ON
GO
SETQUOTED_IDENTIFIER ON
GO
ALTERPROCEDURE [dbo].[SP_lay_Menucap2_PQ]
@Macap1 nvarchar(10),
@MaUser nvarchar(10)
AS
begin
select Menucap2.Macap2, Menucap2.Tencap2, Phanquyencap2.Trangthai from Menucap2, Phanquyencap2 where Macap1 =@Macap1 and Phanquyencap2.MaUser=@MaUser and Phanquyencap2.Macap2 =Menucap2.Macap2
end
3.3 Thu tục truy vấn trả về menu cấp 3
Tham số truyền vào cho thủ tục này là MaUser và Macap2.
USE[phanquyen]
GO
SETANSI_NULLS ON
GO
SETQUOTED_IDENTIFIER ON
GO
ALTERPROCEDURE [dbo].[SP_lay_Menucap3_PQ]
@Macap2 nvarchar(10),
@MaUser nvarchar(10)
AS
begin
select Menucap3.Macap3, Menucap3.Tencap3, Phanquyencap3.Trangthai from Menucap3, Phanquyencap3 where Macap2 =@Macap2 and Phanquyencap3.MaUser=@MaUser and Phanquyencap3.Macap3 =Menucap3.Macap3
end
4. Các bước thức hiện.
Sau khi User đăng nhập thành công vào hệ thống ta thực hiện các bước sau
Bước 1:
Gọi thủ tục SP_lay_Menucap1 lấy về một bảng (bang1) gồm Macap1 và tencap1
Bước 2:
Duyệt qua từng hàng của bảng trên (bang1)
+ Chèn tencap1 vào menu cấp 1
+ Gọi thủ tục SP_lay_Menucap2_PQ truyền tham số Macap1 và MaUser lấy về bảng (bang2) gồm các thông tin Macap2, tencap2, trangthai.
Bước 3:
Duyệt qua từng hàng của bảng trên (bang2)
+ Chèn tencap2 vào menu cấp 2
+ Gán thuộc tình ẩn/hiện cho menu này bằng trangthai tương ứng.
+ Gọi thủ tục SP_lay_Menucap3_PQ truyền tham số Macap2 và MaUser lấy về bảng (bang3) gồm các thông tin Macap3, tencap3, trangthai.
Bước 4:
Duyệt qua từng hàng của bảng trên (bang3)
+ Chèn tencap3 vào menu cấp 3
+ Gán thuộc tình ẩn/hiện cho menu này bằng trangthai tương ứng.
Chú ý: Bài viết này chỉ giới hạn đến menu cấp 3 và chỉ phân quyền trên menu cấp 2 và menu cấp 3. Các bạn có thể xây dựng cơ sở dữ liệu bổ sung để mở rộng thêm.
Phần 2 Xây dựng chương trình trên Form
(sẽ được trình bày trong bài viết kế tiếp)
Người viết: Nguyễn Dũng
» Tin mới nhất:
» Các tin khác: