dynamics-crm - CRM 4.0自定义表单助理

  显示原文与译文双语对照的内容
0 0

我在表单助手( MS CRM 4.0 ) 上使用javascript进行一些简单定制时遇到一些麻烦。 我正在试图实现的是,当我打开表单助手的选择与当前( 默认值) 中的一样。

例如在图片 below 中,当我选择客户时,我希望我的默认选择为"联系人",而不是帐户。

alt text

到目前为止,主要查找( 表单 assitant ) 我设法改变了焦点如下:


crmForm.all.customer.SetFocus();

但不知怎么我找不到另一个人的身份。 我试图把它从html中挖掘出来,但我没有尝试过什么东西。

我非常感谢你的帮助,文章,文档。

谢谢!

时间: 原作者:

0 0

这比我想象的简单,尽管微软没有想要做到这一点。 下面是事件表单,因此你可能需要针对所使用的实际表单调整picklist索引。

在你的表单代码中,放置以下函数( 。window. 部件是重要的,因为在通过is代码时函数超出范围):


window.setFormAssistantPicklist = function()
{
 var plMain = document.getElementById("ContextSelect");
 if ((plMain) && (1 == plMain.selectedIndex))
 {
 var plSub = document.getElementById("selObjects");
 if (plSub)
 {
 plSub.selectedIndex = 1;
 plSub.fireEvent("onchange");
 }
 else
 {
 setTimeout(setFormAssistantPicklist, 1000);
 }
 }
};

这将检查是否已经选中"客户",如果表单助手的下窗格已经加载,则在第二个选项卡中启用。 如果找不到第二个选项卡,下面的窗格仍然在加载( 我不确定是否有一种方法可以捕获调用事件的加载 lsn,这当然是更优雅的。),然后我们再次检查它。

现在,我们需要确保在上一个picklist中的选择被更改时调用这里代码。 这也适用于你的OnLoad代码:


var pl = document.getElementById("ContextSelect");
if (pl)
{
 pl.onchange = function ()
 {
 RelatedInformationPane.LoadContextData();//this is the standard OnChange code of the lookup selection picklist
 setFormAssistantPicklist();
 }
}

这将导致下载下面的窗格,然后 setFormAssistantPicklist() 中的检查将运行并相应地运行选项卡。

原作者:
...