NC65 单据表头取表体字段合计方案客户服务支持中心 张红飞1、引言项目上经常会需要在单据的表头显示表体的字段的合计值,标准产品不支持通过公式表头取表体的数据。2、应用场景及问题描述以采购订单为例,需要在表头显示显示表体的主数量字段的合计值,可以通过创建数据库视图的方式实现。其他的单据都可以参照此方案,只要是表头取表体的字段的合计信息都可以通过这个方案处理。3、解决方案可以通过 plsql 客户端,创建 view,单据表体记录有表头的主键,其中采购订单的表头的主键是 pk_order,表体也有这个字段。根据表头主键汇总表体金额合计表体主数量个字段的值。视图创建语句如下: create or replace view v_po_order_b as select pk_order,sum(nnum) nnumfrom po_order_b where dr=0 group by pk_order语句解析:create or replace view v_po_order_b 是创建一个视图,名称是v_po_order_b。as select pk_order,sum(nnum) nnumfrom po_order_b, 意 思 是 该 视 图 是 根 据 查 询 po_order_b 这 张 数 据 表 的pk_order,合计 nnum 字段的结果集创建的。where dr=0,意思是查询结果按照dr=0 过滤,dr 是单据状态字段,0 意思是正常状态的。1 是删除状态的。group 1by pk_order 是按照 pk_order 字段排序。如果是自定义项自动的合计值需要转换为 数 值 类 型 的 , create or replace view v_po_order_b as select pk_order,sum(to_number(substr(vbdef1,0,6))) vbdef1 from po_order_b group by pk_order 其中函数 substr(vbdef1,0,6),是用来截取表 体 自 定 义 项 1 的 值 , 从 第 一 个 开 始 , 长 度 6 位 , 包 含 小 数 点 总 长 度 是 6 位 ,to_number 函数是将这个 6 个字符转为数值类型的在单据模版上设置公式表头取视图的数据。2验证结果:34、注意事项无4