本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复264或者20170924可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me 。

SDK中有个章节 Set field values using parameters passed to a form ,可以通过URL打开新建记录的窗体,并给相关的字段赋值,但是将其中两种特殊的查找字段,分别是参与方列表查找字段(partylist lookup,该种类型的查找字段允许引用到多个实体的多条记录) 和 关于类型查找字段(regarding lookup,该种类型查找字段允许引用多个实体的一条记录) 列为特殊,不能直接通过URL参数对齐进行赋值。在项目中若有此类需求怎么办?Follow Me!

场景:打开一条记录(我这里以打开一条罗勇测试记录为例),点击命令栏的一个按钮(我这里以点击提交按钮为例),打开新窗口,新窗口是一个任务的新记录,将任务的关于字段设置为打开的那条记录。

尊重知识产权,本文的方法并非我首创,是正规方法,来自帖子 Passing regardingobjectidtype to Xrm.Utility.openEntityForm 中CRM Nerd 提供的答案。

我这里简单解说下思路:

  • 就是将设置查找字段需要的值通过URL中的参数传递给打开的表单
  • 设置目标实体的表单需要允许接收这些传递过来的参数
  • 在表单的OnLoad事件中撰写代码,获取参数的值,并将其赋值给关于类型查找字段(当然参与方列表查找字段也可以)即可。

下面是具体做法。罗勇测试实体表单上的提交按钮执行的按钮如下:

    var parms = {};
parms["parm_regardingid"] = Xrm.Page.data.entity.getId();
parms["parm_regardingname"] = Xrm.Page.data.entity.getPrimaryAttributeValue();
parms["parm_regardingtype"] = Xrm.Page.data.entity.getEntityName();
Xrm.Utility.openEntityForm("task", null, parms, { openInNewWindow: true });

如果这时候点击按钮打开新窗口,你会发现错误如下:

这是因为你的窗体没有允许接收这些非字段相关的参数,所以我们要打开实体(这里是任务实体)的主要窗体,点击【窗体属性】,打开【参数】页签,增加三个参数如下图:

这三个参数的名字与前面代码中的参数名字有关,第一个Guid类型的参数我使用UniqueId作为其类型,其余两个使用SafeString作为类型,将实体保存并发布,你会发现前面的提交代码打开新建任务记录窗口不会报错了。下面是万里长征的最后一步了。

为任务实体主窗体的OnLoad事件注册执行如下的代码:

function TaskOnLoadHandler() {
if (Xrm.Page.ui.getFormType() == 1) {//只有新建记录才执行如下逻辑
var parms = Xrm.Page.context.getQueryStringParameters();
var regardingId = parms["parm_regardingid"];
var regardingName = parms["parm_regardingname"];
var regardingType = parms["parm_regardingtype"];
if (regardingId != undefined) {
Xrm.Page.getAttribute("regardingobjectid").setValue([{ id: regardingId, name: regardingName, entityType: regardingType }]);
}
}
}

现在可以看到效果了,打开新建任务窗体后,关于字段已经赋值为正确的值了:

