dep新增在产产量盘点的报废数量字段

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:2

dep新增在产产量盘点的报废数量字段

一、基础数据

1.业务数据源

       在产产量盘点:com.kingdee.eas.ncm.bill.app.WIPCountingBillQuery

2.序时簿(列表)界面

       在产产量盘点:com.kingdee.eas.ncm.bill.client.WIPCountingBillListUI

3.实体

      在产产量盘点:com.kingdee.eas.ncm.bill.app.WIPCountingBillQuery

二、创建动态扩展方案

1.新增方案

image.webp

2.创建扩展单元

image.webp

image.webp

3.引入业务数据源与界面

3.1业务数据源

image.webp

image.webp

image.webp

3.2序时簿(列表)界面

image.webp

image.webp


3.2 实体

image.webp

相同操作


4. 业务数据源与页面扩展

4.1实体

image.webp

4.2业务数据源

需要先新增实体字段

image.webp

4.3序时簿

image.webp

image.webp

5.脚本

序时簿脚本,onLoad后置脚本

//list_ui
var tbl = pluginCtx.getKDTable("tblMain");
var scrappedQtyCol = tbl.getColumn("scrappedQty");
scrappedQtyCol.getStyleAttributes().setLocked(false);
var ui = pluginCtx.getUI();
var zero = new java.math.BigDecimal("0");
var editStop = function (event, methodName) {
    // 停止编辑了
    if (methodName == "editStopped") {
        var row = tbl.getRow(event.getRowIndex());
        var colIdx = event.getColIndex();
 
        var newValue = event.getValue();
        var oldValue = event.getOldValue();
 
        var qtyColIdx = tbl.getColumnIndex("Qty");
        var scrappedQtyColIdx = tbl.getColumnIndex("scrappedQty");
 
        var qtyCell = row.getCell(qtyColIdx);
        var scrappedQtyCell = row.getCell(scrappedQtyColIdx);
        var stockQtyCell = row.getCell("stockQty");
        var storageQtyCell = row.getCell("storageQty");
 
        var qty = qtyCell.getValue();
        var storageQty = storageQtyCell.getValue();
        var scrappedQty = scrappedQtyCell.getValue();
        if (storageQty == null) {
            storageQty = zero;
        } else {
            storageQty = new java.math.BigDecimal(storageQty.toString());
        }
        if (scrappedQtyColIdx == colIdx) {
            if (newValue == null) {
                newValue = zero;
            }
            newValue = new java.math.BigDecimal(newValue.toString());
            if (newValue.signum() < 0) {
                com.kingdee.eas.util.client.MsgBox.showInfo("报废数量需要大于等于0");
                row.getCell(colIdx).setValue(oldValue);
                return event;
            }
            if (oldValue == null) {
                oldValue = zero;
            }
            var clz = java.lang.Class.forName("com.kingdee.eas.ncm.bill.client.WIPCountingBillListUI");
            var field = clz.getDeclaredField("updateMap");
            var accessible = field.isAccessible();
            field.setAccessible(true);
            var updateMap = field.get(ui);
            field.setAccessible(accessible);
            var id = row.getCell("id").getValue().toString();
            var info = updateMap.get(id);
            if (info == null) {
                info = new java.util.HashMap();
                info.put("id", id);
                updateMap.put(id, info);
            }
            info.put("scrappedQty", newValue);
            if (qty == null) {
                qty = zero;
            } else {
                qty = new java.math.BigDecimal(qty.toString());
            }
            var stockQtyVal = newValue.add(qty).subtract(storageQty);
            stockQtyCell.setValue(stockQtyVal);
        } else if (qtyColIdx == colIdx) {
            var newValue = row.getCell(colIdx).getValue();
            if (newValue == null) {
                newValue = zero;
            }
            if (scrappedQty == null) {
                scrappedQty = zero;
            } else {
                scrappedQty = new java.math.BigDecimal(scrappedQty.toString());
            }
            newValue = new java.math.BigDecimal(newValue.toString());
            var stockQtyVal = newValue.add(scrappedQty).subtract(storageQty);
            stockQtyCell.setValue(stockQtyVal);
        }
    }
};
var kdtEditListenerClass = java.lang.Class.forName("com.kingdee.bos.ctrl.kdf.table.event.KDTEditListener");
var listenerList = tbl.getListenerList().getListeners(kdtEditListenerClass);
if (listenerList != null) {
    for (var i = 0; i < listenerList.length; i++) {
        tbl.removeKDTEditListener(listenerList[i]);
    }
}
tbl.addKDTEditListener(editStop);
if (listenerList != null) {
    for (var i = listenerList.length - 1; i >= 0; i--) {
        tbl.addKDTEditListener(listenerList[i]);
    }
}

 

实体脚本


// wip_controller
var imp = JavaImporter();
imp.importPackage(Packages.com.kingdee.eas.util.app);
imp.importPackage(Packages.java.util);
with(imp) {
         var ctx = pluginCtx.getContext();
         var list = methodCtx.getParamValue(0);
         var size = list.size();
         var sql = "update T_NCM_WIPCountingBill set CFSCRAPPEDQTY = ? where FId = ?";
         var map;
         for (var i = 0; i < size; i++) {
                   map = list.get(i);
                   DbUtil.execute(ctx, sql, [map.get("scrappedQty"), map.get("id")]);
         }
}

保存上述操作

此方案仅供展示字段使用, 无实际计算逻辑

dep新增在产产量盘点的报废数量字段

一、基础数据1.业务数据源 在产产量盘点:com.kingdee.eas.ncm.bill.app.WIPCountingBillQuery2.序时簿(列表)界面 在...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息