MSCRM2011 列表联动 ,列表级联,从属选项集

在对MS CRM 2011进行二次开发的过程中,我们最经常遇到的一个案例便是列表联动,如下图所示

“类别”的选择决定了“子类别”的显示,“子类别”的选择决定了“类型”的显示结果。
又如,国家,省市,县的显示。看到网上有人写出例子,但感觉都不怎么好。最近在看微软的SDK文档中,发现里面介绍了一个非常简单的方法。赶紧给大家介绍一下,省得大家纠结。
“(选择)列表联动”也叫“列表级联”,列表在之前CRM中为picklist(选择列表)在MSCRM2011中变成了OptionSet(选项集),因此叫法也就成了“从属选项集”。
正文:
通常要求一个选项集字段中的值由另一个选项集字段中选择的值进行筛选。本文介绍通过可重用的 JScript 库、窗体事件和 XML Web 资源实现此要求的方法。

此解决方案的目标
此解决方案旨在满足以下要求:

它提供可用于任何选项集字段对的常规、可重用 JScript 库。

它可用于相关选项集字段链。由于每个相关选项集字段选项都根据另一个字段的值进行筛选,因此可通过在第一个相关选项集字段中选择的选项来筛选其他选项集字段选项。这样便可用于一组在层次结构上相关的选项集字段。

相关选项的筛选在 XML Web 资源中设置。这样便可更改选项映射,无需更改代码。编辑 XML Web 资源对于配置选项且很少会破坏代码的非开发人员而言更为容易。

该解决方案支持多种语言。筛选仅基于选项的数据值,而不是选项中的任何文本。

筛选适用于窗体上任意数量的属性控件实例。
示例:
本节介绍此方法的应用以及应用示例库的过程。
account(客户)实体窗体有三个选项集字段以及允许对客户分类的选项。下表显示选项集选项的值和标签。

启用筛选
将所需的选项筛选转换为以下 XML 文档并将其作为标题为 new_AccountDependentOptionSetConfig.xml 的 XML Web 资源上载。 包括标签值是为了使文档更易于编辑,但标签值不用在筛选选项的脚本中。

源码见附件

使用以下代码创建一个名为 new_SDK.DependentOptionSetSample.js JScript Web 资源。

Jscript代码如下:

源码见附件

将该 new_SDK.DependentOptionSetSample.js 脚本 Web 资源添加到可供窗体使用的 JScript 库中。
进入“设置”-》“自定义”-》“自定义项”-》“自定义系统”
选择“公司(客户)”实体,展开至窗体,双击信息(主要)

点击工具栏中的“窗体属性”弹出“窗体属性”对话框
将该 new_SDK.DependentOptionSetSample.js 脚本 Web 资源添加到窗体使用的 JScript 库(窗体库)中。

在窗体的 Onload 事件中,配置事件处理程序,以调用 SDK.DependentOptionSet.init 函数并将 XML Web 资源的名称作为参数来传入。使用“处理程序属性”对话框中的字段:将 "new_AccountDependentOptionSetConfig.xml" 输入字段“将传递给函数的以逗号分隔的参数列表”中。

点击确定后,返回窗体设计界面,双击“类别”字段,在弹出的字段属性对话框中选择事件选项卡,

在“类别”字段的 OnChange 事件中,添加“函数”设置为 SDK.DependentOptionSet.filterDependentField

在“将传递给函数的以逗号分隔的参数列表”文本框中,输入:"new_category", "new_subcategory".

 

同样,在“子类别”字段的 OnChange 事件中,添加“函数”设置为 SDK.DependentOptionSet.filterDependentField。
在“将传递给函数的以逗号分隔的参数列表”文本框中,输入:"new_subcategory ", "new_type".

保存并发布所有自定义设置。

当您打开公司(客户)实体窗体时,您会发现“子类别”和“类型”选项根据为其各自选项集选择的值进行筛选。
本文为已修改过的,原文地址为:
http://msdn.microsoft.com/zh-cn/library/gg594433.aspx

欢迎同行友人与人进行技术交流,本人QQ:906753030 信阳农夫
另外给大家提示两个常用资料:
CRM2011KitUpdated.exe    
Dynamics CRM 2011开发人员培训工具包
http://www.microsoft.com/download/en/details.aspx?id=23416
This training kit is for .NET developers to learn the development features of Dynamics CRM and help them build applications using Microsoft Dynamics CRM 2011 and CRM Online.

===========================================================
MicrosoftDynamicsCRM2011SDK.exe
Microsoft Dynamics CRM 2011 软件开发工具包 (SDK)
http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=420f0f05-c226-4194-b7e1-f23ceaa83b69&displaylang=zh-cn




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章