U8客开插件-一、标准单据标准按钮执行前验证操作

it2022-05-11  63

今天要做的就是在标准的单据的标准按钮之前进行验证操作,如果验证通过执行保存,如果不通过给予提示不进行保存。

下面拿销售出库单的保存按钮进行举例:

第一步:在程序中 ctrl+Shift  点击保存之后用写字板,粘贴  key

  取到 : 单据Key=0303、保存,按钮Tooltip:保存     F6,按钮Key:tlbSave;

第二步:VB工程及保存按钮前操作类

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) 这里可以写自己的判断逻辑,取值方法在最下面 End Function '初始化 Public Function init(ByVal objLogin As Object, ByVal objForm As Object, ByVal objVoucher As Object, msbar As Object) End Function

  注意:在方法中Cancel = true为取消当前操作,并不往后执行

第三步:注册插件C:\U8SOFT\KK\EFBASE\UI_UserConfig.xml

<dll> <userdll>U8SO_SOMainSaveButton.BeforeSaveClass</userdll> <function> <userfunction>BeforeRunSysCommand</userfunction> </function> </dll>

第四步:注册脚步:数据库UFMeta_999

delete from aa_customerbutton where cButtonID = '088EC6DB-2380-4457-93BF-C618BE4767EA' go insert into aa_customerbutton ([cButtonID],[cButtonKey],[cButtonType],[cProjectNO],[cFormKey], [cVoucherKey],[cKeyBefore],[iOrder],[cGroup],[cCustomerObjectName],[cCaption],[cLocaleID],[cImage], [cToolTip],[cHotKey],[bInneralCommand],[cVariant],[cVisibleAsKey],[cEnableAsKey]) values('{088EC6DB-2380-4457-93BF-C618BE4767EA}','btntest','system','U8SO_SOMainSaveButton','0303', '0303','tlbSave','0','IEDIT','U8SO_SOMainSaveButton.BeforeSaveClass','销售出库单保存校验','zh-cn','','销售出库单保存校验', 'Ctrl+S',1,'销售出库单保存校验','tlbSave','tlbSave') go

脚本说明:

cButtonID:可以是 newid()

cButtonKey:要唯一,有意义的名字

cButtonType:按钮类型 default\menu\system

cFormKey: 窗体名字,单据Key

cVoucherKey:单据Key

cKeyBefore: 要处理的按钮key

cGroup : 按钮所在组

cCustomerObjectName:工程名.类名EFInterface_demo.cls_aa_customerbutton。如果这个不对不会进入VB

cToolTip:提示

cVisibleAsKey:当前按钮与哪个按钮是否可见状态一样

cEnableAsKey:当前按钮与哪个按钮是否可用状态一样

cImage:按钮图标 credit   在 icons图片名

第五步:vb工程启动项选择 EnterprisePortal.exe

第六步:在VB一程打上断点,并生成dll文件到C:\U8SOFT\UAP下,运行VB工程进行调试,效果如下:

 

备注:记录一下相关脚本

  一、记录一下取值方式等

ls_dDate = objVoucher.headerText("dDate") 获取结算日期 // dDate U8字段名ls_iExchRate = objVoucher.headerText("iExchRate")’获取汇率 ls_iQuantity = objVoucher.bodyText(i,"iQuantity")'获取数量

  二、销售订单脚本注册如下:

delete from aa_customerbutton where cButtonID = '088EC6DB-2380-4457-93BF-C618BE4767EA' go insert into aa_customerbutton ([cButtonID],[cButtonKey],[cButtonType],[cProjectNO],[cFormKey], [cVoucherKey],[cKeyBefore],[iOrder],[cGroup],[cCustomerObjectName],[cCaption],[cLocaleID],[cImage], [cToolTip],[cHotKey],[bInneralCommand],[cVariant],[cVisibleAsKey],[cEnableAsKey]) values('{088EC6DB-2380-4457-93BF-C618BE4767EA}','btntest','system','U8SO_SOMainSaveButton','17', '17','save','0','IEDIT','U8SO_SOMainSaveButton.BeforeSaveClass','销售订单保存校验','zh-cn','','销售订单保存校验', 'Ctrl+S',1,'销售订单保存校验','save','save') go

转载于:https://www.cnblogs.com/jerryzhangjy/p/4022366.html


最新回复(0)