MS CRM 2011 创建基于Fetch的报表 -- 进阶版

在之前的文章中,我介绍了如何创建基于Fetch的报表,并使用数据预筛选功能。在这篇文章中,我们使用一个比较复杂的FetchXML来完成一个更有实际意义的报表。

在这个报表中,显示相关客户,客户的订单,以及订单的产品信息。报表使用了三个inner join,account inner join order inner join orderdetail inner join product。

(1) 利用CRM的高级查找创建FetchXML

下载Fetch XML:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true"> <entity ">name="account"> <attribute name="name" /> <attribute name="primarycontactid" /> <attribute name="telephone1" /> <attribute name="accountid" /> <order attribute="name" descending="false" /> <filter type="and"> <condition attribute="statuscode" operator="eq" value="1" /> </filter> <link-entity name="salesorder" from="customerid" to="accountid" alias="aa"> <filter type="and"> <condition attribute="statecode" operator="ne" value="2" /> </filter> <link-entity name="salesorderdetail" from="salesorderid" to="salesorderid" alias="ab"> <link-entity name="product" from="productid" to="productid" alias="ac"></link-entity> </link-entity> </link-entity> </entity> </fetch>

(2) 我们将它拷贝到报表中数据集的Query,并进行一些修改(添加我们需要的attribute)

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true"> <entity name="account"> <attribute name="name" /> <attribute name="accountid" /> <order attribute="name" descending="false" /> <filter type="and"> <condition attribute="statuscode" operator="eq" value="1" /> </filter> <link-entity name="salesorder" from="customerid" to="accountid" alias="aa"> <attribute name="ordernumber" /> <attribute name="name" /> <attribute name="totalamount" /> <filter type="and"> <condition attribute="statecode" operator="ne" value="2" /> </filter> <link-entity name="salesorderdetail" from="salesorderid" to="salesorderid" alias="ab"> <attribute name="quantity" /> <attribute name="priceperunit" /> <attribute name="baseamount" /> <link-entity name="product" from="productid" to="productid" alias="ac"> <attribute name="name" /> </link-entity> </link-entity> </link-entity> </entity> </fetch>

(3) 按照之前的文章介绍,使用数据预筛选功能。

添加一个CRM_FilteredAccount参数,使用以下的Query:

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

(4) 修改数据集Query的Fetch XML:

对这一行修改:  <entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">

修改结果为:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true"> <entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount"> <attribute name="name" /> <attribute name="accountid" /> <order attribute="name" descending="false" /> <filter type="and"> <condition attribute="statuscode" operator="eq" value="1" /> </filter> <link-entity name="salesorder" from="customerid" to="accountid" alias="aa"> <attribute name="ordernumber" /> <attribute name="name" /> <attribute name="totalamount" /> <filter type="and"> <condition attribute="statecode" operator="ne" value="2" /> </filter> <link-entity name="salesorderdetail" from="salesorderid" to="salesorderid" alias="ab"> <attribute name="quantity" /> <attribute name="priceperunit" /> <attribute name="baseamount" /> <link-entity name="product" from="productid" to="productid" alias="ac"> <attribute name="name" /> </link-entity> </link-entity> </link-entity> </entity> </fetch>

(5) 在设计面板中添加Table:

(6) 到这一步报表就完成了。将报表上传到CRM中看一下结果:

时间: 2024-10-03 07:36:50

MS CRM 2011 创建基于Fetch的报表 -- 进阶版的相关文章

MS CRM 2011 如何创建基于Fetch的自定义报表,并使用数据预筛选(Pre-Filtering)

在前一篇文章中,我向大家介绍了如何创建基于SQL的自定义报表.由于CRM http://www.aliyun.com/zixun/aggregation/16846.html">Online只支持基于Fetch的报表,所以我在这篇文章中再向大家介绍一下如何创建基于Fetch的报表,并使用数据预筛选功能. (1) 打开Business Intelligence Development Studio,创建一个新的report server 项目; (2) 在项目管理器中,右键单击Reports

MS CRM 2011 在CRM中使用REST Endpoint

