0

在 Dynamics CRM 2016 中*

我使用开箱即用的表单编辑器将查找设置为依赖/过滤“父”查找。

因此,当我设置父查找时,它会通过父选择过滤子/依赖项中的选择 - 正如预期/良好。

问题:当我将父 Lookup 设置为空白时,过滤仍然存在,并继续通过先前在父中选择的内容来限制相关 Lookup 选择。我希望它会被删除,并且子 Lookup 将不再受到限制。

有JS解决方案吗?我没有添加任何类型的自定义过滤器/视图(因为我使用的是开箱即​​用的过滤器),所以我不确定是否可以删除任何东西来解决这个问题。这是预期的行为吗?

4

1 回答 1

2

如果开箱即用的依赖查找无法按您想要的方式工作。您可以删除它并通过 JavaScript 手动过滤您的查找。如果您使用下面的代码,您的子查找将在父查找被填充时被过滤。清除父查找后,过滤器也将从子查找中删除

function OnChange_ParentLookup() {
  // Manually add pre Search event
  // Check if parent lookup is emptied or filled.
  if (Xrm.Page.getAttribute("parentLookup").getValue() != null) {

     // Remove the previous filter if changing the parent lookup to another value without clearing it first.
     Xrm.Page.getControl("childLookup").removePreSearch(addCustomFilterToChildLookup);
     Xrm.Page.getControl("childLookup").addPreSearch(addCustomFilterToChildLookup);
  }
  else {
     Xrm.Page.getControl("parentLookup").removePreSearch(addCustomFilterToChildLookup);
  }
}

function addCustomFilterToChildLookup() {
  // Check if parent lookup is not empty.
  // Use value in parent lookup to filter child lookup
  var parentLookup = Xrm.Page.getAttribute("parentLookup").getValue();
  if (parentLookup == null || parentLookup.length <= 0) return;

    // attribute = the field on the child entity that references the parent entity
    // uitype = entity name of parent lookup
    // value = GUID of the parent lookup
    var childLookupFilter = "<filter type='and'><condition attribute='parentLookup' operator='eq' uitype='parentLookupEntityName' value='" + parentLookup[0].id + "' /></filter>";
    Xrm.Page.getControl("childLookup").addCustomFilter(childLookupFilter);
}
于 2016-05-09T08:15:45.647 回答