【问题标题】:How can I test for two field values in an SSRS Textbox's Expression property?如何测试 SSRS 文本框的 Expression 属性中的两个字段值?
【发布时间】:2016-10-02 19:20:00
【问题描述】:

我在文本框中成功使用了这个表达式:

=IIF((Fields!Week.Value="WK1"),Fields!Price.Value,"")

不过,我需要更细化 - 我不仅要在为其分配 Price 字段的值之前为该特定列寻找“WK1”的周值,而且还要基于 Unit 字段的值。

所以我希望这样的表达式可以工作:

=IIF((Fields!Week.Value="WK1" && Fields!Unit.Value="Rock Bottom"),Fields!Price.Value,"")

...或者这个:

=IIF(((Fields!Week.Value="WK1") && (Fields!Unit.Value="Rock Bottom")),Fields!Price.Value,"")

...但是当我尝试在其中任何一个之后预览结果时,我得到,“报告预览失败,因为无法构建报告。阅读错误列表窗口中的错误、警告和消息对于特定的构建失败。"

该消息是:

[rsCompilerErrorInExpression] textrun 的值表达式 “TextboxCraftworksPriceWk1Data.Paragraphs[0].TextRuns[0]”包含一个 错误:[BC30201] 应有表达式。

所以它说需要一个表达式;那些表达式怎么不是表达式?

现在我听到了 John Mellencamp 的“Without Expression”曲调。

【问题讨论】:

  • 尝试使用AND 代替&&,检查this
  • 是的,它现在“工作”了(不返回该列的任何数据,但至少它运行)。

标签: vb.net reporting-services ssrs-expression


【解决方案1】:

来自Expression Reference (Report Builder and SSRS)
表达式必须具有有效的 Visual Basic 语法,然后才能发布或处理报告。

考虑到这一点,您应该使用logical And operator,就像comments 中指出的@alejandro-zuleta

=IIF((Fields!Week.Value="WK1" And Fields!Unit.Value="Rock Bottom"), Fields!Price.Value, "")

有用的链接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 2019-05-21
    相关资源
    最近更新 更多