CRM客户端编程
开发脚本
脚本可以执行多种操作,例如:
计算表单中的值。
使用 Web 服务检索外部数据源中的数据或更新外部数据源。
在 IFrame 中与相同域中的 HTML 页或 Web 应用程序交互。
使用 Microsoft Dynamics CRM Web 服务对 Microsoft Dynamics CRM 数据执行操作。
执行附加数据验证。
开发与 Microsoft Dynamics CRM 表单交互的脚本时,请务必仅使用 Microsoft Dynamics CRM 客户端编程指南中所述的支持的对象、属性和方法。使用支持的对象、属性和方法将帮助确保表单脚本自定义项可以升级到下一个版本的 Microsoft Dynamics CRM。
检查表单类型
添加到实体的主表单的脚本还应用于“快速创建”表单。当用户在“查找记录”对话框中输入新记录时,会使用“快速创建”表单。如果您的脚本引用的字段不在“快速创建”表单中,将向用户显示一个错误。解决该问题有三种方法:
在代码中使用 crmForm.FormType 属性来设置条件,以便仅使用您指定的表单模式执行代码。使用这种方法可以避免在“快速创建”表单中执行代码。
将相关字段的属性配置为使用“业务必需的”或“业务建议的”约束。这将导致字段显示在“快速创建”表单中。
编写脚本,令它们检查属性是否存在。如果未找到属性,代码将不会执行。例如:
if (crmForm.all.telephone1 !=null)
{
\\ Do something.
}
onSave 事件脚本示例
onLoad 事件脚本示例
显示消息。
下面的脚本显示当打开表单以创建记录或更新记录时,如何使用 OnLoad 事件来为用户显示两个不同的消息。
最大化窗口。
下面的脚本显示如何调整窗口大小以便始终以最大化模式打开窗口。
window.resizeTo (screen.availwidth, screen.availHeight);
window.moveTo (0,0);
onChange 事件脚本示例
JScript 示例脚本显示如何使用 onChange 事件在输入电话号码时设置其格式。
此脚本尝试使用标准美国格式设置具有 7 位到 10 位数字的电话号码的格式。
CRM 窗体定制技巧和代码
给大家共享一些经常用到的一些crmForm窗体定制技巧和代码:
1. 改变lable的样式(加粗,变色,大小)
/* change new_button field label style */
if (crmForm.all.new_button != null)
{
var field = crmForm.all.new_button_c;
field.style.fontWeight = 'bold'; // change font to bold
field.style.fontSize = '12px'; // change font size
field.style.color = '#ff0000'; //change font color
}
2. 把输入框替换成图片
/* replace new_button_d to a button */
if (crmForm.all.new_button != null)
{
var field = crmForm.all.new_button_d;
var html = "<table border='0' cellspacing='0' cellpadding='0'><tr><img width='32' height='32' style='cursor:hand' src='/_imgs/ico_32_134.gif' alt='Click button' onclick='Button_OnClick()' /></tr></table>";
field.innerHTML = html;
}
Button_OnClick = function()
{
alert("button clicked!");
}
3. 把输入框替换成文本(使用replaceNode技术)
/* replace new_button_d to a label */
if (crmForm.all.new_button != null)
{
var html = document.createElement( "<TD id='new_button_d'>");
html.innerText = "this is a lable";
crmForm.all.new_button_d.replaceNode(buttonText);
}
4. 附加一个文本(无需新建attribute,直接用html绘出)
/* append text under new_button */
if(crmForm.all.new_button != null)
{
var html= document.createElement( "<LABEL>");
html.innerText = "this is a text field";
crmForm.all.new_button.parentNode.appendChild(html);
}
浙公网安备 33010602011771号