zoukankan      html  css  js  c++  java
  • MS CRM 2011 如何创建基于SQL的自定义报表,并使用数据预筛选(PreFiltering)

    原创地址:http://www.cnblogs.com/jfzhu/archive/2012/10/03/2711123.html

    转载请注明出处

    在本文中我将介绍如何使用Business Intelligence Development Studio来创建一个自定义报表。CRM的报表有两种,基于SQL和基于Fetch的。On-Premise两种都可以使用,而Online只可以使用Fetch的报表。下面我就介绍一下如何创建基于SQL的的报表,并且在报表中使用数据预筛选。所谓数据预筛选是指,你可以在grid中选择一条或几条数据,然后基于你的选择的数据运行报表,或者你也可以在表单中运行这基于该表单数据的报表。

    (1) 打开Business Intelligence Development Studio,创建一个新的report server 项目;

    (2) 在项目管理器中,右键单击Reports文件夹,添加新项目,选择report;

      在Report Data面板中,选择New –> Data Source

      完成Data Source的属性:

    image

    image

    (3)接下来在Report Data面板中添加一个新的Data Set。使用以下的Query为: SELECT name, estimatedclosedate, estimatedvalue FROM FilteredOpportunity

    image

    (4) 在报表中添加一个table,如下图所示:

    image

    (5)到这里,一个自定义报表基本上就创建好了。我们可以把它上传到CRM中看一看结果。

    image

    上传之后,你会发现,不论你在哪运行这个报表,这个报表都返回所有的opportutnity,不具有数据预筛选功能,所以我们要对报表进行修改。

    (6) 要开启数据预筛选功能,需要使用一个CRM系统参数 CRM_FilteredEntity。当然Entity在我们的报表中是Opportunity

    在Report Data面板中添加一个参数:

    image

    image

    image

    image

    (7) 更改Dataset 的属性: 首先添加一个参数

    image

    (8) 然后更改Query

    declare @sql as nVarchar(max)

    set @sql = '
    SELECT name, estimatedclosedate, estimatedvalue
    FROM (' + @CRM_FilteredOpportunity + ') as fo'

    exec(@sql)

    (9) 为了方便大家理解参数CRM_FilteredOpportunity 的工作原理,我们在报表中添加一个Textbox,把CRM_FilteredOpportunity 参数的值显示在里边。

    image

    (10)要注意,先在CRM中删除原来的报表,然后再重新上传,不然CRM是不知道我们启用了数据预筛选功能的。

    (11) 这回当我们在opportunity的grid中运行报表时,我们看到数据预筛选功能开启了:

    image

    (12)但是当我们运行报表后,发现CRM_FilteredOpportunity 参数的值有点奇怪。其中多了一条,大概的意思是说,在最近的30天内有修改过的opportunity。

    那么这个“最近30天修改过的”筛选条件是从哪来的,并在哪修改呢?

    image

    (13)原来在CRM中,我们的报表被设置了默认的Filter,我们可以在报表的grid中选中我们的报表,然后点击Edit Default Editor来进行修改。

    image

    (14)删除掉 Modified On Last X Days 30, 并保存就可以了。

    image

    (15) 在运行一次试试:

    image

    在本文中,我向大家介绍了如何创建基于SQL的自定义报表,并且使用数据预筛选(Pre-Filtering)的功能。在下一篇文章中,我会向大家演示如何创建基于Fetch的报表,并开启数据预筛选功能的。

  • 相关阅读:
    centos6.x 配置bond
    Js学习(2)
    Js学习(1)
    Java源码阅读计划(1) String<II>
    【461】汉明距离
    【617】合并二叉树
    Java源码阅读计划(1) String<I>
    Dubbo的高可用性
    Dubbo SpringBoot配置方法
    Dubbo基本配置属性
  • 原文地址:https://www.cnblogs.com/jfzhu/p/2711123.html
Copyright © 2011-2022 走看看