你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 跟高手学编程
权限管理与系统登录(六)
 

procedure TFormRightManage.PageCtrlInforChange(Sender: TObject);

begin // 使左右两个分页组件保持联动

  PageCtrlUser.ActivePageIndex:=PageCtrlInfor.ActivePageIndex;

end;

当角色表中的记录添加和修改后,需要刷新CheckListBoxRole对象中的角色项,因此需要设计ADODataSetRole角色数据集的AfterPost事件,相关代码如下:

procedure TFormRightManage.ADODataSetRoleAfterPost(DataSet: TDataSet);

begin

  DMServerDB.ADODataSetUserRole.Requery();  //刷新用户角色

  DMServerDB.ADODataSetRoleRight.Requery(); //刷新角色权限

  CheckListBoxRole_AddRole;   // 刷新CheckListBoxRole对象中的角色项

  ADODataSetUserAfterScroll( ADODataSet_User );

end;

当用户表中的记录位置发生变化后,需要更新ADODataSetUserRole用户角色数据集为当前用户所具有的角色,并在CheckListBoxRole对象中设置该用户所拥有的角色,因此需要设计ADODataSetUserRole角色数据集的AfterScroll事件,相关代码如下:

procedure TFormRightManage.ADODataSetUserAfterScroll(DataSet: TDataSet);

var

  iCount, iPos:  Integer;

begin

 with DMServerDB do begin // 当前用户所具有的角色

  ADODataSetUserRole.Filter:='UserID='''+ADODataSet_User.FieldValues[strKeyField[0]]+'''';

  ADODataSetUserRole.First;

  // 清空角色

  for iCount := 0 to CheckListBoxRole.Items.Count-1 do

   CheckListBoxRole.Checked[iCount] := False;

   // 设置当前用户所具有的角色

  while Not ADODataSetUserRole.Eof do begin

   for iCount := 0 to CheckListBoxRole.Items.Count-1 do begin

    iPos := Pos(',', CheckListBoxRole.Items[iCount]);

    if ADODataSetUserRole.FieldValues['RoleID']=Copy(CheckListBoxRole.Items[iCount],1,iPos-1) then

     CheckListBoxRole.Checked[iCount] := True;

   end;

   ADODataSetUserRole.Next;

  end;

 end;

end;

设计“保存”按钮代码,保存添加的角色、当前用户所拥有的角色和角色权限信息,相关代码如下:

procedure TFormRightManage.SBtnSaveClick(Sender: TObject);

var

  iCount, iPos:   Integer;

begin

 case PageCtrlInfor.ActivePageIndex of

  1: begin  // 用户角色信息发生变化

   with DMServerDB do begin

    ADODataSetUserRole.First; // 清空当前用户的角色

    while Not ADODataSetUserRole.Eof do

     ADODataSetUserRole.Delete;

    //添加当前用户的角色

    for iCount := 0 to CheckListBoxRole.Items.Count-1 do begin

     if CheckListBoxRole.Checked[iCount] then begin

      ADODataSetUserRole.Append;

      case CBoxUserType.ItemIndex of

       0 :begin // 教师

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089