我现在是用actionlist 控制菜单的操作。  我在窗体创建的时候把菜单项目写入到数据库中。  然后在一个面板中选择操作员的权限  哪个菜单项目可以用,哪个不可以用。   这中情况我那样处理呢?  分不够在给  在线等待!

解决方案 »

  1.   

    1 建一个操作员的类,包括权限字段
    2 将权限映射到操作的功能模块--比如你的菜单
    3 你可以在初始化时按照2将没权限的功能disable,或者在acton里面在判断是否有权限。
      

  2.   

    你需要创建三个表,一个用户表,一个模块表(与菜单对应),一个权限表,然后可以使用和一下差不多的方法确定用户是否有权限操作该菜单:
    function TfmMain.qxCheck(FirstModule:string;SecondModule:string):Boolean;
    begin
       Try
          with DMStoreManage.Query1 do
             begin
                Close;
                SQL.Clear;
                SQL.Append('SELECT GRANTPR FROM TOPERATORGRANT WHERE OPERATORCODE=:OPERATORCODE AND FMODULECODE=:FMODULECODE and SMODULECODE=:SMODULECODE');
                ParamByName('OPERATORCODE').AsString:=CurrentOperatorCode;
                ParamByName('FMODULECODE').Asstring:=FirstModule;
                ParamByName('SMODULECODE').Asstring:=SecondModule;
                Open;
                If RecordCount>0 then
                   Begin
                      First;
                      if FieldByName('GRANTPR').AsInteger<>0 then
                         Result:=True
                      else
                         Result:=False;
                   End
                Else
                   Result:=False;
                Close;
             end;
       except
       end;
    end;
    //可以在Action时间里使用上面的函数
          If qxCheck('05','0501') Then
             Begin
                fmMoneyRecall:=TfmMoneyRecall.Create(Application);
                fmMoneyRecall.Show;
             End
          Else
             Application.MessageBox('您没有权限使用','确认',MB_OK OR MB_ICONEXCLAMATION);