如何检索报表中未设置的参数值?
How to retrieve a parameter value that's not set in the report?
我在报表生成器中工作,调用一个存储过程,该过程有一个参数,当该参数为空时,将其自身设置为某个值。我想在报表上显示此参数设置的内容。根据实验,Report Builder 的参数集合仅显示从报表发送的参数。
我考虑过但无法工作或次优的替代方案:
- 将参数添加到 select 语句。主要缺点是如果没有结果则不会显示值。
- 使用 return 值或输出参数。似乎没有办法做到这一点。
- 在存储过程中重新创建 "null" 逻辑。显示了正确的输出,但这是代码分支。
如何显示这个值?有没有办法显示 return 值或输出值?
您可以将过程更改为 return UNION ALL select 中的参数值,这样具有参数值的行将始终被 returned。对于所有其他列,该行可以为 NULL,以便您可以在报告的其余部分将其过滤掉。
另一种可能性是将第二个数据集添加到报告中,它只根据您传递的内容获取参数值。然而,这也是一种代码分叉。但是,可以通过将分叉放在 UDF 中并在两个数据集中为相同的 UDF 提供资源来减轻分叉。
还有一种可能性是在报表的自定义代码块中复制填充参数的逻辑。然而,这也是一个代码分支。
我从未在 Report Builder 界面上工作过,但我在 BIDS/VS 中确实有很多构建报告的经验...在 rdl 中将参数默认值设置为一个简单的问题匹配存储过程中的默认值。
我在报表生成器中工作,调用一个存储过程,该过程有一个参数,当该参数为空时,将其自身设置为某个值。我想在报表上显示此参数设置的内容。根据实验,Report Builder 的参数集合仅显示从报表发送的参数。
我考虑过但无法工作或次优的替代方案:
- 将参数添加到 select 语句。主要缺点是如果没有结果则不会显示值。
- 使用 return 值或输出参数。似乎没有办法做到这一点。
- 在存储过程中重新创建 "null" 逻辑。显示了正确的输出,但这是代码分支。
如何显示这个值?有没有办法显示 return 值或输出值?
您可以将过程更改为 return UNION ALL select 中的参数值,这样具有参数值的行将始终被 returned。对于所有其他列,该行可以为 NULL,以便您可以在报告的其余部分将其过滤掉。
另一种可能性是将第二个数据集添加到报告中,它只根据您传递的内容获取参数值。然而,这也是一种代码分叉。但是,可以通过将分叉放在 UDF 中并在两个数据集中为相同的 UDF 提供资源来减轻分叉。
还有一种可能性是在报表的自定义代码块中复制填充参数的逻辑。然而,这也是一个代码分支。
我从未在 Report Builder 界面上工作过,但我在 BIDS/VS 中确实有很多构建报告的经验...在 rdl 中将参数默认值设置为一个简单的问题匹配存储过程中的默认值。