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


    之前忙於出差,累得稀里嘩啦的,也沒有時間更新了。現在,可以繼續寫文章了。言歸正傳。

    上一篇,介紹了Microsoft Dynamics CRM中,表單開發方面的基本概念和知識,本文將繼續表單腳本開發的介紹。

    不同於以往的幾個版本,MS CRM 2011中,將表單中的內容分為兩大類,分別是界面UI管理器以及數據管理器,分別是:

UI管理器:用於操縱表單中的各個HTML元素;

數據管理器:用於操縱表單所展現的實體實例的數據。

    不管是哪一種管理器,都需要和Xrm.Page對象打交道。Xrm.Page對象提供了與MS CRM 2011的表單進行交互的一系列的對象和函數。

注意:在MS CRM 3以及MS CRM 4版本中的crmForm對象已經被棄用了,如果需要從MS CRM 4升級到MS CRM 2011,那么在表單腳本中,需要將有關crmForm的腳本內容,更新為MS CRM 2011的Xrm.Page的腳本。國外的同行開發了一個javascript converter的工具,用於將MS CRM 4中的有關crmForm內容自動轉換為Xrm.Page的腳本。

    Xrm.Page是一個命名空間對象,其下包含了三大類的對象層次體系,形成的層次結構樹如下圖所示:

image

    由上圖可見,Xrm.Page命名空間中,包含有三大部分的內容,分別是:

Xrm.Page.context:Xrm.Page.context對象提供了對上下文信息的訪問,包括獲取特定的組織信息、特定的用戶信息以及通過查詢字符串QueryString傳遞給表單的參數;

Xrm.Page.data.entity:表單的數據管理器,該對象提供了對表單所代表的實體數據的訪問、管理與控制;

Xrm.Page.ui:表單的界面UI管理器,該對象提供了對表單中各類界面元素的管理與控制;

    Xrm.Page.context提供了如下的一些函數:

名稱

描述

getAuthenticationHeader 已經棄用了,該函數用於在Javascript訪問MS CRM Webservice時,生成訪問所需的SOAP頭信息
getCurrentTheme 在Outlook客戶端使用中,獲取用戶選擇的主題(Theme)
getOrgLcid 獲取當前組織的基礎語言代碼,例如簡體中文版,那么就是2052,如果是英文版,那么值就是1033
getOrgUniqueName 獲取當前組織的唯一名稱
getQueryStringParameters 獲取傳送給頁面的查詢字符串參數,以鍵值對的方式存放於一個數組中
getServerUrl 獲取服務器的URL地址,如果是在Outlook客戶端在離線環境下使用本函數,將返回本地的一個地址
getUserId 獲取當前用戶的主鍵值,一個GUID值
getUserLcid 獲取當前用戶選定的主語言的ID值
getUserRoles 獲取用戶的角色
isOutlookClient 判斷,當前的上下文環境,是否處於Outlook客戶端環境下
isOutlookOnline 判斷,當前的上下文環境,是否處於Outlook離線客戶端環境下;
prependOrgName 為特定路徑預置組織名稱

    對於表單環境下,直接使用Xrm.Page.context即可訪問上下文環境。如果是在表單外的環境中,例如HTML形式的web資源,那么就需要通過添加ClientGlobalContext.js.aspx文件的方式,完成對GetGlobalContext函數的引用,才可以訪問Xrm.Page.context對象,從而訪問上面列表中的方法以獲取上下文環境。ClientGlobalContext.js.aspx文件的位置是/Webresources文件夾下,所以,在web資源中添加對ClientGlobalContext.js.aspx文件的引用時,需要注意路徑問題。舉例來說,有一個HTML資源,其名稱為new_/myhtmlpage/html1.htm,那么如果需要在head元素下添加script子元素時,script子元素的src屬性的設置就需要注意啦,正確的書寫方式應該是

……

<head>

    ……

    <script type=”text/javascript” src=”../../ClientGlobalContext.js.aspx” />

    ……

</head>

……

    通過”../../”的方式,使用相對路徑,已經指定了文件夾到了”webresources”目錄下,同時,ClientGlobalContext.js.aspx文件就在WebResources目錄下,從而完成了在HTML web資源中對ClientGlobalContext.js.aspx文件的引用。


免責聲明!

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



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