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");

        }

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

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











本文转自 lwl_BPM  51CTO博客,原文链接:http://blog.51cto.com/12438115/1924110,如需转载请自行联系原作者
目录
相关文章
|
编解码 并行计算 Java
QT界面中实现视频帧显示的多种方法及应用(二)
QT界面中实现视频帧显示的多种方法及应用
2124 0
|
供应链 监控 搜索推荐
获得1688商品评论API接口的开发应用与收益
1688商品评论API接口提供丰富的商品评论数据,涵盖评论内容、用户信息、商品评分等,助力电商平台优化运营、市场分析和供应链管理,提升客户满意度与忠诚度,促进商业价值增长。
360 3
|
机器学习/深度学习 存储 人工智能
英特尔AMX助力阿里云提升推荐模型性能
本文详细介绍阿里云人工智能平台PAI团队研发的PAI-REC以白盒化的方式快速构建推荐全链路方案,帮助用户更好的落地深度学习推荐算法。
|
消息中间件 中间件 Kafka
分布式事务最全详解 ,看这篇就够了!
本文详解分布式事务的一致性及实战解决方案,包括CAP理论、BASE理论及2PC、TCC、消息队列等常见方案,助你深入理解分布式系统的核心技术。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
分布式事务最全详解 ,看这篇就够了!
|
存储 IDE 开发工具
来咯,他来咯 看GitHub Codespaces 如何帮助缩短开发设置时间
来咯,他来咯 看GitHub Codespaces 如何帮助缩短开发设置时间
822 1
|
容器
flex-grow 自适配宽度避免内容超出挤压两侧的最佳实践
flex-grow 自适配宽度避免内容超出挤压两侧的最佳实践
271 0
|
移动开发 索引
技术笔记:Word域功能详细介绍(一)
技术笔记:Word域功能详细介绍(一)
|
Linux 数据库 开发者
Centos7安装docker并部署halo建站
Docker 是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到可移植的容器中,然后在任何支持 Docker 的平台上运行。Docker 的核心概念包括镜像(Image)、容器(Container)和仓库(Repository)。镜像是创建容器的基础,容器是镜像的运行实例,而仓库是存储和分发镜像的中心仓库。 Docker 的优势在于快速、一致地交付应用,实现响应式部署和扩展,以及更高效地利用硬件资源。它常用于简化配置、代码流水线管理、提
604 0
|
存储 安全 搜索推荐
听GPT 讲Go源代码--types.go(1)
听GPT 讲Go源代码--types.go(1)
131 0
|
设计模式 Python
Python:设计模式之命令模式
Python:设计模式之命令模式
104 0

热门文章

最新文章