2010-09-08 57 views
5

我是MS Dynamics的新手,我想知道是否有向其他列添加列的方式,例如:Dynamics CRM中的级联/计算列查看

Firstname + ' ' + Lastname As Fullname 

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

更进一步,如果我想从另一列导出或计算列,例如从出生日期开始计算一个人的年龄,那么需要在视图加载时动态计算,这是否正确?我再次无法立即看到用CRM框架提供这种简单功能的方法。也许我错过了什么?

任何意见将不胜感激。

回答

7

你不会错过任何东西。没有一个优雅的解决方案来解决你的问题。如果你想在视图中看到,你将需要添加一个自定义列来显示它。

如果它的真正计算(在数据库中存储一个固定值可能是陈旧的,就像在你的年龄范例中那样),那么你需要在Fetch消息的后期步骤中添加一个插件,将XML解析为确定您的实体是否被返回,解析出应计算的属性,计算该值,然后将计算出的属性插入到结果xml中。

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

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

鉴于这一切,如果你有什么事情,可以是固定的(concatentation),我会计算它在创建/更新插件为实体并将其存储在一个自定义属性(全名)。在这种情况下,属性将只为网格视图,报表的所有香料等

+0

谢谢 - 我认为这回答我的问题,如此简单的事情应该如此复杂在CRM – bigtv 2010-09-09 10:51:46

3

有没有像在Dynamics CRM中计算列工作。 benjynito是正确的使用插件,这是一个可行的解决方案。

但如果它足够来计算要显示的形式在球场上,我通常使用JavaScript“假”的属性。

为了让你知道如何做到这一点,这里是我使用jQuery插入标签和只读文本框以显示父记录字段值(在我的情况下是电话号码)的代码片段。

// 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); 
1

只需添加以及插件选项和JavaScript选项,还可以选择计划和设置属性的任务。例如,我已经将这种技术用于“经过时间”属性,其中属性需要每天更新。

的任务可能是一个自定义的服务或计划的控制台应用程序,使用SDK更新数据,或划线(或类似)的工作。