首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CRM 4.0自定义表单助手

CRM 4.0自定义表单助手
EN

Stack Overflow用户
提问于 2010-11-23 21:25:19
回答 1查看 1.2K关注 0票数 1

我在表单助手(MS CRM 4.0)上使用javascript进行一些简单的自定义时遇到了一些麻烦。我试图实现的是当我打开表单助手时,在查找中有与当前(默认)不同的选择。

例如,如下图所示,当我选择Customer时,我希望我的默认选择是"Contact",而不是Account当前和默认的帐户。

到目前为止,对于主要的查找(表单助手),我设法像这样改变了焦点:

代码语言:javascript
复制
crmForm.all.customer.SetFocus();

但不知何故,我找不到另一个人的身份。我试着从html中挖掘出来,但似乎都不起作用。

我非常感谢任何帮助,文章,文档。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-24 02:13:51

这比我最初想象的要简单,当然这不是微软想要做的。以下是事件表单的示例,因此您可能需要针对实际使用的表单调整选择列表索引。

在表单的OnLoad代码中放入以下函数( window.部分很重要,以免在OnLoad代码结束时该函数超出范围):

代码语言:javascript
复制
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);
        }
    }
};

这将检查是否选择了"Customer“,以及是否选择了表单助手的下部窗格”Customer“,如果是,则在第二个选择列表中选择"Contact”并触发其OnChange事件。如果找不到第二个选择列表,则下部窗格仍在加载中(我不确定是否有方法捕获该load调用的OnReadyStateChange事件,这当然会更优雅),并在一秒钟后再次检查。

现在,我们需要确保当上面选择列表中的选择发生更改时调用此代码。这也包含在您的OnLoad代码中:

代码语言:javascript
复制
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()中的检查,并可能相应地设置选择列表。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4256455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档