H3 BPM循环子表相关方法介绍

在表单中,控件类型为子表的数据项,其对于的前台代码其实就是Table

下面简单介绍遍历子表的方法

循环子表取、赋值方法:

//此方法的功能是将子表TravelExpensesList复制到子表FinancialAudit中

//步骤解析:

//1、取到子表FinancialAudit的总行数

//2、由于是将子表TravelExpensesList复制到子表FinancialAudit中,也就是子表TravelExpensesList是有值的,而子表FinancialAudit是刚初始化的,没有值,所以在同步值之前需要先要保持两个子表的行数一致,故每次循环需比较行数是否一致

//3、通过行号取到子表TravelExpensesList各列的数据值,并赋值给子表FinancialAudit

function InitFinancialAuditData() {

//取到FinancialAudit的总行数(JQuery)

var FinancialAuditLength = $("table[data-datafield=‘FinancialAudit‘]").find("tr.rows").length;

//由于是FinancialAudit向TravelExpensesList同步,所以开始遍历子表TravelExpensesList,取到每行的值再赋值到子表FinancialAudit的对应行中

$("table[data-datafield=‘TravelExpensesList‘]").find("tr.rows").each(function () {

//获取到子表TravelExpensesList当前遍历的这一行的行号

//注:一个子表就是一个table,table下面的每个tr、td都有一个属性“data-row”,它是记录当前这个tr、td所在行的行号(就是每行前面的序号)

var row = $(this).attr("data-row");

//比较当前获取的行号是否大于FinancialAudit子表的总行数,大于的话,需要FinancialAudit增加一行进行同步,不然即使两个子表的数据同步完毕,也会因为FinancialAudit的行是初始化的1行,导致第2行以及第2行之后的所有数据看不见

//当然这部分的循环添加行的方法可以用再次优化,也可提到循环外完成

if (row > FinancialAuditLength) {

//H3给子表添加行的方法,属于H3封装的方法

$("#Control23").SheetUIManager()._AddRow();

}

//同步两张表的数据

//方法$.MvcSheetUI.SetControlValue("参数1","参数2",参数3);是用来给子表赋值的,针对子表数据;是$.MvcSheetUI.SetControlValue("参数4",参数5);的重载而$.MvcSheetUI.SetControlValue("参数4",参数5);针对的是表单数据

//$.MvcSheetUI.SetControlValue("参数1","参数2",参数3);参数说明:

//参数1:对应你需要赋值的子表中的数据项的数据项编码

//参数2:你需要给这个数据项赋值的值

//参数3:子表行号

//方法功能说明:根据你提供的行号和编码(类似于横纵坐标),找到对应子表数据项,进行赋值

//

//方法$.MvcSheetUI.GetControlValue("参数1",参数2);是取子表值,针对子表数据;是$.MvcSheetUI.GetControlValue("参数4");的重载而$.MvcSheetUI.SetControlValue("参数4");针对的是表单数据

//$.MvcSheetUI.SetControlValue("参数1",参数2);参数说明:

//参数1:对应你需要赋值的子表中的数据项的数据项编码

//参数2:子表行号

//方法功能说明:根据你提供的行号和编码(类似于横纵坐标),找到对应子表数据项

$.MvcSheetUI.SetControlValue("FinancialAudit.Hyperlink", $.MvcSheetUI.GetControlValue("TravelExpensesList.Hyperlink", row), row);

$.MvcSheetUI.SetControlValue("FinancialAudit.StartPlace", $.MvcSheetUI.GetControlValue("TravelExpensesList.StartPlace", row), row);

$.MvcSheetUI.SetControlValue("FinancialAudit.StartDate", $.MvcSheetUI.GetControlValue("TravelExpensesList.StartDate", row), row);

$.MvcSheetUI.SetControlValue("FinancialAudit.Destination", $.MvcSheetUI.GetControlValue("TravelExpensesList.Destination", row), row);

$.MvcSheetUI.SetControlValue("FinancialAudit.ReturnDate", $.MvcSheetUI.GetControlValue("TravelExpensesList.ReturnDate", row), row);

$.MvcSheetUI.SetControlValue("FinancialAudit.Days", $.MvcSheetUI.GetControlValue("TravelExpensesList.Days", row), row);

$.MvcSheetUI.SetControlValue("FinancialAudit.Customer", $.MvcSheetUI.GetControlValue("TravelExpensesList.Days", row), row);

$.MvcSheetUI.SetControlValue("FinancialAudit.CityType", $.MvcSheetUI.GetControlValue("TravelExpensesList.CityType", row), row);

$.MvcSheetUI.SetControlValue("FinancialAudit.TotalCost", $.MvcSheetUI.GetControlValue("TravelExpensesList.TotalCost", row), row);

$.MvcSheetUI.SetControlValue("FinancialAudit.AttachmentNumber", $.MvcSheetUI.GetControlValue("TravelExpensesList.AttachmentNumber", row), row);

var val = $.MvcSheetUI.GetControlValue("FinancialAudit.CheckMoney", row);

if (val != null && val != "") {

}

else {

$.MvcSheetUI.SetControlValue("FinancialAudit.CheckMoney", $.MvcSheetUI.GetControlValue("TravelExpensesList.TotalCost", row), row);

}

});

//JQuery方法

//通过子表数据项编码找到子表FinancialAudit的对应列,给整个列附加上不可编辑的属性

$("input[data-datafield=‘FinancialAudit.Hyperlink‘]").attr("disabled", "disabled");

$("input[data-datafield=‘FinancialAudit.StartPlace‘]").attr("disabled", "disabled");

$("input[data-datafield=‘FinancialAudit.StartDate‘]").attr("disabled", "disabled");

$("input[data-datafield=‘FinancialAudit.Destination‘]").attr("disabled", "disabled");

$("input[data-datafield=‘FinancialAudit.ReturnDate‘]").attr("disabled", "disabled");

$("input[data-datafield=‘FinancialAudit.Days‘]").attr("disabled", "disabled");

$("input[data-datafield=‘FinancialAudit.Customer‘]").attr("disabled", "disabled");

$("input[data-datafield=‘FinancialAudit.CityType‘]").attr("disabled", "disabled");

$("input[data-datafield=‘FinancialAudit.TotalCost‘]").attr("disabled", "disabled");

//$("input[data-datafield=‘FinancialAudit.AttachmentNumber‘]").attr("disabled", "disabled");

}

