【问题标题】:CRM 4.0 Customizing form assistantCRM 4.0 自定义表单助手
【发布时间】:2010-11-23 13:25:18
【问题描述】:

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

例如,如下图所示,当我选择客户时,我希望我的默认选择是“联系人”,而不是当前和默认的帐户。

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

crmForm.all.customer.SetFocus();

但不知何故,我无法找到另一个查找的 id。 我试图从 html 中挖掘它,但我尝试的任何方法似乎都不起作用。

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

谢谢!

【问题讨论】:

    标签: dynamics-crm dynamics-crm-4


    【解决方案1】:

    这比我最初想象的要容易,尽管这当然不是 Microsoft 打算做的。以下是事件表单,因此您可能需要针对实际使用的表单调整选项列表索引。

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

    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);
            }
        }
    };
    

    这将检查是否选择了“客户”,如果表单助手的下部窗格已加载,则选择了“客户”,如果是,则在第二个选项列表中选择“联系人”并触发其 OnChange 事件。 如果找不到第二个选项列表,则下部窗格仍在加载(我不确定是否有办法捕获该加载调用的 OnReadyStateChange 事件,这当然会更优雅),我们稍后再检查一次。

    现在我们需要确保在更改上部选项列表中的选择时调用此代码。这也出现在您的 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() 中的检查将运行,并且可能会相应地设置选项列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      相关资源
      最近更新 更多