最近服务了一家客户,客户没有买生产的模块,业务流程是以销定产的模式,客户先做销售订单,然后做产品入库单,入库单是关联销售订单的,专业版是支持这样的流程设计的,然后测试了数量携带的也都正确,入库红字退款都没啥问题,现在客户销售提出,虽然入库是关联销售订单的,但是销售订单上并没有入库状态,想在销售订单上把入库数量显示出来。
一听到这个需求的时候,第一个想法是做个触发器,做个自定义字段,产品入库数量,然后设置成不允许修改,在产品入库单表上加个触发器,根据入库数量更新这个销售订单上的产品入库数量,嗯说做就做,打开销售订单表,看下新增字段的内码,看到一个字段fincommitqty,这个字段里面的数值好像就是刚刚测试的那个产品入库数量,看来系统已经设置好勾稽关系,只是没有显示出来,那么试试能不能把这个字段显示出来这样更简单不是。
首先想到的就是字段表,打开字段模板表,根据销售单内码,s01把销售订单表体的所有字段都显示出来,嗯找了半天,确实没有一个字段表示fincommitqty这个值得,手动添加试试,复制一行类型差不多的字段,就基本单位组装数量吧,把ffieldname值改成fincommitqty,把headcaption数值改成产品入库数量,保存,打开销售订单,果然订单上显示了产品入库数量,多做了几次入库嗯,测试了没啥问题。
打开以前的单据看下,打开序时簿,发现虽然单据上显示,但是序时簿没有显示呢,看来后台加的字段,要在那个后台把序时簿也加上,打开序时簿模板表,根据FColCaption字段,查找销售字段中的字段,查出销售订单FtypeID是61,根据type查出销售订单左右字段,仿照字段表的辅助,复制一行,把fingerid ,FColCaption ,fcolname,fname都改成产品入库数量对应的字段,保存下,在过滤的条件里面显示了产品入库数量这个数值啦,打开以前的单据,下查下嗯,都是对的,把手动添加转换成sql语句,
insert into [dbo].[ICChatBillTitle] values((select max(FInterID) 1 from [dbo].[ICChatBillTitle]),'61','产品入库数量$','','fincommitqty','SEOrderEntry','1','1000','1','-1','1','0','0','42','fincommitqty','u1','','False','0','','1','0','True','产品入库数量','','0',
'0','5','','0','False','','0','1','1000')
insert into [dbo].[ICTemplateEntry] values(
'S01', '28', '37', '3', '-1', 'False', '1' ,'0', 'fincommitqty', '0', 'True' ,'产品入库数量' ,'1125' ,'True' , '', '','False' ,'','' , 'True', '31', 'False', 'False',
'产品入库数量','' , 'False' ,'1', 'True' ,'0' ,'','','','', '0', '1', '0', 'false'
)
go
更新前记得备份下账套,测试了没啥问题,为什么中途改成不选择触发器,是因为这样第一很简单,容易维护,第二以前的单据可以直接查询,不需要再执行语句更新上去,希望这个方法可以帮到你欧!该处理方法试用于金蝶kis专业版,金蝶kis旗舰版