Dynamics CRM记录页面上隐藏子网格“+”标识
前段时间微软发布了Dynamics 365,这是Dynamics产品的又一次大的变动,期待新的版本能够更好的满足客户的需求,同时提供更多的可定制化的内容。
近期做Dynamics CRM项目遇到很多审批的业务,用户A提交审批给用户B,这时如果审批记录没有做分派即审批记录的负责人没有发生改变,通常情况下都会把审批记录对申请人不可编辑。
常见的做法是:依据记录的审批状态,在记录页面加载时使用JS方法,遍历停用页面上的所有控件。
但会遇到一个问题,子网格是无法停用的,子网格右上角的”+”仍然可以点击,仍然可以在子网格中直接删除关联记录,该如何处理呢?
我接触到处理方法:
1、 在页面加载完成后,使用JS方法隐藏”+”对应的div。(这不是官方支持的方法,而且如果系统升级,随时可能失效)。
2、 对子网格实体添加插件,当用户编辑子网格数据的时候,通过插件去做检验,抛异常告诉用户该子网格不可编辑。(这种方式用户体验度不是很好,并且增加了开发人员的工作量)。
下边我以报销申请为例介绍一种官方支持的方式:
实现思路:
为 ”+” 按钮添加JS可用规则,当审批条件不是草稿时不显示。
首先,我们先看下申请页面处理后的效果,图中 报销申请:案例 = 1:N


具体的操作:
1、 在报销页面上添加“审批状态”字段。
2、 使用Ribbon Workbench 为 案例 实体的新建、删除、编辑等按钮添加可用规则。

配置好脚本及脚本方法HideSunGridBtn.subGridBtnEnRule

为各按钮添加可用规则


最后,发布解决方案。
JS代码:
var FORM_TYPE_CREATE = 1;
var FORM_TYPE_UPDATE = 2;
var HideSunGridBtn = (function () {
return {
//页面的onload方法
onload: function () {
//审批状态
var statusValue = Xrm.Page.getAttribute("new_status").getValue();
//不是草稿状态时停用所有控件
if (statusValue != 1) {
HideSunGridBtn.DisableFormFields();
}
},
//停用子网格上的“+”和删除功能
subGridBtnEnRule: function () {
var statusValue = Xrm.Page.getAttribute("new_status").getValue();
var statecode = Xrm.Page.getAttribute("statecode").getValue();
var formType = Xrm.Page.ui.getFormType();
//审批状态=草稿 状态=可用 窗体类型=2
if (statusValue == 1 && statecode == 0 && formType == FORM_TYPE_UPDATE) {
return true;
}
return false;
},
//停用页面上的所有控件
DisableFormFields: function () {
Xrm.Page.ui.controls.forEach(function (control, index) {
if (HideSunGridBtn.DoesControlHaveAttribute(control)) {
control.setDisabled(true);
}
});
},
DoesControlHaveAttribute: function (control) {
var controlType = control.getControlType();
return controlType != "iframe" && controlType != "webresource" && controlType != "subgrid";
}
};
})();
Dynamics CRM记录页面上隐藏子网格“+”标识的更多相关文章
- Dynamics CRM定制子网格添加按钮实例之二:调试代码、打开Web资源及获取选择的记录
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复222或者20160501可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics CRM定制子网格添加按钮实例之一
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复221或者20160430可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics CRM 在表单上显示更改历史记录(审核历史记录)
前言 虽然Dynamics CRM自带的审计很好,但是对于缺乏使用CRM经验的用户来说,自带的UCI界面实在是太隐藏了: 于是乎就出现了需求:想通过在表单上直接看到看审计历史记录: 在网上搜索了很多中 ...
- Dynamics 365 你所期待的子网格编辑终于来了
Dynamics 365的online版本已经在11月1号发布了,on-premises版也在没几天后发布,今天略看了一眼 what's new 一眼就看到了 editable grids,这个不用我 ...
- Microsoft Dynamics CRM 增删改子表汇总子表的某个字段到主表的某个字段(通用插件)
背景 经常有某个汇总子表的数量到主表的总数量,或者汇总子表的总价到主表的总价这种需求. 传统的做法: 1.就是为每个子表实体单独写成一个插件,但是这样不好复用. 2.主表的汇总字段是汇总货币类型,但是 ...
- 在Dynamics CRM中自定义一个通用的查看编辑注释页面
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复162或者20151016可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 注释在CRM中的显示是比较特别, ...
- Microsoft Dynamics CRM 2011 面向Internet部署 (IFD) ADFS虚拟机环境搭建的步骤(CRM与ADFS装在同一台服务器上) 摘自网络
1: 安装windows server 2008 R2 中文版 (过程略) 安装完成后设置机器名和IP地址, 本过程机器名 crm5dev,192.168.0.110 dns: 192.168.0.1 ...
- Dynamic CRM 2015学习笔记(6)没有足够的权限 - 您没有访问这些记录的权限。请联系 Microsoft Dynamics CRM 管理员
我们经常遇到下面这种问题:没有足够的权限 - 您没有访问这些记录的权限.请联系 Microsoft Dynamics CRM 管理员. 下面将详细介绍下如何解决这种问题:进不了CRM系统:进了CRM ...
- 在标准实体特殊消息上注册插件及Dynamics CRM 2015中计算字段的使用
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复157或者20151005可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 前面的 插件系列博客教程 讲述了 ...
随机推荐
- Starting nagios:This account is currently not available nagios
nagios在启动时报错 # service nagios restartRunning configuration check…done.Stopping nagios: done.Starting ...
- 武汉科技大学ACM:1007: 不高兴的津津
Problem Description 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她 报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴.但是津津如果一 ...
- java数据库连接类,已经把数据库操作的方法都封装好了
在这里分享一个已经封装好了的java数据库连接类,只要创建对象就可以实现数据库的增删改查操作,用过都说好.其实这个不是我自己写的,是一个理解和学习能力超高的朋友写的,他也很乐于分享交流,本人也深受他的 ...
- thrift之TTransport类体系原理及源码详细解析1-类结构和抽象基类
本章主要介绍Thrift的传输层功能的实现,传输的方式多种多样,可以采用压缩.分帧等,而这些功能的实现都是相互独立,和上一章介绍的协议类实现方式比较雷同,还是先看看这部分的类关系图,如下: 由上面的类 ...
- powerpoint无法输入中文怎么办|ppt文本框无法输入中文解决办法
powerpoint文本框无法输入中文的情况不知大家是否遇到过呢?反正小编是遇到过这样的情况的,简直是急煞人也!那么powerpoint无法输入中文时应该怎么办呢?本节内容中小编就为大家带来ppt文本 ...
- 装饰者模式 (decorator pattern)
参考 : Head First 设计模式(中文版) 这篇只作为个人温习! 用意 : 动态地给一个对象添加|扩展一些行为.Decorator 强调用对象组合而非继承来实现扩展,这显得较为灵活. 角色: ...
- Moving Acerage
http://zh.wikipedia.org/zh/%E7%A7%BB%E5%8B%95%E5%B9%B3%E5%9D%87
- MySQL原生HA方案 – Fabric体验之旅
http://www.csdn.net/article/2014-08-20/2821300
- python常用数据结构的常用操作
作为基础练习吧.列表LIST,元组TUPLE,集合SET,字符串STRING等等,显示,增删,合并... #===========List===================== shoplist ...
- 布置第一个JBOSS服务器
还是要通过实践慢慢积累感觉.. SERVLET的制作,JAVAC的编译... package com.manning.jbia.intro; import java.io.IOException; i ...