BPM实例方案分享:表单子表自动填入数据
軟件環(huán)境:H3 BPM 9.2.7
?
業(yè)務(wù)需求:
現(xiàn)在想要實現(xiàn)一個效果:在打開表單、選擇合同階段后能夠讀取后臺數(shù)據(jù),將多行數(shù)據(jù)自動填入下方的子表。
?
本文將用三種方法實現(xiàn)自動填入子表的功能。
?
方法一
前臺使用如下幾個函數(shù)就可以實現(xiàn)了,在合同的onchange事件獲取數(shù)據(jù)以后處理。
?
復制代碼
//獲取子表
var dtl = $.MvcSheetUI.GetElement("子表名").SheetGridView();
??
//增加子表行
dtl.addbtn.click(); ?或 dtl._AddRow();
??
//設(shè)置子表明細數(shù)據(jù)
$.MvcSheetUI.SetControlValue("子表字段名", "", row);
?
?
方法二:
或者使用后臺處理數(shù)據(jù)的方式
?
復制代碼
// 執(zhí)行后臺事件
????????????$.MvcSheet.Action(
????????????????{
????????????????????Action: "TestAction", ??// 后臺方法名稱
????????????????????Datas: ["輸入?yún)?shù)"], ???// 輸入?yún)?shù),格式 ["{數(shù)據(jù)項名稱}","String值","控件ID"],當包含數(shù)據(jù)項名稱時 LoadControlValue必須為true
????????????????????LoadControlValue: true, // 是否獲取表單數(shù)據(jù)
????????????????????PostSheetInfo: true, ???// 是否獲取已經(jīng)改變的表單數(shù)據(jù)
????????????????????OnActionDone: function (e) {
????????????????????????// 執(zhí)行完成后回調(diào)事件
????????????????????}
????????????????}
?
?
后臺方法里面直接修改ActionContext.InstanceData["子表名"]中的數(shù)據(jù)。
?
?
方法三:后臺添加
?
復制代碼
public override MvcViewContext LoadDataFields()
{
????if (this.ActionContext.IsOriginateMode)
???????????{
????????????BizObject[] bizObjects = new BizObject[數(shù)組長度];
????????????BizObjectSchema childSchema = this.ActionContext.Schema.GetProperty("子表編碼").ChildSchema;
?????????????for (int i = 0; i < DataTable0.Rows.Count; i++)
???????????????????????????{
???????????????????????????????bizObjects = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID);
???????????????????????????????bizObjects["字段編碼"] = "";
???????????????????????????????bizObjects["字段編碼"] = "";
??
???????????????????????????}
????????????this.ActionContext.InstanceData["子表編碼"].Value = bizObjects;
???????????}
???????????return base.LoadDataFields();
}
轉(zhuǎn)載于:https://www.cnblogs.com/h3bpm/p/6867534.html
總結(jié)
以上是生活随笔為你收集整理的BPM实例方案分享:表单子表自动填入数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加入新的地方,要开始积累了
- 下一篇: 动态控制jQuery easyui da