业主清单

功能目标

树型表+主子孙

元数据

材料梳理

操作 描述
名称 材料梳理
编码 material_clearup
父实体
引用接口 自动编码 / 树型结构
属性 编码 名称 类型 引用
Unit 物料计量单位 单选引用 物料计量单位
num 数量 数值
singleprice 单价 数值
name 清单名称 数值
sumprice 金额 数值

挂接WBS

操作 描述
名称 挂接WBS
编码 wbs_gj
父实体 业主清单
引用接口
属性 编码 名称 类型 引用
item_wbs 项目WBS 单选引用 项目档案
qingdandanwei 清单单位 文本
qingdanguajieshuliang 清单挂接数量 数值

材料挂接

操作 描述
名称 材料挂接
编码 product_gj
父实体 挂接WBS
引用接口
属性 编码 名称 类型 引用
Product 物料 单选引用 物料
Unit 计量单位 单选引用 物料计量单位
num 设计量 数值

功能实现

新建树型表【业主清单】

图 1

勾选生产参照

图 2

发布参照

图 3

删除【业主清单单卡】

图 4

进入【业主清单】页面设计器,调整布局

图 5

新建主子孙【业主清单主子孙】

图 6

图 7

删除上级分类

图 8

设置参照

图 9

图 10

图 11

删除【业主清单主子孙列表】

图 12

【业主清单】关联【业主清单主子】

进入设计器

图 13

设置关联页面

图 14

效果演示

图 15

图 16

图 17

图 18

函数扩展

功能目标:选中子表后,带出孙表数据。

新建前端函数

图 19

前端函数扩展

function (event) {
  var viewModel = this;
  var gridModelCh = viewModel.get('wbs_gj01List'); //子表数据
  var gridModelChCh = viewModel.get('product_gj01List'); //孙表数据
  //挂接WBS
  gridModelCh.on("afterCellValueChange",function(params){
    if(params.cellName=='item_wbs_name'&&params.value!=""){
      //要请求后台拉取孙表数据
      var promise = new cb.promise();
      //请查看下一步后端函数的id
      cb.rest.invokeFunction("14bf120c800f4b918df5f12af5346d31", {id:params.value.id},
      function(err, res) {
        if(err!=null){
          cb.utils.alert('拉取孙表数据错误');
        }else{
          if(res.res!=null&&res.res.length>0){
            var totals = 0;
            res.res.forEach((data)=>{
              //为了避免重复插入行,根据子表id判断是否为要插入的子表
              if(data.product_gj01Fk==params.value.id){
                  gridModelChCh.appendRow(data);
                  totals+=data.num;
              }
            });
            if(totals>0&&res.res[0].product_gj01Fk==params.value.id){
                gridModelCh.setCellValue(params.rowIndex,"qingdanguajieshuliang",totals);
            }
          }
        }
        promise.resolve();
      })
    }
  });
}

前端功能拆分--知识点

多个表格的情况下获取指定表格

function (event) {
  var viewModel = this;
  var gridModel = viewModel.get('wbs_gj01List');
}

图 20

图 21

后端函数

图 22

如何获取后端函数id ?

图 23

let AbstractAPIHandler = require('AbstractAPIHandler');
  class MyAPIHandler extends AbstractAPIHandler {
   execute(request){
    var item_wbs = request.id;
    var sql = "select item_wbs as product_gj01Fk,Product,Product.name as Product_name ,"+
    "design_num as num from GT11068AT183.GT11068AT183.material_clearup01 where item_wbs='"+item_wbs+"'";
    var res = ObjectStore.queryByYonQL(sql);
   return {res:res};
 }
}
exports({"entryPoint":MyAPIHandler});

测试

图 24

图 25

图 26

图 27

图 28

Copyright © 用友客户成功部 2020 all right reserved,powered by Gitbook修订时间: 2020-12-22 11:25:12

results matching ""

    No results matching ""