1

よし、今オンラインでCOBOLの授業を受けているんだけど、今週の内容はコントロールブレイクとコントロールフィールド…。制御フィールドとは何ですか?またその用途は何ですか? ありがとう。

講義サイトは以下です。

http://flashserver.ait.iastate.edu/shchang/cobol/chapter10/chapter10u1/index.html

http://flashserver.ait.iastate.edu/shchang/cobol/chapter10/chapter10u2/index.html

http://flashserver.ait.iastate.edu/shchang/cobol/chapter10/chapter10u3/index.html

4

1 に答える 1

8

コントロール フィールドは、データのグループ化方法を示すフィールドです。同じ、「一緒に属する」すべての制御フィールド値。制御フィールド値の「その他の値」はそれに属しません。

典型的な例は、顧客番号です。同じ顧客番号のデータは、何らかの目的 (未処理の注文の総数など) のために論理的にグループ化できます。

現在処理している顧客内に別の顧客のデータを含めることは論理的ではありません。

コントロール フィールドの値が変更されると、これは「コントロール ブレーク」になります。レポートでは、これは他の顧客と区別するために何かを行うときです。この例では、合計を印刷し、ユーザーが「休憩」を簡単に「見る」ことができるように、いくつかの異なる行/ページ間隔を示します。

複数の制御フィールドを持つことができます。上位のコントロール フィールド (会社など) が変更されると、その下のすべてのコントロール フィールドに「ブレーク」があり、最下位レベルのコントロール フィールドから順番に「上向き」になります。

通常、データはコントロール フィールドでソートされます (実際、コントロール フィールドと呼ばれる SORT キーが表示されます) が、同じコントロール値のすべてのデータが連続している限り、これは必須ではありません。

ファイルには、コントロール フィールドとコントロール ブレークを含めることができます。これらは、その「レベル」のブレークの概要情報を含むさまざまなレコード タイプで表すことができます。

レポートには、コントロール ブレークで実行される特定のアクションを含むコントロール フィールドが含まれていることがよくあります。

01. 1111
02. 1111
03. 1111
04. 1111
05. 2222

上記では、レコード番号 05 がコントロール ブレークを「発生」させます。レコード番号 05 を処理する前に、制御値 1111 の処理を​​実行する必要があります。

制御処理では、少なくとも前のレコードの制御フィールド (「キー」とも呼ばれます) を格納する必要があります。多くの場合、他のデータを保存または蓄積する必要があります。

場合によっては、次のレコードを読み取るまでレコードの処理方法がわからないため、入力全体 (またはそのすべての必須フィールド) が保存され、レコードが「1 つ遅れて」処理されます。

常に覚えておくべきことの 1 つは、「ファイルの終わり」によって最終的なコントロール ブレークが発生するということです。これはすべての中で最高であり、最低から上へのすべてのコントロール ブレーク処理はその時点で実行する必要があります。

于 2013-04-12T20:06:52.847 に答える