泛微ECOLOGY9-如何实现明细第一行check框勾选禁用、浏览框内仅展示第一行相关的数据和已选择数据过滤

实现效果:

默认新增第一行并选择计划单
添加明细行并选择根据账号过滤后的数据
默认新增第一行并选择计划单

1. 用户/业务需求

以付款业务为例,明细表中添加多条同一个供应商的付款计划进行付款审批,审批后接口传入其他系统进行付款。

2. 需求分析

审批完成后的接口仅支持接收一个账户相关的付款申请。
明细表中浏览计划申请记录,以第一个行明细数据作为基准,并记录已选择的数据进行供应商和已选择信息过滤。

3. 实现思路

1.js代码块控制第一行check框勾选禁用,获取第一行选择的数据ID和已添加明细行选择的数据ID;
2.建模浏览框无条件查询增加sql查询条件过滤;
3.当第一行数据删除或变化时删除已有数据。

4. 解决方案

1.新增主表字段:账号(field28168)、第一行数据ID(field28196)、明细表数据ID(field28195);
3.新增明细表一字段申请流程(field28182);
3.明细表属性设置:关闭允许复制、开启新增默认一行空的明细;
4.流程表单插入代码块:

<script>
//获取第一行供应商银行账号
  jQuery(document).ready(function(){
  WfForm.controlDetailRowDisableCheck("detail_1", "0", true);//禁用第一行删除
WfForm.bindDetailFieldChangeEvent("field28182",function(id,rowIndex,value){
  //获取明细表第一行申请流程和主表第一行数据ID
  var field28182_0 = WfForm.getFieldValue("field28182_0");
  var field28196 = WfForm.getFieldValue("field28196");
  if(field28182_0!=field28196){
  WfForm.changeFieldValue("field28196", {value:field28182_0})
  }
  });
WfForm.bindFieldChangeEvent("field28168", function(obj,id,value){
  //获取明细表一除了第一行得行标
var dt1AllRowIndexStr = WfForm.getDetailAllRowIndexStr("detail_1");
var parts = dt1AllRowIndexStr.split(','); // 分割成数组
parts.shift(); // 移除数组的第一个元素
var dt1delRowIndexStr = parts.join(','); // 再将数组合并成字符串
WfForm.delDetailRow("detail_1",dt1delRowIndexStr);
});
});
</script>

5.建模浏览框列表无条件查询增加条件查询:

SELECT id, lcbh, lcbh  FROM uf_hkjhjfk_fw WHERE (zh = IFNULL('$zh$', '') OR ('$zh$' = '' OR '$zh$' IS NULL))  AND (     ('$mxbsjid$' != '' AND '$mxbsjid$' IS NOT NULL AND id NOT IN ($mxbsjid$))  OR ('$mxbsjid$' = '' OR '$mxbsjid$' IS NULL)   )

总结:

重点在于系统功能和js代码块结合使用;
如果流程表单涉及多个明细根据主表不同字段显示需要动态获取对应明细行第一行的下标实现控制check框勾选禁用,如下:

// 找出最小值
var rId=WfForm.getDetailAllRowIndexStr("detail_1");
var numbers = rId.split(",").filter(Boolean).map(Number);
var minValue = Math.min(...numbers);
  • 12
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图图闹海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值