如何使用DataSet值填充SSRS TextBox?

Pre*_*cco 12 reporting-services

亲爱的社区成员,

给定一个特定的密钥(例如"user_name"),如何TextBox用相应的DataSet 填充SSRS (例如"John Doe")?

您将提供的任何见解将不胜感激!

CONTEXT

  • SQL Server = 2008 R2
  • IDE = Visual Studio 2012
  • ReportData DataSet包含用于填充Tablix报表正文中的数据的数据
  • HeaderData DataSet包含用于填充TextBox报表标题中的两个元素的 数据
    • DataSet包含两列:

约束

  • 对于这个特殊的问题,我不能简单地将HeaderData 绑定DataSetTablix报表头中的a ...我必须填充TextBox元素
  • 如果报表包含多个DataSets,并且您Fields在表达式中引用该集合...您将收到"文本框用户的值表达式,不带范围的聚合表达式"错误.

样本数据

HeaderData

Key ="camera_name",Value ="Panomera - Terminal 1"

Key ="user_name",Value ="John Doe"

Ian*_*ton 15

使用名为的数据集HeaderData:

在此输入图像描述

我在报告标题中有几个文本框:

在此输入图像描述

上面的表达式是:

=Max(IIf(Fields!Key.Value = "user_name"
  , Fields!Value.Value, Nothing)
  , "HeaderData")
Run Code Online (Sandbox Code Playgroud)

这工作正常:

在此输入图像描述

这可以工作,因为它使用IIf表达式将除了when Key= user_name之外的任何值都清空,然后Max使用非NULL Value值.

由于您在Tablix之外引用了一个数据集,因此您需要一个Scope和一个聚合 - 我正在使用Max忽略NULL值,而First之类的东西不会这样做.从你的描述判断,那里应该只有一个非NULL值,所以应该没问题.

  • 作为参考,我的同事找到了另一个答案:`= Lookup("user_name",Fields!key.Value,Fields!value.Value,"HeaderData")` (6认同)