经历了几个dynamics crm项目了,写点常用的JS ~~!
常用JS(一)
Xrm.Page.context.getUserId(); //获取当前用户id
Xrm.Page.context.getUserName(); //获取当前用户的用户名
Xrm.Page.data.entity.getId(); //获取当前记录id
Xrm.Page.context.getUserRoles(); //获取当用户的安全角色
Xrm.Page.context.getUser(); //获取当前用户
Xrm.Page.getAttribute("name").getValue(); //获取字段名为“name”的字段值(注:如果是子层获取父层的字段,语句前加parent.window)
Xrm.Page.getAttribute("name").setValue(“Inputer”); //给字段名为“name”的字段赋值
Xrm.Page.getAttribute("name").setSubmitMode("Inputer"); //给字段名为“name”的字段赋值后自动提交
Xrm.Page.getAttribute("字段名").setRequiredLevel("required"); //改变字段的字段需求 (注:required业务必选;none可选;recommended业务推荐)
Xrm.Page.getControl("st_portfoliomanager").setVisible(false); //隐藏名为“st_portfoliomanager”的字段
Xrm.Page.getControl("st_portfoliomanager").setVisible(true); //取消隐藏(显示)名为“st_portfoliomanager”的字段
Xrm.Page.getControl("ownerid").setDisabled(true); //锁字段名为“ownerid”的字段(注:页眉的字段加header_)
Xrm.Page.getControl("ownerid").setDisabled(false); //解锁字段名为“ownerid”的字段
TabVisible("tab_3", false); //隐藏节名为tab_3的节(注:参数是true就是显示)
DisplayAll(); //隐藏所有tab节
Xrm.Page.data.save().then(function () {parent.window.location.reload();}); //页面保存并刷新
Xrm.Page.getControl("st_customerneed").refresh(); //局部刷新(子网格也可以局部刷新)
Xrm.Page.ui.getFormType(); //获取当前页面的状态(注:1为新建,2为修改)
Xrm.Page.ui.close(); //关闭当前页面
Xrm.Page.getControl("字段名").removeOption("值"); //删除选项集中的选项
//给查找字段(boarder)赋值
var Inputer = new Array(); var keyer= new Object(); keyer.id = Xrm.Page.context.getUserId(); keyer.entityType = "systemuser"; keyer.name = Xrm.Page.context.getUserName(); Inputer[0]=keyer; Xrm.Page.getAttribute(“boarder”).setValue(Inputer);
//新建跳转到其他实体并赋值(注:查找字段不能只传一个id过去,至少要再加个name,0是true)
var customer= {}; customer["st_accountid"] = Xrm.Page.data.entity.getId(); //给新实体的”st_accountid“字段赋值 customer["st_accountcount"] = 0; //打开创建的记录 Xrm.Utility.openEntityForm("新实体名", null, customer);
//阻止保存(注:页面上调用方法时要加Xrm.Page.context;参数随意)
function onload(){ var eventArgs=context.getEventArgs(); eventArgs.preventDefault(); }
//对IFrame或者web窗体改路径
function product_change() { var web = Xrm.Page.ui.controls.get("IFrame或web窗体名"); var productid=Xrm.Page.getAttribute("st_productid").getValue(); if(productid!=null){ //DATA是要传的参数 var params = "?DATA="+productid[0].id.replace('{', '').replace('}', ''); var newTarget = web +params; //传值 web.setSrc(newTarget); } }
//获取一个用户的所有的安全角色
var query = new QueryExpression { LinkEntities = { new LinkEntity { LinkFromEntityName = "role", LinkFromAttributeName = "roleid", LinkToEntityName = "systemuserroles", LinkToAttributeName = "roleid", LinkCriteria = new FilterExpression { FilterOperator =LogicalOperator.And, Conditions = { new ConditionExpression { AttributeName = "systemuserid", Operator = ConditionOperator.Equal, Values = { userModel.UserName } } } } } }, ColumnSet = new ColumnSet("name"), EntityName = "role" }; var userRoles = proxy.RetrieveMultiple(query).Entities;