上一篇文章提到如何对字符串字段进行自动携带https://blog.csdn.net/hzfw2008/article/details/81127429,这次需要对下拉字段进行自动携带。
现状:销售订单需要根据客户信息去手动选择该订单划归区域,区域信息是从辅助资料里边得来的。
需求:正常每个客户对应的区域是固定的,所以可以通过输入客户后,自动携带对应的区域数据,同时该字段可以支持自行调整。
请注意:操作有风险,请操作前备份账套并在测试账套测试充分后再执行!
友情提醒:所有数据库进行的自定义参数,在BOS重新配置后将会失效并有可能会将自定义字段的历史数据清空,所以一旦调整后,请勿再在BOS端进行重新配置!如果一定要调整,请在配置BOS前进行数据备份,配置完毕后再将对应字段数据还原。
实现方法:
先备份一下账套!!!先备份一下账套!!!先备份一下账套!!!
以下仅对新字段进行操作演示,如果对历史字段进行操作,请直接从第6步操作:
- 客户资料区域字段里边引用对应区域字段;
- 对于新的字段:在销售订单表头增加销售区域字段,BOS设置如下:
对于旧字段,请跳过该步骤看第6步,直接在后台数据库操作,不要改BOS,否则会造成数据丢失!! - 前端新增销售订单,可以发现进行区域的F7选择,但是输入客户信息后,无法自动携带客户的对应区域数据,所以还需要后台数据库调整下;
- 数据库调整语句如下:
update ICTemplate set FRelationID='FCustID', FAction='.B,FRegionID,t_SubMessage,FInterID' --表示根据输入的客户信息获取对应客户的对应的区域ID WHERE FID='S01' and FCtlIndex=56--定位到需要调整的列
- 再新增一张单据试下,销售区域字段自动携带,并且支持修改了;
- 对于历史字段改造,请直接在数据库执行如下语句即可:
update ICTemplate set FRelationID='FCustID', FAction='.B,FRegionID,t_SubMessage,FInterID' --表示根据输入的客户信息获取对应客户的对应的区域ID WHERE FID='S01' and FCtlIndex=56--定位到需要调整的列
- 如果不慎操作失误将以前的数据给删了,将备份的账套恢复,将历史的数据给重新刷到改造后的数据库里边,批量刷新语句如下:
update t2 set t2.FHeadSelfS0157 = u1.FHeadSelfS0157 from AIS20180925154213.dbo.seorder u1 inner join AIS20140104204141.dbo.seorder t2 on t2.FInterID = u1.FInterID where t2.FHeadSelfS0157 is null