此示例只是针对同步子表这个功能的讲解,希望大家能从这个例子中更加了解子表,并灵活运用

此示例也是较多方式中的其中一种,希望大家也不要局限于此

时间: 2024-11-05 12:08:41

H3 BPM循环子表相关方法介绍的相关文章

H3 BPM门户操作说明及实例介绍

一. H3 BPM部件介绍 H3_V9.0门户功能主要由两部分功能组成:前台展示和后台管理: 1. 前台展示 前台展示参考sharepoint部件管理,用于将用户添加的webpart部件在页面上进行展示:如图1. 图1 门户界面 1.1 展现模式 前台展现模式有两种,当以管理员账号登陆时,模块管理提供浏览和设计两种模式.浏览模式用于展现部件内容:设计模式用于部件设计,此模式下提供部件的增加.删除.属性设置.顺序调整功能.见图2.图3:普通用户只有浏览模式. 图2 浏览模式 图3 设计模式 1.2

介绍遍历子表的方法

在表单中,控件类型为子表的数据项,其对于的前台代码其实就是Table 下面简单介绍遍历子表的方法 循环子表取.赋值方法: //此方法的功能是将子表TravelExpensesList复制到子表FinancialAudit中 //步骤解析: //1.取到子表FinancialAudit的总行数 //2.由于是将子表TravelExpensesList复制到子表FinancialAudit中,也就是子表TravelExpensesList是有值的,而子表FinancialAudit是刚初始化的,没有

【H3 BPM工作流程产品小故事】第十四篇 数据字典与数据联动

