1

Crystal Reports 2011 を使用してビューを参照する

「数式フィールド」として記述された数式

@mySelection

IF {V_JOB.TASK} LIKE "*IN"
AND {V_JOB.CLOSED} = "Y" 
AND {V_JOB.DATE} >= {?FrDate} 
AND {V_JOB.DATE} <= {?ToDate} 
THEN {V_JOB.JOB} ELSE "FALSE"

「レコードセレクションフォーミュラ」に書かれた僕のレコードセレクション

{V_JOB.LMO} = 'L' AND
{@mySelection}

このビューには、いくつかの関連フィールドが含まれています。ビューのレコード選択を行うには、.TASK の文字列が "*IN" で、フィールドが .DATE = ?myDateRange で、フィールドが .CLOSED = 'Y' の場合、.JOB の文字列に等しいすべてのレコードを表示したいと考えています。

だから私は正確にそれを行うための方程式を書きましたが、表示されるレコードはTASK、DATE、CLOSEDがtrueの場合にのみ行JOBです。しかし、TASK、DATE、CLOSEDがfalseである同じJOBの複数の行があり、それも見たいです。

したがって、Job A に 30 のレコードがあり、それらのレコードの 1 つだけが @mySelection が「true」である場合、他の 29 が「false」であっても、30 個すべてのレコードを選択したいと考えています。それが書かれている方法では、1 つの真のレコードのみが表示され、他の 29 レコードは表示されません。

私が間違っていることについて誰か助けてもらえますか?「すべて表示」コマンドはありますか、それとも「真の」ジョブを配列に保存し、その配列をレコード選択として参照できますか?

4

3 に答える 3

0

サブレポートを使用して、メインレポートからのパラメーター参照で選択を記録することでこれを達成できました

{V_JOB.LMO} = 'L' and
{V_JOB.JOB} = {?Pm-V_JOB_OPERATIONS.JOB}

次に、メイン レポートを作成し、パラメーターをサブ レポートの Job.Job にリンクし、メイン レポートで基準のレコード選択を行いました。

{V_JOB.TASK} LIKE "*IN"
{V_JOB.CLOSED} = "Y" 
{V_JOB.DATE} >= {?FrDate} 
{V_JOB.DATE} <= {?ToDate} 

次に、サブレポートを詳細セクションに配置しましたが、選択内容を満たす Job.Job のレコードが複数ある場合、重複レコードの問題が発生しました。そのため、Job.Job のグループを作成し、サブレポートをグループ ヘッダーに配置して詳細を非表示にしたことを修正しました。

これが CPU パワーの最も効率的な使用方法であるか、CR でこれをプログラムするための最良の方法であるかはわかりませんが、必要な正しい結果がデータベースのサイズに対して比較的迅速に得られます。

于 2013-09-12T13:32:28.733 に答える
-1

レコード選択フォーラムは次のようになります。

{V_JOB.LMO} = 'L' AND
{V_JOB.JOB}

これで、CR にすべてのレコードが作成されました。

レコードを表示しているフィールドの抑制オプションとして、次の式を使用します。

@Supress

IF {V_JOB.TASK} LIKE "*IN"
AND {V_JOB.CLOSED} = "Y" 
AND {V_JOB.DATE} >= {?FrDate} 
AND {V_JOB.DATE} <= {?ToDate} 
THEN true ELSE false

条件が true の場合、すべてのレコードが表示されます。それ以外の場合、すべてのレコードが抑制されます。

レコード選択式では、このような条件を適用しないことをお勧めします。

于 2013-09-11T08:46:14.677 に答える