SSRS 2012 参数化报表 -- 利用拼接字符串来取代查询参数

简介:

SSRS 2012 参数化报表 -- 利用拼接字符串来取代查询参数

 

以上介绍过了如何在SQL Server中使用参数化查询,但是,如果遇到一些不支持参数化查询的数据库又该怎么办呢?此时,最终极的招数就是整个查询语句都通过参数化查询以拼接字符串的方式来产生。

 

举例来说,除了XML文件之外,SSRS也能够接收外部Web Services返回的数据集以产生报表。在以下的实例中,利用立陶宛国家银行所提供的实时汇率换算Web服务,它提供各种货币与立陶宛币(Litas)的汇率换算。

 

clip_image002

 

步骤1

请将数据表拖拉至设计区域,此时启动数据集向导。首先测试数据源,请将数据源类型设为“XML”,同时在连接字符串中输入Web Services服务的网址,并且认证方式选择“使用Windows认证”:

http://webservices.lb.lt/ExchangeRates/ExchangeRates.asmx

 

clip_image004

 

步骤2

在数据集查询页面中,在“Query”输入下列查询语句。如果是作为非参数化报表,请直接填入下面的语句;如果是使用参数化报表,由于Web Services查询方法并不支持参数化查询,因此我们是利用表达式的方法通过凭借字符串的方式来组建参数化查询(三个参数,币别、起始日与结束日)。以下查询语法是查询立陶宛币与美金(USD)在2011/1/1至2011/3/31之间的汇率值。直接按下工具栏中的“!”按钮。此时,在数据集窗口就会读取出此Web服务返回的内容。

 

非参数化报表实例:

1
< Query >< Method  Name = 'getExchangeRatesByCurrency'  Namespace = 'http://webservices.lb.lt/ExchangeRates' > < Parameters >< Parameter  Name = 'Currency' > < DefaultValue >USD</ DefaultValue ></ Parameter >< Parameter  Name = 'DateLow' > < DefaultValue >2011.1.1</ DefaultValue ></ Parameter >< Parameter  Name = 'DateHigh' >< DefaultValue >2011.3.1</ DefaultValue ></ Parameter ></ Parameters ></ Method >< ElementPath  IgnoreNamespaces = 'true' >*</ ElementPath ></ Query >

 

参数化报表实例:

1
="< Query >< Method  Name = 'getExchangeRatesByCurrency'  Namespace = 'http://webservices.lb.lt/ExchangeRates' > < Parameters >< Parameter  Name = 'Currency' > < DefaultValue >" & Parameters!Currency.Value & "</ DefaultValue ></ Parameter >< Parameter  Name = 'DateLow' > < DefaultValue >" & Parameters!DateLow.Value & "</ DefaultValue ></ Parameter >< Parameter  Name = 'DateHigh' >< DefaultValue >" & Parameters!DateHigh.Value & "</ DefaultValue ></ Parameter ></ Parameters ></ Method >< ElementPath  IgnoreNamespaces = 'true' >*</ ElementPath ></ Query >"

 

步骤3

为了方便使用者输入币别参数,因此,可以利用getListOfCurrencies方法来取得币别列表。并将此币别列表设为参数可用的值。不过,利用此方法返回的币别列表分别包括英文版以及立陶宛语版,要在此数据集设置筛选,将“lang”列设为“en”。

 

1
2
3
4
5
6
< Query >
< Method  Name = "getListOfCurrencies"
Namespace = "http://webservices.lb.lt/ExchangeRates" >
</ Method >
< ElementPath  IgnoreNamespaces = "true" >*</ ElementPath >
</ Query >

 

步骤4

接下来使用此数据集,即可完成报表设计。在此我还利用图标(Chart)以显示汇率的变化(筛选条件为人民币)。

 

clip_image006

 

clip_image008
















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1610339 ,如需转载请自行联系原作者










相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
存储 SQL Java
Flowable 79 张表都是干嘛的?
Flowable 79 张表都是干嘛的?
|
10天前
|
数据采集 人工智能 安全
|
6天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:七十、小树成林,聚沙成塔:随机森林与大模型的协同进化
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并结合它们的预测结果来提高准确性和稳定性。其核心思想包括两个随机性:Bootstrap采样(每棵树使用不同的训练子集)和特征随机选择(每棵树分裂时只考虑部分特征)。这种方法能有效处理大规模高维数据,避免过拟合,并评估特征重要性。随机森林的超参数如树的数量、最大深度等可通过网格搜索优化。该算法兼具强大预测能力和工程化优势,是机器学习中的常用基础模型。
322 164