注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

微软MVP罗勇的博客

微软MVP罗勇,www.luoyong.me

 
 
 

日志

 
 

Dynamics CRM 客户端程序开发:设置实体表单界面字段的值  

2014-04-22 08:45:55|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

为了方便演示,我这里新建一个实体,实体定义如下:

Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客

 

还为它定义了如下的自定义字段,每种可定义的类型都有,基本上都是使用默认设置:

Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客

 

并且修改了它的窗体类型为主要的窗体,使它新建记录的界面如下所示:

Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客
  

我这里用代码演示,新建记录的时候为每个字段设置默认值。代码当然是JavaScript代码,需要放到类型为JScript的Web资源中,上传到CRM中并发布,然后和事件挂钩,这样就可以执行了。

我打开以前新建的解决方案,右击 CrmPackge 项目下面的 WebResources 文件夹,选择 添加 > 新建项。

Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客

 

选择 JScript File这种类型,取个合适的名称,然后点击添加按钮。

Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客
 
然后我的做法一般要修改这个文件的Display Name和Unique Name,如下。特别是Unique Name要注意,最好在下划线后面加上一个 / ,这样后面方便引用。

Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客
 
然后就是撰写代码了,我这里使用的代码如下,有个值得注意的地方就是字段名称全部用逻辑名称,也就是全小写。

 if (typeof (LuoYong) == "undefined")
{ LuoYong = { __namespace: true }; }
LuoYong.DemoScript = {
    OnLoadHandler: function () {
        if (Xrm.Page.ui.getFormType() == 1) {//新建记录
            //主属性,名称字段,只能是单行文本
            Xrm.Page.getAttribute("new_name").setValue("名称字段的值");
            //为单行文本字段赋值
            Xrm.Page.getAttribute("new_singleline").setValue("单行文本的值");
            //为两个选项字段赋值,只能赋值为true或者false
            Xrm.Page.getAttribute("new_twooptionset").setValue(true);
            //为选项集字段赋值,为整数,是选项集的存储值,不是显示值
            Xrm.Page.getAttribute("new_optionset").setValue(100000001);
            //为货币字段赋值,小数即可
            Xrm.Page.getAttribute("new_currency").setValue(100.5);
            //为浮点数字段赋值,小数即可
            Xrm.Page.getAttribute("new_float").setValue(101.5);
            //为十进制字段赋值,小数即可
            Xrm.Page.getAttribute("new_decimal").setValue(102.5);
            //为整数字段赋值
            Xrm.Page.getAttribute("new_integer").setValue(100);
            //为日期和时间字段赋值
            Xrm.Page.getAttribute("new_datetime").setValue(new Date());
            //为多行文本字段赋值
            Xrm.Page.getAttribute("new_multiline").setValue("多行文本字段的值多行文本字段的值多行文本字段的值多行文本字段的值多行文本字段的值");
            //为查找字段赋值
            var lookValue = new Array();
            lookValue[0] = new Object();
            lookValue[0].id = "F3A0BB75-F3AD-E311-80B4-00155D016705";
            lookValue[0].entityType = "account";
            lookValue[0].name = "A. Datum 公司 (示例)";
            Xrm.Page.getAttribute("new_lookup").setValue(lookValue);
            //利用新版本的alertDialog做提示
            Xrm.Utility.alertDialog("新建状态下为字段赋值完毕!", function () { });
        }
    }
}

这里用到的getFormType,SDK中的解说如下,用来判断打开的表单的表单类型,我这里是用来判断是不是新建记录的表单。
 

Xrm.Page.ui.getFormType()

Return Value

Type: Number

The following table lists the form types that correspond to the return value.

Value

Form Type

0

Undefined

1

Create

2

Update

3

Read Only

4

Disabled

5

Quick Create (Deprecated)

6

Bulk Edit

11

Read Optimized (Deprecated)

 

Note

Quick Create forms return 1. The value 5 was used for an earlier type of quick create form that was removed.

 

右击 CrmPackage 解决方案,选择 部署 ,部署完成后,我们到这个Visual Studio的解决方案连接的CRM解决方案中查看,你会发现多了你刚才的Web资源,名称就是之前设置的Unique Name,显示名称就是之前设置的 Display Name,还有个URL,因为我的CRM做了IFD部署,所以可能和你的有点不一样。这个部署的过程只是将Web资源上传,并没有发布,最好发布下。

Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客
 
然后就是将代码和事件挂钩了。打开 测试实体 的窗体类型为 主要 的窗体,点击Ribbon区的 窗体属性 按钮,弹出如下的 窗体属性 对话框,点击 添加 按钮。
Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客
 
将前面我们新增的Web Resource添加进去。
Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客
 
然后点击事件处理程序下面的 添加 按钮,在弹出的处理程序属性对话框中,库选择我们前面创建的Web资源,函数我这里输入 LuoYong.DemoScript.OnLoadHandler ,然后点击确定按钮。
Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客
 
 设置的窗体属性综合起来,如下图所示。
Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客
 
 然后保存窗体,最好发布整个解决方案,至少也要发布这个实体和之前我们创建的Web资源。
然后我们去测试看看,效果如下,基本符合我的要求。
Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客
 
素格格新疆特产店--做最好新疆特产的搬运工。
本店由博主的新疆老婆开设,搬运各种最好的新疆特产,是自用,送礼,年货,孝敬长辈特别是(岳)父母的首选!
Dynamics CRM 客户端程序开发:设置实体表单界面字段的值 - 罗勇 - 罗勇的博客
 
  评论这张
 
阅读(961)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017