Dynamics CRM 365 JS 常用语法聚集

1.Xrm.Page.context
用户ID:getUserId()
用户角色:getUserRoles()
用户语言:getUserLcid()
组织名称:getOrgUniqueName()
组织语言:getOrgLcid()
路径参数:getQueryStringParameters()
服务器路径:getServerUrl()/getClientUrl()
当前主题:getCurrentTheme()

 

2.Xrm.Page.data.entity
所有页面元素:attributes【forEach(),get(),getLength()】
单个元素:attributes.get("")【同Xrm.Page.getAttribute()】
实体名称:getEntityName()
实体ID:getId()
是否修改:getIsDirty()
保存事件:save()
添加保存时事件:addOnSave()
移出保存时事件:removeOnSave()

 

3.Xrm.Page.getAttribute("")
取值:getValue()
赋值:setValue()
是否改动:getIsDirty()
表单载入时的值:getInitialValue()[Boolean, optionset]
提交类型:getSubmitMode(),setSubmitMode()//always,never,ditry
必填等级:getRequiredLevel(),setRequiredLevel()//required、none
用户操作等级:getUserPrivilege()//canCreate()、canRead()、canUpdate()
事件:addOnChange(),removeOnChange(),fireOnChange()[强制执行]
其他:getAttributeType(),getFormat(),getMax(),getMaxLength(),getMin(),getName(),getParent(),getPrecision()
optionset:getOption(),getOptions(),getSelectedOption(),getText()

 


4.Xrm.Page.getControl("")
属性:getAttribute()【同Xrm.Page.getAttribute()】
禁用/启用:setDisabled(true),setDisabled(false),getDisabled()
显示/隐藏:setVisible(true),setVisible(false),getVisible()
描述:setLabel(),getLabel()
聚焦选中:setFocus
刷新:refresh()//仅限SubGrid
其他:addCustomView(),addOption(),removeOption(value),clearOptions(),getControlType(),getData(),setData(),getDefaultView(),setDefaultView(),getName(),getParent(),getSrc(),setSrc(),getInitialUrl(),getObject()

 

5.Xrm.Page.ui
页面所有控件:controls【forEach(),get(),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(),getLength()】
单个导航:navigation.items.get()【getId(),getLabel(),getVisible(),setFocus(),setLabel(),setVisible()】

窗体:formSelector.items【forEach(),get(),getLenght()】
单个窗体:formSelector.items.get()【getId(),getLabel(),navigate()-窗体跳跃】

6.窗体状态
var FORM_TYPE_CREATE = 1;
var FORM_TYPE_UPDATE = 2;
var formType = Xrm.Page.ui.getFormType();


7.刷新当前页面:
window.location.href = window.location.href;
window.location.reload();

8.禁用页面所有控件:
Xrm.Page.ui.controls.forEach(function (control, index) {
control.setDisabled(true);
});
function LockAllControl() {
    var controls = Xrm.Page.ui.controls.get();
    for (var i in controls) {
        var control = controls[i];
        if (control.getControlType() != "iframe" && control.getControlType() != "webresource"
            && control.getControlType() != "subgrid" && control.getDisabled() == false) {
            control.setDisabled(true);
        }
    }
}



9.防止保存事件(需要执行上下文):
function My_PreventSaveFunction(eContext) {
eContext.getEventArgs().preventDefault();
}

10.给Lookup取值赋值:var objList = new Array();
var obj = new Object();
obj.id = accountObj[0].TerritoryId.Id;
obj.name = accountObj[0].TerritoryId.Name;
obj.typename = accountObj[0].TerritoryId.LogicalName;
objList[0] = obj;
Xrm.Page.getAttribute("yto_territory").setValue(accountObj[0].TerritoryId.Id == null ? null : objList);
Xrm.Page.getAttribute("yto_territory").setSubmitMode("always");
Xrm.Page.data.entity.save();

 

11.保存记录时将被发送到服务器的 XML 的字符串。 只有字段中已更改的数据被设置到服务器。
Xrm.Page.data.entity.getDataXml()

 

12.调用CRM的操作

//【激活】和【退回线索公海】按钮
function SetActive_GHAction(itype) {

    var parameters = {};
    parameters.itype = itype;
    parameters.leadid = leadid;

    var req = new XMLHttpRequest();
    req.open("POST", parent.Xrm.Page.context.getClientUrl() + "/api/data/v9.0/scw_SetActive_GHAction", false);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.onreadystatechange = function () {
        //debugger;
        if (this.readyState === 4) {
            req.onreadystatechange = null;
            if (this.status === 200) {
                var results = JSON.parse(this.response);
                alert(results.message);
                window.location.reload();   //刷新界面
            } else {
                var results = JSON.parse(this.response);
                Xrm.Utility.alertDialog(results.error.message);
            }
        }
    };
    req.send(JSON.stringify(parameters));
}

 

 13.显示正在操作,锁定界面

 Xrm.Utility.showProgressIndicator('loading');
 Xrm.Utility.closeProgressIndicator();


posted @ 2022-04-14 23:08  溜溜球_小钢wan  阅读(503)  评论(0编辑  收藏  举报