レポートには、Foo と Bar の 2 つの列が表示されます。
Foo の一部の行は空です 一部は数値を持ちます:
Foo:
+----+
| |
+----+
|10.0|
+----+
Bar 列があります。この列は Foo から値を取得し、それらに 10 を追加します。レポートは次のような結果を生成する必要があります。
Foo: Bar:
+----+----+
| | |
+----+----+
|10.0|20.0|
+----+----+
これは、Foo が Bar 内で数値であるかどうかを判断するために使用する式です。
=IsNumeric(ReportItems!FooBox.Value)
そして、これは式がもたらす結果です:
Foo: Bar:
+----+-----+
| |False|
+----+-----+
|10.0|True |
+----+-----+
わかりました、それはまさに私が今のところ望んでいる方法です。したがって、私はそのように My Expression を書きます:
=IIf(IsNumeric(ReportItems!FooBox.Value),
ReportItems!FooBox.Value +10,
"")
これにより、次の結果が得られます。
Foo: Bar:
+----+------+
| |#Error|
+----+------+
|10.0|20.0 |
+----+------+
そして最も奇妙なことに、IIf の Truepart の小さな追加を削除すると、次のように実行されます。
=IIf(IsNumeric(ReportItems!FooBox.Value),
ReportItems!FooBox.Value,
"")
Foo: Bar:
+----+------+
| | |
+----+------+
|10.0|10.0 |
+----+------+
とにかく、三項演算子の「間違った」部分が実行され、この castError またはそれが何であれ生成されるかのようです。
前に説明したように結果を表示するために、値を適切に変換するにはどうすればよいですか?