Dynamics 365 CRM JS 常用基础操作

CRM字段类型:

类型名称: 值类型
单行/多行文本: String
查找: new EntityReference(objecttypename,Guid)
选项集 new OptionSet(Int)
两个选项: false/true
整数: Integer
浮点数: Double
十进制数: Decimal
货币: new Money(Decimal)
日期和时间: DateTime
存储列表值: StringMap
存储附件: annotation

窗体状态:

获取窗体状态类型
var formType = Xrm.Page.ui.getFormType();
表单类型
0 尚未定义
1 创建
2 更新
3 只读
4 已禁用
6 批量编辑

常用js:

//获取当前用户id
Xrm.Page.context.getUserId()//获取当前用户的用户名    
Xrm.Page.context.getUserName()//获取当用户的安全角色         
Xrm.Page.context.getUserRoles();
//获取当前用户   
Xrm.Page.context.getUser();  
//获取字段名为“name”的字段值        
Xrm.Page.getAttribute("name").getValue(); 
//给字段名为“name”的字段赋值    
Xrm.Page.getAttribute("name").setValue("Inputer");
//给字段名为“name”的字段赋值后自动提交        
Xrm.Page.getAttribute("name").setSubmitMode("Inputer"); 
//页面保存并刷新
Xrm.Page.data.save().then(function () {parent.window.location.reload();});     
//保存  
Xrm.Page.data.entity.save();
//刷新
Xrm.Page.data.refresh();  
//取流程的值
var phase = Xrm.Page.data.process.getActiveStage().getName(); 
//改变字段的字段需求  (注:required业务必选;none可选;recommended业务推荐)
Xrm.Page.getAttribute("字段名").setRequiredLevel("required");   
//隐藏名为“st_portfoliomanager”的字段            
Xrm.Page.getControl("st_portfoliomanager").setVisible(false); 
//取消隐藏(显示)名为“st_portfoliomanager”的字段       
Xrm.Page.getControl("st_portfoliomanager").setVisible(true); 
//锁字段名为“ownerid”的字段(注:页眉的字段加header_)       
Xrm.Page.getControl("ownerid").setDisabled(true);
//解锁字段名为“ownerid”的字段         
Xrm.Page.getControl("ownerid").setDisabled(false); 
//局部刷新(子网格也可以局部刷新)       
Xrm.Page.getControl("st_customerneed").refresh(); 
//删除选项集中的选项         
Xrm.Page.getControl("字段名").removeOption("值");  
//获取父页面的值
window.top.opener.Xrm.Page.getAttribute('tec_phase').getValue();
//隐藏tab
Xrm.Page.ui.tabs.get("tab_20").setVisible(false);
//获取当前页面的状态(注:1为新建,2为修改)    
Xrm.Page.ui.getFormType()//关闭当前页面        
Xrm.Page.ui.close(); 
//打开页面    
Xrm.Utility.openEntityForm("实体名称", getEntityId);  
//获取当前记录id  
Xrm.Page.data.entity.getId();     
//获取当前记录name 
Xrm.Page.data.entity.getEntityName()
//设置tab标题
Xrm.Page.ui.tabs.getByName("tab_15").setLabel("文档" + "(" + docDatas.length + ")");  
//change事件
Xrm.Page.data.process.addOnStageChange(fnStageChanged);  
//select事件
Xrm.Page.data.process.addOnStageSelected(fnStageSelected); 
//获取当前Stage
var currentStage = execContext.getEventArgs().getStage(); 
//获取当前窗体名称
Xrm.Page.ui.formSelector.getCurrentItem().getLabel() 
//给字段绑定事件
Xrm.Page.getControl("header_new_salescontract_id").getAttribute().addOnChange(function () {}
//按节锁字段
    Xrm.Page.ui.controls.forEach(function (control) {

        if (control.getParent()!=null) {

            if (control.getParent().getName() != null) {
					name = control.getAttribute().getName()
                if (control.getParent().getName() == "tab_1_sections") {
                    control.setDisabled(true);
                }
            }
        }

    })
//刷新父页面
window.top.opener.Xrm.Utility.openEntityForm(window.top.opener.Xrm.Page.data.entity.getEntityName(), window.top.opener.Xrm.Page.data.entity.getId());
//字段错误信息
Xrm.Page.getControl("attributeName").setNotification("notification content");
Xrm.Page.getControl("attributeName").clearNotification();
//窗体错误信息
Xrm.Page.ui.setFormNotification("notification content", "type", "notification name");//type:"INFORMATION","ERROR","WARNING"
Xrm.Page.ui.clearFormNotification('notification name');//clear all form notification when parameter is null```
//加载层
Xrm.Utility.showProgressIndicator("Please Wait.");
//禁用字段方法
function IsTrueDisabled(sectionlable, trueorfalse) {
    var tabs = Xrm.Page.ui.tabs;
    for (var i = 0, teblenth = tabs.getLength(); i < teblenth; i++) {
        var tab = tabs.get(i);
        var sections = tab.sections;
        for (var j = 0, sectionslenth = sections.getLength(); j < sectionslenth; j++) {
            var section = sections.get(j);
            if (section._controlName) {
                if (section._controlName.toLowerCase() == sectionlable) {
                    Xrm.Page.ui.controls.forEach(
                        function (control) {
                            if (control.getParent() !== null && control._controlName != "tec_teammemberid" && control.getParent()._controlName === sectionlable && control.getControlType() !== "subgrid") {
                                control.setDisabled(trueorfalse);
                            }
                        });
                    break;
                }
            }
        }
    }
}
//获取页面层级
function getXrmObj () {

                var XRMOBJ = new Object();

                if (typeof Xrm != "undefined") {
                    XRMOBJ = Xrm
                }
                else if (typeof window.parent.Xrm != "undefined") {
                    XRMOBJ = window.parent.Xrm
                }
                else if (typeof window.opener.Xrm != "undefined") {
                    XRMOBJ = window.opener.Xrm
                }
                else if (typeof window.opener.parent.Xrm != "undefined") {
                    XRMOBJ = window.opener.parent.Xrm
                }
                else {
                    throw new Error("Context is not available.");
                }
                return XRMOBJ;
            }
//隐藏选项卡
formContext.ui.tabs.get("tab_3").setVisible(false);
//隐藏节
formContext.ui.tabs.get("{ad0f2413-1961-40cd-8563-09e9b8e48aea}").sections.get("tab_3_section_1").setVisible(false);
//刷新导航栏按钮
formContext.ui.refreshRibbon(true);

详情参考官方文档: Xrm.Page.data.entity

你可能感兴趣的:(Dynamics,365,CRM,javascript,dynamic,programming)