Dynamics CRM 2013 常用JS指令碼

Destiny、Yang發表於2024-03-11

Xrm.Page.data

獲取記錄的主鍵Id的值(getId)

var Id = Xrm.Page.data.entity.getId();

獲取記錄的表的邏輯名稱(getEntityName)

var entityName = Xrm.Page.data.entity.getEntityName();

獲取引用記錄的查詢值(getEntityReference)

var erEntity = Xrm.Page.data.entity.getEntityReference();
//string。表記錄的邏輯名稱。例如,“account”。
var entityType = erEntity.entityType;
//string。表記錄的 GUID 值。
var Id = erEntity.id;
//(可選)string。表記錄的名稱。
var name = erEntity.name;

指示窗體中的任何列是否已被修改(getIsDirty)

// isDirty : Boolean; 如果表單中的任何列已更改,則為 true;否則為 false。
var isDirty = Xrm.Page.data.entity.getIsDirty();

立即呼叫窗體儲存(save)

Xrm.Page.data.entity.save();

新增在觸發 OnSave事件時要呼叫的函式(addOnSave)

//functionName:繫結的方法名
Xrm.Page.data.entity.addOnSave(functionName);

Xrm.Page.ui

獲取記錄的窗體型別(getFormType)

//0:未定義的;1:新建;2:更新;3:只讀;4:禁用;6:批次編輯
var type = Xrm.Page.ui.getFormType();

顯示錶單級別通知(setFormNotification)

//message:string,必填,訊息的文字
//level:string,必填,訊息的級別:ERROR,WARNING,INFO
//uniqueId:string,必填,訊息的唯一識別符號,稍後可與 clearFormNotification 一起使用以刪除通知。
Xrm.Page.ui.setFormNotification(message, level, uniqueId);

刪除表單級別通知(clearFormNotification)

//uniqueId:使用 setFormNotification 方法設定的要清除的訊息的唯一識別符號。
Xrm.Page.ui.clearFormNotification(uniqueId);

關閉窗體(close)

Xrm.Page.ui.close();

Xrm.Page.getAttribute

獲取欄位的值(getValue)

//attributeName:欄位邏輯名
var attributeValue = Xrm.Page.getAttribute("attributeName").getValue();

設定欄位的值(setValue)

//attributeName:欄位邏輯名
//attributeValue:設定欄位的值
Xrm.Page.getAttribute("attributeName").setValue(attributeValue);

//設定查詢型別的值
var lookupObject = {};
lookupObject.id = attribute.guid;
lookupObject.entityType = attribute.logicalName;
lookupObject.name = attribute.name;
var attributeValue = [];
attributeValue[0] = lookupObject;
Xrm.Page.getAttribute("attributeName").setValue(attributeValue);

獲取欄位的必填性(setRequiredLevel)

//attributeName:欄位邏輯名
//選填:none;必填:required;業務推薦填寫:recommended;
var attributeRequiredLevel = Xrm.Page.getAttribute("attributeName").getRequiredLevel();

設定欄位的必填性(setRequiredLevel)

//attributeName:欄位邏輯名
//requirementLevel:必填性;選填:none;必填:required;業務推薦填寫:recommended;
Xrm.Page.getAttribute("attributeName").setRequiredLevel(requirementLevel);

獲取欄位的提交模式(setSubmitMode)

//attributeName:欄位邏輯名
//always:資料始終與儲存一起傳送;
//never:資料從不與儲存一起傳送。使用此值時,無法編輯此列的窗體中的列;
//dirty:預設行為。當資料發生更改時,資料將與儲存一起傳送;
var attributeSubmitMode = Xrm.Page.getAttribute("attributeName").getSubmitMode();

設定欄位的提交模式(setSubmitMode)

//attributeName:欄位邏輯名
//mode:提交模式,string;
//always:資料始終與儲存一起傳送;
//never:資料從不與儲存一起傳送。使用此值時,無法編輯此列的窗體中的列;
//dirty:預設行為。當資料發生更改時,資料將與儲存一起傳送;
Xrm.Page.getAttribute("attributeName").setSubmitMode("mode");

設定欄位OnChange事件(addOnChange)

//attributeName:欄位邏輯名
//functionName:繫結的方法名
Xrm.Page.getAttribute("attributeName").addOnChange(functionName);

移除欄位OnChange事件(removeOnChange )

//attributeName:欄位邏輯名
//functionName:移除的方法名
Xrm.Page.getAttribute("attributeName").removeOnChange(functionName);

獲取欄位的邏輯名稱(getName)

//attributeName:欄位邏輯名
var attributeLogicalName = Xrm.Page.getAttribute("attributeName").getName();

