sql-server - 如何检索报表中未设置的参数值?
问题描述
我在报表生成器中工作,调用一个存储过程,该过程具有一个参数,当为空时,它将自身设置为某个值。我想在报告中显示此参数设置的内容。通过实验,报表生成器的参数集合仅显示从报表发送的参数。
我考虑过但无法工作或次优的替代方案:
- 将参数添加到 select 语句。主要缺点是如果没有结果,则不会显示值。
- 使用返回值或输出参数。似乎没有办法做到这一点。
- 在存储过程中重新创建“null”逻辑。显示正确的输出,但这是一个代码分支。
我怎样才能显示这个值?有没有办法显示返回值或输出值?
解决方案
您可以更改过程以在 UNION ALL 选择中返回参数值,以便始终返回具有参数值的行。该行对于所有其他列可能为 NULL,以便您可以在报告的其余部分中将其过滤掉。
另一种可能性是将第二个数据集添加到报表中,它只会根据您传递的内容获取参数的值。然而,这也是一种代码分叉。但是,可以通过将分叉放入 UDF 并在两个数据集中使用相同的 UDF 来减轻分叉。
另一种可能性是复制在报告中的自定义代码块中填充参数的逻辑。但是,这也是一个代码分叉。
推荐阅读
- html - 我希望我的输入框接受像 txt.txt.txt 这样的模式,如果它的字符和 11.22.33.44.55
- html - css img tint 仅在图像不可见时有效(图像覆盖色调?)
- php - 如何使用 Google Places API 在页面上获取评论
- c# - 需要泛型类型时的单元测试
- angular - 如何在 Angular 2+ 包装器中将数据点添加到 plotly.js
- reactjs - Default.a.map 不是反应中的函数
- authentication - 可以通过 API 密钥访问 G Suite 吗?
- java - 受信任的 Web 活动无法启动活动 ComponentInfo 服务意图必须是明确的:意图
- unity3d - Unity:OnCollisionEnter 仅在新条目时触发,但不会在具有相同名称的不同对象上的新条目时触发
- azure - Azure 函数存储文件不会随函数一起删除