Dynamics CRM 365 腳本操作指南


CRM腳本

 

Xrm.Page.getAttribute()

轉控件:controls.get(0)

取賦值:getValue(),setValue()

是否改動:getIsDirty()

表單載入時的值:getInitialValue()[Boolean, optionset]

提交類型:getSubmitMode(),setSubmitMode()//always,never,ditry

必填等級:getRequiredLevel(),setRequiredLevel()//required、none

用戶操作等級:getUserPrivilege()//canCreate()、canRead()、canUpdate()

事件:addOnChange(),removeOnChange(),fireOnChange()[強制執行]

其他:getAttributeType(),getFormat(),getIsValid(),getMax(),getMaxLength(),getMin(),getName(),getParent(),getPrecision()

選項集:getOption(),getOptions(),getSelectedOption(),getText()

Xrm.Page.getControl()

轉屬性:getAttribute()

提醒:addNotification(notification),clearNotification(uniqueId),clearNotifications(),setNotification(message,uniqueId)

禁用/啟用:setDisabled(true),setDisabled(false),getDisabled()

顯示/隱藏:setVisible(true),setVisible(false),getVisible()

描述:setLabel(),getLabel()

選中:setFocus

刷新:refresh()//僅限SubGrid

其他:addCustomFilter(),addCustomView(),addOption(),removeOption(value),clearOptions(),getControlType(),getData(),setData(),

getDefaultView(),setDefaultView(),getName(),getParent(),getSrc(),setSrc(),getInitialUrl(),getObject(),addOnKeyPress(),removeOnKeyPress(),fireOnKeyPress()

hideAutoComplete(),showAutoComplete(),

查找:addCustomFilter (fetchXmlFilter, entityType),

addCustomView (viewId, entityLogicalName, viewDisplayName, fetchXml, layoutXml, isDefault)

子網格網格(只讀)對象和方法(客戶端引用)  可編輯網格對象和方法(客戶端引用)

Control:getGrid(),addOnLoad(),removeOnLoad(),addRecord(),getRelationship(),getRelationshipAttributeName(),getRelationshipName(),

getViewSelector().setCurrentView(),   Grid:getGrid().getSelectedRows(),getRows(),addOnRecordSelect(),fireOnRecordSelect(),removeOnRecordSelect(),getTotalRecordCount(),showLoadingMessage()

                 Rows:getGrid().getSelectedRows().get(),getAll(),getByFilter(),getByIndex(),getByName(),getFirst(),getLength(),add(),forEach(),remove()

                                  Row: getGrid().getSelectedRows().get(0).data.entity.attributes/relatedEntities                             

                                  執行上下文:obj.getFormContext().data.entity

Xrm.Page.context

用戶ID:getUserId()

用戶角色:getUserRoles()

用戶語言:getUserLcid()

組織名稱:getOrgUniqueName()

組織語言:getOrgLcid()

路徑參數:getQueryStringParameters()

服務器路徑: getClientUrl()

