Ejemplo n.º 1
0
 private void checkQuyenThaotac_ItemCheck(object sender, ItemCheckEventArgs e)
 {
     XL2.cChucNang item = checkQuyenThaotac.Items[e.Index] as XL2.cChucNang;
     if (e.NewValue == CheckState.Checked)
     {
         item.IsYes = true;
     }
     else if (e.NewValue == CheckState.Unchecked)
     {
         item.IsYes = false;
     }
 }
Ejemplo n.º 2
0
        private void SetQuyenThaotac(DataTable tableChucnang)
        {
            // lấy dataSource danh sách chức năng, set default false nếu ko có row nào
            if (tableChucnang == null || tableChucnang.Rows.Count == 0)
            {
                for (int i = 0; i < checkQuyenThaotac.Items.Count; i++)
                {
                    XL2.cChucNang chucnang = checkQuyenThaotac.Items[i] as XL2.cChucNang;
                    if (chucnang == null)
                    {
                        continue;
                    }
                    checkQuyenThaotac.SetItemCheckState(i, CheckState.Unchecked);
                    chucnang.IsYes = false;
                }
            }
            else              // tồn tại chức năng
                              //duyệt từng chức năng trong danh sách chức năng, kiểm tra xem chức năng đó có trong csdl table ko? nếu có thì check, ko thì uncheck
            {
                for (int i = 0; i < checkQuyenThaotac.Items.Count; i++)
                {
                    XL2.cChucNang chucnang = checkQuyenThaotac.Items[i] as XL2.cChucNang;
                    if (chucnang == null)
                    {
                        continue;
                    }
                    int       id      = chucnang.ID;
                    DataRow[] arrRows = tableChucnang.Select("MenuID = " + id, "MenuID asc"); // tìm trong table chức năng đó bật hay tắt,
                    if (arrRows.Length == 0)                                                  // ko tồn tại phân quyền --> uncheck
                    {
                        checkQuyenThaotac.SetItemCheckState(i, CheckState.Unchecked);
                        chucnang.IsYes = false;
                    }
                    else                      // tồn tại phân quyền -->? kiểm tra xem nó có  enable ko
                    {
                        bool isYes = (bool)arrRows[0]["IsYes"];
                        checkQuyenThaotac.SetItemCheckState(i, (isYes) ? CheckState.Checked : CheckState.Unchecked);
                        chucnang.IsYes = isYes;
                    }
                }
            }

            checkQuyenThaotac.Update();
        }
Ejemplo n.º 3
0
        private void btnCapNhat_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            // lấy ID tài khoản đang chọn
            DataRowView rowView = lstTaikhoan.SelectedItem as DataRowView;
            int         userid  = (int)rowView["UserID"];

            // update phòng ban thao tác và status cho phép hay ko
            #region lấy ds phòng ban 1. được thao tác, 2.check kết công
            List <cPhongBan> dsphongbanChecked = new List <cPhongBan>();
            List <cPhongBan> dsphongbanUnCheck = new List <cPhongBan>();
            // đưa về root node trước khi thực hiện
            var root = treePhongBan.TopNode;
            GetTopLevelNode(ref root);            // mỗi lần duyệt node sẽ làm root node chuyển về parent của node cuối nên phải trả về node gốc để duyệt từ đầu
            while (root.PrevNode != null)
            {
                root = root.PrevNode;
            }
            GetNode_DuocThaotac_CheckKetcong(root, dsphongbanChecked, dsphongbanUnCheck);
            #endregion


            // duyệt qua từng phòng ban và update lại phòng ban đó được cho phép hay ko
            for (int i = 0; i < dsphongbanChecked.Count; i++)
            {
                SqlDataAccessHelper.ExecNoneQueryString(
                    @" update DeptPrivilege set IsYes = @IsYes where IDD = @IDD and UserID = @UserID
						IF @@ROWCOUNT=0 INSERT INTO DeptPrivilege (UserID,IDD,IsYes) VALUES (@UserID,@IDD,@IsYes) "
                    , new string[] { "@UserID", "@IsYes", "@IDD" }
                    , new object[] { userid, 1, dsphongbanChecked[i].ID });
            }
            for (int i = 0; i < dsphongbanUnCheck.Count; i++)
            {
                SqlDataAccessHelper.ExecNoneQueryString(
                    @" update DeptPrivilege set IsYes = @IsYes where IDD = @IDD and UserID = @UserID
						IF @@ROWCOUNT=0 INSERT INTO DeptPrivilege (UserID,IDD,IsYes) VALUES (@UserID,@IDD,@IsYes) "
                    , new string[] { "@UserID", "@IsYes", "@IDD" }
                    , new object[] { userid, 0, dsphongbanUnCheck[i].ID });
            }

            //duyệt từng chức năng và update lại cho phép hay ko cho phép chức năng đó
            List <XL2.cChucNang> lstchucnang = checkQuyenThaotac.DataSource as List <XL2.cChucNang>;
            for (int i = 0; i < checkQuyenThaotac.Items.Count; i++)
            {
                XL2.cChucNang item   = checkQuyenThaotac.Items[i] as XL2.cChucNang;
                bool          check  = item.IsYes;
                int           menuid = item.ID;
                SqlDataAccessHelper.ExecNoneQueryString(
                    @" update MenuPrivilege set IsYes = @IsYes where UserID = @UserID and MenuID = @MenuID
						IF @@ROWCOUNT=0 INSERT INTO MenuPrivilege (UserID,MenuID,IsYes) VALUES (@UserID,@MenuID,@IsYes) "
                    , new string[] { "@UserID", "@IsYes", "@MenuID" }
                    , new object[] { userid, check, menuid });
            }

            ACMessageBox.Show("Cập nhật phân quyền thành công.", "Thông báo", 2000);

point1:
            lstTaikhoan_SelectedValueChanged(lstTaikhoan, null);
        }