• 推荐
  • 评论
  • 收藏

MS CRM 2011的自定义和开发——表单编辑器

2023-01-09    6916次浏览

界面是与用户进行交互,方便用户进行操作的入口以及最常用的方式。做过应用软件、实施过项目的同学们都曾经经历过,项目实施过程中,终端用户对于界面的需求变化是非常快的,而由此带给实施人员以极大的痛苦。

    而在MS CRM中,产品组专门提供了一个编辑器工具以便实施人员可以快速的完成界面的定制与修改。下面是表单编辑器的截屏示意图。

image

    从图中可以看出,表单设计器分为4大部分,分别是

1号区:工具栏区域,包括“主页”以及“插入”两部分内容;
2号区:导航区,其中又包含有两个小区域,分别是
    2.1 当前页面导航区;
    2.2 相关实体导航区;
3号区:页面表单区,在该区域,又可以分为三个小区域,分别是:
    3.1  表单的标题区
    3.2 表单正文区
    3.3 表单的页脚区
4号区:实体字段列表区

    在3.2表单正文区中,依据包容范围的从大到小,依次又包括有选项卡、节以及字段和标签,例如下图中,三个红色方框标注所示。

image

    一个表单中,可以存在多个选项卡,而一个选项卡内部可以包含多个节,每个节中可以放置多个字段以及字段相对应的标签。以上图为例,客户表单中,包含有“常规”、“首选项”、“详细信息”以及“注释和活动”四个选项卡,在“详细信息”选项卡中,又包含有“说明”、“专业信息”等节,在“专业信息”节中,又包含有“行业”、“年收入”、“股票代码”等多个字段。

    通过选项卡,可以将当前实体中的信息进行大类划分,将其分散到不同的选项卡中,同时由于2.1区的当前页面导航栏与各个选项卡通过anchor方式进行关联,令操作人员通过点击2.1区域选项卡名字的方式可以直接定位到相应的选项卡,非常的方便。在选项卡中,通过节,将大类的信息再次进行细分。而字段的标签以及对应的录入控件都是放置于节中。

    MS CRM 2011的实体编辑器使用了所见即所得的方式,通过对表单上的各类界面元素使用鼠标进行拖拽操作,即可完成前端界面的调整与布局。

    例如,如果需要将“股票代码”字段与“行业”字段进行上下位置顺序的调整,那么,直接拖拉“股票代码”字段在界面上的显示控件,将之放置于“行业”界面显示控件之前,当“行业”界面显示控件的上方出现了一条红色线的时候,放下被拖拽的“股票代码”界面显示控件,即可完成调整,如下图所示。

image

    此外,也可以通过左键点击选择“股票代码”界面显示控件,然后敲击键盘上的上下左右键,完成界面布局的调整。

    对于没有放置在表单中的控件,可以通过拖拽的方式,从右侧4号区的字段列表区,将字段拖放到表单当中,从而完成界面的调整。

    对于选项卡以及节,也可以通过鼠标拖拽,或者鼠标左键点击选择,敲击键盘上下左右键的方式,完成布局的调整。

    如果需要向表单中添加新的选项卡或者节,可以点击工具栏中的“插入”页签,在该页签中,左键双击需要添加的选项卡或者节,即可将相应的界面元素添加到表单的相应位置。

    选项卡的类型有两种,分别是“一列”选项卡以及“两列”选项卡,二者的区别在于,指定了在一行中,可以放置的节的数量是一个还是两个,例如上面的截图中“详细信息”选项卡是“一列”选项卡,如果需要将其调整为“两列”选项卡,可以双击该选项卡,或者左键点击选择该选项卡-->点击“主页”页签中的“属性”按钮,都可以打开“选项卡属性”网页对话框,点击“格式化”页签,可以设定被选定选项卡是“一列”选项卡还是“两列”选项卡。如果是两列选项卡,可以设定两列所占宽度的比例。选项卡属性对话框如下图所示。

image

    如果需要修改选项卡的显示标签信息、架构名称以及默认是否可见等信息,可以点击“选项卡属性”对话框中的“显示”页签进行设置,如下图所示。

image

    两列选项卡的显示效果如下图所示。

image

    各位同学,可以同本文之前的一列的“详细信息”选项卡截图进行对比,可以看到“专业信息”节,已经被拖放到了选项卡靠右侧的位置。

    “节”的类型,分为四种,分别是“一列”、“两列”、“三列”以及“四列”等四种,其效果如下图所示

