Dynamics CRM 365 - 零基础入门学习前端使用 JS 对字段、实体属性设置(语法总结)

Dynamics CRM - 前端使用 JS 对字段、实体属性设置(语法总结)

整理下平时CRM开发中用到的一些基本的js操作,或许对初学Dynamics的新手有所帮助

  1. 获取当前 Entity Id
var entityId = Xrm.Page.data.entity.getId();
  1. 获取当前 Entity 的 Name:
var entityName = Xrm.Page.data.entity.getEntityName();
  1. 获取当前 User Id:
var userId = Xrm.Page.context.getUserId();
  1. 取值
var oResult = Xrm.Page.getAttribute(sFieldName).getValue();
var oResult = Xrm.Page.getControl(sFieldName).getAttribute().getValue();
  1. 赋值:
一般类型:Xrm.Page.getAttribute(sFieldName).setValue(object);
OptionSet类型: Xrm.Page.getAttribute(sFieldName).setValue(1);//OptionSet的对应选项的Value
Lookup类型: Xrm.Page.getAttribute(sFieldName).setValue([{ id:"record id", name: "sValue", entityType: "Entity Name" }]);
DateOnly类型: Xrm.Page.getAttribute(sFieldName).setValue(new Date());
  1. 设置必填:
Xrm.Page.getAttribute(sFieldName).setRequiredLevel("required");
  1. 设置字段可见或不可见:
Xrm.Page.getControl(sFieldName).setVisible(true);
Xrm.Page.getControl(sFieldName).setVisible(false);
  1. 设置Enable(不可用上锁):
Xrm.Page.getControl(sFieldName).setDisabled(true);
  1. 设置Enable(上锁):
Xrm.Page.getControl(sFieldName).setDisabled(true);
  1. 设置必填/取消必填:
Xrm.Page.getAttribute(sFieldName).setRequiredLevel("required");
Xrm.Page.getAttribute(sFieldName).setRequiredLevel("none");
  1. 添加事件:
Xrm.Page.getControl(sFieldName).getAttribute().addOnChange(fnOnChange);
  1. 判断当前 form 的状态:
if (Xrm.Page.ui.getFormType() == 1){
    //1:Create创建
}
else{
    //0:Undefined尚未定义
    //2:Update更新
    //3:Read Only只读
    //4:Disabled已禁用
    //6:Bulk Edit批量编辑
}
  1. 打开新的或现有的实体记录的实体窗体
window.parent.Xrm.Utility.openEntityForm("Entity Name", id);
  1. 获取焦点
Xrm.Page.getControl(sFieldName).setFocus();
  1. 隐藏选项卡
Xrm.Page.getControl("student").setVisible(false);
  1. 隐藏节
Xrm.Page.ui.tabs.get("tab_2").setVisible(false);
  1. 错误提示和清除错误提示
Xrm.Page.getControl("lt_id").setNotification("该身份证号已被注册!", "IDCard2");
Xrm.Page.getControl("lt_id").clearNotification("IDCard2");
  1. 执行保存并刷新
Xrm.Page.data.save().then(function () { parent.window.location.reload(); });
  1. 保存并刷新2
Xrm.Utility.openEntityForm(Xrm.Page.data.entity.getEntityName(), Xrm.Page.data.entity.getId());
Xrm.Page.ui.close();
  1. 锁定窗体所有字段
Xrm.Page.ui.controls.getAll().forEach(function (item) { typeof (item.setDisabled) === 'function' 
  1. 锁定窗体所有字段
//锁定所有字段
            istruedisabled("tab_1");
//禁用窗体字段方法
function istruedisabled(entityname) {
    var tabControl = Xrm.Page.ui.tabs.get(entityname);
    if (tabControl != null) {
        Xrm.Page.ui.controls.forEach(
            function (control) {
                control.setDisabled(true);
            });
    }
}

小Monkey还会不断补充的

到此就结束啦,快去练习一下吧!欢迎大佬和小Monkey沟通。
在这里插入图片描述

感谢大佬指正 小Monkey
如果你觉得有用的话,就留个赞吧!蟹蟹

你可能感兴趣的:(Dynamics,CRM,语法总结)