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

简介:

在本文中我将介绍如何使用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的报表,并开启数据预筛选功能的。







本文转自JF Zhu博客园博客,原文链接: http://www.cnblogs.com/jfzhu/archive/2012/10/03/2711123.html   ,如需转载请自行联系原作者





相关文章
|
27天前
|
SQL 安全 数据处理
揭秘数据脱敏神器:Flink SQL的神秘力量,守护你的数据宝藏!
【9月更文挑战第7天】在大数据时代,数据管理和处理尤为重要,尤其在保障数据安全与隐私方面。本文探讨如何利用Flink SQL实现数据脱敏,为实时数据处理提供有效的隐私保护方案。数据脱敏涉及在处理、存储或传输前对敏感数据进行加密、遮蔽或替换,以遵守数据保护法规(如GDPR)。Flink SQL通过内置函数和表达式支持这一过程。
56 2
|
2月前
|
Java 网络架构 数据格式
Struts 2 携手 RESTful:颠覆传统,重塑Web服务新纪元的史诗级组合!
【8月更文挑战第31天】《Struts 2 与 RESTful 设计:构建现代 Web 服务》介绍如何结合 Struts 2 框架与 RESTful 设计理念,构建高效、可扩展的 Web 服务。Struts 2 的 REST 插件提供简洁的 API 和约定,使开发者能快速创建符合 REST 规范的服务接口。通过在 `struts.xml` 中配置 `<rest>` 命名空间并使用注解如 `@Action`、`@GET` 等,可轻松定义服务路径及 HTTP 方法。
37 0
|
2月前
|
测试技术 Java
全面保障Struts 2应用质量:掌握单元测试与集成测试的关键策略
【8月更文挑战第31天】Struts 2 的测试策略结合了单元测试与集成测试。单元测试聚焦于单个组件(如 Action 类)的功能验证,常用 Mockito 模拟依赖项;集成测试则关注组件间的交互,利用 Cactus 等框架确保框架拦截器和 Action 映射等按预期工作。通过确保高测试覆盖率并定期更新测试用例,可以提升应用的整体稳定性和质量。
59 0
|
2月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
38 0
|
2月前
|
Java 测试技术 容器
从零到英雄:Struts 2 最佳实践——你的Web应用开发超级变身指南!
【8月更文挑战第31天】《Struts 2 最佳实践:从设计到部署的全流程指南》深入介绍如何利用 Struts 2 框架从项目设计到部署的全流程。从初始化配置到采用 MVC 设计模式,再到性能优化与测试,本书详细讲解了如何构建高效、稳定的 Web 应用。通过最佳实践和代码示例,帮助读者掌握 Struts 2 的核心功能,并确保应用的安全性和可维护性。无论是在项目初期还是后期运维,本书都是不可或缺的参考指南。
32 0
|
2月前
|
测试技术 Java
揭秘Struts 2测试的秘密:如何打造无懈可击的Web应用?
【8月更文挑战第31天】在软件开发中,确保代码质量的关键在于全面测试。对于基于Struts 2框架的应用,结合单元测试与集成测试是一种有效的策略。单元测试聚焦于独立组件的功能验证,如Action类的执行逻辑;而集成测试则关注组件间的交互,确保框架各部分协同工作。使用JUnit进行单元测试,可通过简单示例验证Action类的返回值;利用Struts 2 Testing插件进行集成测试,则可模拟HTTP请求,确保Action方法正确处理请求并返回预期结果。这种结合测试的方法不仅提高了代码质量和可靠性,还保证了系统各部分按需协作。
11 0
|
6天前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
3月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
67 13
|
3月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
下一篇
无影云桌面