我想在软件中为不同的用户设置权限,可是不懂要在哪里写上判断事件,比如说判断当前用户对某个模块是否有操作或是查看的权限,要怎样实现呢?急啊~~~再过几天就要交差了~~~~帮帮忙好不~?

解决方案 »

  1.   

    在不同模块的Create或Show过程中判断
      

  2.   

    ~~嗯~~我在程序的主窗体创建时写了判断的语句,可老是有地址引用出错!~~~因为那个主窗体的formcreate事件中有创建登录窗体,不懂要写在啊~~还有模块初始化事件是哪个哩~??不懂哦~
      

  3.   

    procedure TE_MainF.FormCreate(Sender: TObject);      //ONCREATE事件触发登录界面窗体
    begin
         datamodule1:=tdatamodule1.Create(self);
         if not assigned(E_loginF) then
                E_loginF:=TE_loginF.create(self);
                E_loginF.ShowModal;
    在主窗体上添加了adoquery连接到表中   
    adoquery1.Parameters.ParamByName('user_name').Value:=user_name;//窗体上定义的全局变量
    if adoquery1.fieldbyname('Examine').asstring='1' then //查看权限
       n12.enabled:=true else n12.enabled:=false;
    这里只有一个简单的~还有如果要修改跟删除要怎么办?
      

  4.   

    一般是这样的,
    首先有个登陆窗体,根据用户输入的帐号,从一个权限表格中得到这个用户的权限,例如只有查看的权限,或者是有写权限。。把这个权限的信息传递到主窗体。
    那么在主窗体oncreate 或者onshow的时候,根据用户的权限来决定是否显示某些菜单。。用户的操作通过菜单完成。。
      

  5.   

    http://topic.csdn.net/t/20030320/09/1553175.html去这里看看把
      

  6.   

    可以同时判断,也可以在需要的时候判断,没有定式的。。权限信息传到主窗体
    --------------------------
    主窗体设置一个变量,记录权限信息,
    把这个信息传递赋值给主窗体就可以了
    例如:
    frmMain.权限 := '写入';
      

  7.   

    http://topic.csdn.net/t/20030320/09/1553175.html去这里好好看看把。。
      

  8.   

    受不了~那边太复杂了现在时间紧迫啊~~~~再问你一个问题,就是我查询出来的记录不只一条,包含了各个模块,
    bumen   name       duty               mode_name        add      mod    del  Examine  
    总部    002 业务员 房源列表 0         0      0     0
    总部    002       业务员           客源列表 1  0      1     1
    要怎么判断哪个模块不能查看?
      

  9.   

    你把这些信息都记录下来,当客户调用模块(客源列表)时,你看看这个客户的权限能不能访问,就可以了啊。。如果 不能,showmessage告诉他。
      

  10.   

    我刚做了个权限配置的软件,你的数据库设计好了吗,这根数据库相关阿
    跟我联系把 msn: [email protected]
      

  11.   

    xjwy(程序春秋)
    我没有在用这个哦~~~邮箱有:[email protected]