在BPM項目中,前背景互動功能很常見,實作的方式也有很多種
這個TXT裡面介紹的就是H3封裝的Action的用法
//Loaded是H3封裝的前台加載事件
$.MvcSheet.Loaded = function (sheetInfo) {
//$.MvcSheetUI.GetElement("參數1").change(function (){});方法解析:
//此方法是H3中封裝的自定義的change方法,針對H3中的絕大多數控件
//參數1:改變後觸發change方法的資料項的編碼
//方法前提:此方法需要寫在Loaded事件中,不然腳本會報錯“未定義change()方法”
//下例中,該方法的功能是,當資料項編碼為UserId的資料項改變是,進行前背景互動,讀出對應的code和name并指派給表單資料項
$.MvcSheetUI.GetElement("UserId").change(function (){
//注意事項:
//1、$.MvcSheet.Action中的Data是傳入背景的資料值,當是多個值的時候,以英文","隔開,","是在雙引号後面的如:Datas: ["{UserId}","{Day}"],
//2、前台通過Data向背景傳入資料值,背景的對應方法需要定義參數清單去接收,參數清單的類型和個數需與Data中傳入參數的類型和個數一一對應且順序不能錯亂
//3、前背景參數互動類型對應規則
//前台傳入資料的控件類型 背景接收的變量類型
//日期類型控件 -> string(字元串)
//參與者(單人) -> string(字元串)
//參與者(多人) -> string[](字元串數組)
//短文本/長文本 -> string(字元串)
//審批意見/附件 -> string(字元串)
//整數 -> int/long/string
//長整數 -> long/string
//數值 -> float/double/string
$.MvcSheet.Action({
Action: "TestAction", // 調用的背景方法名稱
Datas: ["{UserId}"], // 輸入參數,格式 ["{資料項名稱}","String值","控件ID"],當包含資料項名稱時 LoadControlValue必須為true
LoadControlValue: true, // 是否擷取表單資料
PostSheetInfo: false, // 是否擷取已經改變的表單資料
OnActionDone: function (e) {
//"e"是用來接收方法"TestAction"的反回值(return的值),從下面代碼可以看出,TestAction方法傳回的是一個對象
//1、背景方法可以是有傳回值的,也可以是無傳回值
//2、傳回值類型可以是對象、int、string、數組、集合等
//3、我們推薦的是傳回對象,這樣的話可以避免些系統bug
// 執行完成後回調事件
$.MvcSheetUI.SetControlValue("code", e.Code); //Code是傳回對象e的一個屬性,且Code需要和背景定義的對象的屬性名稱保持一緻
$.MvcSheetUI.SetControlValue("mvcName", e.Name); //Name是傳回對象e的一個屬性,且Name需要和背景定義的對象的屬性名稱保持一緻
}
});
});
};
本文轉自 lwl_BPM 51CTO部落格,原文連結:http://blog.51cto.com/12438115/1924112,如需轉載請自行聯系原作者