2010-09-08 58 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更新數據,或劃線(或類似)的工作。