仓位数据查询-学习笔记
仓位值的使用分为:组合方式、非组合方式
非组合方式:仓位值不录入,即仓位值不采用组合方式,则在单据录入每个仓位值集的具体数据
组合方式:设置有仓位值,则仓库中在保存时会生成多个仓位值的组合数据,仓位值组合总数(笛卡尔乘积)等于仓位集1的仓位值数 * 仓位值集2 * 仓位值集N 的仓位值数,在单据录入时只能只能从对应仓位的值组合中进行选择
非组合方式数据
一、新增仓库,启用仓位管理,添加仓位值值,不设置仓位值
-- 仓库启用仓位的值集维度
SELECT T2.FSTOCKID, T2.FNUMBER, T3.FNAME,T1.FFLEXID 仓位值集维度内码, T31.FNUMBER 仓位值集编码,T31L.FNAME 仓位值集名称 FROM T_BD_STOCKFLEXITEM T1 JOIN T_BAS_FLEXVALUES T31 ON T1.FFLEXID = T31.FID JOIN T_BAS_FLEXVALUES_L T31L ON T31L.FID = T31.FID JOIN T_BD_STOCK T2 ON T1.FSTOCKID = T2.FSTOCKID JOIN T_BD_STOCK_L T3 ON T2.FSTOCKID = T3.FSTOCKID WHERE T2.FSTOCKID = 140723 ORDER BY T2.FSTOCKID
此时,T_BD_FLEXVALUESCOM 、T_BAS_FLEXVALUESDETAIL 两张表未生成该仓库相关的仓位值数据
SELECT * FROM T_BD_FLEXVALUESCOM WHERE FSTOCKID = 140723 -- 仓库仓位值集合组合
SELECT * FROM T_BAS_FLEXVALUESDETAIL -- 值集资料维度数据
新增其他入库单,因为该仓库的仓位值集下没有设置对应仓位值,所以可以选择任意的仓位值
审核单据
查看即时库存(T_STK_INVENTORY)和仓位值集维度使用数据(T_BAS_FLEXVALUESDETAIL)
select * from T_STK_INVENTORY where FMATERIALID = 128834 and FSTOCKID = 140723 select * from T_BAS_FLEXVALUESDETAIL where FID = 100017 -- 即时库存仓位FstockLocId关联查询仓位值 select T3.FNUMBER, T31.FNAME, * from T_STK_INVENTORY T1 left JOIN T_BAS_FLEXVALUESDETAIL T2 ON T1.FSTOCKLOCID = T2.FID -- 值集资料维度数据 left join T_BAS_FLEXVALUESENTRY T3 ON T3.FENTRYID = T2.FF100001 -- 仓位值 left join T_BAS_FLEXVALUESENTRY_L T31 ON T31.FENTRYID=T3.FENTRYID and T31.FLOCALEID=2052 --仓位值 left join T_BAS_FLEXVALUES T12 on T3.FID = T12.FID and T12.FFLEXNUMBER = 'FF100001' --仓位值集 -基本信息 where FSTOCKORGID = 100003 and FMATERIALID = 128834 and FSTOCKID = 127842
这里相当于在单据使用时仓位维度才确定下来,系统根据各维度仓位值生成了一个确定的仓位内码
数据说明:
针对T_BAS_FLEXVALUESDETAIL中的数据可以这么理解: FID: 仓位内码 列名:FF100001,FF100002中的100001(编码:区)、100002(编码:位) 表示仓位值集的内码,数据行中100002(B区)、100020(17位)对应为仓位值内码
即(B区)-(17位) 所对应的仓位内码为:100017
组合方式数据
一、新增仓库,启用仓位管理,添加仓位值集,同时设置仓位值
查询: 仓库启用仓位的值维度
SELECT T2.FSTOCKID, T2.FNUMBER, T3.FNAME, T4.FFLEXENTRYID AS 仓位值内码, T41.FNUMBER 仓位值编码, T41L.FNAME 仓位值名称, T1.FFLEXID 仓位值集维度内码,T31.FNUMBER 仓位值集编码,T31L.FNAME 仓位值集名称 FROM T_BD_STOCKFLEXITEM T1 JOIN T_BD_STOCKFLEXDETAIL T4 ON T1.FENTRYID = T4.FENTRYID JOIN T_BAS_FLEXVALUES T31 ON T1.FFLEXID = T31.FID JOIN T_BAS_FLEXVALUES_L T31L ON T31L.FID = T31.FID JOIN T_BAS_FLEXVALUESENTRY T41 ON T4.FFLEXENTRYID = T41.FENTRYID JOIN T_BAS_FLEXVALUESENTRY_L T41L ON T41L.FENTRYID = T41.FENTRYID JOIN T_BD_STOCK T2 ON T1.FSTOCKID = T2.FSTOCKID JOIN T_BD_STOCK_L T3 ON T2.FSTOCKID = T3.FSTOCKID WHERE T2.FSTOCKID = 140734 ORDER BY T2.FSTOCKID, T31.FNUMBER, T41.FNUMBER
此时,T_BD_FLEXVALUESCOM 、T_BAS_FLEXVALUESDETAIL 两张表在仓库保存后生成该仓库相关的仓位值数据
select * from T_BD_FLEXVALUESCOM where FSTOCKID = 140734 -- 仓库仓位值集合组合 select * from T_BAS_FLEXVALUESDETAIL where FID in (select FSTOCKLOCID from T_BD_FLEXVALUESCOM where FSTOCKID = 140734) -- 值集资料维度数据
当设置有仓位值,则仓库中在保存时会生成多个仓位值的组合数据,仓位值组合总数(笛卡尔乘积)等于仓位集1的仓位值数 * 仓位值集2 * ..... 仓位值集N 的仓位值数,在单据录入时只能从对应仓位的值组合中进行选择
新增其他入库单,因为该仓库的仓位值集下设置对应仓位值,所以只能从仓位值组合中进行选择
以上分析仅供参考,如有错误,请指导改正。
仓位数据查询-学习笔记
本文2024-09-16 17:17:30发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-14759.html