0

我正在编辑以前的报告,我想将一个隐藏表达式添加到一个新的文本框,我正在使用一个简单的 switch 语句来实现这个目标。

 =Switch(Fields!cptyLongName.Value="Homer City Generation, L.P.", FALSE, TRUE)

然后它强调 Fields!cptyLongName.Value 并说它是未知的。如果我忽略它并尝试预览报告,它会告诉我:“文本框 'Textbox1' 的隐藏表达式包含错误:参数 'VarExpr' 不是有效值。”

奇怪的是,报告中的其他地方使用了相同的字段:

First(Fields!cptyLongName.Value)

在 DataSet 下,存在 cptyLongName 字段。我觉得奇怪的是,当您尝试为“字段”类别下的任何内容输入表达式时,它不存在。我做了一些研究,我知道使用:

SomeMethod(Fields!SomeFieldName.Value, "SomeDatasetName")

应该工作并解决问题。不幸的是,它没有解决任何问题..这整件事对我来说毫无意义,因为它从报告的其他部分中的数据库中提取数据,但是每当我用相同的细节在其中编辑某些内容时,它就拒绝工作。

4

1 回答 1

3

原因是文本框超出了数据集的范围。您必须使用First或其他聚合函数。

=iif(FIRST(Fields!cptyLongName.Value, "YourDataSetName")="Homer City Generation, L.P.", FALSE, TRUE)

替换YourDataSetName为相关的数据集cptyLongName并将其放在双引号中。

于 2013-10-22T19:06:45.027 回答