上次写的是同一个表单的子表之间赋值,这次是不同表单之间子表的赋值

首先,我们给需要赋值的表单添加一个复制按钮

$.MvcSheet.AddAction({
            Action: "start",
            Icon: "fa-copy",       // 按钮图标
            Text: "复制",           // 按钮名称
            OnActionDone: function (e) {
                window.open("../../../StartInstance.aspx?WorkflowCode=" + $.MvcSheetUI.SheetInfo.WorkflowCode + "&PageAction=Close&objectid=" + $.MvcSheetUI.SheetInfo.BizObjectID);
            },
            PostSheetInfo: false         // 是否提交表单数据,如果 false,那么不返回表单的数据
        });

WorkflowCode是流程编码,也就是说StartInstance需要知道你的流程编码来创建哪个流程因为我的就是重新创建一个本流程,只不过是不同表单之间的所以直接$.MvcSheetUI.SheetInfo.WorkflowCode获取。BizObjectID是数据模型id

然后根据实际需求,在应该开放的节点加上前端调用后端代码

//从前端调用后台方法
                $.MvcSheet.Action({
                    Async: false,
                    Action: "GetWorkplan",   // 后台方法名称
                    Datas: [],//传入参数,用逗号分开,这是是例子,这个方法是没有输入参数的
                    LoadControlValue: true, // 是否获取表单数据
                    PostSheetInfo: false,    // 是否获取已经改变的表单数据
                    OnActionDone: function (e) {
                        //这里e是后台返回的值,这里是一个类,如果是多行可以返回List<类>,下面用循环就行了
                        if (e && $.MvcSheetUI.SheetInfo.IsOriginateMode) {
                            var j = 1;
                            for (i in e) {
                                $("a[id^='Add_workplanitem']").click();
                                //这里我直接给第一行赋值,如果是多行,可以循环
                                //SetControlValue:第一个参数为数据项;第二个参数为需要赋的值;第三个参数为行号
                                $.MvcSheetUI.SetControlValue("workplanitem.zzxm", e[i]["Zzxm"], j);
                                $.MvcSheetUI.SetControlValue("workplanitem.SLBZ", e[i]["Slbz"], j);
                                $.MvcSheetUI.SetControlValue("workplanitem.SHLBZ", e[i]["Shlbz"], j);
                                $.MvcSheetUI.SetControlValue("workplanitem.ZLBZ", e[i]["Zlbz"], j);
                                j++;
                            }
                        }
                    }
                });

//IsOriginateMode的左右是判断当前是不是第一次填写表单

$("a[id^='Add_workplanitem']").click();的理解可以参考下边

$("input[id^='code']");//id属性以code开始的所有input标签

$("input[id$='code']");//id属性以code结束的所有input标签

$("input[id*='code']");//id属性包含code的所有input标签

至此,前台代码已经完毕

后台代码:

先创建一个workplan类,把你需要返回的值放到里边

public List<workplan> GetWorkplan()
        {
            List<workplan> workplanlist = new List<workplan>();
            string objectid = Request.QueryString["objectid"];
            if (!string.IsNullOrWhiteSpace(stryobjectid))
            {
                string strsql = "select * from i_workplanitem where ParentObjectID='{0}' order by parentindex";
                DataTable dt = OThinker.H3.WorkSheet.AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(string.Format(strsql, objectid));
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    workplan newworkplan = new workplan();
                    newworkplan.Zzxm = dt.Rows[i]["zzxm"] != null ? dt.Rows[i]["zzxm"].ToString() : "";
                    newworkplan.Slbz = dt.Rows[i]["slbz"] != null ? dt.Rows[i]["slbz"].ToString() : "";
                    newworkplan.Shlbz = dt.Rows[i]["shlbz"] != null ? dt.Rows[i]["shlbz"].ToString() : "";
                    newworkplan.Zlbz = dt.Rows[i]["zlbz"] != null ? dt.Rows[i]["zlbz"].ToString() : "";
                    workplanlist.Add(newworkplan);
                }
            }
            return workplanlist;
        }

