CRM 2011:仅对某些实体启用批量编辑

时间:2012-07-11 23:08:39

标签: javascript dynamics-crm-2011

我目前正在寻求禁用除几个实体之外的所有实体的批量修改,其中一个是“广告系列响应”实体。

为了解决这个问题,我做了以下几点:

  • 在全局级别隐藏OOTB编辑按钮(据我所知,您无法以这种方式编辑OOTB功能区按钮)
  • 在全局级别创建新的自定义编辑按钮(减去SelectionCountRule节点)
  • 对于我需要批量修改的每个实体:
    • 隐藏自定义修改功能区按钮
    • 使用SelectionCountRule节点创建新的自定义编辑按钮。

现在这一切正常,直到我转到任何实体上的活动子网格。由于我已经解决了这个问题,现在活动表单上有两个编辑按钮(一个用于常规编辑按钮,另一个用于活动响应的编辑按钮)。

我不确定如何解决这个问题,但我有一个想法,我需要一些帮助:

  • 删除“批量修改”编辑按钮
  • 在全局级别,在自定义编辑按钮的选择规则中添加JavaScript
    • JavaScript将获取所选实体的逻辑名称(在所有子网格上)
    • 如果实体是广告系列响应,请启用(或追加?)SelectionCountRule到功能区

我不确定这是否可行。我不确定主要围绕JavaScript到功能区启用规则允许的内容

1 个答案:

答案 0 :(得分:0)

没关系,

原来我要做的就是覆盖OOTB按钮 (如此处所示:http://howto-mscrm.blogspot.com.au/2011/04/how-to-series-6-how-to-overrideenable.html)带有一些简单的XML:

<EnableRule Id="sample.AllGrids.AllEntities.MainTab.Management.Edit.Command.EnableRule.CustomRule">
  <CustomRule FunctionName="canBulkEdit" Library="$webresource:new_sample_generic_functions_javascript_library">
    <CrmParameter Value="SelectedControlSelectedItemCount" />
    <CrmParameter Value="SelectedEntityTypeName" />
  </CustomRule>
</EnableRule>

和一些JavaScript:

canBulkEdit = function (oSelectedControlSelectedItemCount, oSelectedEntityTypeName) {
    var canBulkEditEntity = false;
    if (oSelectedControlSelectedItemCount < 2 || oSelectedEntityTypeName == "campaignresponse")
        canBulkEditEntity = true;

    return canBulkEditEntity;
}

还必须对ActivityPointer“Entity”进行一些额外的调整。事实证明,activitypointer有一个不同的批量编辑按钮