openEntityForm如何给关于(regardingobjectid)类型查找字段赋值?的更多相关文章

  1. openEntityForm时候如何给关于(regardingobjectid)类型查找字段赋值?

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复264或者20170924可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  2. Dynamics 365中使用Web API将查找字段的值设置为空值的方法。

    摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复270或者20180424可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...

  3. Dynamics CRM2016 Web API之删除单个查找字段值

    之前的博文中有介绍过,Web Api中的一个删除单个属性的Api但没提供查找字段的删除方法,本篇补充上,这里给出的示例代码是C#的(主要看url的拼接),看下url中最后的/$ref,这个标示表明了当 ...

  4. oracle--导出、导入blob类型的字段

    blob是oracle中的一个数据类型,保存的是压缩后的二进制形式的大数据. 数据迁移如果涉及到blob字段,都不好处理,因为无法用常规方法进行操作,如:使用select查看该字段,也无法用inser ...

  5. C# 禁止修改已装箱了的值类型的字段值,但是可以通过接口的方式实现

    C# 默认是不能修改已装箱了的值类型中字段的值,但是可以通过 值类型实现指定的接口来改变 首先定义一个接口 interface IChange { void Change(int a, int b); ...

  6. 答:SQLServer DBA 三十问之一: char、varchar、nvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法,哪个效率高;使用存储 过程和使用T-SQL查询数据有啥不一样;

    http://www.cnblogs.com/fygh/archive/2011/10/18/2216166.html 1. char.varchar.nvarchar之间的区别(包括用途和空间占用) ...

  7. SQL查询数据库中所有指定类型的字段名称和所在的表名

    --查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 SELECT cols.object_id , co ...

  8. crm2011创建货币Money类型的字段

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Xrm.Sdk.Messages;     using Microsoft ...

  9. 类型查找器 ITypeFinder

    NopCommerce为了支持插件功能,以及支持一些自动注册的功能.系统提供了类型查找器.ITypeFinder以及实现类就是提供此功能.通过类型查找器可以查找本程序域中的类,也可以查找整个bin目录 ...

随机推荐

  1. Enum扩展特性,代替中文属性

    由于对英语的天生缺陷,在枚举时一直使用中文,这样就不用看注释就知道枚举意思,今天看到博文 https://www.cnblogs.com/emrys5/p/Enum-rename-htmlhelper ...

  2. Linux编程 22 shell编程(输出和输入重定向,管道,数学运算命令,退出脚本状态码)

    1. 输出重定向 最基本的重定向是将命令的输出发送到一个文件中.在bash shell中用大于号(>) ,格式如下:command > inputfile.例如:将date命令的输出内容, ...

  3. w7 python35 输出中文乱码解决

    1.乱码纷争在python自带的控制台正常 但是cmd就跪了,用的vs code也是同样问题,不想以前学习python27那么单纯,前面加个#UTF就可以了 网上寻求解决办法 import io,sy ...

  4. Android布局:宽度适应的横向跟随,防止挤掉重要视图

    不知道这样的布局该怎么描述,标题也是乱取的..直接上图吧 最近遇到了这样要求的布局: 1.上图中的“标题”长度不定,“状态”标签可能有多个并紧跟在标题右边,“属性”一直居右显示: 2.当“标题”过长, ...

  5. 2019年2月备战春招最新大数据+Java岗位+人工智能岗位资料免费送【限时领取】

    不多说,直接上干货! 欢迎大家,关注微信扫码并加入我的3个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑        每天都有大量的学习视频资料和精彩 ...

  6. python练习七—P2P下载

    最近有些事儿比较忙,python的学习就断断续续,这个练习来得比预期的晚,不过还好,不管做什么,我都希望能认真对待,认真做好每一件事. 引入 这个练习原书中称作“使用XML-RPC进行文件共享”,题目 ...

  7. Python 实现 KNN(K-近邻)算法

    一.概述 KNN(K-最近邻)算法是相对比较简单的机器学习算法之一,它主要用于对事物进行分类.用比较官方的话来说就是:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例, ...

  8. 你真的懂redis的数据结构了吗?redis内部数据结构和外部数据结构揭秘

    Redis有哪些数据结构? 字符串String.字典Hash.列表List.集合Set.有序集合SortedSet. 很多人面试时都遇到过这种场景吧? 其实除了上面的几种常见数据结构,还需要加上数据结 ...

  9. Perl文件名通配和文件查找

    在shell中使用*来对文件名进行通配扩展,在Perl中也同样支持文件名通配.而且perl中的glob通配方式和shell的通配方式完全一致,实际上perl的glob函数就是直接调用csh来通配的(如 ...

  10. tomcat编译项目后,classes文件没有相应的改变;

    tomcat编译项目后,classes文件没有相应的改变: tomcat不能将项目部署到服务器: 1.首先,在tomcat安装目录webapps中将编译后的整个项目删掉,然后再在eclipse将tom ...