2011-02-09 56 views
0

私はCrystalレポートをSelectステートメントで実行しようとしていますが、それぞれのケースを通して続行するのではなく、最初の試合で打ち切りを続けます。最初の試合を見つけた後、自動的にそれを壊すのではなく、それ自体のメリットを各条件を評価するためにどのように取得できますか?通常Crystal ReportsのSelect/Case

例の各条件が真の評価を行っている必要がありますよう

local numbervar varNumber := 0; 
    Select 7 
     case is <= 1: 
     varNumber := varNumber + 1 //Only gets to here 
     case is <= 2: 
     varNumber := varNumber + 1 
     case is <= 3: 
     varNumber := varNumber + 1 
     case is <= 4: 
     varNumber := varNumber + 1 
     case is <= 5: 
     varNumber := varNumber + 1 
     case is <= 6: 
     varNumber := varNumber + 1 
     case is <= 7: 
     varNumber := varNumber + 1 
    End Select 

varNumber値は、SELECT文の終わりで7でなければなりません、しかし、それは1であることvarNumberその結果、最初のケースを打った後停止し、あなたはでしょうそれぞれのケースステートメントでの落ち込みを止めるためにbreakステートメントがありますが、これは起こっていません。

また、この機能をシミュレートする方法はありますか?

答えて

1

これを行うには、select caseを使用することはできません。複数のIfステートメント、またはおそらくloopを作成する必要があります。

この目的は何ですか?私は関数のポイントを確認していません - それは常に7を返すようです?

+0

特定の問題を強調するのは、あまり単純化されていない例でした。 'select'ステートメントは常に7を選択するとは限りません。変数になります。入力変数に基づいて値を割り当てるのが目的です。私は複数の 'if'文を使うことができることを理解していますが、過度に複雑で長時間の 'if'文の必要性を取り除くために 'select'機能が設計されたとき、 – Cameron

+0

@Cameron - 'select'式は、条件に一致する最初のcase文を見つけるように設計されています。 *すべてのcase文を評価するようには設計されていません。 – codingbadger