本文描述了生产汇报单中批号首字母大写保存后变小写的现象,并提供了相关知识点。分析认为,SQL SERVER默认不区分大小写,导致非库存单据保存时匹配到已存在的小写批号主档。此外,批号主档具有唯一性,且分为库存批号和非库存批号。
场景:生产汇报单填下批号首字母大写PP001 保存后重新打开单据 字母pp就变小写了,批号主档中也没有小写字母的批号;
知识点:
1)批号根据字段 FBIZTYPE 区分库存批号和非库存批号,库存单据使用库存批号,非库存单据使用非库存批号;
2)库存批号与非库存批号,编码相同,关联相同物料;
3)SQL SERVER 默认不区分字段大小写;
4)批号主档列表只能显示库存批号,非库存批号不显示(也就是选择批号时只能选到库存批号(包括非库存单据));
5)保存操作上的批号主档更新服务决定单据使用库存批号还是非库存批号;
6)批号主档具有唯一性,一个物料只有一个相同批号编码的批号主档;
分析:
1)SQL查询批号主档,确认主档是否是小写字母;
2)检查批号主档是库存批号还是非库存批号以及创建日期;
3)对比单据创建日期与批号主档创建日期是否对得上,如果批号主档创建日期早于单据创建日期,说明该批号主档是由其他单据创建的;
上述场景,小写的pp001非库存批号主档已经存在,不管是否存在大写的PP001库存批号主档(区别在于选择录入还是手工填写),由于SQL SERVER数据库不区分大小写,在非库存单据 生产汇报单上保存时都会匹配到 pp001主档,也就是主档已存在,单据批号字段会记录该批号主档的ID,打开单据时关联的也就是pp001主档的信息了。
SELECT FLOTID,FNUMBER '批号编码',FBIZTYPE '批号类型 1 库存,2 非库存',FMATERIALID '物料Masterid',FCREATEDATE '创建日期',* FROM T_BD_LOTMASTER
推荐阅读