阅读:5540 回复:8
liuyan546
12

帖子

58

跟帖

2544

积分

高级榴莲
高级榴莲
  • 社区居民

[已解决]表单子表自动填入几行数据

楼主#
更多 发布于:2017-04-18 08:56
老师好,我用的版本是9.2.7。现在想要实现一个效果,在打开表单的时候,选择合同阶段时会读取后台数据,将多行数据自动填入下方的子表,这个自动填入子表的功能能实现吗?

图片:QQ截图20170418085253.png

最新喜欢:

tigerctigerc RicardoRicard...
岩竹玉雨
20

帖子

840

跟帖

205241

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
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();
}
发问题贴的时候,可以@一下我,我就能更快的知道了
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
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["子表名"]中的数据。
方法二未经测试,根据个人经验可行。
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
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["子表名"]中的数据。
方法二未经测试,根据个人经验可行。
liuyan546
12

帖子

58

跟帖

2544

积分

高级榴莲
高级榴莲
  • 社区居民
4楼#
发布于:2017-04-18 10:01
t156965365:可以实现
方法一
前台使用如下几个函数就可以实现了,在合同的onchange事件获取数据以后处理。
//获取子表
var dtl = $.MvcSheetUI.GetElement("子表名").SheetGridView();
 
//...
回到原帖
谢谢老师,我准备用第一种方法测试一下。就是在设置子表明细数据
$.MvcSheetUI.SetControlValue("子表字段名", "", row);
第一个参数是字段名,第二个参数是值,第三个参数是第几行吗?这里如何明确设置的是第几行的字段值呢?
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
5楼#
发布于:2017-04-18 10:03
liuyan546:谢谢老师,我准备用第一种方法测试一下。就是在设置子表明细数据
$.MvcSheetUI.SetControlValue("子表字段名", "", row);
第一个参数是字段名,第二个参数是值,第三个参数是第几行吗?这里如何明确设置的是...
回到原帖
嗯,第三个参数是行号。
dtl.RowCount就是总行数,你每插入一行,然后获取行数设置数据。
一行一行的设置数据。
岩竹玉雨
20

帖子

840

跟帖

205241

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
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();
}
发问题贴的时候,可以@一下我,我就能更快的知道了
liuyan546
12

帖子

58

跟帖

2544

积分

高级榴莲
高级榴莲
  • 社区居民
7楼#
发布于:2017-04-18 12:10
岩竹玉雨:我在补一个,
方法三:后台添加
public override MvcViewContext LoadDataFields()
{
    if (this.ActionContext.IsOriginateMode)
     ...
回到原帖
谢谢老师,用这个方法确实简单。我本来想后台查数据前台显示的,这么一看还是这样简单

图片:QQ截图20170418120857.png

liuyan546
12

帖子

58

跟帖

2544

积分

高级榴莲
高级榴莲
  • 社区居民
8楼#
发布于:2017-04-19 10:30
岩竹玉雨:我在补一个,
方法三:后台添加
public override MvcViewContext LoadDataFields()
{
    if (this.ActionContext.IsOriginateMode)
     ...
回到原帖
老师你好,我还想问个问题,就是我一个表单的一个字段用的是多人的类型,我看了下后台数据库保存的是xml格式的字符串,我现在需要读取这个xml查看有哪几个部门,想问一下有对这个xml解析的方法吗?
岩竹玉雨
20

帖子

840

跟帖

205241

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
9楼#
发布于:2017-04-19 10:55
liuyan546:老师你好,我还想问个问题,就是我一个表单的一个字段用的是多人的类型,我看了下后台数据库保存的是xml格式的字符串,我现在需要读取这个xml查看有哪几个部门,想问一下有对这个xml解析的方法吗?回到原帖
看这里,数据库查的话,自己改一下sql语句就行。
http://bbs.h3bpm.com/read.php?tid=1949
发问题贴的时候,可以@一下我,我就能更快的知道了
上一页
1 2  »|
游客

返回顶部