编写映射到多值报表参数的查询

您可以为要创建的任何报表参数定义多值参数。不过,如果要将多个参数值传回查询,则必须满足下列要求:

  • 数据源必须为 SQL Server、Oracle 或 Analysis Services。
  • 数据源不能是存储过程。Reporting Services 不支持将多值参数数组传递给存储过程。
  • 查询必须使用 IN 语句来指定参数。

MSDN有上述的描述,可见多值参数必须用于数据集查询文本为Select ... Where XXXId in (@Parameters)的典型应用,

如果用到存储过程就会报类型(ID参数是字符串型)无法转换等错误;

如获取数据为 exec dbo.pGetOrders @OrderID    (存储过程内容见如下代码)

USE [AdventureWorks]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[spGetOrders]
    @OrderIDs varchar(500) = ''
AS
BEGIN
    SET NOCOUNT ON;
    
    DECLARE @sql varchar(500)

SET @sql = 'SELECT * FROM Sales.SalesOrderDetail';
    IF @OrderIDs <> '' SET @sql = @sql + ' WHERE [SalesOrderID] IN (' + @OrderIDs + ')';
    EXEC (@sql);
    
    SET NOCOUNT OFF;
END;

上面问题通过笔者反复琢磨,找到一种变通的办法:

增加一个“内部”参数,将其设置为级联参数(必须排列在上面提到的多值参数之后),如@InnerOrderIDs类型为String,可用值和默认值都设置为表达式如下:

=Join(Parameters!OrderID.Value,  ", ")

然后修改获取数据的SQL为 exec dbo.pGetOrders @InnerOrderIDs就大功告成!

转载于:https://www.cnblogs.com/chriskwok/archive/2009/02/11/1388220.html

Reporting Services 的多值参数究竟能否用在数据集获取途径为存储过程的情景呢?...相关推荐

  1. Reporting Services 错误案例一则

    遇到一个有意思的Reporting Services报表的案例,在2015-01-30号的凌晨20分左右的时候,有人发现Reporting Services的速度非常慢,而且最后有抛出异常,当时不知道 ...

  2. Reporting Services 的伸缩性和性能表现规划(转载)

    简介 Microsoft? SQL Server? Reporting Services 是一个将集中管理的报告服务器具有的伸缩性和易管理性与基于 Web 和桌面的报告交付手段集于一身的报告平台.Re ...

  3. ×××S:Reporting Services 技巧

    ×××S:Reporting Services 技巧 表达式 1.序号:=RunningValue(1, sum, nothing) 2.总记录数: =CountRows() 3.今天日期:=Toda ...

  4. SQL Server Reporting Services最佳做法

    介绍 ( Introduction ) In past chats, we have had a look at a myriad of different business intelligence ...

  5. Reporting Services 2016中不推荐使用的5大功能

    It's not often that I write negative articles surrounding SQL Server's latest release but ever since ...

  6. sql2012 ssrs_您必须在SQL Server Reporting Services(SSRS)中记录的十件事

    sql2012 ssrs Documentation is never fun. I curse having to do it and I curse the person who didn't d ...

  7. sql server 监视_使用SQL Server Reporting Services进行快速,肮脏的服务器监视

    sql server 监视 介绍 (Introduction) A few month back, I found myself in a position where the client want ...

  8. python slicer_报表筛选:Excel Slicer与SQL Server Reporting Services(SSRS)参数

    python slicer This article explores the report filtering using Excel Slicer and SQL Server Reporting ...

  9. 如何使用SQL Server Reporting Services将数据格式转换为有价值的数据集

    介绍 ( Introduction ) Oft times we are forced into situations where we must clearly think outside of t ...

最新文章

  1. R语言找到CRAN库已经不在提供的包、手动下载并使用RStudio进行安装
  2. java 获取微信公众号code为空
  3. java中File的使用
  4. 如何建立分类模型matlab,创建简单模型 - MATLAB Simulink - MathWorks 中国
  5. c# Message const
  6. java.math.BigDecimal cannot be cast to java.lang.Integer
  7. html期末作品,走完HTML和CSS,进军期末
  8. istio入门与实战 pdf 下载_Istio实战指南 PDF 下载
  9. tf卡可以自己裁剪成nm卡_真假TF卡鉴定方法
  10. 学计算机应用技术掉头发,为什么程序员更容易脱发呢?
  11. 西安2020EC游记
  12. 如何使用ArcGIS制作真实的植被
  13. JavaScript全栈开发-工具篇
  14. 不卷了!技术团队成员集体辞职
  15. 大型颚式破碎机在石料生产线中有着怎么样的表现形式
  16. 2058:简单计算器
  17. 解析几何 曲线与二次曲面 曲面方程与坐标变换(2.1,2.2)
  18. 农民抗征地住帐篷夜间起火1死3伤
  19. java程序运行机制
  20. 新加坡金融科技节 | 蚂蚁金服CTO程立:面向全球开放,与合作伙伴共赢 1

热门文章

  1. 用python爬取一个人所有信息_python实战===爬取所有微信好友的信息
  2. 用 Python 写个贪吃蛇,保姆级教程
  3. java数列求和_java中关于数列求和的计算方法
  4. 单片机编程简单吗?arduino为什么不适合大学生?
  5. 怎样学会单片机?先学什么,怎么入门?
  6. mysql数据库导出mdf文件_数据库 导出mdf
  7. 【Java】leetCode 21 合并两个有序链表
  8. 关于学习Python的一点学习总结(6->元组)
  9. 图论 ---- 构造DFS树的思想 K - Boomerangs Gym - 102001K
  10. 图论 ---- 图论构造成二分图去判断 F. Figure Fixing