编辑全局命令栏示例:点击按钮展示当前用户的角色

Posted luoyong0201

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编辑全局命令栏示例:点击按钮展示当前用户的角色相关的知识,希望对你有一定的参考价值。

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复468或者20220424可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

在系统中查看自己授予的角色,目前据我所知没有特别简便的方法。当然可以通过类似下面的高级查找列出自己分派给自己的角色,然后把这个私有视图贡献给普通用户所在的团队也可以。普通用户操作起来还是稍显麻烦。

编辑全局命令栏示例:点击按钮展示当前用户的角色_Dynamics

还可以在导航栏中增加一个导航项目,点击打开一个html Web资源,通过代码展示当前用户的角色也可以。

但是可以用另外一种更加简便对于普通用于更加友好的方法,定制全局命令栏增加一个按钮,点击后弹出对话框告诉用户当前拥有的角色。

本文主要参考 ​​Global ribbon Customization in Dynamics 365​​ ,下面是效果,可以看到在右上角这里增加了一个图标,提示文字是 我的安全角色。

编辑全局命令栏示例:点击按钮展示当前用户的角色_Dynamics

点击这个按钮就会弹出提示框,告知当前用户的安全角色。

编辑全局命令栏示例:点击按钮展示当前用户的角色_Dynamics

然后接着讲实现方法。将Application Ribbons添加到我专门用于定制命令栏的自定义解决方案中,不添加依赖项,移除解决方案中的其他组件,确保该解决方案中的组件数量最少。

编辑全局命令栏示例:点击按钮展示当前用户的角色_Dynamics


然后使用Ribbon Workbench打开这个解决方案进行编辑,找到 Mscrm.GlobalTab 在这个tab中添加一个按钮。

编辑全局命令栏示例:点击按钮展示当前用户的角色_Dynamics


除了设置提示文本之外,这个按钮的图标(ModernImage属性)我设置为 $webresource:msdyn_/Images/IC_SecurityRole ,因为这个图标刚好契合,而且是白色的SVG图片,和背景不会有违和感。

然后我增加一个命令,命令的设置如下,我只设置了Action,没有设置Enable Rule和Display Rule。

编辑全局命令栏示例:点击按钮展示当前用户的角色_Dynamics

这里我使用的JScript 类型的Web资源的代码如下:

"use strict";
var LuoYong = window.LuoYong || ;
LuoYong.Common = LuoYong.Common || ;
(function ()
this.DisplayMyRoles = function ()
var currentRoles = Xrm.Utility.getGlobalContext().userSettings.roles;
var roles = "";
currentRoles.forEach(function (role) roles += role.name + "\\n" );
var alertStrings = confirmButtonLabel: "确定", text: `$roles`, title: "我的角色" ;
var alertOptions = height: 220, width: 260 ;
Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);

).call(LuoYong.Common);


然后将这个命令和按钮关联起来,在Ribbon Workbench中的展示如下:

编辑全局命令栏示例:点击按钮展示当前用户的角色_Dynamics


我们知道在Ribbon Workbench中一顿操作猛如虎,也是改动RibbonDiff中的内容,我这里贴出来改了啥:

  <RibbonDiffXml>
<CustomActions>
<CustomAction Id="ly.ApplicationRibbon.DisplayMyRoles.Button.CustomAction" Location="Mscrm.GlobalTab.Tools.Controls._children" Sequence="60">
<CommandUIDefinition>
<Button Alt="$LocLabels:ly.ApplicationRibbon.DisplayMyRoles.Button.Alt" Command="ly.ApplicationRibbon.DisplayMyRoles.Command" Id="ly.ApplicationRibbon.DisplayMyRoles.Button" LabelText="$LocLabels:ly.ApplicationRibbon.DisplayMyRoles.Button.LabelText" Sequence="60" TemplateAlias="o1" ToolTipTitle="$LocLabels:ly.ApplicationRibbon.DisplayMyRoles.Button.ToolTipTitle" ToolTipDescription="$LocLabels:ly.ApplicationRibbon.DisplayMyRoles.Button.ToolTipDescription" ModernImage="$webresource:msdyn_/Images/IC_SecurityRole" />
</CommandUIDefinition>
</CustomAction>
</CustomActions>
<Templates>
<RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
</Templates>
<CommandDefinitions>
<CommandDefinition Id="ly.ApplicationRibbon.DisplayMyRoles.Command">
<EnableRules />
<DisplayRules />
<Actions>
<javascriptFunction FunctionName="LuoYong.Common.DisplayMyRoles" Library="$webresource:ly_/scripts/common/common.js" />
</Actions>
</CommandDefinition>
</CommandDefinitions>
<RuleDefinitions>
<TabDisplayRules />
<DisplayRules />
<EnableRules />
</RuleDefinitions>
<LocLabels>
<LocLabel Id="ly.ApplicationRibbon.DisplayMyRoles.Button.Alt">
<Titles>
<Title description="我的安全角色" languagecode="1033" />
</Titles>
</LocLabel>
<LocLabel Id="ly.ApplicationRibbon.DisplayMyRoles.Button.LabelText">
<Titles>
<Title description="我的安全角色" languagecode="1033" />
</Titles>
</LocLabel>
<LocLabel Id="ly.ApplicationRibbon.DisplayMyRoles.Button.ToolTipDescription">
<Titles>
<Title description="我的安全角色" languagecode="1033" />
</Titles>
</LocLabel>
<LocLabel Id="ly.ApplicationRibbon.DisplayMyRoles.Button.ToolTipTitle">
<Titles>
<Title description="我的安全角色" languagecode="1033" />
</Titles>
</LocLabel>
</LocLabels>
</RibbonDiffXml>

发布成功后,强制刷新浏览器(Ctrl + F5)就可以看到我前面介绍的效果了。

以上是关于编辑全局命令栏示例:点击按钮展示当前用户的角色的主要内容,如果未能解决你的问题,请参考以下文章

用户界面框架jQuery EasyUI示例大全之进度栏搜索框及表单演示

uni-app 顶部栏增加按钮或者文字并添加事件如何实现

Identity角色管理五(添加用户到角色组)

如何查看oracle数据库配置参数?

tp5中接口,需要跨页面传送id时,不使用地址栏传送id,使用session保存。

VUE项目实战36用户分配角色功能