3

我有一个 RDL 报告,它是一个花名册——它是一个网格:

  • 每行代表一天
  • 每列代表一个任务
  • 每个单元格都包含当天执行该任务的人的姓名。

我正在通过 MS 报告服务器提供报告。

我希望能够突出显示包含查看报告的人员姓名的单元格。所以我真的有两个问题:

  • 是否可以从随请求发送到报表服务器的环境变量中获取人员的姓名?更一般地说,如何查看发送的环境变量列表?

如果我不能自动获取他们的名字,我可以提供一个报告参数,允许他们手动输入他们的名字。

那么第二个问题是:

  • 假设我有一个字符串中的名称,我如何有条件地格式化报告中包含该字符串的单元格?
4

2 回答 2

6

rdlc 中的每个对象都有属性。您可以为它们分配常量值或表达式。在这种情况下,您必须使用 IIf 并简单地将 Field!name 与 Parameter!name 进行比较

这看起来像这样:

=IIf(Fields!name=Parameters!viewername, "Black", "Red");

PS>我忘了提到你必须将它分配给文本框/单元格的颜色属性。

有一个“全局”变量集,其中包含“UserID”,这是执行报告的人的域帐户。因此,要自动将值与域帐户进行比较,您可以将此表达式分配给字段的 Color 属性:

=IIf(Fields!name=User!UserID, "Black", "Red");

如果它们不完全匹配(因为您没有在名册值中包含域名),那么您必须使用 Like 运算符构造某种字符串比较。

于 2009-11-04T02:08:05.847 回答
1

如果您从 VS 创建报告,请选择颜色属性,然后编写公式:

=IIf(Fields!name=Parameters!viewername, "Black", "Red")
于 2013-09-30T15:12:22.177 回答