我有这样的一个设想,系统中的只有分配诺干的任务给某一个用户。具体形式就是
系统管理员分配诺干任务给用户A,A登陆到系统后,系统根据这个用户被分配的权限动态的生成菜单,这样用户就不能访问未被分配的任务了。
要求系统中的任务可以随时扩充或者删除,而不需要修改程序。
现在基本上已经知道怎么根据外部数据生成菜单的形式了,但是每个菜单项如何连接到一个任务呢(也就是一个form)。
系统管理员分配诺干任务给用户A,A登陆到系统后,系统根据这个用户被分配的权限动态的生成菜单,这样用户就不能访问未被分配的任务了。
要求系统中的任务可以随时扩充或者删除,而不需要修改程序。
现在基本上已经知道怎么根据外部数据生成菜单的形式了,但是每个菜单项如何连接到一个任务呢(也就是一个form)。
一个任务对应一个类。
这个类的名称和其它一些描述性的信息被被存储在数据库里,我需要根据这个类的名称来得到它的实例,从而运行它的相应的方法。
每个最末的菜单项都和一个类名相对应,我们点菜单的时候就希望通过对应的类名(文本信息)来new 一个实例(就算这儿的类都是窗体形式的),这样我们就可以打开这个窗体了进行相应的操作了。
大家谈谈想法
权限=true
else
权限=false
if 用户.打开文件 then
button1.Enabled:=true
else
button1.Enabled:=false
up
button1.Enabled := (用户.打开文件);
我用从表对应人员,一个人员有多少个权限,从表里就有多少条记录系统权限为0-999,然后,人事模块是1000-1999,物资模块是2000-2999这样分配下去可以在登陆时放入动态数组。菜单项都分配上TAG值,与权限编号对应。没有此权限就将菜单删除掉。这样,就无法使用此功能了。若精确到按钮权限,同理,分配TAG,将没有的权限按钮删除掉,或隐藏掉。