二开--老单插件禁止用户修改表体字段原创
金蝶云社区-Robby
Robby
13人赞赏了该文章 402次浏览 未经作者许可,禁止转载编辑于2023年08月04日 17:12:43

select FID,* from ICTransactionType where FName ='外购入库'

select FEnable,* from ICTemplateEntry where FID = 'A01' and FHeadCaption ='批号'

image.png

一般来说将字段的FEnable设置为0就能禁止yoghurt修改表体字段了;


但是有些字段比较特殊,比如批号字段;他是在单据逻辑里有一个标准控制,当物理启用的批次管理则容许编辑批号,如果未启用批次管理则无法编辑批号;


因此想要让批号不论任何情况下都不让修改则必须通过客户端插件实现:

首先为外购入库单注册客户端插件:FTypeDetailID=1,1是ICTransactionType FID字段;FTypeID=0表示老单客户端插件

FComponentName = 'UserBillPrj.CBill71',表示自定义的vb组件名.类名

findex=1000,要保证findex值是这个单据所有插件里最大的,即这个插件再所有逻辑处理完之后再执行;

delete t_ThirdPartyComponent

where FTypeID=0 and FTypeDetailID=1 And FComponentName = 'UserBillPrj.CBill71'

Go

insert into t_ThirdPartyComponent(ftypeid,ftypedetailid,findex,FComponentName)

values(0,1,1000,'UserBillPrj.CBill71')

Go


代码如下:创建一个vb工程UserBillPrj 类名CBill71;随便起名,只要保证跟注册到t_ThirdPartyComponent是一样的就行

image.png

逻辑:再物料值更新修改后,锁定批次字段;


有些字段则还需要额外的在插件的loadbillend事件中去处理;

赞 13