image

    由上图可见,一列的节,单行只能够放置一个字段,两列的节,单行可以容纳两个字段,三列的节是三个字段,四列节为四个字段。与修改选项卡相同的操作方式,可以修改节的显示信息以及格式化信息,如下图所示。

image image

    可见,在设定节的格式化信息时,除了设定其列数,还可以设定节中字段标签的对齐方式:靠左、靠右还是居中,以及字段标签的位置是在字段录入控件的侧面还是在字段录入控件的上方。

    以上,介绍了最基本的表单设计器中的一些概念,后续的文章将会就表单设计器进行进一步的描述与介绍。

打开表单编辑器,默认的可编辑区域是正文部分,也就是下图中所示的3.2区域,表单中,除了这个区域外,还有标题区、页脚区以及导航区都是可以被编辑的,也就是下图中的3.1、3.3以及2.2区域。

标题区

    所谓的标题区,就是对当前记录的简单的摘要信息,例如,上图中,标题区已经放入了“客户名称”字段。默认情况下,标题区处于只读状态,如果需要编辑标题区中的内容,点击“主页”工具栏中的“选择”组中的“标题”按钮,此时,标题部分(即上图中的3.1部分)即处于可编辑状态,而正文区域(即上图中的3.2部分)将处于只读状态。如下图所示。

image

    标题区,也是一个节,所以,可以像操作正文区域中的节一样,来控制标题区的显示、布局以及排版信息,有关节方面的属性编辑,请见我之前的文章MS CRM 2011的自定义与开发(6)——表单编辑器(第一部分),在此不再赘述。

页脚区

    页脚区,一般而言,默认情况下,放置的是当前记录的状态信息。各位同学可以根据情况,将需要的字段放置于页脚区域。编辑页脚区域的方法和标题区类似,不再赘述,多占篇幅了。

导航区

    对于相关实体导航区,通过点击“导航”按钮,启动对该区域的编辑。如下图所示,点击了“导航”按钮后,导航区处于可编辑状态,其他区域进入了只读状态。

image

    如果需要编辑某个导航链接,可以左键点击该链接,而后,点击工具条中的“更改属性”按钮,系统将会弹出“关系属性”对话框,如下图所示。

image

    在“关系属性”对话框中,可以在“显示”页签中设定该导航链接的标签信息,通过点击“名称”页签,可以设定该链接所代表的关系属性的信息。如下图所示,就是客户表单中,商机导航链接所代表的商机到客户N对1关系的属性信息。

image

    如果需要编辑该关系属性,可以点击“编辑”按钮,打开关系编辑器,从而完成对该关系的编辑操作。有关关系编辑器的相关内容,可以查看我之前的文章,MS CRM 2011的自定义与开发(5)——关系编辑器,不再赘述。

    除了编辑已有导航链接之外,通过点击工具栏中的“插入”页签-->“控件”组-->“导航链接”按钮,可以添加自定义的导航链接,以便在表单的导航区中,添加对web资源或者CRM系统外部的URL地址的导航设定。如下图所示。

image

    点击“导航链接”按钮后,系统弹出“导航链接属性”对话框,通过该对话框,在“名称”文本框中输入导航链接的唯一名称,在“图标”查找框中将某个图片web资源作为导航链接的图标,在“指定现有web资源或外部URL”中,通过点击“web资源”或者“外部URL”来设定当前导航链接所导航到的页面信息。

    除了可以将字段添加到表单,还可以将web资源或者其他网页添加到实体表单当中,而完成这些操作的途径,都是通过点击“插入”页签中的“控件”组中的“子网格”、“Web资源”、“空格”以及“IFrame”等按钮。下面逐个进行介绍。

子网格元素

    在CRM 3以及CRM 4中,向实体表单中插入子实体列表是经常遇到的需求,实现的方法也是相当的罗嗦,需要插入一个IFrame元素,然后使用代码设定该IFrame的src属性信息,这个src信息,需要通过解读界面上的相关实体列表界面的URL地址来作为拼接src属性的基础,相当的麻烦。现在,crm 2011中,插入子实体相关记录列表,变得非常简单,只要点击“子网格”按钮,再经过几个配置,就可以非常快速的完成此需求。具体操作如下,以向客户表单中插入相关联系人列表为例,首先点击“子网格”按钮,系统弹出“列表或图表属性”对话框,如下图所示。

