需求1:销售订单下单时输入客户名称后,自动携带对应的发货信息(收货地址,收货人,收货电话),如果下单人确认无误,直接保存单据即可;如果确认需要修改,则修改对应字段数据后保存;
需求2:仓库将销售订单下推销售出库,对应发货信息字段数据自动携带下去,保存后可以直接在K3调用发货信息打印运单。
实现方式:
- 在BOS销售订单页面新增3个字段:
送货地址:
收货人:
联系电话: - SQL数据库后台查看对应字段属性;
select FTemplateID,* from ictransactiontype where FName like '%销售订单%'--根据采购订单名称检索模板内码 SELECT * FROM ICTemplate WHERE FID='s01' and FCtlIndex=49--收货地址 SELECT * FROM ICTemplate WHERE FID='S01' and FCtlIndex=50--收货人 SELECT * FROM ICTemplate WHERE FID='S01' and FCtlIndex=51--收货电话
- 先看下客户数据默认要携带的字段j内码:
电话:FPhone
发货地址:F_102
收货人:F_105 - 在销售订单模板数据库增加默认携带属性,代码和执行后效果见下:
--下方为自动携带收货地址-- update ICTemplate set FRelationID='FCustID',--表示该字段值是以客户内码为关联条件的 FAction='.,F_102' --表示获取对应客户的对应的发货地址 WHERE FID='S01' and FCtlIndex=49--定位到需要调整的列 -----下方为自动携带收货人-- update ICTemplate set FRelationID='FCustID',--表示该字段值是以客户内码为关联条件的 FAction='.,F_105' --表示获取对应客户的对应的收货人 WHERE FID='S01' and FCtlIndex=50--定位到需要调整的列 -----下方为自动携带收货人电话-- update ICTemplate set FRelationID='FCustID',--表示该字段值是以客户内码为关联条件的 FAction='.,FPhone' --表示获取对应客户的对应的电话 WHERE FID='S01' and FCtlIndex=51--定位到需要调整的列
-
新增销售订单,输入客户名称后回车,客户的默认发货地址,收货人,电话自动携带过来了;如果需要修改,直接点击修改即可;
-
验证下保存后再打开,被修改的数据不会被还原;
-
保存销售订单后需要下推销售出库单,并将这三个字段数据携带下去。客户端工具包-辅助工具-单据自定义,打开销售出库单自定义模板;
-
增加3个单据头字段:
收货地址(核对):
收货人(核对):
收货人电话(核对): -
设置各字段属性后保存单据自定义。字段类型为字符串,来源方式为手工录入,选单来源定义到销售订单对应字段。
PS:如果要限制销售出库单修改发货信息,可以将可编辑改为“否”。 -
K3测试销售订单下推销售出库单,看下数据是不是被携带下来了;
自此完成相关开发。
如果需要补齐历史销售订单单据缺失的发货数据(按照默认地址补齐),则使用以下语句:
--首次更新收货地址数据FHeadSelfS0152
update t2
set t2.FHeadSelfS0152 = u1.F_102
from t_Organization u1
inner join SEOrder t2 on t2.FCustID = u1.FItemID
--首次更新收货人数据FHeadSelfS0153
update t2
set t2.FHeadSelfS0153 = u1.F_105
from t_Organization u1
inner join SEOrder t2 on t2.FCustID = u1.FItemID
--首次更新收货人电话数据FHeadSelfS0154
update t2
set t2.FHeadSelfS0154 = u1.FPhone
from t_Organization u1
inner join SEOrder t2 on t2.FCustID = u1.FItemID
请注意:如果重新之定义销售订单BOS,保存后将还原之前的自定义默认携带SQL,需要重新执行第4条的SQL语句!否则销售订单中的发货信息自动携带功能将失效。