【发布时间】:2014-09-26 03:16:03
【问题描述】:
我们正在使用 CRM 2013。要求是从任务表单中完全删除“关闭”按钮,然后创建一个新按钮来取消任务。所以当点击这个按钮时,任务将是“另存为已取消”。
我尝试为Task实体修改customization.xml RibbonDiffXML如下:
</CustomAction>
<CustomAction Id="nwp.task.Form.SaveAsCancelled.CustomAction" Location="Mscrm.Form.task.MainTab.Save.Controls._children" Sequence="55">
<CommandUIDefinition>
<Button Command="Mscrm.SaveAsCancelled" Id="nwp.task.Form.SaveAsCancelled" Image32by32="$webresource:nwp_/img/btn_CaseCloseDialog32.png" Image16by16="$webresource:nwp_/img/btn_CaseCloseDialog16.png" LabelText="$LocLabels:nwp.task.Form.SaveAsCancelled.LabelText" Sequence="55" TemplateAlias="o1" ToolTipTitle="$LocLabels:nwp.task.Form.SaveAsCancelled.ToolTipTitle" ToolTipDescription="$LocLabels:nwp.task.Form.SaveAsCancelled.ToolTipDescription" />
</CommandUIDefinition>
</CustomAction>
这里是 Mscrm.SaveAsCancelled 的命令定义。我在 /_static/_common/scripts/RibbonActions.js 下的 CRM 服务器中找到了一个内置函数
<CommandDefinition Id="Mscrm.SaveAsCancelled">
<EnableRules>
<EnableRule Id="Mscrm.VisualizationPaneNotMaximized" />
</EnableRules>
<DisplayRules>
<DisplayRule Id="Mscrm.CanWriteSelected" />
<DisplayRule Id="Mscrm.SelectedEntityHasStatecode" />
</DisplayRules>
<Actions>
<JavaScriptFunction FunctionName="Mscrm.GridRibbonActions.deactivate" Library="/_static/_common/scripts/RibbonActions.js">
<CrmParameter Value="SelectedControl" />
<CrmParameter Value="SelectedControlSelectedItemReferences" />
<CrmParameter Value="SelectedEntityTypeCode" />
<IntParameter Value="2" />
</JavaScriptFunction>
</Actions>
</CommandDefinition>
但是RibbonActions.js中deactivate函数的定义需要我选择一些记录项如下:
Mscrm.GridRibbonActions.deactivate=function(gridControl,records,entityTypeCode,defaultCloseState,callback)
{Mscrm.GridCommandActions.deactivate(gridControl,records,entityTypeCode,defaultCloseState,callback)}
所以当我单击“取消”按钮时,它会要求我先选择一条记录,因为它是一个网格控件。但是如果我删除参数来选择某些记录,那么按钮将不会做任何事情。
你知道是否已经有一个不需要先选择记录的内置取消或 SaveAsCancelled 或 deactivate 功能?
感谢您的意见!
【问题讨论】:
-
我不明白你怎么能期望在不先选择记录的情况下使用取消记录的方法,或者通过在网格中选择并使用网格按钮,或者打开记录以便它是仅“选择”一个,然后使用表单功能区上的按钮。出于兴趣,这是否意味着您打算让所有任务一直处于打开状态,并且只关闭那些被取消的任务,而不是那些已完成的任务?
-
感谢亚当的回复。我不知道没有内置函数可以取消任务,所以我们改为按照此处的建议编写了一个 SOAP 请求,感谢 Guru Prasad guruprasadcrm.blogspot.com/2013/02/…
标签: javascript crm dynamics-crm-2013