image

    在“列表或图表属性”对话框的“显示”页签中,在名称文本框中输入子网格的唯一名称,从而对当前子网格进行唯一标识,以便后续的Jscript脚本对子网格进行操作。在标签文本框中,输入界面显示名称,并且可以设定是否在窗体表单中,显示该页签信息。在数据源部分,可以设定子网格中的列表是来自于哪个实体的哪一个视图,在其他选项中,可以设定是否在列表中显示“搜索框”、“视图选择器”以及“索引”信息。在图表选项中,可以设定是否显示图表以及是否只显示图表。

    点击“列表或图表属性”对话框中的“格式化”页签,可以设定当前子网格的布局样式。如下图所示。

image

    在格式化页签中,可以设定布局样式,即,控件所占据的列数;在行布局中,可以设定子网格所占用的高度,高度以行数来计算。

Web资源

    通过插入web资源,可以将我们上传到系统中的HTML页面、Silverlight控件添加到表单中,从而增加表单的展现能力以及完成界面表单级别的系统集成工作。

    具体操作是,点击“插入”页签—> “Web资源”按钮,系统弹出“添加web资源”对话框。该对话框中有三个页签,分别是“常规”、“格式化”以及“依赖项”。如下图所示。

image image image

    在“常规”对话框中,通过“Web资源”查找框,可以设定当前需要插入的web资源。点击该查找框,将会弹出“查找”对话框,在对话框中,可以选择需要被插入到当前表单中的web资源,如下图所示。

image

    也可以点击“查找记录”对话框中的“新建”按钮,创建需要的web资源。

    在“常规”页签的名称文本框中,输入待插入资源的唯一标识符,在“标签”文本框中,输入web资源的页面标签信息。在可见性部分,可以设定web资源在默认情况下是否可见。

    在“添加web资源”对话框的“格式化”页签下,可以设定待添加资源的布局、高度、滚动类型以及是否显示边框等信息。

    在“添加web资源”对话框的“依赖项”页签下,可以设定当前待添加资源所依赖的字段。所谓依赖项,举例来说,若被添加资源是个HTML页面,而该页面的url地址与表单中的客户名称有关,那么为了防止其他人从界面上误操作、删除了客户名称字段,那么就可以在依赖项中设定从属字段为“客户名称”,那么其他人就无法从表单中删除“客户名称”字段了。由上可见,依赖项的设定,对于团队协作是非常有意义的。

IFrame

    通过添加IFrame,可以将CRM系统中的其他页面或者外部系统的其他web页面集成到当前表单中,从而完成界面级集成。

    具体操作是点击工具栏“插入”页签—> “控件”组-->“IFrame”,系统会弹出“添加IFrame”对话框,如下图所示。

image

    “添加IFrame”对话框中,包含三个页签,分别是“常规”、“格式化”以及“依赖项”。

    在常规页签中,可以在“名称”文本框中设定IFrame的唯一名称,在“URL”文本框中,可以指定该IFrame所链接的web页面的URL地址,在“标签”文本框中,可以设定IFrame的界面显示页签。在安全性部分,可以设定是否“限制交叉框架脚本”,这是出于安全方面的考虑,是否允许被链接的web页面中的脚本是否可以被执行,默认情况下,是不允许运行的,即限制交叉框架脚本,如果允许被链接页面的脚本运行,那么需要去除“限制交叉框架脚本”复选框的选择。

    其他部分的内容,和“添加web资源”对话框中的内容相同,不再赘述。

    除了以上的功能之外,为了操作方便,MS CRM 2011的表单编辑器还提供了“撤销”、“重复”、“预览”等工具条按钮。

    “撤销”按钮就是我们常说的Undo操作,“重复”按钮完成的就是Redo操作。

    通过预览按钮,可以对我们修改的表单效果进行预览性查看。预览分为三种类型,分别是“创建窗体”、“更新窗体”以及“只读窗体”,分别对应了三种场景。这样更有助于我们检查表单设计效果。

image

   

    ok,以上两篇文章,介绍了表单编辑器中的各部分内容,在下一篇文章中,将会介绍角色表单方面的内容。

前面两篇文章介绍了MS CRM 2011中的表单编辑器,以及如何利用该工具对实体的界面表单进行定制化编辑与设计。本篇文章将介绍基于角色的表单。

