MS CRM 2011的自定義與開發(12)——表單腳本擴展開發(3)


    繼續上文

    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資源的方式,添加新的腳本文件;

    以上操作,如下圖所示,紅色箭頭代表了先后的操作順序。

image

    點擊“新建”按鈕后,系統彈出了“新建web資源”界面,如下圖所示。

image

在“名稱”文本框中,輸入新建的web資源的唯一名稱,本例中,使用了new_addSaveScript.js作為唯一名稱,其中“new_”是前綴名稱;

在“顯示名稱”文本框中,輸入一個易於記憶的顯示名稱,本例中,使用了“addSave function sample”作為顯示名稱;

在“說明”文本框中,輸入對當前web資源的描述性信息,包括資源的用途、版本等等信息都是可以的;

在“類型”下拉框部分,系統提供了所有支持的web資源類型,如下圖所示;

        image

        如果類型選擇為“網頁”、“腳本”、“樣式表”、“數據”,那么將在“類型”下拉框的右側出現一個“文本編輯器”按鈕,效果如下圖所示

        image

對於PNG、JPG、GIF、ICO以及XAP格式的資源,那么需要點擊“上載文件”文本框旁邊的“瀏覽”按鈕,以便將本機上存儲的相應格式的文件上傳到服務器中,對於其他格式的web資源,可以使用MS CRM系統的文本編輯器進行輸入,也可以使用上傳文件的方式將相應的資源文件上傳到服務器中。

    本例中,使用MS CRM 2011提供的文本編輯器輸入腳本函數。輸入的腳本內容如下圖所示:

image

    共書寫了兩個腳本函數,內容如下:

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資源,點擊“確定”按鈕,返回“窗體屬性”對話框,最終的“窗體屬性”對話框的效果如下圖所示。

image

    至此,腳本庫的添加工作已經完成,下面就是將表單中的事件與腳本庫中的腳本函數進行掛接的工作。

    在“事件處理程序”部分,根據我們需要添加事件處理函數的具體情況,

首先,確定“控件”下拉框的控件名稱,本例是希望在窗體被加載的時候,調用addOnSave方法,以期在窗體保存操作時,可以調用上面書寫的處理函數,所以,控件選擇為“窗體”;

其次,選擇事件,本例中,選擇OnLoad事件;

第三,點擊“添加”按鈕,指定事件處理函數,系統會彈出“處理程序屬性”對話框,在“函數”文本框中,輸入處理程序的名稱,本例中,輸入“addOnSave_OnLoad”;

      image

    最終的處理程序列表如下圖所示:

image

    點擊“確定”按鈕,返回表單編輯器主界面,點擊Ribbon工具條中的“保存”按鈕。在保存完成后,點擊“發布”按鈕,完成功能修改后的生效工作。

    發布完成后,返回表單頁面,我們測試一下。點擊“保存”按鈕,系統會依次彈出“First Handler function”以及“Second Handler function”兩個對話框,如下圖所示。

image

    以上,展示了幾類內容:

向表單中添加腳本函數處理程序的步驟;

添加web資源的方法;

簡單的Xrm.Page.data.entity方法的調用樣例;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM