码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-06-13 11:53:35      阅读:1015      评论:0      收藏:0      [点我收藏+]

标签:dynamics crm 客户端 开发 表单

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

技术分享

 

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

技术分享

 

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

技术分享  

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

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

技术分享

 

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

技术分享 然后我的做法一般要修改这个文件的Display Name和Unique Name,如下。特别是Unique Name要注意,最好在下划线后面加上一个 / ,这样后面方便引用。
技术分享 然后就是撰写代码了,我这里使用的代码如下,有个值得注意的地方就是字段名称全部用逻辑名称,也就是全小写。

 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(newDate());
            //为多行文本字段赋值
            Xrm.Page.getAttribute("new_multiline").setValue("多行文本字段的值多行文本字段的值多行文本字段的值多行文本字段的值多行文本字段的值");
            //为查找字段赋值
            var lookValue =newArray();
            lookValue[0]=newObject();
            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资源上传,并没有发布,最好发布下。

技术分享 然后就是将代码和事件挂钩了。打开 测试实体 的窗体类型为 主要 的窗体,点击Ribbon区的 窗体属性 按钮,弹出如下的 窗体属性 对话框,点击 添加 按钮。技术分享 将前面我们新增的Web Resource添加进去。技术分享 然后点击事件处理程序下面的 添加 按钮,在弹出的处理程序属性对话框中,库选择我们前面创建的Web资源,函数我这里输入 LuoYong.DemoScript.OnLoadHandler ,然后点击确定按钮。技术分享  设置的窗体属性综合起来,如下图所示。技术分享  然后保存窗体,最好发布整个解决方案,至少也要发布这个实体和之前我们创建的Web资源。然后我们去测试看看,效果如下,基本符合我的要求。技术分享 


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

标签:dynamics crm 客户端 开发 表单

原文地址:http://wenzengliu.blog.51cto.com/9378751/1788527

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!