在之前版本中,所有角色看到的表单都是一样的,如果需要按照角色,显示不同的界面效果,那么就需要使用JScript脚本,在表单的OnLoad事件中进行扩展开发才成。

例如,有一个业务场景,对于客户表单,销售员看到基本信息,不可以修改;而销售经理不仅可以看到基本信息还可以看到联系信息,但是不可以修改这些信息;销售总监不仅可以看到基本信息、联系信息,而且可以修改这些信息。

如果是以往的MS CRM版本,那么,在客户表单的OnLoad事件中,首先发出WhoAmIRequest请求,获取当前用户的ID,从而获取用户角色,然后依据用户角色信息对基本信息以及联系信息两部分的各个字段进行控制,包括将字段隐藏(设置字段的display样式值为none)、对字段进行禁用,对选项卡、节进行隐藏等等操作。如果涉及的字段很多,那么需要书写大量的脚本进行控制,并且由于是表单中的JScript脚本,所以会和界面表单中的字段息息相关——任何被控制字段从表单中移除,都需要修改脚本,维护、管理起来非常繁琐、麻烦。

而在CRM 2011中,就可以利用依据角色表单,利用配置的方式,非常方便完成此功能。

image_thumb3

为了演示的需要,首先,在客户表单中,添加两个选项卡,分别是

选项卡1:该选项卡标签为“全部角色可见、销售员只读”,代表该选项卡内的“客户名称”字段,销售员、销售经理以及销售总监都是可见的,其中销售员是只可以看见,不可以修改的;

选项卡2:该选项卡标签为“销售人员不可见、销售经理可见只读、销售总监读写”,代表该选项卡内的“主要电话”字段,销售人员是看不到的;销售经理可以看到这个字段信息,但是不能够修改该字段数据;销售总监可以看到,并且可以修改该字段信息;

点击表单编辑器工具栏中的“分派安全角色”按钮,系统弹出“分派安全角色”对话框,如下图所示。

image_thumb5

选择“仅向这些选定安全角色显示”,只选择“系统管理员”角色,勾选“已启用回退”复选框,点击“确定”按钮。将此表单作为未明确分配表单的角色的用户可以使用本表单的样式访问客户记录,同时,作为后续步骤的表单模板。

第二步,点击表单编辑器工具条中的“另存为”按钮,系统弹出“另存为”对话框,如下图所示。

image_thumb7

在“名称”文本框中,输入“销售员界面”作为给销售员的表单的名称。

第三步,在“销售员界面”表单中,删除选项卡2,即删除标签为“销售人员不可见、销售经理可见只读、销售总监读写”的选项卡,而后设置“客户名称”字段为只读,如下图所示。

image_thumb11

由上图可见,左上侧,已经显示当前表单的名称为“销售员界面”,右侧为设置“客户名称”字段为只读的对话框。同时,表单中,已经删除了标签为“销售人员不可见、销售经理可见只读、销售总监读写”的选项卡。

点击工具栏中的“分派安全角色”按钮,系统弹出“分配安全角色”,将当前表单分派给“销售员”,点击“确定”按钮。如下图所示。

SNAGHTML20f94daf_thumb1

保存并关闭此表单。

第四步,打开第一步骤中只分配给系统管理员的表单,点击“另存为”按钮,命名为“销售经理界面”,设置“主要电话”字段为只读,如下图所示。而后保存关闭。

SNAGHTML20cded66_thumb1

点击工具栏中的“分派安全角色”按钮,系统弹出“分配安全角色”,将当前表单分派给“销售经理”,点击“确定”按钮。如下图所示。

image_thumb15

第五步,打开第一步骤中只分配给系统管理员的表单,点击“另存为”按钮,命名为“销售总监界面”。

点击工具栏中的“分派安全角色”按钮,系统弹出“分配安全角色”,将当前表单分派给“销售副总裁”,点击“确定”按钮。如下图所示。

image_thumb17

第六步,发布以上做的自定义。

第七步,以不同角色登陆系统,可以看到如下的效果。

销售员查看的表单界面:

image_thumb21

销售经理查看的表单界面:

image_thumb23

销售总监查看的表单界面:

image_thumb25

由上可见,依据不同的角色,MS CRM 2011系统会展现不同的页面。

原文地址:https://www.cnblogs.com/Leo_wl/p/2256757.html