CRM提供了两种http://www.aliyun.com/zixun/aggregation/14280.html">WCF Web Service,一个是Organization Service,使用的是SOAP协议,另一个是Organization Data Service,使用的是OData(REST)协议.我们在为CRM写插件(plugin)的时候,通常都要用到第一种web service,而在客户端进行编程的时候就要使用到Organization Data Service了.O

MS CRM 2011 在报表中使用CRM_URL参数来完成报表导航(Report Navigation)

在以前的文章中,我介绍了如何创建一个基于SQL并使用数据预筛选功能的报表.在这篇文章中,我再创建一个比较有实际意义的工作报表,查看某个或多个客户的商机(opportunity)的信息,并对商机的预计收入(Estimated Value)进行统计, 最后我们使用CRM_URL参数来完成报表导航功能. (1) 创建一个新的报表(如何创建新报表,并使用数据预筛选功能,请查看我以前的文章).在新报表中创建新的系统参数,CRM_FilteredAccount. (2) 在数据集中添加参数 并使用以下的Qu

MS CRM 2011 插件(plugin)的快速开发 -- 创建模板

如果你开发过很多MS CRM的插件的话,相信你一定会发现,如果每一次开发插件都从头做起的话,你会做很多重复性的工作.如果你发现你每天做着重复性的工作,你就要考虑怎样才能将重复降到最低,理想的情况就是只做一次. 开发CRM的插件(当然要使用Visual Studio)你需要做很多"准备性的工作",比如添加引用,给插件签名.这些"准备性的工作"也就是重复性的工作,非常浪费时间.一个好的解决办法,就是创建一个你自己的插件模板.在这篇文章中,我为大家介绍两个方面的经验:一是

MS CRM 2011 如何获得当前用户使用的界面语言

我在之前的博客中介绍过如何为Microsoft Dynamics CRM 2011 安装语言包,安装了不同的语言包后,用户可以选择使用不同的界面语言.我在本文中介绍一下如何获得当前用户使用的界面语言. (一) 前端 如果是使用JScript获得当前用户使用的界面语言,比如在Form的OnLoad事件处理器中,可以用 context.getUserLcid() 该方法返回一个数字,即为Language ID,比如美国英语是1033,中文简体为2052.完整的Locale ID Values表,大家

MS CRM 2011 用Jscript打开新窗口的几种方法

在CRM中,我们经常遇到这样的情况,点击一个按钮,需要弹出一个新的窗口.比如在客户中添加新联系人: 在MS CRM2011中,有以下几种方法可以打开一个新的窗口: (1) Xrm.Utility.openEntityForm (2) window.open (3) openObj 前两种是在SDK中支持的,尤其推荐使用第一种,但要注意Xrm.Utility这个对象只在Rollup 8以后的版本才支持.这里顺便列出来CRM 2011各个Rollup的版本号: Build VersionRTM: 5

如何使用 MS CRM 2011 中的目标(Goal) -- 第一节

Goal是CRM 2011中的一个新特性.任何新特性都有一个共同点,就是需要学习曲线.下面就让我们看一下,在CRM 2011中如何使用和管理Goal. 我们先通过一个简单的例子来对Goal有一个初步的认识.我们打开一个CRM范例数据中的一个goal记录," Q3 目標 (範例)". &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 打开Q3的表单后,可以看到几个重要的数据,Goal Metric

MS CRM 2011中创建服务

在CRM中,我们可以创建服务,比如我们需要去客户那里维护我们卖的机器.提供这个服务就需要我们使用一些资源,比如技术人员和技术人员要开的车.在这篇文章中我会演示如何创建一个服务,并定义Selection Rule. 要创建一个新的服务,需要打开Settings –> Business Managerment –> Services,点击New.Initial Status Reason 将决定你创建Service Activities时这些Service Activity的状态.Default

MS CRM 2011 Plugin Unsecure Configuration

在注册CRM插件(plugin)的时候,可以配置unsecure configuration和secure configuration.本文中着重讲解一下Unsecure Configuration的使用. 既然是unsecure的,那么在这里配置的信息,可以被任何人看见并使用.那么如何在plugin中获得unsecure configuration中的字符串呢?我们需要为plugin定义一个构造函数public Plugin(string unsecureConfig) 或者如果你也想使用se