小明遇到了点麻烦,他昨天又收到了行政主管发来的邮件,要求把出差申请单改由H3 BPM进行,表单如下 行政主管的出差申请表 小明对表单进行了调整,设计出了一份适合在系统中使用的表单,但在“出差地点”控件的使用上遇到了问题. 小明查看产品资料,在“系统管理-系统参数-数据字典”中录入了地区数据字典,并在下拉菜单控件的属性“MasterDataCategory”中设置了关联,但是却不知道如何将“省”“市”两个控件进行数据关联. 小明设计的表单 数据字典-省 数据字典-市 下拉菜单属性设置 表单显示结果

H3 BPM V10.0 产品更新日志

一.功能 1.H3 BPM产品全新推出J2EE版本,支持Linux环境部署 2.移动端支持与钉钉集成:组织机构同步.消息推送.钉钉免登BPM 3.简化了原有的组织结构 现有结构:组织.用户.角色.组 原有结构:组织.用户.职务.群组.用户组.岗位.编制 4.系统锁定功能:用户可以在离开时进行系统锁定,重新登录后,保留原操作页面 5.虚拟账户功能:实现了管理人员对企业中跨部门管理.一人对应多部门职位的场景需求的良好支持 6.系统内置账户功能:内置账户用户,在进行AD同步时,如果不在AD域中,不会被

H3 BPM社区:流程开发者的学习交流平台

企业上市有上市流程,融资扩充有融资流程,项目招投标有招投标流程,部门领导选拔有晋升流程,员工请假休假有请假流程,早起上班梳洗有符合自己习惯的流程--生活处处是流程,流程无处不在.但从信息化建设来说,企业的流程贯穿了企业的各个部门之间的协调与配合.每个事项的运转与管控.如何有效通过企业的业务流程管理提高企业管理质量与效率.提升企业核心竞争力,在互联网+时代背景下,流程开发将成为未来炽手可热的软件开发项目之一. 一个优秀的企业流程开发项目,可以将企业的SAP系统的流程与企业自行开发的管理系统以及内置

H3 BPM接口说明文档

H3 BPM接口说明文档 二〇一七年四月 目 录 1 引擎接口唯一入口:OThinker.H3.IEngine 3 1.1 构造Engine对象 3 1.2 属性 4 2 类:OThinker.H3.Acl.IBizRuleAclManager 6 3 类:OThinker.H3.Acl.IFunctionAclManager 8 4 类:OThinker.H3.Acl.ISystemOrgAclManager 12 5 类:OThinker.H3.Acl.ISystemAclManager 1

父表、子表 主外键关系

ORACLE官方文档介绍: Concurrency Control, Indexes, and Foreign Keys You almost always index foreign keys. The only exception is when the matching unique or primary key is never updated or deleted.(你总是需要对 外键添加索引! 唯一的例外就是:匹配的主键列 或是 唯一列 从不进行更新操作或者 删除操作) Oracle

【H3 BPM工作流程管理产品小故事】第二篇 文本默认值

Boss感觉方便了很多,然而采购部采购员阿海却还是有点意见,他跑来找小明. 阿海:现在申请都是我在提交,申请人和申请部门能不能不要每次都要填写啊,好麻烦的.小明:没问题,这个简单.小明在表单中把申请人.申请部门的"DefaultValue"属性分别设为"{Originator.UserName}"."{Originator.OUName}",保存然后预览了一下效果,果然OK,阿海满意而归. 默认值属性 文章来源于:H3 BPM社区 http://

【H3 BPM工作流程管理产品小故事】第三篇 参与者与数据加载

这才过了两天,阿海又来了. 阿海:公司决定改进管理方式,以后物资申请的申请人和申请部门要写具体使用人的名字和部门了.小明:不是要让我改回去吧?阿海:那太麻烦了,你能不能把申请人改成选择,选好人自动加载对应的部门信息?小明:我昨天看了教程,申请人换成"参与者(单人)"就是了,但是自动加载--小明还是决定去找大毛.大毛:在"参与者(单人)"控件中,有一个属性"MappingControls",可以再其中设置属性映射关系,系统会自动按照映射,将属性赋值