5

我有一个报告,它为指定的日期范围和事件类型创建事件列表。

日期范围和事件类型是报告中定义的参数。日期参数(@DateFrom 和@DateTo)正常工作。

但是,@EventType 参数定义为由 DataSet 提供的值列表(选中“允许多个值”),在使用 {Select All} 复选框时不提供预期的行为。如果我通过选中列表中的多个框来选择一个或多个事件类型,报告将显示正确匹配指定事件类型的事件。

但是,如果我单击 {Select All} 框(然后突出显示所有其他可能的值),报告不会显示所有这些事件类型值的事件。它似乎遗漏了 {Select All} 框选择的几个值。如果我专门针对这些缺失值运行报告,则报告会返回与这些类型匹配的事件。这向我表明,这些类型并不缺乏数据。

出于这个原因,在我看来 {Select All} 被窃听了......或者可能缓存在某个地方?我尝试删除报告/参数数据集并重新部署无济于事。值得注意的是,这种行为在部署之前也发生在本地。

有没有人以前看过这个,或者有没有人有任何建议?

编辑 - 我还应该提到有问题的参数(@EventType)没有分配默认值。

4

2 回答 2

2

你如何为变量声明你的谓词?它应该是这样的:

where thing in (@Variable)

其中@Variable 是一个多值参数。

您可以尝试通过定义它们来查看多值参数的值是否也在某处被垃圾。一般来说,多值参数的收集方法如果数据类型不同会导致问题。

您也可以尝试在运行时设计您的数据集以构建而不是静态查询。EG:为您的数据集设置一个表达式,例如:

="Select * from table where thing in (" & Parameters!Variable.Value & ")"

这将导致参数构建为字符串的一部分,然后在运行时而不是从传统查询中进行评估。

于 2013-04-05T16:36:16.763 回答
1

不能完全相信是这种情况,但是传递给 SQL Server 过程的参数太小了。它被定义为 VARCHAR(500) 并且需要更大以处理大量逗号分隔值。我将其更改为 VARCHAR(4000),它现在按预期运行。

感谢 Djangojazz 为我指出了参数的方向。

于 2013-04-09T14:35:27.263 回答