数据库系统中常遇到的一个问题.权限与菜单显示的问题.常遇到的一个问题.
用户分组的.每个组的权限不同.显示出的菜单也就不一样.我的方法是服务器食存一个 string 的字段.如 '1010010001111'
每位对应不同的功能. 1 为允许, 0 为不允许.但我会有些菜单项,是否可见.这样的功能.这些判断就只能写到客户端了.我是说有没有别的,更方便的方法没有?

解决方案 »

  1.   

    xjjrocker(了无痕) 说的完全可行。
    不过,你也可以不换你的概念,只区分为不同的权限,你可以把可见、可用,分别当做两种权限就行。自己定义好顺序,
    const 
      Permit_Const_Something_Postion_Visible=0;
      Permit_Const_Something_Postion_Useable=0;if string[Permit_Const_Something_Position]='1' then 可见。
      

  2.   

    我在我的系统中是这样实现的,在数据库中设有数据表“用户权限”,在该表中,功能名称的值和菜单的NAME是一样的,每次用户登录时,就进行如下的判断,大家一起交流下,
      //设置用户权限
       if ADOQTmp.Active then
          ADOQTmp.Close;
       ADOQTmp.SQL.Clear;
       ADOQTmp.SQL.Add('Select * from Security where ucase(UserName)='''+uppercase(StrUser)+'''');
       ADOQTmp.open;
       if Not ADOQTmp.IsEmpty then
         begin
           For  i:=0 to self.ComponentCount -1   do
             begin
               if self.Components[i] is Tmenuitem then
                  begin
                    ADOQTmp.Locate('FunctionName',self.Components[i].Name,[loCaseInsensitive]);
                    if ADOQTmp.FieldByName('Status').AsString='Y' then
                      Tmenuitem(self.Components[i]).Enabled:=True
                    else
                      Tmenuitem(self.Components[i]).Enabled:=False;
                  end;
             end;
         end