獲取欄位的選項集物件陣列(getOptions)

//attributeName:欄位邏輯名
var options = Xrm.Page.getAttribute("attributeName").getOptions();

獲取當前選定選項的文字(getText)

//attributeName:欄位邏輯名
var optionText = Xrm.Page.getAttribute("attributeName").getText();

獲取欄位是否已修改未儲存(getIsDirty)

//attributeName:欄位邏輯名
var isDirty = Xrm.Page.getAttribute("attributeName").getIsDirty();

Xrm.Page.getControl

獲取欄位的標籤(getLabel)

//attributeName:欄位邏輯名
var attributeLabel = Xrm.Page.getControl("attributeName").getLabel();

設定欄位是否可見(setVisible)

//attributeName:欄位邏輯名
//bool: 可見:true;不可見:false;
Xrm.Page.getControl("attributeName").setVisible(bool);

設定欄位是否禁用(setDisabled)

//attributeName:欄位邏輯名
//bool: 禁用:true;可用:false;
Xrm.Page.getControl("attributeName").setDisabled(bool);

獲取欄位是否禁用(getDisabled)

//attributeName:欄位邏輯名
var attributeValue = Xrm.Page.getControl("attributeName").getDisabled();

新增選項集選項(addOption)

//attributeName:欄位邏輯名
//option:新增的選項
//index:放置新選項的索引位置。如果未提供,則該選項將新增到末尾。
var option = {};
option.text = "Test";
option.value = 1;
Xrm.Page.getControl("attributeName").addOption(option,index);

清空選項集選項(clearOptions)

//attributeName:欄位邏輯名
Xrm.Page.getControl("attributeName").clearOptions();

移除選項集選項(removeOption)

//attributeName:欄位邏輯名
//optionValue:選項集選項值
Xrm.Page.getControl("attributeName").removeOption(optionValue);

設定顯示欄位的錯誤訊息(setNotification)

//attributeName:欄位邏輯名
//message:要顯示的訊息
//uniqueId:使用 clearNotification 方法時用於清除此訊息的 ID
Xrm.Page.getControl("attributeName").setNotification(message,uniqueId);

清除欄位顯示的錯誤訊息(clearNotification)

//attributeName:欄位邏輯名
//uniqueId:使用 clearNotification 方法時用於清除此訊息的 ID
Xrm.Page.getControl("attributeName").clearNotification(uniqueId);

新增預搜尋(addPreSearch)

//attributeName:欄位邏輯名
//functionName:繫結的方法名
Xrm.Page.getControl("attributeName").addPreSearch(functionName);

新增自定義篩選器(addCustomFilter)

//attributeName:欄位邏輯名
//fetchXml:要應用的 fetchXml 篩選器元素
var fetch = "<filter type=\"and\">"+
            "<condition attribute=\"address1_city\" operator=\"eq\" value=\"Redmond\" />"+
            "</filter>"
Xrm.Page.getControl("attributeName").addCustomFilter(fetchXml);

新增自定義檢視(addCustomView)

//attributeName:欄位邏輯名
//viewId:字串,檢視的 GUID 的字串表示形式
//entityName:字串,實體邏輯名稱
//viewDisplayName:字串,檢視的名稱
//viewDisplayName:字串,檢視的名稱
//fetchXml:字串,檢視的 fetchXml 查詢。
//layoutXml:字串,定義檢視佈局的 XML。
//isDefault:布林值,指示檢視是否應為預設檢視。
// 指定檢視的GUID(任意)
var viewId = "00000000-0000-0000-0000-00000000000001";
// 查詢實體的邏輯名稱
var entityName = "account";
// 指定檢視的名稱
var viewDisplayName = "可用的客戶檢視";
// 檢視的fetchXml查詢
var fetchXml = ["<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
                  "<entity name='account'>" +
                    "<attribute name='name' />" +
                    "<attribute name='accountid' />" +
                    "<attribute name='createdon' />" +
                    "<order attribute='name' descending='false' />" +
                    "<filter type='and'>" +
                      "<condition attribute='statecode' operator='eq' value='0' />" +
                    "</filter>" +
                  "</entity>" +
                "</fetch>"];
// 指定檢視佈局XML
var layoutXml = ["<grid name='resultset' object='1' jump='name' select='1' icon='0' preview='1'>",
                 "<row name='result' id='accountid'>",
                 "<cell name='name' width='100'/>",
                 "<cell name='createdon' width='100'/>",
                 "</row>",
                 "</grid>"];
// 是否設定為預設檢視
var isDefault = true;
Xrm.Page.getControl("attributeName").addCustomView(viewId, entityName, viewDisplayName, fetchXml, layoutXml, isDefault);

相關文章