經歷了幾個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;