标签:
今天给大家分享一篇关于制作报表的文章,今天我们不用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>
使用FetchXML制作Dynamics CRM Online 高级报表
标签:
原文地址:http://blog.csdn.net/ghostbear/article/details/50622930