使用FetchXML制作Dynamics CRM Online 高级报表

今天给大家分享一篇关于制作报表的文章,今天我们不用SQL来做报表,我们用FetchXML来做。这次我们的测试环境是Dynamics CRM Online,大家应该知道,Dynamics CRM Online只能部署基于FetchXML制作的SSRS报表。

既然说到了高级报表,那肯定是有它的卖点:这里的高级是指,我们的报表可以通过CRM 高级查找界面去定义数据源,不像普通的SSRS报表,数据源都是固定的不能变更。

下面给大家说下我们这个报表的应用场景:

客户和销售记录是1对多关系,但是很多情况下,客户记录下面却是了销售记录,这样的脏数据会导致很多系统问题,所以我们想要找一个办法把所有缺少销售数据的客户记录列出来。

解决思路也是很简单的,我们只需要对客户和销售数据做一个左连接,就可以轻松的把缺少销售数据的客户记录拉出来了。既然思路确定了,我们就开始制作高级报表吧:


首先是要SQL Server Tool创建一个报表项目,然后添加一个空白报表,并为其添加数据源

使用FetchXML制作Dynamics CRM Online 高级报表_第1张图片

为其添加一个parameter,这个参数主要用来实现的‘高级’功能--是要高级查找界面定义数据源

使用FetchXML制作Dynamics CRM Online 高级报表_第2张图片

为Parameter命令,这里的命名规则是固定的,需要遵从CRM_FilteredXXXXX规律,例如:CRM_FilteredAccount,后面需要接主记录的视图名称,这里我们的主记录是Acount,主要Account的首字母要大写。

使用FetchXML制作Dynamics CRM Online 高级报表_第3张图片

为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中,它的运行效果如下:

使用FetchXML制作Dynamics CRM Online 高级报表_第4张图片


使用FetchXML制作Dynamics CRM Online 高级报表_第5张图片

你可能感兴趣的:(使用FetchXML制作Dynamics CRM Online 高级报表)