ADODataSetUserRole.FieldValues['UserID']:=ADODataSet_User.FieldValues['TeacherID'];
end;
2 :begin // 学生
ADODataSetUserRole.FieldValues['UserID']:=ADODataSet_User.FieldValues['StudentID'];
end;
end;
iPos := Pos(',', CheckListBoxRole.Items[iCount]);
ADODataSetUserRole.FieldValues['RoleID']:=Copy(CheckListBoxRole.Items[iCount],1,iPos-1);
ADODataSetUserRole.Post;
end;
end;
end;
end;
3: begin // 角色权限信息发生变化
DMServerDB.ADODataSetRoleRight.Edit;
DMServerDB.ADODataSetRoleRight.Post;
end;
end;
end;
⑻ 当需要添加角色时,需要设计“添加”按钮,相关代码如下:
procedure TFormRightManage.SBtnAddClick(Sender: TObject);
begin
DMServerDB.ADODataSetRole.Append; // 添加一个空记录
DBEditRoleID.Enabled := True;
DBEditRoleID.SetFocus;
end;
⑼ 当界面显示时,需要初始化界面对象的属性,并自动设置ADODataSet_User对象的AfterScroll事件和ADODataSetRole对象的AfterPost 事件,因此需要编制FormRightManage的OnShow()事件,相关代码如下:
procedure TFormRightManage.FormShow(Sender: TObject);
begin
EditSearch.Text:='';
CheckListBoxRole_AddRole;
ADODataSet_User.Connection := DMServerDB.ADOConnection;
//是否为系统管理员,对管理员有所有权限,否则只能查看自己的信息
CBoxUserType.Enabled := IsAdministroy;
CBoxSearchType.Enabled := CBoxUserType.Enabled; // 查询类型
EditSearch.Enabled := CBoxUserType.Enabled; // 查找输入框
CheckListBoxRole.Enabled := CBoxUserType.Enabled; // 删除按钮
SBtnSave.Enabled := CBoxUserType.Enabled; // 保存按钮
DBCheckBox.Enabled := CBoxUserType.Enabled; // 是否有权限
TabSheetUserRoleInfor.Enabled := CBoxUserType.Enabled; // 用户角色信息选项页
TabSheetRoleInfor.Enabled := CBoxUserType.Enabled; // 角色信息选项页
if Not CBoxUserType.Enabled then begin // 不是系统管理员
CBoxUserType.ItemIndex := UserType-1;
EditSearch.Text := UserID;
end;
With DMServerDB do begin
ADODataSetUserRole.Filtered := True; // 过滤起作用
ADODataSet_User.Close;
// 动态设置事件关联
ADODataSet_User.AfterScroll := ADODataSetUserAfterScroll;
ADODataSetRole.AfterPost := ADODataSetRoleAfterPost;
ADODataSetRole.First; // 移到第一个记录
end;
SBtnSearchClick( Nil ); // 进行查询
PageCtrlUserChange( Nil ); // 控制显示
end;
|