Lookup字段值的构建

标准方式

1
2
3
4
5
6
7
var lookup = {};
lookup.id = "8a756b6b-5434-422f-b97f-55783f10e540";
lookup.entityType = "systemuser";
lookup.name = "张三";
var lookupValue = new Array();
lookupValue[0] = lookup;
Xrm.Page.getAttribute("primarycontactid").setValue(lookupValue);

通过buildLookup来简化

1
2
3
var lookupValue = rtcrm.buildLookup("8a756b6b-5434-422f-b97f-55783f10e540",
"张三", "systemuser");
Xrm.Page.getAttribute("primarycontactid").setValue(lookupValue);

使用buildLookup填充当前用户

获取系统用户的ID

Xrm.Page.context.getUserId()

直接用需要替换掉大括号

Xrm.Page.context.getUserId().replace(“{“, “”).replace(“}”, “”)

获取用户的全名

rtcrm.getUserFullName()

1
2
var lookupValue = rtcrm.buildLookup(Xrm.Page.context.getUserId().replace("{", "").replace("}", ""),rtcrm.getUserFullName(), "systemuser");
rtcrm("#new_confirmuser").val(lookupValue);

获取字段的值或设置字段的值

标准写法

Xrm.Page.getAttribute(“field”).setValue(1);

rtcrm写法

rtcrm(“#new_type”).val(1) ;

1
2
3
4
5
6
7
//获取字段的值
var new_accountType = rtcrm("#new_accounttype").val();
//设置字段的值,val的赋值方式同CRM标准的setValue
rtcrm("#new_contractcode").val("10000"); //文本
rtcrm("new_is_important").val(true); //bool
rtcrm("#new_accounttype").val(1); //picklist
rtcrm("#new_account_id").val([{ id: "xxx-xx-xx-xxx", name: "crmtest",entityType:"systemuser"}]);

Lookup类型的数据设值需要用固定格式

[{ id: “xxx-xx-xx-xxx”, name: “crmtest”,entityType:”systemuser”}]

  • id:对应实体的id值
  • name:对应显示值,一般为对应实体的new_name字段的值
  • entityType:对应的实体名,例如系统用户为systemuser