前追加組織名稱:prependOrgName("/WebResource/**")效果:crmtest/WebResource/**

當前主題:getCurrentTheme()

客戶端信息:client

OutLook:isOutlookClient()/isOutlookOnline()

Xrm.Page.data

頁面流程:process(process=>State=>Step)

        事件:abandonProcess(),addOnProcessStatusChange(),addOnStageChange(),addOnStageSelected(),

completeProcess(),getSelectedStage(),getStatus(),moveNext(),movePrevious(),setStatus(),switchProcess()…

        獲取Step:getActiveStage().getSteps().getByIndex(0)

事件:addOnLoad(),removeOnLoad(),blockAutoSave(),getIsDirty(),setFormDirty(),refresh(),save()

Xrm.Page.data.entity

所有頁面元素:attributes【forEach(),get(),getLength(),getByIndex(),getByName()…】

實體名稱:getEntityName(),getEntitySetName()

實體ID:getId(),getKey(),getEntityReference()

主字段值:getPrimaryAttributeValue()

是否修改:getIsDirty()

保存事件:save( null | "saveandclose" |"saveandnew" )

添加保存時事件:addOnSave()

移出保存時事件:removeOnSave()

是否Hierarchy:isInHierarchy()

Xrm.Page.ui

事件:clearFormNotification(uniqueid),close(),getControls(),getCurrentControl(),getFormType(),getTabs(),refreshRibbon(),

標題:get_formTitle(),set_formTitle()

窗體提示框:setFormHtmlNotification(htmlText, notificationLevel, uniqueId)

                         setFormNotification(message, notificationLevel, uniqueId)

 

頁面所有控件:controls【forEach(),get(),getAll(),getByFilter(),getByIndex(),getByName(),getLength()】

單個控件:controls.get("")【同Xrm.Page.getControl()】

 

頁面Tab:tabs【forEach(),get(),getLength()】

單個Tab:tabs.get()【sections,getDisplayState(),getLabel(),getName(),getParent(),getVisible(),setDisplayState(),setFocus(),setLabel(),setVisible()】

 

Tab-Sections:tabs.get(0).sections【forEach(),get(),getLength()】

單個Section:tabs.get(0).sections.get(0)【getLabel(),getName(),getParent(),getVisible(),setLabel(),setVisible(),controls】

 

頁面導航:navigation.items【forEach(),get(),getByFilter(),getByIndex(),getByName(),getLength()】

單個導航:navigation.items.get()【getId(),getLabel(),getVisible(),setFocus()-導航跳躍,setLabel(),setVisible()】

獲取導航:1.通過getLabel()遍歷;2.通過ID:.get("navContacts")

例:隱藏活動:Xrm.Page.ui.navigation.items.get("navActivities").setVisible(false)

                           document.getElementById(“navActivites”)

 

窗體:formSelector.items【forEach(),get(),getByFilter(),getByIndex(),getByName(),getLenght()】

單個窗體:formSelector.items.get()【getId(),getLabel(),navigate()-窗體跳躍】

var formItem = Xrm.Page.ui.formSelector.getCurrentItem();

Xrm.Utility

Xrm.Utility(客戶端引用)

彈出框:Xrm.Utility.alertDialog(message,onCloseCallback)

確認框:Xrm.Utility.confirmDialog(message,yesCloseCallback,noCloseCallback)

打開新的或現有實體記錄:Xrm.Utility.openEntityForm(name,id,parameters,windowOptions)

打開快速創建窗體:Xrm.Utility.openQuickCreate(entityLogicalName,createFromEntity,parameters).then(successCallback, errorCallback);

打開HTML Web資源:Xrm.Utility.openWebResource(webResourceName,webResourceData,width, height)

是否活動實體:Xrm.Utility.isActivityType(entityName)

使用移動設備攝像頭掃描條形碼:Xrm.Utility.getBarcodeValue().then(successCallback, errorCallback)

返回設備當前地理位置:Xrm.Utility.getCurrentPosition().then(successCallback, errorCallback)

隱藏函數

返回記錄WebApi請求路徑:Xrm.Utility.getEntityUrl(entityName, entityId)

刪除數據:Xrm.Utility.deleteRecord(entityName, entityId)

創建數據:Xrm.Utility.create(entityLogicalName, parent, relationship, parameters, successCallback, failureCallback)

檢索數據:Xrm.Utility.retrieveEntityRecord(entityReference, columnNames, successCallback, actionFailedCallback)

檢索集合:Xrm.Utility.retrieveEntityCollection(keyQuery, successCallback, actionFailedCallback)

彈出框:Xrm.Utility.openDialog (url, dialogOptions, dialogArguments, initFunctionName, returnFunction)

打開記錄:Xrm.Utility.openRecord(entityName, entityId, parameters)

展示Hierarchy:Xrm.Utility.showHierarchyPage(entityTypeName, entityId)

最佳新能

避免包含不必要的 JavaScript Web 資源庫

    向窗體中添加的腳本越多,用於下載腳本的時間也會越多。 通常,腳本首次下載后會緩存在瀏覽器中,但首次查看窗體時的性能通常會形成重要的印象。

    對於特定示例,因為您要使用 XMLHttpRequest,因此不要在窗體腳本中包括 jQuery。 當 jQuery 提供很多人很熟悉的 $.ajax 函數來執行這些請求時,它是開發人員的首選項,不是必選項。 可以使用 Microsoft Dynamics 365 支持的所有瀏覽器中的本機 XMLHttpRequest 對象來執行這些請求。詳細信息:jQuery 的使用

避免在 Onload 事件中加載所有腳本

    如果您有僅支持字段的 OnSave 事件或 OnChange 事件的代碼,請確保使用事件處理程序為這些事件(而不是 OnLoad 事件)設置腳本庫。 這樣可以推遲加載這些庫,從而提高窗體加載時的性能。

    為方便起見,不建議使用 OnLoad 事件處理程序中的 addOnChange 方法。 雖然此方法可減少添加事件處理程序所需的步驟數,但它將導致窗體加載速度更慢。

使用折疊選項卡來推遲加載 Web 資源

    當折疊的選項卡中的分區中包括了 Web 資源或 IFRAME 時,在選項卡折疊的情況下不會加載它們。 它們會在選項卡展開時加載。 當選項卡狀態發生變化時,會發生 TabStateChange 事件。 支持折疊的選項卡中的 Web 資源或 IFRAME 所需的任何代碼都可以使用 TabStateChange 事件的事件處理程序,從而減少本來必須在 OnLoad 事件中發生的代碼。

設置默認可見性選項

    避免在隱藏窗體元素的 OnLoad 事件中使用窗體腳本。 請為可能隱藏的窗體元素設置默認可見性選項,以便在加載窗體時使其默認不可見。 然后,在 OnLoad 事件中使用腳本來顯示您希望顯示的窗體元素。


免責聲明!

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



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