U8门户开发手册 下载本文

7. 如何不使用菜单调整工具增加和修改菜单

7.1 相关表结构 7.1.1UA_Menu表结构

字段名 AutoID cMenu_Id cMenu_Name cMenu_Eng cSub_Id IGrade cSupMenu_Id bEndGrade cAuth_Id iOrder iImgIndex Paramters Depends Flag

数据类型 uid String String String String Int16 String Boolean String Int32 Int32 String String Int 含义 自动编号 菜单编号 菜单名称,输入 程序类型 模块标识,程序处理 级次,根据当前选中菜单程序自动处理 上级菜单编号,根据当前选中菜单程序自动处理 是否末级,输入, 功能权限编号,程序内部处理,控制权限时有效(cAuth_Id= cMenu_Id)。 显示顺序号,程序处理 图标索引号,暂不用 参数,输入,只有末级菜单才允许录入参数 依赖,暂不用 标志,暂不用 7.1.2UFMenu_Business_Lang表结构(菜单的多语表)

字段名 MenuId Caption 数据类型 含义 菜单标识,对应UA_Menu表的cMenu_Id值 菜单显示名称(简体中文名称显示的是UA_Menu表的cMenu_Name值) 语言区域 ZH-CN――简体中文 ZH-TW――繁体中文 EN-US――英文 LocaleId

注:U8的系统菜单在UFSystem库里,UAP新增或者菜单调整工具新增的菜单在UFData库里,二次开发增加的菜单也要求在UFData库里。

7.1.3 UA_IDT表结构

字段名 id assembly catalogtype 数据类型 string string int 含义 标识,一般等于ua_menu表里面的cMenu_Id 菜单对应的具体程序 分类,目前都设置为0 菜单对应的程序类型 0-VB DLL 1-EXE 2-.NET UserControl 程序类型决定了assembly和class的内容 type=2时有效,.NET UserControl中继承了NetLoginable的类 目前没有作用,设置为null 目前没有作用,设置为null 目前没有作用,设置为null 标志是否有变化 type int class string entrypoint parameter reserved ufts

string string string 时间戳 7.2各种程序类型的增加方法 7.2.1 VB DLL:

UA_Menu:

ua_menu.cmenu_id= “UA”+顺序号 ua_menu.csub_id=null ua_menu.Paramters=null UA_Menu. cMenu_Eng=’0’ 需要ufsystem..ua_idt中增加记录:

id= ua_menu.cmenu_id type = 0

assembly = dll类名

7.2.2 EXE

UA_Menu:

ua_menu.cmenu_id= “UA”+顺序号 ua_menu.csub_id=null ua_menu.Paramters=null UA_Menu. cMenu_Eng=’1’

需要ufsystem..ua_idt中增加记录: id= ua_menu.cmenu_id type = 1

assembly = EXE文件路径(相对于U8安装的相对路径)

7.2.3 UAP表单

处理UAP增加的菜单无意识被删除需要手工添加,或者,需要UAP菜单挂接不同位置。

UA_Menu:

ua_menu.cmenu_id= “UA”+顺序号 ua_menu.csub_id=’UA’

ua_menu.Paramters=形如的字符串,这里UAPTrain_0009为表单编号; UA_Menu. cMenu_Eng=’2’

不需要在ufsystem..ua_idt中增加记录。

7.2.4 UAP列表

处理UAP增加的菜单无意识被删除需要手工添加,或者,需要UAP菜单挂接不同位置。 UA_Menu:

ua_menu.cmenu_id= “UA”+顺序号 ua_menu.csub_id=’UA’

ua_menu.Paramters=形如

id=”eea90b20-4a2b-4149-8d00-820818dcd38f”/>的字符串,这里

UAPTrain_0009为表单编号;eea90b20-4a2b-4149-8d00-820818dcd38f为表单列表ID; UA_Menu. cMenu_Eng=’3’

不需要在ufsystem..ua_idt中增加记录。

7.2.5 .Net UserControl

系统定义一个接口IUserControl,只有两个属性:U8Login对象和菜单对象(对应的菜单行数据)。如果.Net UserControl需要U8Login对象必须实现这个接口,否则可以不实现这个接口。

UA_Menu:

ua_menu.cmenu_id= “UA”+顺序号 ua_menu.csub_id=’UA’

ua_menu.Paramters=

dllpath:dll的路径,要用u8soft的相对路径,最好放在uap目录下; id:UserContrl唯一标识,其值自定;

type:属性值必须为\,区分大小写;

parameters:需要给程序(UserControl)传送的数据,格式自定。

UA_Menu. cMenu_Eng=’4’ 不需要在ufsystem..ua_idt中增加记录。