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.新增方案
2.创建扩展单元
3.引入业务数据源与界面
3.1业务数据源
3.2序时簿(列表)界面
3.2 实体
相同操作
4. 业务数据源与页面扩展
4.1实体
4.2业务数据源
需要先新增实体字段
4.3序时簿
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.序时簿(列表)界面 在...
点击下载文档
本文2024-09-16 23:23:22发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-54244.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章