Dynamics crm Dynamics CRM视图中的连接/计算列

Dynamics crm Dynamics CRM视图中的连接/计算列,dynamics-crm,dynamics-crm-4,Dynamics Crm,Dynamics Crm 4,我是MS Dynamics的新手,我想知道是否有一种方法可以将列添加到视图中,该视图是一些其他列的串联,例如: Firstname + ' ' + Lastname As Fullname 似乎没有一个明显的(优雅的)解决方案,我看到的所有建议都建议使用javascript来维护一个新属性 更进一步,如果我想从另一列中导出或计算一列,例如从出生日期算起的人的年龄,则需要在加载视图时动态计算,对吗?同样,我也无法立即找到一种方法在CRM框架中提供这种简单的功能。也许我错过了什么 任何建议都将不胜

我是MS Dynamics的新手,我想知道是否有一种方法可以将列添加到视图中,该视图是一些其他列的串联,例如:

Firstname + ' ' + Lastname As Fullname
似乎没有一个明显的(优雅的)解决方案,我看到的所有建议都建议使用javascript来维护一个新属性

更进一步,如果我想从另一列中导出或计算一列,例如从出生日期算起的人的年龄,则需要在加载视图时动态计算,对吗?同样,我也无法立即找到一种方法在CRM框架中提供这种简单的功能。也许我错过了什么


任何建议都将不胜感激。

您没有遗漏任何东西。你的问题没有一个优雅的解决方案。如果要在视图中显示它,则需要添加一个自定义列来显示它

如果它是真正计算出来的(在数据库中存储一个固定值可能会过时,如您的年龄示例中),那么您需要在获取消息的post步骤中添加一个插件,解析XML以确定是否返回实体,解析出应该计算的属性,计算值,然后将计算出的属性插入结果xml

假设您没有在视图中显示出生日期字段(您只想显示年龄),那么您还必须在获取消息的前一步上有一个插件,解析XML以确定您的实体是否是被获取的实体,确定是否返回了年龄列,如果是,将计算基础列注入要返回的列集中

请注意,如果在SSRS报告中使用过滤视图,则不会执行这些插件步骤,因此在这些情况下,您必须在TSQL中计算年龄。我认为您永远无法在CRM创建的向导报告中显示年龄列(您无法在此处获取TSQL,插件也无法运行)


考虑到所有这些,如果您有一些可以修复的东西(concationment),我将在该实体的创建/更新插件中计算它,并将其存储在自定义属性(Fullname)中。在这种情况下,该属性只适用于网格视图、所有类型的报告等。

在Dynamics CRM中,没有什么比计算列更好的了。benjynito使用插件是正确的,这是一个可行的解决方案

但是,如果它足以计算要在表单上显示的字段,我通常使用JavaScript来“伪造”属性

为了让您了解如何执行此操作,这里有一段代码,我使用jQuery插入标签和只读文本框,以显示父记录字段值(本例中为电话号码)


除了plugin选项和javascript选项之外,还可以选择调度任务来计算和设置属性。例如,我将此技术用于“已用时间”属性,该属性需要每天更新


任务可以是使用SDK更新数据的自定义服务或计划控制台应用程序,也可以是抄写(或类似)作业。

谢谢-我想这回答了我的问题,CRM中如此简单的事情竟然如此复杂,这是多么令人沮丧啊
// create label
$("#ad_contactid_c").next().next().find("label").text("Contact Phone:");
// create textbox
var phoneNumber = $(document.createElement("input")).addClass("ms-crm-Text ms-crm-ReadOnly").attr("contentEditable", "false").attr("id", "d_phoneNumber");
$("#ad_contactid_c").next().next().next().append(phoneNumber);
// fill textbox value
$("#d_phoneNumber").val(phone);