U8界面按钮二次开发手册
### U8界面按钮二次开发手册知识点详解 #### 一、U8界面按钮二次开发概述 U8是一款广泛应用于企业管理领域的软件系统,为了更好地满足不同企业的个性化需求,U8提供了丰富的二次开发工具和技术支持。其中,“U8界面按钮二次开发”是一项重要的定制功能,允许开发者在原有界面上添加新的功能按钮或修改现有按钮的行为,从而达到优化工作流程、提高工作效率的目的。 #### 二、U8界面按钮二次开发支持情况 1. **适用范围**:原则上U8的ToolBar都支持二次开发行为,但部分界面可能由于设计初衷未考虑二次开发需求,因此并未提供相应的支持。 2. **检查支持方式**: - 在目标界面上同时按下`Ctrl + Shift`键并点击任意按钮。 - 此操作会将相关信息复制到写字板中供开发者查看。(注意:这里特指“写字板”,而非记事本。) 3. **数据存储位置**:二次开发所需的相关数据预置在Meta库中的Meta数据库表`AA_CustomerButton`中。 #### 三、数据表`AA_CustomerButton`字段解析 `AA_CustomerButton`表用于存储所有自定义按钮的信息。下面详细介绍该表中各个字段的意义: - **cButtonID**:按钮的唯一标识符,采用GUID格式。 - **cButtonKey**:按钮的键值,用于标识不同的按钮。 - **cButtonType**:按钮类型,分为三种: - `default`:表示普通按钮。 - `menu`:表示菜单项。 - `system`:表示替代系统原有的按钮功能,执行自定义代码。 - **cProjectNO**:项目编号,客户化项目需使用`U8CustDef`作为前缀。 - **cFormKey**:表单的键值,通常为空。 - **cVoucherKey**:单据的键值,与特定业务单据关联。 - **cKeyBefore**:自定义按钮的位置标识,具体含义根据`cButtonType`的不同而变化: - 若`cButtonType`为`default`,则表示该自定义按钮位于哪个系统按钮之前。 - 若`cButtonType`为`menu`,则表示该菜单所在的位置。 - 若`cButtonType`为`system`,则表示该按钮替代哪个系统按钮。 - **iOrder**:顺序号,当前无实际用途。 - **cGroup**:分组标识,例如`IEDIT`或`ICOMMON`等。 - **cCustomerObjectName**:自定义组件名称。 - **cCaption**:按钮的显示文本。 - **cLocaleID**:语言环境标识,例如`zh-cn`、`zh-tw`或`en-us`等。 - **cImage**:按钮图标文件名。 - **cHotKey**:快捷键,如`Ctrl+A`。 - **bInneralCommand**:布尔值,表示是否为内部命令,默认设置为`1`。 - **cVariant**:自定义内容,可以存放一些用于后续处理的额外数据。 - **cVisibleAsKey**:设置按钮的可见性与系统中哪个按钮保持一致。 - **cEnableAsKey**:设置按钮的有效性与系统中哪个按钮保持一致。 #### 四、示例脚本解析 1. **增加新按钮示例**: ```sql INSERT INTO [AA_CustomerButton] ([cButtonID], [cButtonKey], [cButtonType], [cProjectNO], [cFormKey], [cVoucherKey], [cKeyBefore], [iOrder], [cGroup], [cCustomerObjectName], [cCaption], [cLocaleID], [cImage], [cToolTip], [cHotKey], [bInneralCommand], [cVariant], [cVisibleAsKey], [cEnableAsKey]) VALUES (newid(), 'btntest', 'default', 'U8CustDef', '17', '17', 'save', '0', 'IEDIT', 'U8Test.mytestclass', '测试', 'zh-cn', '', '测试', 'Ctrl+N', 1, '测试数据', 'save', 'save'); ``` 这个脚本用于在销售订单的保存按钮后增加一个名为“测试”的新按钮。 2. **替换原有按钮示例**: ```sql INSERT INTO [AA_CustomerButton] ([cButtonID], [cButtonKey], [cButtonType], [cProjectNO], [cFormKey], [cVoucherKey], [cKeyBefore], [iOrder], [cGroup], [cCustomerObjectName], [cCaption], [cLocaleID], [cImage], [cToolTip], [cHotKey], [bInneralCommand], [cVariant], [cVisibleAsKey], [cEnableAsKey]) VALUES (newid(), 'btntest2', 'system', 'U8CustDef', '17', '17', 'save', '0', 'IEDIT', 'U8Test.mytestclass', '测试', 'zh-cn', '', '测试', 'Ctrl+N', 1, '测试数据', 'save', 'save'); ``` 该脚本用于直接替换销售订单的保存按钮。 #### 五、组件接口开发指南 为了实现自定义按钮的功能,需要新建一个VB类,并实现`RunCommand`方法: ```vb ' 执行按钮,objVoucher为单据或列表对象 ' VarentValue为在表中预置的cVariant的值。 Public Function RunCommand(ByVal objLoginAsObject, ByVal objForm As Object, ByVal objVoucher As Object, _ ByVarValue) ' 在这里编写具体的逻辑代码 End Function ``` 需要注意的是,自定义的类`U8Test.mytestclass`必须先进行注册,否则运行时会出现“无法创建ActiveX对象”的错误提示。 通过以上知识点的总结和解析,我们可以了解到U8界面按钮二次开发的基本原理和实现步骤。这对于企业用户来说,能够极大地提升系统的灵活性和适应性,帮助企业更好地应对复杂的业务需求。
- zengjiangen2016-03-18非常不错,学习了.
- qiushenchao2018-10-26太简单了,没有具体说明
- 粉丝: 2
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助