代码之家  ›  专栏  ›  技术社区  ›  Stewart Johnson

如何在Microsoft Reporting Services RDL报表中有条件地突出显示字段?

  •  3
  • Stewart Johnson  · 技术社区  · 15 年前

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

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

    我正在MS报表服务器上提供报表。

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

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

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

    第二个问题是:

    • 假设在一个字符串中有一个名称,如何有条件地格式化报表中包含该字符串的单元格?
    2 回复  |  直到 9 年前
        1
  •  6
  •   Stewart Johnson    15 年前

    RDLC中的每个对象都有属性。可以为它们指定常量值或表达式。在这种情况下,您必须使用IIF并简单地比较字段!带参数的名称!名称

    这看起来像这样:

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

    ps>我忘了提到必须将其分配给文本框/单元格的“颜色”属性。

    有一组“全局”变量,其中包含“userid”,它是执行报告的人的域帐户。因此,若要自动比较域帐户的值,可以将此表达式分配给字段的“颜色”属性:

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

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

        2
  •  1
  •   Kuba hasn't forgotten Monica    11 年前

    如果要从vs创建报告,请选择“颜色”属性,然后编写公式:

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