0

まず、これまでに質問されたことがあることをお詫び申し上げますが、答えが見つかりませんでした。要点:私の問題は次のとおりです。VS2010用のCrystal Reportsを使用しており、Ifチェックに基づいて1または-1を表示するフィールドがあります。

If IsNull ({Orders.OrderReplacedBy})
Then 1
Else -1

フィールドのnull値の場合はレポート1に表示され、それ以外の場合は-1が表示されます。問題は、私のレポートでは、ifテストの値に関係なく.00しか得られないことです。さらに、レポートに表示されているすべての1と-1の合計を計算する別の数式フィールドがあり、少し奇妙に機能しているようです。私のデータベースには合計772行あり、そのうち39行はNULLであり(したがって、合計が694の7331と39-1である必要があります)、表示される合計は488です。合計のコードは次のとおりです。

Sum({@N})

ここで、Nは1と-1を計算するフィールドです。

私がこれまでに試したこと:

  • IfテストをIsNullからに変更しましたToText({Orders.OrderReplacedBy})=""
  • {Orders.OrderReplacedBy}>0データベースのOrderReplacedByフィールドが数値であり、ゼロ未満の値は存在できないため、Ifテストをに変更しました。したがって、NULLはElseをトリガーするだけです。
  • 数式の表示をに変更しよう"1"としましたが、何も機能しToNumber("1")ないようです

正直なところ、他に何を試すべきかについてのアイデアはありません。また、Crystal Reportsの知識もありません(2日間しか使用しておらず、既存のアプリのレポートを変更する必要があります)。

どんな助けもいただければ幸いです、

ありがとう :)

PS:私はSilverlight4を使用しています

4

1 に答える 1

0

誰も答えなかったので、これは誰にも起こらなかったか、あまり興味がないと思います。しかし、さらに調査を行い、他のことを試した後、私が投稿するworkaroudを見つけました(多分誰かがこれにぶつかるでしょう、誰が知っていますか?):N式(なぜそれがしなかったのか分かりません前回試したときに動作します)次のように変更しました:

If IsNull({Orders.OrderReplacedBy})
Then "1"
Else "-1"

数値と呼ばれるレポートで使用されない新しい数式を追加しました

If {@N}="1"
Then 1
Else -1

次に、中間フィールドに一致するように合計式を変更しました

Sum({@Numbers})

レポートがN式の数値を表示したくない理由や、合計式が正しい合計を計算しなかった理由はまだわかりません。

これが少なくとも他の誰かに役立つことを願っています、

乾杯!

于 2013-03-27T13:01:38.607 に答える