来源:
https://blog.csdn.net/jxian2009/article/details/22179447
http://www.cnblogs.com/allenhua/archive/2012/12/25/2832473.html
MSCRM 2011 操作大全
单行/多行文本: | String |
查找: | new EntityReference(objecttypename,Guid) |
选项集: | new OptionSet(Int) |
两个选项: | false/true |
整数: | Integer |
浮点数: | Double |
十进制数: | Decimal |
货币: | new Money(Decimal){SQL更新Money类型字段,需要同时更新_base字段,存在汇率差的时候值不同} |
日期和时间: | DateTime |
CRM系统: | |
存储列表值: | StringMap |
存储附件: | annotation |
Associate: | 创建多对多关系 |
Create: | 创建数据 |
Delete: | 删除数据 |
Disassociate: | 删除多对多关系 |
Execute: | 执行请求 |
Retrieve: | 查询一个记录 |
RetrieveMultiple: | 查询多个记录 |
Update: | 更新数据 |
用户ID: | getUserId() |
用户角色: | getUserRoles() |
用户语言: | getUserLcid() |
组织名称: | getOrgUniqueName() |
组织语言: | getOrgLcid() |
路径参数: | getQueryStringParameters() |
服务器路径: | getServerUrl()/getClientUrl() |
前追加组织名称: | prependOrgName("/WebResource/…")效果:crmtest/WebResource/… |
当前主题: | getCurrentTheme() |
OutLook: | isOutlookClient()/isOutlookOnline() |
页面所有元素: | attributes【forEach(),get(),getLength()】 |
单个元素: | attributes.get("")【同Xrm.Page.getAttribute(""),getValue()】 |
实体名称: | getEntityName() |
实体ID: | getId() |
是否修改: | getIsDirty();返回布尔值,该值指示表单中的任何字段是否已被修改。 |
保存事件: | save() |
添加保存时事件: | addOnSave();设置保存记录时要调用的函数 |
移出保存时事件: | removeOnSave(); 移除保存记录时要调用的函数 |
获取xml字符 | getDataXml(); 返回保存记录时要发送到服务器的xml字符串 |
取值: | 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() |
属性: | 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() |
页面所有控件: | 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()-窗体跳跃】 |
var FORM_TYPE_CREATE = 1;
var FORM_TYPE_UPDATE = 2;
var FORM_TYPE_READ_ONLY = 3;
var FORM_TYPE_DISABLED = 4;
var FORM_TYPE_QUICK_CREATE = 5;
var FORM_TYPE_BULK_EDIT = 6;
var formType = Xrm.Page.ui.getFormType();
window.location.href = window.location.href;
window.location.reload();
window.top.opener.window.location.href = window.top.opener.window.location.href;
window.top.opener.window.location.reload();
Xrm.Page.ui.controls.forEach(function (control, index) {
control.setDisabled(true);
});
function My_PreventSaveFunction(eContext) {
eContext.getEventArgs().preventDefault();
}
id:obj.getValue()[0].id;
name:obj.getValue()[0].name;
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();
Xrm.Page.getControl("new_counter_type").clearOptions();
var options = Xrm.Page.getAttribute("new_counter_type").getOptions();
for (var i = 0; i < options.length; i++) {
if (options[i].value != 190 && options[i].value != 200 && options[i].value!="null" ) {
Xrm.Page.getControl("new_counter_type").addOption(options[i], i+1);
}
}
Xrm.Page.getControl("new_counter_type").addOption(Xrm.Page.getAttribute("new_counter_type").getOption(190),1);
var fullYear = Xrm.Page.getAttribute("yto_confirmdate").getValue().getFullYear();
var month = Xrm.Page.getAttribute("yto_confirmdate").getValue().getMonth()
+ 1;
var date = Xrm.Page.getAttribute("yto_confirmdate").getValue().getDate();
Xrm.Page.getAttribute("yto_confirmdate").getValue().getDate();
Xrm.Page.getAttribute("yto_confirmdate").setValue(new Date(fullYear,
month, date))//厂方确认交货日期+1月
Xrm.Page.data.entity.save();
var FetchXml = ''
+ ''
+ ' '
+ ' '
+ ' '
+ ''
+ ''
+ '+ Xrm.Page.getAttribute("new_businessunit").getValue()[0].id + '"/>'
+ '+ Xrm.Page.getAttribute("new_feeperiod").getValue()[0].id
+ '"/>';
var LayOutXml = '<grid name="resultset" object="10069" jump="new_name" select="1" icon="1" preview="1">‘
+’<row name="result" id="new_expensesdetailid">‘
+’<cell name="new_name" width="300"/>‘
+’<cell name="createdon" width="125" /></row></grid>';
var viewId = "{B9C6A1F4-0A03-424D-B843-E4D9281F8DEB}";
Xrm.Page.getControl("new_detailitem").addCustomView(viewId, "new_expensesdetail",
"根据部门和费用期间筛选", FetchXml, LayOutXml, true);//添加自定义视图
modifiedLookupParameter("new_detailitem", "DisableViewPicker", "1");
A.取fetchxml和viewxml:
高级查找-编辑列-F12-脚本dlg_editview.aspx
frameRender.FetchXml.value
frameRender.LayoutXml.value
B.addCustomView("可用系统视图GUID,以便覆盖","","","","",是否默认视图)
Library($webresource:web资源的名称)
=> Profile => 选择Exception设置 =>保存ErrorDetail.txt
=> Stop Profile
=> Debug,加载ErrorDetail.txt和DLL
=> VS附加PlugRegistration.exe到进程
=>Debug Start
throw new InvalidPluginExecutionException("异常信息");
Entity etnTarget = (Entity)Context.InputParameters["Target"];
Entity preImage = Context.PreEntityImages["preImage"];
int statuscode = (etnTarget.Attributes["statuscode"] as OptionSetValue).Value;
int prestatuscode = (preImage.Attributes["statuscode"] as OptionSetValue).Value;//镜像数据
new Money(decimal.Parse())
<SubArea Id="yto_yto_applytogoods_dqr" Title="待确认的要货申请" Icon="/_imgs/ico_16_customEntity.gif" Url="_root/homepage.aspx?etn=yto_applytogoods&viewid=%7b98B36DFB-4BA3-E211-8F62-00155D04D707%7d"></SubArea>
loadScriptAdv("脚本URL","任意ID",false);
loadScriptAdv(Xrm.Page.context.prependOrgName("/WebResources/fw_rest"),
"55EE635C-91BD-443F-A3E6-56ACEG4E574G", false);
getSelected("crmGrid")
【函数】打开模式窗口openStdDlg()
windos.open("http://172.16.4.215/yto/main.aspx?etc=1&id=%7ba7402069-e4db-e211-9396-90b11c1d4ddf%7d&pagetype=entityrecord","_blank");
异步plugin需要异步服务执行,这个启动时间会比较慢。POST后才会去启动这个操作。另外,异步作业有个特点,就是可还原操作。出错了,改完数据或修正plugin,可以将操作继续执行。
Xrm.Page.getAttribute(“yto_date”).setValue(new Date()),但是JS取客户机时间,建议在JS赋值的基础上再用PreValidate插件
Mscrm.Utilities.refreshCurrentGrid(entityTypeCode);
set @startDate=isnull(@startDate,'1900-01-01')
set @startDate=dbo.fn_LocalTimeToUTC(@startDate)
set @endDate=dbo.fn_LocalTimeToUTC(DATEADD(DD,1,@endDate))
SELECT @re=@re+','+yto_name FROM yto_order
select @new_businessunit= stuff((select ';'+convert(varchar(50),businessunitid)
from businessunit for xml path('')),1,1,'')
00000000-0000-0000-0000-000000000000
GlobalSection(CRMSolutionProperties) = preSolution
SolutionIsBoundToCRM = True
EndGlobalSection
(从“/Date***”到“Fri Nov 100:00:00 UTC+0800 2013”)
function dateReviver(value) {
var a;
if (typeof value === 'string') {
a = /Date\(([-+]?\d+)\)/.exec(value);
if (a) {
return new
Date(parseInt(value.replace("/Date(",
"").replace(")/", ""), 10));
}
}
return value;
};
Date()).format(“yyyy-MM-ddThh:mm:ss”);
日期赋值:
//是对的(显示:2013.1.2;date1:2013.1.1 16:00:00 date2:2013.1.1 16:00:00);
entity["date1"]=entity["date2"]
//是错的(显示:2013.1.2 date1:2013.1.1 8:00:00已错 date2:2013.1.1 16:00:00)
entity["date1"]=DateTime.Parse(entity["date2"].ToString())
entity["date1"] = DateTime.Now;
//结果是一样的!(2013.1.1 16:00:00)
entity["date1"]= DateTime.UtcNow;
取值:
(DB,Retrieve,Image,Entity上取的都是-8H的,只有页面显示已经+8H)所以JS中和CS中的比较一定要注意。
1.发现服务 | http://crmpc/XRMServices/2011/Discovery.svc (用来发现域下面有哪些组织) |
2.SOAP组织服务 | http://crmpc/yto/XRMServices/2011/Organization.svc(C#试用的标准的数据服务) |
3.OData组织服务 | http://crmpc/yto/XRMServices/2011/OrganizationData.svc(平时使用的rest脚本数据服务) |
获取实体:
EntityReference entity = context.InputParameters.Contains("EntityMoniker") ? context.InputParameters["EntityMoniker"] as EntityReference : null;
获取状态:
OptionSetValue state = context.InputParameters["State"] as OptionSetValue;
OptionSetValue status = context.InputParameters["Status"] as OptionSetValue;
修改状态:
SetStateRequest setState = new SetStateRequest();
setState.EntityMoniker = new EntityReference("task", task1.Id);
setState.State = new OptionSetValue(1);
setState.Status = new OptionSetValue(5);
testService.Execute(setState);
var obj = rest.get("new_shopSet(guid'" + new_original_shopid[0].id + "')?$select=new_ERP,new_account_shop,new_account_new_shop2/new_company_type&$expand=new_account_new_shop2")
var account = Xrm.Page.getAttribute("yto_account");
var rest=new fwREST();
var accountObj =
rest.get("AccountSet?$select=Address1_Name,TerritoryId&$filter=AccountId eq guid'" + account.getValue()[0].id + "'");
if (accountObj.error != undefined) {
alert("yto_applytogoods|JS|onchangeAccount|获取客户地址区域失败:" + accountObj.error.message.value);
return;
} else {
if (accountObj.length > 0) {
Xrm.Page.getAttribute("yto_dealeraddress")
.setValue(accountObj[0].Address1_Name);
}
}
主键:
obj[0].名称
Lookup:obj[0].Id;obj[0].LogicalName;obj[0].Name;
判断:obj[0].Id!=null
Optionset:obj[0].名称.Value;
JS创建业务部门
var rest = new fwREST();
var newBusinessUnit = new Object();
newBusinessUnit.Name = "testBusinessUnit";
newBusinessUnit.ParentBusinessUnitId = new Object();
newBusinessUnit.ParentBusinessUnitId.LogicalName = "businessunit";
newBusinessUnit.ParentBusinessUnitId.Id = "{F3A5B2E9-C150-E211-AD82-50465D6B1E0D}";//根部门GPX
var createBusinessJson=JSON.stringify(newBusinessUnit);
var createBusinessResult = rest.create("BusinessUnit", createBusinessJson);
if (createBusinessResult.error != undefined) {
alert("Account|JS|createSystemAccount|创建失败:" + createBusinessResult.error.message.value);
return;
} else {
var newBusinessUnitId = createBusinessResult.BusinessUnitId;
alert(newBusinessUnitId);
}
JS更新客户
var rest = new fwREST();
var newAccount = new Object();
newAccount.new_account_status = new Object();
newAccount.new_account_status.Value = 100000000;
var content=new Object();
content.Id="";
content.LogicalName="";
//content.Name="";
newAccount.content=content;
newAccount.new_isconfirm = true;//单选类型
rest.update("Account", id, JSON.stringify(newAccount), function (res)
{
if (res.error != undefined) {
alert("Account|JS|createSystemAccount|更新失败:" + res.error.message.value);
return;
}
});
//根据客户ID获取客户类型
private int GetAccounttypeById(Guid accountId, IOrganizationService service)
{
int yto_accounttype = 0;
string fetchxml = ""
+ ""
+ " "
+ " ";
EntityCollection entityCollection = service.RetrieveMultiple(new
FetchExpression(fetchxml));
foreach (var entity in entityCollection.Entities)
{
if (entity.Contains("yto_accounttype"))
{
yto_accounttype = (entity["yto_accounttype"] as OptionSetValue).Value;
}
}
return yto_accounttype;
}
fetchXML查询的分组和统计
<fetch distinct='false' mapping='logical' aggregate='true'>
<attribute name='new_amount' alias='new_amount_sum' aggregate='sum' />
<attribute name='new_bugetid' groupby='true' alias='new_bugetid_all' />
取值
(((AliasedValue)item["new_bugetid_all"]).Value as EntityReference)
var lookupViewArgs = {
items: null,
customViews: [{
id: "{F86239AE-C483-E211-B9C3-00155D332305}", //自定义视图ID(随意取)
recordType: 2, //实体类型
name: "TEST", //自定义视图名称
fetchXml: ''
+ ' '
+ ' '
+ ''
+ ''
+ ' '
+ '',
layoutXml: ' | |
',
Type: 0
}],
availableViews: null
};
var url = "http://crm2011s/Demo/_controls/lookup/lookupinfo.aspx?AllowFilterOff=1&DefaultType=2&DefaultViewId=%7bF86239AE-C483-E211-B9C3-00155D332305%7d&DisableQuickFind=0&DisableViewPicker=0&LookupStyle=single&ShowNewButton=1&ShowPropButton=1&browse=false&objecttypes=2";
openStdDlg(url, lookupViewArgs, 800, 500);
using Microsoft.Xrm.Client;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk.Messages;
CrmConnection connection = CrmConnection.Parse("Url=http://192.168.2.174/Liby;Username=administrator;Password=Pa$$w0rd;Domain=LIBYCRM;");
CrmOrganizationServiceContext service = new CrmOrganizationServiceContext(connection);
Entity fw_wf_user_task = new Entity("fw_wf_user_task");
fw_wf_user_task.Id = entityCollection.Entities[0].Id;
fw_wf_user_task["fw_action"] = new OptionSetValue(300000001);
//fw_wf_user_task["fw_workflow_directionid"] = new EntityReference("fw_workflow_directing", new Guid("9E9E5C2C-659A-E211-8F62-00155D04D707"));
CrmUtil.OrgServiceContext.Update(fw_wf_user_task);
手动执行审批流JS:
var usertask = new Object();
usertask.fw_action = new Object();
usertask.fw_action.Value = 300000001;
var direction = new Object();
direction.Id = "9E9E5C2C-659A-E211-8F62-00155D04D707";
direction.LogicalName = "fw_workflow_directing";
usertask.fw_workflow_directionid = direction;
rest.update("fw_wf_user_task", tasks[0].fw_wf_user_taskId, JSON.stringify(usertask), function (res) {
if (res.error != undefined) {
msg += "单据[" + objs[0].yto_name + "]审批失败:" + res.error.message.value + "\n";
} else {
msg += "单据[" + objs[0].yto_name + "]审批成功" + "/n";
}
});
///
/// 获取最顶级插件上下文对象
///
/// 当前插件上下文对象
/// 返回最顶级插件上下文对象
public IPluginExecutionContext GetTopContext(IPluginExecutionContext currentContext)
{
IPluginExecutionContext topContext = currentContext;
for (int i = 0; i <= currentContext.Depth; i++)
{
if (topContext.ParentContext!=null)
{
topContext = topContext.ParentContext;
}
}
return topContext;
}
验证前:数据补充和验证
操作前:核心操作前对其他数据进行变更、创建、删除(失败可回滚)
操作后:验证数据执行情况,执行核心操作后的后继工作
navigator.platform
navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)
function dateDiff(interval, date1, date2)
{
var objInterval = {'D' : 1000 * 60 * 60 * 24, 'H' : 1000 * 60 * 60, 'M' : 1000 * 60, 'S' : 1000, 'T' : 1};
interval = interval.toUpperCase();
var dt1 = Date.parse(date1.replace(/-/g, '/'));
var dt2 = Date.parse(date2.replace(/-/g, '/'));
try
{
return Math.round((dt2 - dt1) / eval('(objInterval.' + interval + ')'));
}
catch (e)
{
return e.message;
}
}
说明:interval 取值: d (day), m(minutes), s(second), t(毫秒),不分区大小写
日期格式: yyyy (/-) (m)m (/-) (d)d
//刷新MS CRM表单中未自动加载的SubGrid
var refreshSubGridId;
function loadSubGrids(milliSeconds) {
if (!milliSeconds) milliSeconds = 1000;
refreshSubGridId = setInterval(refreshSubGrids, milliSeconds);
}
function refreshSubGrids() {
var blnSuccess = false;
try {
var subgrids = Xrm.Page.ui.controls.get(function (control, index) { return control.getControlType() == "subgrid"; });
if (subgrids.length > 4) for (var i = 4; i < subgrids.length; i++) subgrids[i].refresh();
blnSuccess = true;
} catch (e) { }
if (blnSuccess) clearInterval(refreshSubGridId);
}
function disableSubGrid(subGridName) {
try {
var subGrid = document.getElementById(subGridName + "_span");
if (subGrid) subGrid.disabled = true;
} catch (e) { }
}
CrmConnection connection = CrmConnection.Parse(CRMConnectionPath);
using (CrmOrganizationServiceContext orgservice = new CrmOrganizationServiceContext(connection))
{
AutoShut(orgservice);
}
DS1:
select new_promotionid from filterednew_promotion as crmaf_filterednew_promotion
DS2:
select new_name from filterednew_promotion where new_promotionid=@proid
对DS2生成的参数@proid-属性-默认值-DS1
让报表取到当前用户ID:
SELECT [dbo].[fn_FindUserGuid]()
select systemuserid,fullname from FilteredSystemUser where systemuserid = dbo.fn_FindUserGuid()
让报表取到当前用户ID:
select businessunitid,name from businessunit where businessunitid = dbo.fn_FindBusinessGuid()
ExecuteWorkflowRequest request = new ExecuteWorkflowRequest()
{
WorkflowId = new Guid("C4745DA5-CA92-4E37-9A63-0F3BC73ECB06"),
EntityId = new Guid("C68B84F8-D397-E311-93FD-002481E8832E")
};
ExecuteWorkflowResponse response = (ExecuteWorkflowResponse)testService.OrganizationService.Execute(request);
EntityReferenceCollection coll=new EntityReferenceCollection();
coll.Add(new EntityReference("systemuser",new Guid("1DCCAD1E-9F67-E311-93EF-002481E88330")));
testService.Associate("team", new Guid("99C72A6E-EA71-E311-93FD-002481E8832E"), new Relationship("teammembership_association"), coll);
已存在关系,会报错。
1.getAuthenticationHeader 获取认证表头
已弃用。 Returns the encoded SOAP header necessary to use Microsoft Dynamics CRM 4.0 web service calls using Microsoft JScript. 已弃用。需要使用Microsoft JScript中使用的Microsoft Dynamics CRM 4.0中的Web服务调用返回编码的SOAP头。
2.getCurrentTheme 获取当前主题。
Returns the current user’s Outlook theme 返回当前用户outlook的主题。
3.getOrgLcid 获取组织语言id。
Returns the LCID value for the base language of the organization 返回的基本语言的组织的LCID的值。
4.getOrgUniqueName 获取组织唯一的名称。
Returns the unique organizations name 返回唯一的组织名称
5.getQueryStringParameters 获取查询字符串参数。
Returns an array of key-value pairs representing the query strings 返回一个数组的表示查询字符串的键值对。
6.getServerUrl 获取服务器url地址。
Returns the base server URL 返回基本服务器url地址。
7.getUserId 获取当前的用户ID。
Returns the current user’s SystemUser id 返货当前用户的系统用户的id。
8.getUserLcid 获取用户语言id。 注意LCID 解释:http://baike.baidu.com/view/1203977.htm
Returns the LCID value representing the user’s preferred language 返回表示用户首选语言的LCID值。
9.getUserRoles 获取用户角色。
Returns an array of GUID values of the security roles the user is associated with 返回与用户的安全角色关联的GUID值的一个数组。
10.isOutlookClient 是outlook客户端。
Returns a Boolean value indicating if the user is using Outlook 说明返回一个布尔值,如果用户使用的是Outlook。
11.isOutlookOnline 是outlook在线
Returns a Boolean value indicating if the user is connected to the server while using MSCRM for Outlook with Offline Access.
返回一个布尔值,表示如果用户连接到服务器,而使用MSCRM为Outlook中使用离线访问。
12.prependOrgName 前置组织名称。
Prepends the organization name to the specified pathclient 组织名称预先考虑到指定的路径客户端。
Method(方法) Applicable(可适用) Description(描述)
addOnChange(添加OnChange) All(所有) Sets a function to be called when the value is changed 设置值被改变时被调用的函数
fireOnChange(解除OnChange) All(所有) Causes the OnChange even t to occur on the attribute 引起OnChange事件发生的属性
getAttributeType(获取属性的类型) All(所有) Returns the type of attribute (string) 返回属性(字符串)的类型
contentIFrame.Xrm.Page.data.entity.attributes.get(“name”).getAttributeType() 相当于 contentIFrame.Xrm.Page.getAttribute(“name”).getAttributeType();
相当于contentIFrame.Xrm.Page.getControl(“name”).getAttribute(“name”).getAttributeType();
注意:在IE浏览器上调试的时候,必需加contentIFrame.
getFormat(获取格式) All(所有) Returns formatting options for the attribute (string) 返回的格式选项集的属性(字符串)
getInitialValue(获取初始值) boolean(布尔), optionset(选项集) Returns the initial value for Boolean or optionset attributes返回布尔或选项集属性的初始值
getIsDirty(获取是否变化) All(所有) Returns a Boolean value indicating if there are unsaved changes to the attribute value 如果有未保存的更改的属性值,则说明返回一个布尔值。
getMax(获取最大值) money(货币), decimal(十进制), integer(整型), double(双进度型) Returns the maximum allowed value for an attribute (number) 返回属性(数字)的最大允许值。
getMaxLength(获取最大长度) string(字符串), memo(备忘录) Returns the maximum length of an attribute (number) 返回属性(数字)的最大允许值的长度。
getMin(获取最大值) money(货币), decimal(十进制), integer(整型), double(双进度型) Returns the minimumallowed value for an attribute (number) 返回属性(数字)的最小允许值。
getName(获取名称) All(所有) Returns the logical name of the attribute 返回属性的逻辑名称
getOption(获取选项) optionset(选项集) Returns an option object by matching its name 返回他的名称相匹配的一个选项对象
getOptions(获取选项集) optionset(选项集) Returns an array of options for an optionset attribute 返回一个选项集属性的选项集的一个数组
getParent(获取父对象) All(所有) Returns the parent object to the attribute 返回属性的父对象
getPrecision(获取精度) money(货币), decimal(十进制), integer(整型), double(双进度型) Returns the number of digits allowed after the decimal point 返回允许小数点后的数字的位数。
getRequiredLevel(获取所需级别) All(所有) Returns a string indicating whether the attribute is required or recommended 返回一个字符串,指示属性是必需或推荐
getSelectedOption(获取选择项集) optionset(选项集) Returns the option selected in an optionset attribute.返回一个选项集属性的所选择的选项。
getSubmitMode(获取提交模式) All(所有) Returns a string indicating if the attribute will be submitted when the record is saved 当记录保存的时候,如果这个属性将会被提交,返回一个字符串提示。
getText(获取文本) optionset(选项集) Returns the selected option for an optionset attribute 返回所选的选项为一个选项集的属性
getUserPrivilege(获取用户权限) All(所有) Returns an array of Boolean values indicating if the user can create/read/update an attribute’s values 返回一个布尔值数组,表示如果用户可以创建/读取/更新属性的值。
getValue(获取值) All(所有)Retrieves the data value for an attribute 检索一个属性的数据的值
removeOnChange(移除OnChange) All(所有) Removes a function from the OnChange event handler 移除来自onChange事件处理的一个函数。
setRequiredLevel(设置必需级别) All(所有)Sets whether the attribute is required or recommended 设置是否这个属性是必需还是推荐。
setSubmitMode(设置提交模式) All(所有) Sets whether the attribute’s data will be submitted 设置是否这个属性的数据将会被提交。
setValue(设置值) All(所有) Sets the data value for an attribute. 为一个属性设置数据值。
Shortcut(快捷) | Equivalent (等价于) |
Xrm.Page.getAttribute | Xrm.Page.data.entity.attributes.get |
Xrm.Page.getControl | Xrm.Page.ui.controls.get |
GetGlobalContext (Web Resources) | Xrm.Page.context (within forms) |
比如:
获取字段名为name的值
contentIFrame.Xrm.Page.getAttribute(“name”).getValue() 相当于
contentIFrame.Xrm.Page.data.entity.attributes.get(“name”).getValue()
contentIFrame.Xrm.Page.getControl(“name”).getAttribute(“name”).getValue();相当于
contentIFrame.Xrm.Page.ui.controls.get(“name”).getAttribute(“name”).getValue();
获取lookup字段值: | contentIFrame.window.Xrm.Page.getAttribute(“new_costfrom”).getValue()[0].id |
获取当前登录用户: | Xrm.Page.context.getUserId() |
获得当前页面类型: | Xrm.Page.ui.getFormType() |
获得当前实体名称: | contentIFrame.Xrm.Page.data.entity.getEntityName() |
刷新Ribbon工具条: | Xrm.Page.ui.refreshRibbon(); |
给lookup字段赋值: | var tmp=[{ id: PaymentInfo.new_distributor.Id, |
name: | PaymentInfo.new_distributor.Name, |
typename: | PaymentInfo.new_distributor.LogicalName}]; |
Xrm.Page.getControl(“new_budget”).getAttribute().setValue(tmp);
js查询方法
function Form_CheckSoluInfo() {
if(Xrm.Page.data.entity.getEntityName() == 'new_po_exp_detail')
{
return true;
}
var rest = new fwREST();
var soluInfo = rest.get("New_promotion_peSet(guid'" + Xrm.Page.getAttribute("new_pe_exp_detail").getValue()[0].id +
"')?$select=New_approvestate,New_f_type,new_current_approver");
var value = getEnabledValueForCheckSoluInfo(soluInfo.New_approvestate.Value, soluInfo.New_f_type.Value, "{" + soluInfo.new_current_approver.Id + "}");
return value;
}
[Dynamics CRM 2016] 基础操作