繼續上文。
Xrm.Page.data.entity,提供了一組函數和集合,分別用於頁面所代表實體數據的信息,以及代表該數據所有屬性的一個集合,需要注意的是,該集合中只包含界面上顯示的字段的信息,例如,表單中沒有修改者字段,那么屬性集合中,不會包含有關修改者字段的信息。
Xrm.Page.data.entity對象包含的函數有:
名稱 |
描述 |
addOnSave | 設置表單在保存時需要觸發的處理函數,輸入參數為方法指針 |
getDataXml | 獲取表單保存時,發送給服務器的XML字符串信息 |
getEntityName | 獲取當前表單對應的實例的實體的邏輯名稱 |
getId | 獲取當前表單對應的實例的主鍵值GUID |
getIsDirty | 用於判斷當前表單中的所有字段是否有過更改 |
removeOnSave | 和addOnSave函數相逆,將某個處理函數從表單保存操作觸發函數列表中移除 |
save | 保存操作,有三個輸入參數,分別是 空:等同於點擊Ribbon工具條的“保存”按鈕; saveandclose:等同於點擊Ribbon工具條的“保存並關閉”按鈕; saveandnew:等同於點擊Ribbon工具條的“保存並新建”按鈕; |
下面以addOnSave方法為例,說明如何向Microsoft Dynamics CRM 2011的表單中添加處理函數。
1. 打開相應的實體的表單編輯器;
2. 點擊Ribbon工具條中的窗體屬性按鈕,系統彈出“窗體屬性”對話框;
3. 點擊窗體屬性對話框的“事件列表”工具條上的“添加”按鈕,該操作代表了要向現有表單添加腳本庫文件,此時,系統彈出“查找記錄”對話框;
4. 在“查找記錄”對話框中,將會列出所有的可用的類型為Javascript的web資源,如果這些Javascript資源不能夠滿足要求,那么需要點擊對話框左下方的“新建”按鈕,通過新建Javascript資源的方式,添加新的腳本文件;
以上操作,如下圖所示,紅色箭頭代表了先后的操作順序。
點擊“新建”按鈕后,系統彈出了“新建web資源”界面,如下圖所示。
在“名稱”文本框中,輸入新建的web資源的唯一名稱,本例中,使用了new_addSaveScript.js作為唯一名稱,其中“new_”是前綴名稱;
在“顯示名稱”文本框中,輸入一個易於記憶的顯示名稱,本例中,使用了“addSave function sample”作為顯示名稱;
在“說明”文本框中,輸入對當前web資源的描述性信息,包括資源的用途、版本等等信息都是可以的;
在“類型”下拉框部分,系統提供了所有支持的web資源類型,如下圖所示;
如果類型選擇為“網頁”、“腳本”、“樣式表”、“數據”,那么將在“類型”下拉框的右側出現一個“文本編輯器”按鈕,效果如下圖所示
對於PNG、JPG、GIF、ICO以及XAP格式的資源,那么需要點擊“上載文件”文本框旁邊的“瀏覽”按鈕,以便將本機上存儲的相應格式的文件上傳到服務器中,對於其他格式的web資源,可以使用MS CRM系統的文本編輯器進行輸入,也可以使用上傳文件的方式將相應的資源文件上傳到服務器中。
本例中,使用MS CRM 2011提供的文本編輯器輸入腳本函數。輸入的腳本內容如下圖所示:
共書寫了兩個腳本函數,內容如下:
function addOnSave_OnLoad()
{
Xrm.Page.data.entity.addOnSave(myFirstAddOnSaveSample);
Xrm.Page.data.entity.addOnSave(mySecondAddOnSaveSample);
}function myFirstAddOnSaveSample()
{
alert("First handler function");
}function mySecondAddOnSaveSample()
{
alert("Second hander function");
}
編寫完腳本資源,點擊“確定”按鈕,返回“新建web資源”界面,點擊Ribbon工具條中的“保存並關閉”按鈕,返回“查找記錄”對話框,選擇新建的web資源,點擊“確定”按鈕,返回“窗體屬性”對話框,最終的“窗體屬性”對話框的效果如下圖所示。
至此,腳本庫的添加工作已經完成,下面就是將表單中的事件與腳本庫中的腳本函數進行掛接的工作。
在“事件處理程序”部分,根據我們需要添加事件處理函數的具體情況,
首先,確定“控件”下拉框的控件名稱,本例是希望在窗體被加載的時候,調用addOnSave方法,以期在窗體保存操作時,可以調用上面書寫的處理函數,所以,控件選擇為“窗體”;
其次,選擇事件,本例中,選擇OnLoad事件;
第三,點擊“添加”按鈕,指定事件處理函數,系統會彈出“處理程序屬性”對話框,在“函數”文本框中,輸入處理程序的名稱,本例中,輸入“addOnSave_OnLoad”;
最終的處理程序列表如下圖所示:
點擊“確定”按鈕,返回表單編輯器主界面,點擊Ribbon工具條中的“保存”按鈕。在保存完成后,點擊“發布”按鈕,完成功能修改后的生效工作。
發布完成后,返回表單頁面,我們測試一下。點擊“保存”按鈕,系統會依次彈出“First Handler function”以及“Second Handler function”兩個對話框,如下圖所示。
以上,展示了幾類內容:
向表單中添加腳本函數處理程序的步驟;
添加web資源的方法;
簡單的Xrm.Page.data.entity方法的調用樣例;