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资源。然后我们去测试看看,效果如下,基本符合我的要求。

时间: 2024-10-11 08:42:28

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

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

我们写程序常用的就是获取字段的值,对于不同的字段类型,通过getValue() 获取到的值如下,这个表摘自SDK中的 Xrm.Page.data.entity attribute (client-side reference) 章节. Attribute Type Return Type boolean Boolean datetime Date To get the string version of a date using the Microsoft Dynamics CRM user's

CRM 客户端程序开发:根据主键使用OData获取记录的值

根据官方的建议,在表单界面使用OData终结点最好使用REST版本,而不是jQuery版本,所以我这个示例是按照官方的建议来做的. 因为我的JavaScript水平不怎么高,我就直接利用SDK里面的示例辅助JavaScript类库吧.这个类库的位置在 SDK\SampleCode\JS\RESTEndpoint\JavaScriptRESTDataOperations \JavaScriptRESTDataOperations\Scripts. 我将这个文件夹下面的 SDK.REST.js 和

CRM 客户端程序开发:自定义系统标准按钮的可用性

一般是新建一个解决方案用于客制化命令栏和Ribbon区,我这里是新建了一个 RibbonEditor的解决方案,然后将你要修改的实体加入进来. 我这里是选择 报价单 实体,然后点击 确定 按钮. 在 CRM > 设置 > 解决方案页面 点击 自定义 图标. 选择前面建立的解决方案,然后点击 OK 按钮. 确保选择的选项卡是Command Bar,因为我这里要修改的实体是Dynamics CRM 2013版本中的更新的实体.在 ENTITIES 中选择你要修改的实体,上面部分就会更新成你选择实体

Android4.0+锁屏程序开发——设置锁屏页面篇

[如何开发一个锁屏应用] 想要开发一个锁屏应用,似乎很难,其实并没有想象中那么难. 从本质上来说,锁屏界面也只是一个Activity而已,只是这个界面比较特殊,在我们点亮屏幕的时候,这个界面就会出现. 而且在此界面中,我们可以用一些行为来退出,比如点击按钮等. 还有一个特征是在这个界面的时候,我们通常是不能使用底部的三个按钮的 关于如果屏蔽底部的三个按钮,我已经在另一篇博客Android4.0+锁屏程序开发——按键屏蔽篇进行了总结,有需要的朋友可以参看. 这篇博客我们主要讨论如何让一个Activ

tcp客户端程序开发

https://www.cnblogs.com/python-No/ 话不多说,直接进入正题 一:客户端一共分为5大块: 1.创建客户端套接字 2.和服务端套接字建立连接 3.发送数据 4.接收发送 5.关闭客户端套接字 二:socket类的介绍 导入 socket 模块import socket 创建客户端 socket 对象socket.socket(AddressFamily, Type) send(data) 表示发送数据,data是二进制数据 recv(buffersize) 表示接收

Servlet程序开发--Servlet 与 表单

servlet程序: doPost方法时为了防止表单提交时post方式的问题.否则只能处理get请求 package org.lxh.servletdemo ; import java.io.* ; import javax.servlet.* ; import javax.servlet.http.* ; public class InputServlet extends HttpServlet{ public void doGet(HttpServletRequest req,HttpSer

微信小程序开发 -- 设置屏幕亮度

wx.setScreenBrightness(OBJECT) 设置屏幕亮度. OBJECT参数说明: 参数 类型 必填 说明 value Number 是 屏幕亮度值,范围 0~1,0 最暗,1 最亮 success Function 否 接口调用成功 fail Function 否 接口调用失败的回调函数 complete Function 否 接口调用结束的回调函数(调用成功.失败都会执行) // 保持屏幕常亮 wx.setKeepScreenOn({ keepScreenOn: true

微信小程序开发:设置消息推送

开发设置中,启用并设置消息推送配置后,用户发给小程序的消息以及开发者需要的事件推送,都将被微信转发至该服务器地址中. 不过照着说明去操作,即使按照最简单的明文方式去设置,还是提示Token验证失败.仔细研究说明,其实服务器验证过程很简单,用Get发来一个连接,然后在自己的页面中去检验,不想做也可以先不做,直接返回echostr即可.关键在,怎么返回,开始我还以为必须要按照xml或者json返回,试了半天,其实很简单,清空所有其他输出,直接返回echostr即可. Response.Clear()

9-简单实例(二)小程序开发中应注意的几个问题

前面,我们比较完整地讲了一个开放"知乎新闻"的实例.为什么说比较完整呢?因为只是那么一篇文章,要完整地讲完,谈何容易.反正有渔老师是没这个能力.下面接着来完善上篇文章,希望读者看完后,能更加深刻地认识微信小程序开发. 1.新添加的目录,有没有添加到app.json的pages里? "pages":[ "pages/index/index", "pages/detail/detail" ], 每添加一个页面,就需要把页面的路径写