关于报告服务:在文本框中执行存储过程以获取本地化文本

Execute a stored procedure inside textbox to get a localized text

是否可以在文本框中执行存储过程?我们需要它来本地化我们的报告。

例如,我们有一个存储过程,它返回给定 Key 和给定 LanguageId 的本地化文本。我想在我的报告中使用不同的键为每个标签(文本框)执行这个存储过程。

我们正在使用 SSRS 2008。


我认为你把事情搞混了,你不能"在文本框内执行存储过程"。

您可以做的是创建一个数据集,获取当前语言所需的所有键/值对,如下所示:

1
2
3
4
5
6
7
8
9
10
EXEC usp_GetReportLabels 'en-US'

/* Returns:

   Key       Val
  ---------  ------------
  lbl1       Firstname
  lbl2       Surname
  etc        etc
*/

在您的文本框中,您可以使用表达式,利用 Lookup 函数从该数据集中检索正确的行,并显示标签值。

注意:您提到了 ssrs-2008 但没有提到 ssrs-2008-r2 版本,我认为 Lookup 功能在 plain-2008 中不可用。在这种情况下,您需要稍微重构您的数据集以获得相同的效果。一种解决方案是 PIVOT 数据集并将 Key 放入列(在这种情况下,数据集将仅包含一行,因此您可以执行 First(Fields!lbl1.Value))。虽然有点解决方法。