BPM不同表单之间子表的赋值的更多相关文章

  1. layui父表单获取子表单的值完成修改操作

    最近在做项目时,学着用layui开发后台管理系统. 但在做编辑表单时遇到了一个坑. 点击编辑时会出现一个弹窗. 我们需要从父表单传值给子表单.content是传值给子表单 layer.open({ t ...

  2. 表单的子元素可不在form标签内

    表单是网页用于向服务器发送数据的元素.其用法类似下面: <form method="POST" action="/login"> <input ...

  3. HTML 5 服务器发送事件、Input 类型、表单元素、表单属性

    HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器 ...

  4. Html5学习进阶四 表单元素和表单属性

    HTML5 的新的表单元素: HTML5 拥有若干涉及表单的元素和属性. 本章介绍以下新的表单元素: datalist keygen output 浏览器支持 Input type IE Firefo ...

  5. 工作流Activiti框架中表单的使用!详细解析内置表单和外置表单的渲染

    Activiti中的表单 Activiti提供了一种方便而且灵活的方式在业务流程中以手工方式添加表单 对表单的支持有2种方式: 通过表单属性对内置表单进行渲染 通过表单属性对外置表单进行渲染 表单属性 ...

  6. 解决iphone填写表单时,表单项获取焦点时往下拉屏,导致顶部标题栏下滑错位

    $(function () { //解决iphone填写表单时,表单项获取焦点时往下拉屏,导致顶部标题栏下滑错位 var u = navigator.userAgent; var isiOS = !! ...

  7. BootStrap 智能表单系列 九 表单图片上传的支持

    本章介绍如何在生成表单后,可以支持上传图片后可以及时预览图片 代码如下(连接地址:https://github.com/xiexingen/Bootstrap-SmartForm/blob/maste ...

  8. BootStrap 智能表单系列 六 表单数据绑定(编辑页面的数据绑定)

    本章介绍如何在生成表单后,将一个model的数据展示到form表单中(一般用于编辑页面) 代码如下(连接地址:https://github.com/xiexingen/Bootstrap-SmartF ...

  9. BootStrap 智能表单系列 五 表单依赖插件处理

    这一章比较简单哦,主要就是生产表单元素后的一些后续处理操作,比如日期插件的渲染.一些autocomplete的处理等,在回调里面处理就可以了, demo: $("input.date-pic ...

随机推荐

  1. fatal error C1083: 无法打开包括文件:“stdio.h

    现象: vs2012一直fatal error C1083: 无法打开包括文件:"stdio.h" 不知道配置太多,动到了什么地方,出现了这个问题: 在: 解决方案--调试源文件 ...

  2. sessionStorage和localStorage存储的转换不了json

    先说说localStorage与sessionStorage的差别 sessionStorage是存储浏览器的暂时性的数据,当关闭浏览器下次再打开的时候就不能拿到之前存储的缓存了 localStora ...

  3. Nginx服务的地址重写

    调整Nginx服务器配置,实现: 1.所有访问a.html的请求,重定向到b.html; 2.所有访问Nginx服务器(192.168.4.1)的请求重定向至www.baidu.com: 3.所有访问 ...

  4. Java中String类的常用方法

    判断功能的方法 public boolean equals (Object anObject) :将此字符串与指定对象进行比较. public boolean equalsIgnoreCase (St ...

  5. ListUtil集合操作常用方法类

    * 集合操作常用方法类. * <p> * * @author 柯 */ public class ListUtil { /** * 判断List不为空,非空返回true,空则返回false ...

  6. centos6.5 安装Python3.6.0

      首先安装python3.6可能使用的依赖 # yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel ...

  7. 洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk【贪心+背包】

    由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此 ...

  8. 【codeforces 798A】Mike and palindrome

    [题目链接]:http://codeforces.com/contest/798/problem/A [题意] 让你严格改变一个字符,使得改变后的字符串为一个回文串; 让你输出可不可能; [题解] 直 ...

  9. QT创建快捷方式

    1.当我第一次安装完QT后发现它并没有在桌面上给我创建快捷方式,使用起来很难受啊,于是寻找办法,终于找到一个懒办法: 首先进入到上图的BIN目录下找到qtcreator文件,双击运行,然后系统就会在左 ...

  10. Redis参数

    phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 很有用;以下是redis官方提供的命令使用技巧: Redis::__construct构造函数$redis ...