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

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

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

我这里用代码演示,新建记录的时候为每个字段设置默认值。代码当然是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资源。然后我们去测试看看,效果如下,基本符合我的要求。

转载于:https://blog.51cto.com/wenzengliu/1788527

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

  1. CRM 客户端程序开发:获取表单界面上各种字段的值及其他属性

    我们写程序常用的就是获取字段的值,对于不同的字段类型,通过getValue() 获取到的值如下,这个表摘自SDK中的 Xrm.Page.data.entity attribute (client-si ...

  2. 小程序开发--- 1. 获取数组中某个字段的值或获取列表索引

    最近开始自己琢磨开发微信小程序,遇到些问题,现在做一下总结. 今天有遇到一个需要获取到列表中某一项值,并在其他地方调用的问题.其实思路和获取列表索引的道理一样.如果你还不知道如何获取列表的索引,那么现 ...

  3. Dynamics CRM 客户端程序开发:常用工具介绍之Dynamics XRM Tools

    声明:本博客参照以下网址,在此标记以便自己以后查询方便. http://luoyong0201.blog.163.com/blog/static/112930520142782014329/

  4. 云客Drupal源码分析之实体表单显示EntityFormDisplay

    以下内容仅是一个预览,完整内容请见文尾: 实体的显示分为表单显示和视图显示,前者用于不同情况下的信息输入,后者用于不同情况下的信息展示,本篇很多内容不止用于本篇所讲的表单主题,也是学习drupal视图 ...

  5. ONVIF协议网络摄像机(IPC)客户端程序开发(2):第一次使用IPC摄像头

    ONVIF协议网络摄像机(IPC)客户端程序开发(2):第一次使用IPC摄像头 1. 专栏导读 2. 适合读者 本文只适合第一次拿到IPC摄像头,很好奇该怎么使用IPC的读者.已经玩过IPC的,可以略 ...

  6. ONVIF协议网络摄像机(IPC)客户端程序开发(8):获取设备基本信息

    ONVIF协议网络摄像机(IPC)客户端程序开发(8):获取设备基本信息 1 专栏导读 本专栏第一篇文章「专栏开篇」列出了专栏的完整目录,按目录顺序阅读,有助于你的理解,专栏前面文章讲过的知识点(或代 ...

  7. TCP 客户端程序开发步骤

    TCP 客户端程序开发 1. 开发 TCP 客户端程序开发步骤回顾 创建客户端套接字对象 和服务端套接字建立连接 发送数据 接收数据 关闭客户端套接字 2. socket 类的介绍 导入 socket ...

  8. ONVIF协议网络摄像机(IPC)客户端程序开发使用gSOAP生成ONVIF框架代码(C++)03-->Windows

    其它的不多说,直接开始步骤. 我的版本是2.8.109,目前最新版本. 实际上,onvif的源码是兼容Linux.Windows版本的,例如如果你已经在这篇文章ONVIF协议网络摄像机(IPC)客户端 ...

  9. TCP 客户端程序开发

    TCP 客户端程序开发 1. 开发 TCP 客户端程序开发步骤回顾 创建客户端套接字对象 和服务端套接字建立连接 发送数据 接收数据 关闭客户端套接字 2. socket 类的介绍 导入 socket ...

最新文章

  1. android 蓝牙找不到电脑,Android6.0 蓝牙搜索不到设备原因
  2. Airbnb: React Native 从选择到放弃
  3. 【解析】UVA-548 Tree
  4. docker卸载命令_Docker入门篇
  5. 2019.8.13 sdfzoier
  6. Codeforces Round #667 (Div. 3)
  7. [react] 怎样在react中使用innerHTML?
  8. 简单Nlp分析套路,获取数据(爬虫),数据处理(分词,词频,命名实体识别与关键词抽取),结果展现
  9. 阿里辟谣:不会高薪聘请黑阿里网站的人;苹果欲用 iPhone 替代身份证和护照;Python 3.9.0b4 发布| 极客头条
  10. uboot中DEBUG定义
  11. C/C++ 安全编码 —— 指针与内存
  12. 熟悉Keil C51和STC-ISP下载烧录软件
  13. 关于饿了么ui框架的使用之Form 表单的应用
  14. 【4月电视剧网络关注度榜】《小舍得》登顶4月电视剧热度榜
  15. 基于Bilibili开源flv.js拉流
  16. 岌岌可危?大数据营销与数据泄露相伴而行
  17. 用java输出学生信息表代码_使用java导出学生成绩表-excel成绩表
  18. input常见输入限制及金额转货币
  19. 【NOIP2006PJ】开心的金明(happy)
  20. SAP MASS批量更新(Mass Maintenance)工具对象类型介绍

热门文章

  1. 利用Java语言制作关机小程序
  2. 20191017:C++入门经典书籍学习目录01
  3. 任正非华为为什么暂不推出鸿蒙,任正非表示,华为的鸿蒙系统已经上网?惊喜吗...
  4. 精通lambda表达式:java多核编程_Java8 Lambda表达式和流操作如何让你的代码变慢5倍...
  5. EXCEL根据条件随机内插若干行及对应数据
  6. VB更改任何标题程序源代码
  7. Reddit大热,伯克利PPT带你丝滑入门机器学习:知识点全面覆盖,笔记可搭配食用...
  8. 受婴儿抓阄启发,谷歌让机器臂自学抓取物体,不用标注数据
  9. 1亿中国人已被AI批改过作业
  10. FFmpeg(六) 播放视频之GLSurfaceView显示RGB数据