delphi+access权限管理设置
我在做一个物流仓库管理的程序,在设置权限管理方面遇到了一些麻烦,我们三个人,一个是管理员,两个是下属,所以想通过权限设置来限制下属的一些功能,比如说管理员能够看到的界面而...
我在做一个物流仓库管理的程序,在设置权限管理方面遇到了一些麻烦,我们三个人,一个是管理员,两个是下属,所以想通过权限设置来限制下属的一些功能,比如说管理员能够看到的界面而下属不一定能够看到。access的数据库也写好了,就是在delphi里面写程序代码的时候遇到了一些问题,不知道怎么写,请高手指点一二。能够告诉我写权限管理的程序代码的一些基本写法吗?最好是告诉我程序代码。权限管理主要是针对哪个组件的?谢谢!!!
展开
展开全部
ACCESS没有权限之说,软件中的权限是程序员用代码规定的,比如当管理员登录时,就让所有的按钮都有作用,这当然要建立一个标志性的变量,当其它人登录时,就让某些按钮失活,比如发货员登录时就让入库操作的一些按钮失活,打不开入库登记界面.相反,当入库人登录时,就让发货的一些按钮失活.权限控制软件,用多页组件做,是最理想的了,登录的成员不同,多页组件可打开页也不同.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般思路是:
1、用户的权限设置一般是字符串,不同位置的值代表不同的权限,存在数据库字段里。
2、软件启动完成后首先加在权限变量然后设置不同的菜单、按钮等等的可用状态。
3、一般在权限字段建议加密存储,并建议加密时候考虑和用户名绑定操作。
1、用户的权限设置一般是字符串,不同位置的值代表不同的权限,存在数据库字段里。
2、软件启动完成后首先加在权限变量然后设置不同的菜单、按钮等等的可用状态。
3、一般在权限字段建议加密存储,并建议加密时候考虑和用户名绑定操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在DELPHI中技巧实现权限管理
在运用DELPHI编制一些应用系统时,有很多时候都需要给不同的用户赋予不同的权限,而不同的系统又有不同的权限分配方式,如果在程序中去为每一位用户分配权限的话,不仅使得程序的编制十分麻烦,而且也不利于管理!笔者近日想得一自认为比较好的方法,愿与大家共享,并望各位多指教!
在很多的系统中,权限通常是被分成几级的。每一级的用户所能实现的操作是不同的,而实现这一功能的方法一般都是让不同权限的用户见到不同的菜单。简单的说就是对不具有某一权限的用户这一菜单就是不可见的!为了实现这一控制,程序员们往往得花费很多的时间去做这一模块,浪费了很多宝贵的时间!
笔者的想法是:如果设一个二维数组,第一维代表第一级菜单,第二维代表子菜单,每一个数组元素只存储0或1这两个数,某一权限的用户对应着一个二维数组,而这个数组又代表了相应的菜单。给某一级别的用户分配权限后,他便拥有了一个相应的数组。登录时,从数组中取出各个元素的值,如果为1则相应的菜单出现,为0则不出现菜单。用这种方式不但可以分级(同一级用户的数组相同),还能实现在不同的用户间实现权限细分,只要你修改相应的数值为0或1即可!
上面是一个简单例子的运行结果。
下面是部分源程序(这仅是一个解释性的例子程序),为了简便,程序中只有一个窗体和一个主菜单。在创建窗体时初始化数组M,显示时读出数组值并通过设置菜单的Enabled属性或者Visible属性的True或False来控制显示!!
var
Form1:
TForm1;
m:array[0..1,0..4]
of
integer;//定义存储的数组
i,j:integer;//定义循环的变量
implementation
{$R
*.dfm}
procedure
TForm1.FormShow(Sender:
TObject);
begin
//读出数字并控制菜单的显示
for
i:=Low(m)
to
High(m)
do
for
j:=Low(m[i])
to
High(m[i])
do
begin
if
m[i][j]=0
then
MainMenu1.Items[i].Items[j].Enabled:=false
else
MainMenu1.Items[i].Items[j].Enabled:=true;
end;
end;
procedure
TForm1.FormCreate(Sender:
TObject);
begin
//下面是初始化
k:=0;
for
i:=Low(m)
to
High(m)
do
for
j:=Low(m[i])
to
High(m[i])
do
if
(j
mod
2)=0
then
m[i][j]:=1
else
m[i][j]:=0;
end;
在运用DELPHI编制一些应用系统时,有很多时候都需要给不同的用户赋予不同的权限,而不同的系统又有不同的权限分配方式,如果在程序中去为每一位用户分配权限的话,不仅使得程序的编制十分麻烦,而且也不利于管理!笔者近日想得一自认为比较好的方法,愿与大家共享,并望各位多指教!
在很多的系统中,权限通常是被分成几级的。每一级的用户所能实现的操作是不同的,而实现这一功能的方法一般都是让不同权限的用户见到不同的菜单。简单的说就是对不具有某一权限的用户这一菜单就是不可见的!为了实现这一控制,程序员们往往得花费很多的时间去做这一模块,浪费了很多宝贵的时间!
笔者的想法是:如果设一个二维数组,第一维代表第一级菜单,第二维代表子菜单,每一个数组元素只存储0或1这两个数,某一权限的用户对应着一个二维数组,而这个数组又代表了相应的菜单。给某一级别的用户分配权限后,他便拥有了一个相应的数组。登录时,从数组中取出各个元素的值,如果为1则相应的菜单出现,为0则不出现菜单。用这种方式不但可以分级(同一级用户的数组相同),还能实现在不同的用户间实现权限细分,只要你修改相应的数值为0或1即可!
上面是一个简单例子的运行结果。
下面是部分源程序(这仅是一个解释性的例子程序),为了简便,程序中只有一个窗体和一个主菜单。在创建窗体时初始化数组M,显示时读出数组值并通过设置菜单的Enabled属性或者Visible属性的True或False来控制显示!!
var
Form1:
TForm1;
m:array[0..1,0..4]
of
integer;//定义存储的数组
i,j:integer;//定义循环的变量
implementation
{$R
*.dfm}
procedure
TForm1.FormShow(Sender:
TObject);
begin
//读出数字并控制菜单的显示
for
i:=Low(m)
to
High(m)
do
for
j:=Low(m[i])
to
High(m[i])
do
begin
if
m[i][j]=0
then
MainMenu1.Items[i].Items[j].Enabled:=false
else
MainMenu1.Items[i].Items[j].Enabled:=true;
end;
end;
procedure
TForm1.FormCreate(Sender:
TObject);
begin
//下面是初始化
k:=0;
for
i:=Low(m)
to
High(m)
do
for
j:=Low(m[i])
to
High(m[i])
do
if
(j
mod
2)=0
then
m[i][j]:=1
else
m[i][j]:=0;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询