1、从数据库批量修改 K3 的物料及其相关的成本对象一需求:1客户要求在所有体现物料的查询统计表中都显示物料的规格型号2咱们的 K3 系统在供应链模块的单据和报表中,基本都能同时显示物料编码、名称和规格型号,但在财务模块,涉及物料的报表基本上只能体现编码和名称,特别是把物料作为成本对象的统计表,如下图(物料只有编码和名称):图一:财务报表-核算项目与科目组合表(修改前)二现况:K3 本身不支持将物料类成本对象,关联显示出它对应物料的规格型号三解决方案:把物料的规格型号加在名称后面,最终解决之后的效果如下图:图二:财务报表-核算项目与科目组合表(修改后)四关键问题:如果客户是从一开始初始化时就考虑这
2、么做,那么在录入物料信息时名称后面就跟着规格型号,但是如果客户已经初始化完成,而后来才发现需要在物料名称后面追加规格型号,那么我们就只能从数据库修改这才是我这篇文档要说明的关键问题1修改数据库表 t_item、t_icitem 和 cbcostobj2先修改 t_icitem 中的 FNameUpdate t_icitem set FName = FName + / + FModel where FModel is not null3再修改 t_item 中物料记录本身的名称,通过 FItemID 和 t_icitem 关联Update a set a.FName = a.FName + /
3、+ b.FModelFrom t_item a, t_icitem bWhere a.FItemID = b.FItemID and b. FModel is not null and a.FItemClassID = 44再修改 cbcostobj 中的 FNameUpdate a set a.FName = a.FName + / + b.FModelFrom cbcostobj a, t_icitem bWhere a.FItemID = b.FItemID and b. FModel is not null5最后再修改 t_item 中物料所对应的成本对象的名称Update a set
4、 a.FName = b.FNameFrom t_item a, cbcostobj bWhere a.FItemID = b.FItemID and a.FItemClassID = 2001五总结通过这个问题的处理,了解了 K3 在物料及其对应的成本对象这方面的数据库设计,包括涉及到的表和它们之间的关系:1t_item 存放很多种基础资料的基本信息,包括编码和名称,而没有详细信息和相关字段信息,例如物料规格型号就不会存于此表。此例中看到物料主信息和成本对象主信息都存于此表,通过 FItemClassID 进行类型区分2t_icitem存放物料详细信息3Cbcostobj存在成本对象详细信息