使用FetchXML製作Dynamics CRM Online 高級報表

今天給大家分享一篇關於製作報表的文章,今天我們不用SQL來做報表,我們用FetchXML來做。這次我們的測試環境是Dynamics CRM Online,大家應該知道,Dynamics CRM Online只能部署基於FetchXML製作的SSRS報表。

既然說到了高級報表,那肯定是有它的賣點:這裏的高級是指,我們的報表可以通過CRM 高級查找界面去定義數據源,不像普通的SSRS報表,數據源都是固定的不能變更。

下面給大家說下我們這個報表的應用場景:

客戶和銷售記錄是1對多關係,但是很多情況下,客戶記錄下面卻是了銷售記錄,這樣的髒數據會導致很多系統問題,所以我們想要找一個辦法把所有缺少銷售數據的客戶記錄列出來。

解決思路也是很簡單的,我們只需要對客戶和銷售數據做一個左連接,就可以輕鬆的把缺少銷售數據的客戶記錄拉出來了。既然思路確定了,我們就開始製作高級報表吧:


首先是要SQL Server Tool創建一個報表項目,然後添加一個空白報表,併爲其添加數據源


爲其添加一個parameter,這個參數主要用來實現的‘高級’功能--是要高級查找界面定義數據源


爲Parameter命令,這裏的命名規則是固定的,需要遵從CRM_FilteredXXXXX規律,例如:CRM_FilteredAccount,後面需要接主記錄的視圖名稱,這裏我們的主記錄是Acount,主要Account的首字母要大寫。


爲Parameter指定默認值,我們這裏默認爲所有客戶記錄,大家可以根據自己的情況而定

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
    <entity name="account">
        <all-attributes/>
    </entity>
</fetch>


配置數據集合,我們這裏使用瞭如下的FetchXML:

<fetch distinct="true"  >
	<entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">
		<attribute name="accountid"/>
		<attribute name="accountnumber"/>
		<attribute name="name"/>
		<link-entity name="p_csd" from="p_customer" to="accountid" alias="csd" link-type="outer">
			<attribute name="p_csdid"/>
		</link-entity>
		<filter type="and">
			<condition entityname="csd" attribute="po_csdid" operator="null"></condition>

		</filter>
	</entity>

</fetch>

一起完事後,預覽報表,沒問題的話,將其上傳至CRM中,它的運行效果如下:




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章