CRM 2011 -动态更改表单问题- JS错误(无法执行代码…)

CRM 2011 - Dynamically Changing Forms ISSUE - JS Error (cannot execute code ...)

本文关键字:执行 代码 错误 JS 动态 2011 问题 表单 CRM      更新时间:2023-09-26

在表单的onload中,我检查表单的类型,并基于此加载正确的表单。这是有效的,但当表单重新加载到新表单时,我得到以下"JavaScript"-错误=> Kan programmacode niet uitvoeren vanuit een vrijgegeeven脚本(不能从释放的脚本中执行代码我猜)。

我使用的代码如下:

avento_customertypecodeChange = function () {
    var lblShow = "information";
    var picklistName = Xrm.Page.getAttribute("customertypecode").getSelectedOption().text.toLowerCase();
    if (picklistName.contains("hc")) {
        lblShow = "information hc";
    }
    else {
        lblShow = "information";
    }
    var newIndex = -1;
    var currentName = Xrm.Page.ui.formSelector.getCurrentItem().getLabel().toLowerCase();
    if (currentName != lblShow) {
        Xrm.Page.ui.formSelector.items.forEach(function (item, index) {
            var itemLabel = item.getLabel().toLowerCase();
            if (itemLabel == lblShow) {
                newIndex = index;
            }
        });
    }
    if (newIndex != -1) Xrm.Page.ui.formSelector.items.get(newIndex).navigate();
}

两个表单都指向同一个"JavaScript"文件。这是问题所在吗?在不出现这种错误的情况下实现这一目标的最佳方法是什么?我在这个问题上搜索了几个小时,我还没有找到一个好的解决方案,我仍然有那个烦人的错误!我希望你们也遇到过这个问题,能够帮助我。

我使用了一些技巧来解决这个问题,但是不支持:

  1. 我写新的"FormID"到DB
  2. 刷新整个页面
  3. 页面记住FormID并打开正确的Form

缺点:

  1. 在创建上,我们应该采取什么形式?=>如果表单想要自动更改,您将获得"丢弃/保存更改"屏幕…
  2. 这是不支持的

我认为上述错误的发生,因为我们想要打开相同的"javascript"-web资源几次,而从形式切换。

你们中有人有正确的方法来做一个动态的形式切换吗?