回答

收藏

SSRS报告中未显示任何记录,但查询返回结果

技术问答 技术问答 198 人阅读 | 0 人回复 | 2023-09-14

根据SSRS,我有个问题。我在用。MSSQL Server Management Studio 2012和BIDS Visual Studio
* o" I; s0 z* R& W0 E报008年报表设计。' M! g+ G1 S# d4 q+ T; g4 l
我有一个包含一些多值参数的报告和一个存储过程,该存储过程在后面返回记录。- k5 i$ ^/ G& @/ d) z
现在,我试图找到传递给存储过程的参数值和字符串分割函数的问题。我查了一下SQL Server8 h" x0 ]- f# w3 H; l
Profiler字符串是否以意外形式传输,但事实并非如此。我在服务器中操作了确切的执行代码作为查询并返回结果。但是,如果我在报告设计器的预览窗格中操作报告,则不会返回任何结果。4 D/ {' @' E: J6 V+ \% Z4 W' q7 Y# @
如果您需要任何其他信息,请告诉我。我只是认为有人可能会遇到同样的问题,知道答案。9 `0 p3 M/ _2 g4 B6 T
                                                               
3 w! F7 k( f6 X* X    解决方案:                                                                / {  \0 k. P8 X
                                                                我会猜测,这是你传递多值参数的方式。就个人而言,正在处理SSRS当我使用视图、表函数或只是选择时,因为SSRS自然理解以下内容:
, ]$ \; X+ W& P+ d8 e3 ?Where thing in (@Thing)实际上在SSMS中间是这样的:
' j2 j( c- w  `6 F' ^Where thing in (@Thing.Value1,@Thing.Value2,@Thing.Value3,etc...)我猜您的proc接受一个实际上是逗号分隔的数组字符串。当您执行类似于的参数时
: P6 z9 U) c4 w9 c1、2、3、4字符串数组,使用类似的文本参数找到过程,参数接受您指定的多个值或从查询中获得多个值,您实际上需要如果您的过程使用包含数组的字符串值,请添加参数。EG:称为dbo.test的Proc执行以返回参数ID值1、2、4的行,如下所示:
/ N; S- m& E  s+ @; R1 Hexec dbo.test @ids = '1,2,4'假如我想用这个值SSRS中运行proc,还有一个叫 IDS多值参数必须在SSRS中的函数中手动组装数组,例如:
- w# B- U2 D6 {=JOIN(Parameters!IDS.Value,",")本质上,通过将逗号分隔的值链中的多个值连接在一起,我们可以告诉你proc运行参数“
  @! X/ w( X7 C3 A# x* kIDS。您可以将参数数据集中在左窗格中,而不是像[@IDS]指定参数,但单击 Fx并将其放入上述函数中。# {+ B  m. v6 ?& p8 M2 y
因此,我非常支持视图、选择和表函数,因为您可以使用谓词逻辑来解决这个问题。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则