U8界面按钮二次开发手册适用范围U8ToolBar原则上都可以支持二次开发行为,但由于某些界面没有这方面的需求,所以并没有支持二次开发功能如何检查是否支持二次开发在一个界面上同时按住Ctrl+Shift并点击任何一个按钮,这样你所需要的信息将被Copy到写字板(附件中的写字板)上,(注意不是记事本notepad)。数据预置数据预置在Meta库中的Meta数据库,表AA_CustomerButton中。说明:字段名说明cButtonID按钮ID,GUIDcButtonKey按钮KeycButtonTypedefault表示一般按钮,menu表示菜单,system表示替换系统按钮的功能,执行自己的方法。cProjectNO不允许使用U870项目号,客户化项目用U8CustDefcFormKey无用cVoucherKey单据的KeycKeyBefore如果cButtonType是default则此键表示自定义按钮前的按钮key如果cButtonType是menu则表示菜单所在的按钮如果cButtonType是system则表示需要替换的按钮keyiOrder无用cGroup分组IEDIT,ICOMMONcCustomerObjectName组件名cCaption标题cLocaleID语种zh-cn,zh-tw,en-uscImage图标的文件名cHotKey快捷键如Ctrl+AbInneralCommand是否内部命令,设置为1cVariant自定义内容,里面的值会传给处理的组件cVisibleAsKey设置显示状态与系统的那个按钮键值一致cEnableAsKey设置Enable状态与系统的那个按钮键值一致销售订单的数据预置脚本销售订单的保存按钮后面增加一个按钮的脚本INSERTINTO[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','','测试','zh-cn','','测试','Ctrl+N',1,'测试数据','save','save')注意:类需要注册,否则会报Activex不能创建对象。直接替换销售订单的保存按钮按钮的脚本INSERTINTO[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','','测试','zh-cn','','测试','Ctrl+N',1,'测试数据','save','save')注意:类需要注册,否则会报Activex不能创建对象。需要将"”注册成COM组件方法[如果是C#开发的话]:cmd下输入以下内容:"C:\Windows\\Framework\"你的DLL程序集名称"组件接口新建一个VB类,并写入以下方法即可‘执行按钮,objVoucher为单据或列表对象‘VarentValue为在表中预置的cVariant的值。PublicFunctionRunCommand(ByValobjLoginAsObject,ByValobjFormAsObject,ByValobjVoucherAsObject,_ByValsKeyAsString,ByValVarentValueAsVariant,ByValotherAsString)EndFunction‘初始化PublicFunctionInit(ByValobjLoginAsObject,ByValobjFormAsObject,ByValobjVoucherAsObject,msbarAsObject)EndFunction‘在执行系统按钮只前调用,Cancel后会不再执行系统方法。PublicFunctionBeforeRunSysCommand(ByValobjLoginAsObject,ByValobjFormAsObject,ByValobjVoucherAsObject,_ByValsKeyAsString,ByValVarentValueAsVariant,ByRefCancelAsBoolean,ByValotherAsString)Cancel=FalseEndFunction