MSCRM中报表开发二:建立基于FetchXML报表


1. 获取FetchXML由于FetchXML难以撰写,因此咱们通常都是使用高级查找来生成FetchXML或者经过其余工具来生成。我这里在商机界面经过高级查找制做了一个新的视图,名称为 商机查询, 查询结果以下所示:
html

Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 

而后我将下载的Fetch XML放在桌面上,名称为 FetchXML.xml,其中的文本以下:sql

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">服务器

  <entity name="opportunity">app

    <attribute name="name" />工具

    <attribute name="customerid" />测试

    <attribute name="estimatedvalue" />fetch

    <attribute name="opportunityid" />url

    <attribute name="estimatedclosedate" />spa

    <order attribute="name" descending="false" />设计

    <filter type="and">

      <condition attribute="statecode" operator="eq" value="0" />

      <condition attribute="ownerid" operator="eq-userid" />

    </filter>

    <link-entity name="account" from="accountid" to="customerid" alias="ac">

      <attribute name="numberofemployees" />

      <filter type="and">

        <condition attribute="accountid" operator="not-null" />

      </filter>

    </link-entity>

  </entity>

</fetch>

 

 

2.  新建报表项目。打开SQL Server Business Intelligence Development Studio,点击 文件 > 新建 > 项目,项目类型选择 商业智能项目 中的 报表服务器项目,为该项目命个名字。

Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客

 Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客

3.  新建报表。在右边的解决方案资源管理器中的报表文件夹右击,选择 添加  >新建项,模板选择报表,我这里命名为 OpportunityReport.rdl ,而后点击添加按钮。
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 

4.  添加数据源。在左边的 报表数据中 选择 数据源,右击,选择 添加数据源,名称我输入CRM,嵌入连接的类型我选择 Microsoft Dynamics CRM Fetch,链接字符串的输入格式是:将组织的url,好比http://crmserver:5555/DefaultOrg 中的倒数第一个斜线换成分号。而后在数据源中的凭据中选择 使用此用户名和密码,而后输入用户名和密码。

Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客

Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 

5.    添加数据集。右击上一步骤添加的数据源,选择 添加数据集 ,在查询下面的文本框中输入咱们以前拿到的FetchXML,而后点击 刷新字段 按钮,而后点击 肯定 按钮关闭该对话框。你会看到数据集中出来了很多字段。

Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客

6. 制做报表。打开报表的工具箱,将一个表拖动到设计界面,而后将要显示的字段,好比name,customerid,estimatedvalueValue,estimatedcloseddateValue,ac_numberofemployeesValue 拉到表的列中,并稍微下设置格式,更改列标题。完成后效果以下图所示,而后点击设计旁边的预览能够看到效果。而后点击所有保存将它保存下来。注意,拉到报表中的列通常要用自动加上Value的那些列。

     若是要格式化请参考文章 Personalizing Reports for Microsoft Dynamics CRM Online 。

CRM Reporting Undocumented Feature Uncovered

Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 

 7.  开启报表的预筛选功能。右击报表数据中的参数文件夹,选择 添加参数,名称设置为 CRM_FilteredOpportunity ,(ps:对于CRM中的报表,以CRM_开头的参数是会自动变成隐藏参数,由于本查询主要实体是Opportunity,因此命名为CRM_FilteredOpportunity)选择参数可见性设置为 隐藏 。在默认值中指定默认值,指定的默认值为 <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"><entity name="opportunity"><all-attributes /></entity></fetch> 。而后点击肯定关闭这个窗口。

Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客

 

Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 

 8.  更改Dataset增长一个参数。而后双击 DataSet1 ,在参数中增长一个参数,参数名称设置为 CRM_FilteredOpportunity ,参数值设置为[@CRM_FilteredOpportunity] ,而后点击 查询 ,修改查询的文本,主要是对主实体opportunity增长属性 enableprefiltering="1" prefilterparametername="CRM_FilteredOpportunity" ,如后图所示。

Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
  Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
 9.    上传报表。导航到 设置  > 自定义 > 自定义项 > 自定义系统,选择 新建 > 报表,报表类型选择现有文件,而后点击浏览按钮选择报表文件,我这里是OpportunityReport.rdl,起个名字,选择类别为销售报表,相关记录类型选择 商机,显示于选择你想要显示的地方,而后点击保存,在点击 发布全部自定义项。PS:也能够在 工做区 > 个人工做 >报表 新建报表,这里新建则不须要发布,方便。
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 

10.  测试报表。导航到 销售 > 商机,点击 运行报表 > 个人商机报表,在弹出的页面中作合适的选择后,点击 运行报表 按钮,一下子报表就运行出来了。

  Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
Dynamics CRM: 建立基于FetchXML的报表 - 罗勇 - 罗勇的博客
 
 
引用地址:http://luoyong0201.blog.163.com/blog/static/1129305201310298221728/
注明:除了安装Business Intelligency Development Studio (sql server 2012版本,这个工具是包括在SQL Server Data Tools这个功能中了)外,制做该种类型的报表,须要安装 Report Authoring Extension。
相关文章
相关标签/搜索