你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
软件功能动态订制方法与实现(五)
 

 DataModFrm. USERMOD.FieldByName('授权模块').AsString:='权限管理';

     DataModFrm. USERMOD.Post;

  End;

  //调用口令验证模块,获取用户类别,验证通过后将用户名称和用户类别

//保存到全局变量DataModFrm.GuserDataModFrm.Gtype,并进入主程序。

  Application.CreateForm(TKLYZFRM, KLYZFRM);

  KLYZFRM.ShowModal;

  KLYZFRM.Free;

  USER:=DataModFrm.Guser;//从全局变量获取登录用户名和用户类别

  USERTYPE:=DataModFrm.Gtype;

  //用两层For循环,如果遍历菜单,搜寻并自动登记模块未登记模块,

//菜单的Caption值为模块名称

  DataModFrm.PRGMOD.Open;

  for J:=0 to MainMenu1.Items.Count-1 do begin

    for K:=0 to MainMenu1.Items[J].Count-1 do begin

      MKNAME:=MainMenu1.Items[J].Items[K].Caption;//获取菜单Caption属性值

        if NOT DataModFrm.PRGMOD.LOCATE('模块名称',MKNAME,[]) then begin

        DataModFrm.PRGMOD.Append;

        DataModFrm.PRGMOD.FieldByName('模块名称').AsString:=MKNAME;

        DataModFrm.PRGMOD.FieldByName('模块说明').AsString:=MKNAME;

        DataModFrm.PRGMOD.Post;

      end;

    end;

  end;

  DataModFrm.PRGMOD.Close;

  //建立程序模块数据集

  DataModFrm.GQUERY1.Close;

  DataModFrm.GQUERY1.SQL.TEXT:='SELECT * FROM 程序模块表';

  DataModFrm.GQUERY1.Open;

  //建立登录用户可访问模块列表数据集

  DataModFrm.GQUERY2.Close;

  DataModFrm.GQUERY2.SQL.TEXT:='SELECT * FROM 用户授权表 WHERE 用户类别='''+USERTYPE+'''';

  DataModFrm.GQUERY2.Open;

//用两层For循环动态判定各个菜单是否可用,菜单的Caption值就是模块名称

  DataModFrm.GQUERY1.First;

  for I:=1 to DataModFrm.GQUERY1.RecordCount do begin

  推荐精品文章

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

  联系方式
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