将建模表中维护的数据根据条件筛选,加载到明细表中,建模中的数据如下图所示,表单名称为uf_SystemObjectS,便于后期维护(如添加部品、废弃部品)。

流程表单中的”表单状态“字段,里面用来存储进行筛选的条件,即建模表单中的”启用状态“,当表单状态为”禁用“时,明细表自动加载出”禁用“状态的数据,前端页面实现效果如下图所示:

代码块如下:
<script type="text/javascript" src="/czj/js/Base64.js"></script>
<script>
debugger;
var bdztField = WfForm.convertFieldNameToId("bdzt"); //表单状态
var bpbhField = WfForm.convertFieldNameToId("xm","detail_1"); //部品编号
var bpmcField = WfForm.convertFieldNameToId("czly","detail_1"); //部品名称
var djField = WfForm.convertFieldNameToId("je","detail_1"); //单价
var bpidField = WfForm.convertFieldNameToId("bpid","detail_1"); //部品id
function InitDetail(qyzt){
//删除明细表1所有行数据
WfForm.delDetailRow("detail_1","all");
var sql = "select id,bpbh,bpmc,dj from uf_SystemObjectS where qyzt='" + qyzt + "'";
var max = 999999999999;
jQuery.ajax({
url: "/iJSP/util/sqlsearch.jsp?times=" + Math.floor(Math.random() * (max + 1)),
data: { "sql": encode64(sql) },
type: "POST",
dataType: "JSON",
async: false,
success: function (result) {
debugger;
var len = result.length;
if(len > 0){
for(let i = 0 ; i< len ; i++){
//动态增加明细行
var addObj = {};
addObj[bpbhField] = {value : result[i].bpbh};
addObj[bpmcField] = {value : result[i].bpmc};
addObj[djField] = {value : result[i].dj};
addObj[bpidField] = {value :result[i].id };
WfForm.addDetailRow("detail_1",addObj);
}
}
},
error:function(){
debugger;
Dialog.alert("查找错误,请联系管理员!");
}
});
}
jQuery(document).ready(function(){
debugger;
WfForm.bindFieldChangeEvent(bdztField,function(obj,id,value){
debugger;
InitDetail(value);
});
})
</script>
另外,该样式也可以通过高级设置-字段联动实现,触发字段为流程表单中的“表单状态”

本文描述了一个使用JavaScript实现的前端功能,通过表单状态字段筛选建模表中的数据,并将满足条件的数据加载到明细表中,展示了如何通过Ajax请求和编码处理SQL查询,以及利用字段联动更新明细表内容。
475

被折叠的 条评论
为什么被折叠?



