var Field_FLOT = (BaseDataField)e.TargetBusinessInfo.GetField("FLot");
DynamicObject obj_FLOT = BusinessDataServiceHelper.LoadSingle(e.Context, Convert.ToInt64(data["FLOT"].ToString()), Field_FLOT.RefFormDynamicObjectType);
row["Lot_Id"] = Convert.ToInt64(data["FLOT"].ToString());//批号
row["Lot"] = obj_FLOT;//批号
row["Lot_Text"] = data["FLOTNUMBER"].ToString();//批号
以下是一些资料
目前有收到几个客户的咨询 批号字段在单据打开界面可以显示 但是在列表上没有值的问题
首先 批号字段在我们产品中类似于基础资料 后台数据库存储的时候有两个字段用于存储(Lot_Text 与LotID)出现这种情况 可以查看下对应的数据库 是否两个字段都有值 如果只有text有值 id没有值 那在列表界面就看不到值,这是因为列表界面对于基础资料类型的字段获取值是通过后台ID去获取的 text有值id没有值 那列表界面就获取不到数据
为什么会出现这种情况?
1、以生产订单携带到用料清单为例,因为生产用料清单是在生产订单保存的时候生成的,而生产订单的批号字段是保存的时候才会调用服务【保存时更新批号主档】保存时更新批号主档会根据批号text生成Id值存入数据库,所以这时候生产订单的批号字段是没有id值的 就算通过制造映射模型将批号字段携带到了生产用料清单也是没有id值 只有text值 导致用料清单列表上批号字段没有值显示
2、或者通过计划订单投放生成生产订单 投放过程中将一个文本字携带到生产订单批号字段也会出现类似的情况
解决办法:
1、在对应的下游单据配置服务 【保存时更新批号主档】这个服务配置在用料清单保存操作上,字段要选择对应的用料清单新添加的批号字段 重新保存相应的单据
2、在转换的过程中确保批号id已经有值
3、二开插件 生产订单AfterSave事件中 获取批号对应ID值 更新对应行的用料清单批号ID值
作者:乐滋滋
来源:金蝶云社区
原文链接:https://vip.kingdee.com/article/182636?productLineId=1&isKnowledge=2
著作权归作者所有。未经允许禁止转载,如需转载请联系作者获得授权。
Cloud批号使用说明
https://vip.kingdee.com/article/939?productLineId=1
插件中怎么给批号字段赋值
https://vip.kingdee.com/article/152803485287779584?productLineId=1
推荐阅读