医药GSP管理系统 第6页
图6 权限设置运行结果
“权限设置”界面主要实现利用ListView控件显示操作员及其头像列表和采用树状视图型式显示和设置权限的功能。
(1)在“医药GSP管理系统”项目中,利用Class_Frm类创建新表单,名称为“权限设置”。
(2)在表单中添加Shape控件(用于修饰界面)、Button_F控件(和ActiveX控件中的TreeView(Microsoft TreeView Control 6.0 (SP4))控件、ImageList(Microsoft ImageList Control 6.0 (SP4))控件、ListView(Microsoft ListView Control 6.0 (SP4))控件。
(3)重要控件的重要属性如表5所示。
表5 重要属性及值
对象 |
属性 |
值 |
Class_Frm12 |
BorderStyle |
0 – 无边框 |
Class_Frm12 |
TitleBar |
0 – 关闭 |
TreeView1 |
Checkboxes |
.T. – 假 |
TreeView1 |
LineStyle |
1 - RootLines |
(4)为表单创建方法程序List_Sele。
在表单的新添加的方法List_Sele中添加如下代码实现利用树状视图显示操作员权限。
For I=1 to thisform.treeview.nodes.count
thisform.treeview.nodes(I).checked=.f.
thisform.treeview.nodes(I).expanded=.f.
endfor
sele Tab_Purview.* from Tab_Purview Inner Join Tab_User On Tab_Purview.;
操作员编号=Tab_User.操作员编号;
Where Tab_User.操作员=alltrim(thisform.listview1.selecteditem.text) into cursor Temp_User
sele Temp_User
n=2
for I=1 to thisform.treeview.nodes.count
if thisform.treeview.nodes(I).children=0 &&如果没有子节点
mycol=field(n,"Temp_User")
n=n+1
thisform.treeview.nodes(I).checked= Temp_User.&mycol.
if thisform.treeview.nodes(I).checked=.t.
if thisform.treeview.nodes(I).parent.checked=.f.
thisform.treeview.nodes(I).parent.checked=.t.
thisform.treeview.nodes(I).parent.expanded=.t.
endif
endif
thisform.treeview.refresh
endif
endfor
在表单的Init事件中添加如下代码实现在ListView控件中显示操作员及其头像列表。
*初始化ListView控件
thisform.listview1.view=0 &&设置视图显示方式
thisform.listview1.icons=thisform.imagelist1.object
select tab_user &&选定Tab_User工作区为当前工作区
select * from tab_user;
order by tab_user.操作员;
into cursor Temp_CZY
do while !EOF() &&测试当前记录指针是否在文件尾
key=alltrim(Temp_CZY.操作员)
=thisform.listview1.listitems.add(,,key,Temp_CZY.头像) &&添加一个列表项
skip &&相对移动记录指针
enddo
This.List_Value
在TreeView1控件的Init事件中添加如下代码,将系统主菜单和其子菜单项利用树型视图显示。
Dime A_Main(8)
A_Main=""
Select 名称 From Tab_Function Where 上级编号=0 Order By 编号 Into Array A_Main
Go Top
For I=1 To 8
This.Nodes.Add(,,Alltrim(A_Main(I)),Alltrim(A_Main(I)),,) &&添加主菜单节点
Select * From Tab_Function Where 上级编号=I Into Cursor Temp_Child
Go Top
Do While !Eof()
NodeName="NODE"+Padl(Alltrim(Str(编号)),2,"0")
This.Nodes.Add(Alltrim(A_Main(I)),4,NodeName,Alltrim(名称),,) &&添加子菜单节点
Skip
EndDo
EndFor
在TreeView1控件的NodeCheck事件中添加如下代码:
On Error
If Node.Checked = .t. Then &&如果节点被选中
If Node.Children <> 0 Then &&判断是否有子节点
Node.Selected = .t. &&展开此节点
myFirst = Node.Child.FirstSibling.Index
myLast = Node.Child.LastSibling.Index
For I = myFirst To myLast
this.Nodes(I).Checked = .t. &&使所有子节点都被选中
endfor
Else &&如果没有子节点
Node.Checked = Not Node.Checked
If Node.Parent.Checked = .f. Then &&如果父节点没有被选中
Node.Parent.Checked = .t. &&父节点被选中
EndIf
EndIf
Else &&如果此节点并没有被选中
If Node.Children <> 0 && 判断是否有子节点
Node.Selected = .t. &&展开此节点
myFirst = Node.Child.FirstSibling.Index
myLast = Node.Child.LastSibling.Index
For I = myFirst To myLast
this.Nodes(I).Checked = .f. &&使所有子节点都不被选中
endfor
Else &&如果没有子节点
Node.Checked = Not Node.Checked
EndIf
EndIf
在“保存”按钮的Button_Click事件中添加如下代码:
Select Tab_User
Locat For 操作员=alltrim(thisform.listview1.selecteditem.text)
CZYNO=Tab_User.操作员编号
Select Tab_Purview
For I = 1 To thisform.TreeView.Nodes.Count
if thisform.treeview.nodes(I).children=0
mytext=alltrim(thisform.treeview.nodes(I).text) &&取出树视图中每一个节点的标签
If thisform.TreeView.Nodes(I).Checked = .t. &&用新值替换数据表中指定字段的值
repl Tab_Purview.&mytext. with .t. For 操作员编号=CZYNO
else
repl Tab_Purview.&mytext. with .f. For 操作员编号=CZYNO
EndIf
endif
next
messagebox("权限设置成功!",48,"系统提示")
1.《Visual Basic精彩编程200例》机械工业出版社 赛奎春、高春艳等
2003年1月
2.《Visual Basic数据库开发实例解析》机械工业出版社 刘志铭、高春艳等
2003年8月
3.《Visual FoxPro数据库开发实例解析》机械工业出版社 王晶莹、王国辉等
2003年9月
4.《Power Builder数据库开发实例解析》机械工业出版社 华传铭、张振坤等
2003年9月
5.《Delphi数据库开发实例解析》机械工业出版社 赛奎春、郑骁鹏等
2004年2月
6.《PowerBuilder 精彩编程200例》机械工业出版社 张振坤、李文立等
2004年9月
7.《Visual FoxPro 精彩编程200例》机械工业出版社 王国辉、董韶华等
2004年9月
8.《ASP数据库开发实例解析》机械工业出版社 李严、于亚芳、王国辉 2004年12月
9.《Delphi工程应用与项目实践》机械工业出版社 宋坤、赵智勇等
2005年1月
10.《Visual Basic工程应用与项目实践》机械工业出版社 高春艳、李俊民等
2005年1月
11.《Visual C++工程应用与项目实践》机械工业出版社 张雨、阮伟良等
2005年1月
12.《JSP工程应用与项目实践》机械工业出版社 陈威、白伟明、李楠
2005年2月
13.《ASP工程应用与项目实践》机械工业出版社 王国辉、牛强、李南南
2005年4月
14.《Visual Basic 信息系统开发实例精选》机械工业出版社 高春艳、李俊民、张耀庭等
2005年7月
15.《ASP 信息系统开发实例精选》机械工业出版社 王国辉、牛强、李南南等
2005年7月
16.《Delphi 信息系统开发实例精选》机械工业出版社 宋坤、赵智勇、刘强等
2005年7月
17.《Visual foxpro数据库开发关键技术与实例应用》人民邮电出版社 周桓、张雨、王国辉
2004年5月
18.《Power Builder数据库开发关键技术与实例应用》人民邮电出版社 刘志铭、张振坤、冯文萃 2004年5月
19.《Delphi数据库开发关键技术与实例应用》人民邮电出版社 赛奎春、陈紫鸿、宋昆
2004年5月
20.《Visual basic数据库开发关键技术与实例应用》人民邮电出版社 高春艳、李艳
2004年5月
21.《Visual C++ 管理信息系统完整项目实例剖析》人民邮电出版社 明日科技
2005年7月
22.《Visual Basic 管理信息系统完整项目实例剖析》人民邮电出版社 明日科技
2005年7月
23.《PowerBuilder 管理信息系统完整项目实例剖析》人民邮电出版社 明日科技
2005年7月
24.《Visual FoxPro管理信息系统完整项目实例剖析》人民邮电出版社 明日科技
2005年7月
25.《SQL Server数据库开发实例解析》机械工业出版社 宋昆、李严等
2006年1月
26.《Access数据库开发实例解析》机械工业出版社 李俊民、高春燕等
2006年1月
27.《Visual Basic数据库系统开发完全手册》人民邮电出版社 明日科技王春才、高春艳、
李俊民 2006年3月
28.《Visual C++ 数据库系统开发完全手册》人民邮电出版社 明日科技 王端、于速、张雨
2006年3月
29.《Delphi数据库系统开发完全手册》人民邮电出版社 明日科技 宋坤、邹天思
2006年3月
30.《JSP数据库系统开发完全手册》人民邮电出版社 明日科技 王国辉、李文立、杨亮
2006年3月
31.《Visual Basic数据库系统开发案例精选》人民邮电出版社 明日科技 高春艳、李俊民、
刘彬彬 2006年5月
32.《Delphi 数据库系统开发案例精选》人民邮电出版社 明日科技 李文立、刘强、梁冰
2006年5月
33.《ASP数据库系统开发案例精选》人民邮电出版社 明日科技 孙明丽、邹天思、盖天宇
2006年5月
34.《JSP数据库系统开发案例精选》人民邮电出版社 明日科技 王国辉、王易
2006年5月
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页