我有一个连接到 BI 多维数据集的报告。在报告中,还有一个带有来自多维数据集的 datasat 的参数。此参数正确显示为报表查看器中的多选淹没,并且正确填充了值。
但是,当我使用 javascript 调用报告并将报告参数作为发布请求传递时,有一个有趣的行为。
如果在参数中,我传递了一个未包含在列表中的值,则报告崩溃并出现以下错误:为报告参数“名称”提供的默认值或值不是有效值。(rsInvalidReportParameter)
有没有办法让 SSRS 简单地跳过无效值而不是抛出错误?
我有一个连接到 BI 多维数据集的报告。在报告中,还有一个带有来自多维数据集的 datasat 的参数。此参数正确显示为报表查看器中的多选淹没,并且正确填充了值。
但是,当我使用 javascript 调用报告并将报告参数作为发布请求传递时,有一个有趣的行为。
如果在参数中,我传递了一个未包含在列表中的值,则报告崩溃并出现以下错误:为报告参数“名称”提供的默认值或值不是有效值。(rsInvalidReportParameter)
有没有办法让 SSRS 简单地跳过无效值而不是抛出错误?
如果不知道更多关于参数值“可接受”的内容,这个问题几乎是不可能回答的。在 SSRS 中,参数的第一级接受是常见的“文本”(代码中等效的字符串)、整数或日期时间的类型。如果您将参数传递给报告的格式不是它想要的格式,它将被炸毁。那应该是设计的。
如果您通过将参数附加到数据集来限制参数“可用”值的范围,说明:“从数据集中获取值”。如果你给参数一个不在这个集合中的值,它也会爆炸。当您的选择是 1-5 时,这将是等效于选择 6 的参数。并获得标准的 .NET 等效项“参数超出了数组的范围”。这也是设计使然。
对于调试,我建议尝试将 SSRS 中的值静态设置为“默认值”,如果它可以接受,那么问题出在传输和类型上。如果您可以然后不能通过 javascript 或您选择的任何方法从网络传入,则它是传入的类型。在这种情况下,我传入了一个字符串,然后通过强制转换动态地将其类型传输到 SSRS 中。