实现方式参考官方文档提供的Xrm.Page.getControl(arg).addCustomView(viewId, entityName, viewDisplayName, fetchXml, layoutXml, isDefault)
参数的解释:
viewId:具体的视图id 可通过视图编辑器窗体上方的网址中复制
entityName:实体名
viewDisplayName:视图名称,可自己编写一个名称
fetchXml:过滤查询用的具体fetchXml语句,类似于编写sql,可以通过在线sql转fetchxml工具转换( http://www.sql2fetchxml.com/
layoutXml:定义视图布局的 XML,格式比较固定,以一个比较简单的为例:
layoutXml = '<grid name="resultset" object="10057" jump="foton_sequenceno" select="1" icon="1" preview="1"><row name="result" id="foton_receiptid"><cell name="foton_sequenceno" width="150" /><cell name="createdon" width="150" /></row></grid>';
注意:xml的连接符号如:'<''>'不要有空格
<grid>中name可固定为resultset,也可以定义成实体名
object为对应实体的ObjectTypeCode,数据库查询或者实体浏览器中查看
select用0或1都可以 0和1对应是否可以在视图中进行查询
icon和preview固定1
<row>中的name固定result即可,id为对应的实体主键
<cell>为具体要显示的列配置,name为字段名,width为显示的宽度
isDefault:视图是否应该是默认视图 默认设置为true即可
 
项目中的使用示例:
1.给字段添加onchange事件
 1 /**
2 * 选择产品代码后,根据产品资源与包装方式的关系过滤包装方式可选择的数据,添加自定义过滤视图
3 * @param {any} productFourthId 产品代码数据id
4 */
5 function addPostingLookupFilterCustomView(productFourthId) {
6 if (productFourthId == null) {
7 return
8 }
9 let fetchXml = '<fetch version="1.0" mapping="logical"><entity name="new_way_of_packaging"><attribute name="new_way_of_packagingid" /><attribute name="new_name" /><attribute name="new_cost" /><attribute name="createdon" /><link-entity name="new_product_packaging_relationship" from="new_way_of_packagingid" to="new_way_of_packagingid" alias="ship" link-type="inner"><filter type="and"><condition attribute="new_product_fourthid" operator="eq" value="' + commonUtil.delBrackets(productFourthId) + '" /></filter></link-entity></entity></fetch>';
10 let layoutXml = '<grid name="" object="10047" jump="new_name" select="1" icon="1" preview="0"><row name="new_way_of_packaging" id="new_way_of_packagingid"><cell name="new_name" width="300" /><cell name="new_cost" width="200" /><cell name="createdon" width="150" /></row></grid>';
11 Xrm.Page.getControl("new_way_of_packaging").addCustomView("{DB40ABE7-FB8D-4E41-ACF8-7569ECEAB149}", "new_way_of_packaging", "包装方式过滤产品资源查询", fetchXml, layoutXml, true);
12 }
2.在页面加载时做判断显示视图 结合查找字段addPreSearch的方法
 1 //窗体onload函数汇总调用方法
2
3 /**
4 *过滤源、目标经销商来款可选视图
5 * @param {any} type 1转出账户 2转入账户
6 */
7 function preAccountToParagraphFilterLookup(type) {
8 if (!type) {
9 return
10 }
11 if (type == 1) {
12 Xrm.Page.getControl("new_lkaccount").addPreSearch(function () {
13 addPostingLookupFilterCustomView(type)
14 })
15 } else {
16 Xrm.Page.getControl("new_targetlkaccount").addPreSearch(function () {
17 addPostingLookupFilterCustomView(type)
18 })
19 }
20 }
21 /**
22 * 添加过滤源、目标经销商来款可选择的自定义视图
23 * @param {any} type 1转出账户 2转入账户
24 */
25 function addPostingLookupFilterCustomView(type) {
27 var fetchXml = '';
28 let amountId = null
29 if (type == 1) {
30 amountId = Xrm.Page.getAttribute("new_amountid_from").getValue()
31 amountId = amountId ? amountId[0].id : null
32 if (amountId == null) {
33 return
34 }
35 } else {
36 amountId = Xrm.Page.getAttribute("new_amountid_to").getValue()
37 amountId = amountId ? amountId[0].id : null
38 if (amountId == null) {
39 return
40 }
41 }
42 fetchXml = '<fetch version="1.0" mapping="logical"><entity name="new_lkaccount"><attribute name="new_lkaccountid" /><attribute name="new_name" /><attribute name="createdon" /><filter type="and"><condition attribute="new_approvalstatus" operator="eq" value="40" /><filter type="or"><condition attribute="new_amountid_capital" operator="eq" value="' + commonUtil.delBrackets(amountId) + '" /><condition attribute="new_amountid_parts" operator="eq" value="' + commonUtil.delBrackets(amountId) + '" /></filter></filter></entity></fetch>';
43 var layoutXml = '<grid name="" object="10174" jump="new_name" select="1" icon="1" preview="0"><row name="new_lkaccount" id="new_lkaccountid"><cell name="new_name" width="300" /><cell name="createdon" width="150" /></row></grid>';
44
45 if (type == 1) {
46 Xrm.Page.getControl("new_lkaccount").addCustomView("{4F08B504-491C-473F-B215-FF99894870D9}", "new_lkaccount", "经销商来款过滤资金账户查询", fetchXml, layoutXml, true);
47 } else {
48 Xrm.Page.getControl("new_targetlkaccount").addCustomView("{4F08B504-491C-473F-B215-FF99894870D9}", "new_lkaccount", "经销商来款过滤资金账户查询", fetchXml, layoutXml, true);
49 }
50 }
 

Dynaimc CRM查找字段自定义过滤视图的更多相关文章

  1. Dynamics CRM 查找字段下拉的最多10个选项的排序规则

    原文链接来自DTCCh论坛http://dynamics.ms-talent.com.cn/bbs/content/?id=1406&catogory=CRM 如果你是从事dynamics c ...

  2. Office365学习笔记—Xslt自定义列表视图

    1,在Office365中需要添加自定义的视图!用Spd添加视图,这儿我添加一个testView! (1)打开testView.aspx将</ZoneTemplate>节点中的内容全部删除 ...

  3. 查找字段的筛选-使用addCustomView

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

  4. MS CRM 2011的自定义和开发(11)——插件(plugin)开发(二)

    http://www.cnblogs.com/StoneGarden/archive/2012/02/06/2339490.html MS CRM 2011的自定义和开发(11)——插件(plugin ...

  5. 自定义View视图

    自定义View视图文件查找逻辑 之前MVC5和之前的版本中,我们要想对View文件的路径进行控制的话,则必须要对IViewEngine接口的FindPartialView或FindView方法进行重写 ...

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

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

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

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

  8. Dynamics CRM2016 Web Api之查询查找字段的相关属性

    之前有篇博文介绍了如何获取查找字段的name值(跳转),本篇在此基础上再延伸下,实现的效果类似于EntityReference,可以取到查找字段的id,name,localname. 这里我以客户实体 ...

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

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

  10. List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac

    List多个字段标识过滤 class Program{  public static void Main(string[] args) { List<T> list = new List& ...

随机推荐

  1. NDT算法(深蓝学院)

  2. SLAM中的各种地图

    1.地图的不同分类方式 地图有多种不同的分类方式,网上有不少帖子介绍各种各样的地图,但并没有非常完整的总结地图应该怎么分类.论文[1]中将地图分成以下几种:拓扑地图.度量地图.度量-语义地图和混合地图 ...

  3. 初识GO语言--高级数据类型

  4. Zipkin+Sleuth调用链监控集成和使用

    背景与需求 跨微服务的API调用发生异常,要求快速定位出问题出在哪里. 跨微服务的API调用发生性能瓶颈,要求迅速定位出性能瓶颈. 集成 整体结构 整体机构为C/S模式,客户端(Sleuth)来监控采 ...

  5. 2022年3月(202203)小米路由R3G(3G)刷openwrt和padavan的总结

    本篇文章是本人这2天刷小米路由R3G的记录,中间可能有很多错误,欢迎留言指出. 1.千万别断电 2.刷机的时候要多等待 小米路由很多型号有着很强的可玩性,128M以上的ROM,256M以上的内存,R3 ...

  6. Wgpu图文详解(03)缓冲区Buffer

    在上一篇文章中,我们介绍了Wgpu中的渲染管线与着色器的概念以及基本用法.相信读者还记得,我们在渲染一个三角形的时候,使用了三角形的三个顶点的索引作为了顶点着色器的输入,并根据索引值计算了三个几何顶点 ...

  7. 多校A层冲刺NOIP2024模拟赛09

    多校A层冲刺NOIP2024模拟赛09 考试唐完了,T2.T4 都挂了 100 分,人麻了. 排列最小生成树 给定一个 \(1, 2,\dots , n\) 的排列 \(p_1, p_2,\dots, ...

  8. vim 编辑 运行 shell 文件

    Vi/Vim 是所有 Unix/Linux 操作系统默认配备的编辑器.因其强大的功能和高效的操作,Vi/Vim 也成为众多 Unix/Linux 用户.管理员必须掌握并熟练使用的编辑工具之一.尤其是在 ...

  9. Git之配置多SSH-KEY

    现存账号类型: gitee账号,国产github,码云值得拥有 github账号,全球最大同性交友网站 gitlab账号,公司内部的工作开发 解决方案 解决办法很简单,新建一个config文件就可以了 ...

  10. Clickhouse之数据删除方式

    什么是TTL? TTL的意思是Time To Live表示数据的存活时间.由于数据的价值会根据保存的时间成反比,出于存储成本的考虑通常只会保留近一年的数据.而在MergeTree (合并树)引擎中,可 ...