在报表执行期间导出包含所有参数值的 txt 文件

Posted

技术标签:

【中文标题】在报表执行期间导出包含所有参数值的 txt 文件【英文标题】:export txt file with all parameter values during the report execution 【发布时间】:2014-03-03 11:26:17 【问题描述】:

我在 Report Builder 3.0 中开发了一份报表,报表服务器是 SRSS 2008 R2。此报告有一个名为 id_product 的报告参数。有两个可用的数据集。一组数据用于填充报告表。在第二个数据集中,我试图导出 id_product。以下查询仅适用于单值参数 id_product,此查询用于第二个数据集 Report 在尝试同时为多个产品运行报告时会弹出错误。我查看了 SQL Profiler,似乎使用当前代码无法在全局临时表中插入参数值。

我知道名为 Join 的 VB 表达式,但在这种情况下,我不确定是否可以使用它。如果我能用这种表达方式就好了。这样我就不会再创建数据集了。

当前查询:

    drop table ##SelectedValues
    create table ##SelectedValues(id_product nvarchar(max))
    insert into ##SelectedValues(@id_product) 
    exec xp_cmdshell 'bcp "select ''id_product'' 
    union all select * from ##SelectedValues" queryout "G:\Report\sqloutput.csv" -c -T -t'

输入:ProductId 参数值:12、16、20

所需的 csv 输出:

id_product

12

16

20

【问题讨论】:

【参考方案1】:

您可以使用将逗号分隔的字符串解析为表格行的拆分函数,也可以使用我最喜欢的动态 sql! :)

if object_id('tempdb..#SelectedValues') is not null
    drop table #SelectedValues
create table #SelectedValues(id_product nvarchar(max))
declare @id_product nvarchar(max),@sql nvarchar(max)
set @id_product = '12, 16, 20'
set @sql = 
    'select ''' + replace(@id_product,', ',''' union all select ''') + ''''
insert into #SelectedValues(id_product) exec(@sql)
select * from #SelectedValues

【讨论】:

以上是关于在报表执行期间导出包含所有参数值的 txt 文件的主要内容,如果未能解决你的问题,请参考以下文章

Java 中带参带返回值方法的使用

使用loadrunner进行报表导出下载的性能测试

项目依赖包导出与导入

想了解在CSV文件中显示参数的常见做法

如何将具有链接报告的 s-s-rS 报告导出到 Excel

段值相关