阅读:6972
回复:8
|
[已解决]表单子表自动填入几行数据
老师好,我用的版本是9.2.7。现在想要实现一个效果,在打开表单的时候,选择合同阶段时会读取后台数据,将多行数据自动填入下方的子表,这个自动填入子表的功能能实现吗?
图片:QQ截图20170418085253.png ![]() |
1楼#
发布于:2017-04-18 10:48
帖内置顶 – – 2017-05-09 11:40
我在补一个,
方法三:后台添加 public override MvcViewContext LoadDataFields() { if (this.ActionContext.IsOriginateMode) { BizObject[] bizObjects = new BizObject[数组长度]; BizObjectSchema childSchema = this.ActionContext.Schema.GetProperty("子表编码").ChildSchema; for (int i = 0; i < DataTable0.Rows.Count; i++) { bizObjects[i] = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID); bizObjects[i]["字段编码"] = ""; bizObjects[i]["字段编码"] = ""; } this.ActionContext.InstanceData["子表编码"].Value = bizObjects; } return base.LoadDataFields(); } |
|
|
2楼#
发布于:2017-04-18 09:28
帖内置顶 – – 2017-05-09 11:40
可以实现
方法一 前台使用如下几个函数就可以实现了,在合同的onchange事件获取数据以后处理。 //获取子表 var dtl = $.MvcSheetUI.GetElement("子表名").SheetGridView(); //增加子表行 dtl.addbtn.click(); 或 dtl._AddRow(); //设置子表明细数据 $.MvcSheetUI.SetControlValue("子表字段名", "", row); 方法二: 或者使用后台处理数据的方式 // 执行后台事件 $.MvcSheet.Action( { Action: "TestAction", // 后台方法名称 Datas: ["输入参数"], // 输入参数,格式 ["{数据项名称}","String值","控件ID"],当包含数据项名称时 LoadControlValue必须为true LoadControlValue: true, // 是否获取表单数据 PostSheetInfo: true, // 是否获取已经改变的表单数据 OnActionDone: function (e) { // 执行完成后回调事件 } } 后台方法里面直接修改ActionContext.InstanceData["子表名"]中的数据。 方法二未经测试,根据个人经验可行。 |
|
3楼#
发布于:2017-04-18 09:28
可以实现
方法一 前台使用如下几个函数就可以实现了,在合同的onchange事件获取数据以后处理。 //获取子表 var dtl = $.MvcSheetUI.GetElement("子表名").SheetGridView(); //增加子表行 dtl.addbtn.click(); 或 dtl._AddRow(); //设置子表明细数据 $.MvcSheetUI.SetControlValue("子表字段名", "", row); 方法二: 或者使用后台处理数据的方式 // 执行后台事件 $.MvcSheet.Action( { Action: "TestAction", // 后台方法名称 Datas: ["输入参数"], // 输入参数,格式 ["{数据项名称}","String值","控件ID"],当包含数据项名称时 LoadControlValue必须为true LoadControlValue: true, // 是否获取表单数据 PostSheetInfo: true, // 是否获取已经改变的表单数据 OnActionDone: function (e) { // 执行完成后回调事件 } } 后台方法里面直接修改ActionContext.InstanceData["子表名"]中的数据。 方法二未经测试,根据个人经验可行。 |
|
4楼#
发布于:2017-04-18 10:01
t156965365:可以实现谢谢老师,我准备用第一种方法测试一下。就是在设置子表明细数据 $.MvcSheetUI.SetControlValue("子表字段名", "", row); 第一个参数是字段名,第二个参数是值,第三个参数是第几行吗?这里如何明确设置的是第几行的字段值呢? |
|
5楼#
发布于:2017-04-18 10:03
|
|
6楼#
发布于:2017-04-18 10:48
我在补一个,
方法三:后台添加 public override MvcViewContext LoadDataFields() { if (this.ActionContext.IsOriginateMode) { BizObject[] bizObjects = new BizObject[数组长度]; BizObjectSchema childSchema = this.ActionContext.Schema.GetProperty("子表编码").ChildSchema; for (int i = 0; i < DataTable0.Rows.Count; i++) { bizObjects[i] = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID); bizObjects[i]["字段编码"] = ""; bizObjects[i]["字段编码"] = ""; } this.ActionContext.InstanceData["子表编码"].Value = bizObjects; } return base.LoadDataFields(); } |
|
|
7楼#
发布于:2017-04-18 12:10
|
|
8楼#
发布于:2017-04-19 10:30
|
|
9楼#
发布于:2017-04-19 10:55
liuyan546:老师你好,我还想问个问题,就是我一个表单的一个字段用的是多人的类型,我看了下后台数据库保存的是xml格式的字符串,我现在需要读取这个xml查看有哪几个部门,想问一下有对这个xml解析的方法吗?回到原帖看这里,数据库查的话,自己改一下sql语句就行。 http://bbs.h3bpm.com/read.php?tid=1949 |
|
|
上一页
下一页