select FID,* from ICTransactionType where FName ='外购入库'
select FEnable,* from ICTemplateEntry where FID = 'A01' and FHeadCaption ='批号'
一般来说将字段的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是一样的就行
逻辑:再物料值更新修改后,锁定批次字段;
有些字段则还需要额外的在插件的loadbillend事件中去处理;
推荐阅读