BPM实例方案分享:表单子表自动填入数据
軟件環境:H3 BPM 9.2.7
?
業務需求:
現在想要實現一個效果:在打開表單、選擇合同階段后能夠讀取后臺數據,將多行數據自動填入下方的子表。
?
本文將用三種方法實現自動填入子表的功能。
?
方法一
前臺使用如下幾個函數就可以實現了,在合同的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["子表名"]中的數據。
?
?
方法三:后臺添加
?
復制代碼
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 = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID);
???????????????????????????????bizObjects["字段編碼"] = "";
???????????????????????????????bizObjects["字段編碼"] = "";
??
???????????????????????????}
????????????this.ActionContext.InstanceData["子表編碼"].Value = bizObjects;
???????????}
???????????return base.LoadDataFields();
}
轉載于:https://www.cnblogs.com/h3bpm/p/6867534.html
總結
以上是生活随笔為你收集整理的BPM实例方案分享:表单子表自动填入数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加入新的地方,要开始积累了
- 下一篇: 动态控制jQuery easyui da