U8 界面按钮二次开发手册
适用范围
U8ToolBar 原则上都可以支持二次开发行为,但由于某些界面没有这方面的需求,所以并没
有支持二次开发功能
如何检查是否支持二次开发
在一个界面上同时按住 Ctrl+Shift 并点击任何一个按钮,这样你所需要的信息将被 Copy 到
写字板(附件中的写字板)上,(注意不是记事本 notepad)。
数据预置
数据预置在 Meta 库中的 Meta 数据库,表 AA_CustomerButton 中。
说明:
字段名
cButtonID
cButtonKey
cButtonType
cProjectNO
cFormKey
cVoucherKey
cKeyBefore
说明
按钮 ID,GUID
按钮 Key
default 表示一般按钮,
menu 表示菜单,
system 表示替换系统按钮的功能,执行自己的方法。
不允许使用 U870 项目号,客户化项目用 U8CustDef
无用
单据的 Key
如果 cButtonType 是 default 则此键表示自定义按钮前的按
钮 key
如果 cButtonType 是 menu 则表示菜单所在的按钮
如果 cButtonType 是 system 则表示需要替换的按钮 key
iOrder
cGroup
无用
分组 IEDIT,ICOMMON
cCustomerObjectName
组件名
cCaption
cLocaleID
cImage
cHotKey
bInneralCommand
标题
语种 zh-cn, zh-tw,en-us
图标的文件名
快捷键如 Ctrl+A
是否内部命令,设置为 1
cVariant
cVisibleAsKey
cEnableAsKey
自定义内容,里面的值会传给处理的组件
设置显示状态与系统的那个按钮键值一致
设置 Enable 状态与系统的那个按钮键值一致
销售订单的数据预置脚本
[cLocaleID],
[cKeyBefore],
[cVoucherKey],
销售订单的保存按钮后面增加一个按钮的脚本
INSERT INTO [AA_CustomerButton]([cButtonID], [cButtonKey], [cButtonType], [cProjectNO],
[cFormKey],
[cCustomerObjectName],
[cCaption],
[cVariant],
[cVisibleAsKey], [cEnableAsKey])
VALUES(newid(), 'btntest','default', 'U8CustDef',
'17', '17','save', '0', 'IEDIT','U8Test.mytestclass','测试',
'zh-cn','','测试','Ctrl+N',1,'测试数据','save','save')
注意:U8Test.mytestclass 类需要注册,否则会报 Activex 不能创建对象。
[bInneralCommand],
[cToolTip],
[cHotKey],
[cGroup],
[cImage],
[iOrder],
直接替换销售订单的保存按钮按钮的脚本
[cLocaleID],
[cKeyBefore],
[cVoucherKey],
INSERT INTO [AA_CustomerButton]([cButtonID], [cButtonKey], [cButtonType], [cProjectNO],
[cCustomerObjectName],
[cFormKey],
[cCaption],
[cVariant],
[cVisibleAsKey], [cEnableAsKey])
VALUES(newid(), 'btntest2','system', 'U8CustDef',
'17', '17','save', '0', 'IEDIT','U8Test.mytestclass','测试',
'zh-cn','','测试','Ctrl+N',1,'测试数据','save','save')
[bInneralCommand],
[cToolTip],
[cHotKey],
[cGroup],
[cImage],
[iOrder],
注意:U8Test.mytestclass 类需要注册,否则会报 Activex 不能创建对象。
组件接口
新建一个 VB 类,并写入以下方法即可
‘执行按钮,objVoucher 为单据或列表对象
‘VarentValue 为在表中预置的 cVariant 的值。
Public Function RunCommand(ByVal objLogin As Object, ByVal objForm As Object, ByVal
objVoucher As Object, _
ByVal sKey As String, ByVal VarentValue As Variant, ByVal
other As String)
End Function
‘初始化
Public Function Init(ByVal objLogin As Object, ByVal objForm As Object, ByVal objVoucher As
Object, msbar As Object)
End Function
‘在执行系统按钮只前调用,Cancel 后会不再执行系统方法。
Public Function BeforeRunSysCommand(ByVal objLogin As Object, ByVal objForm As Object,
ByVal objVoucher As Object, _
ByVal sKey As String, ByVal VarentValue As Variant, ByRef
Cancel As Boolean, ByVal other As String)
Cancel = False
End Function