2

ここで非常に基本的な質問。

COBOLプログラムのデータ用語集を書き出す必要があります。このデータ用語集には、すべての変数に関する次の詳細が含まれています。

  1. 名前
  2. データ・タイプ
  3. 値の範囲(該当する場合)
  4. 行番号
  5. フルネーム

レベル88スイッチを含むいくつかの変数があります。私の質問はこれです:これらのレベル88スイッチは変数としてカウントされますか?データ用語集に含める必要がありますか?または、使用する必要のあるデータ用語集の構造から判断すると、このコンテキストでは無視する必要がありますか?

そして、私がここにいる間、別の簡単な質問があります。データ用語集にフィラーを含める必要がありますか?特にこのプログラムには、多くのフィラー変数が含まれており、そのほとんどが単純な「PICX」変数です。

4

3 に答える 3

7

私が尋ねられている質問を理解していると仮定します。

88エントリがある場合とない場合のCOBOLレイアウトとデータ用語集エントリの例を示すことができれば役立ちます。しかし、私はその質問に答えるために最善を尽くします。

いいえ、88レベルのエントリは変数ではなく、レコードの長さを増減しません。それらは単に条件文を作成することを可能にします。

そうは言っても、データ用語集にはレコードの長さに寄与する変数のみを含める必要がありますか?

はいの場合、88項目ごとに個別のデータ用語集エントリがあってはなりません。ただし、特定の変数の値(3、場合によっては5、または期待値の追加行)を説明すると役立つ場合があります。

01 record-store.
 02 location pic 9(4).
   88 dist-center value 100, 101, 102.
 02 value    pic 9(6).
 02 paid     pic X(1).
   88 yes value 'Y', 'y'.
   88  no value 'N', 'n'.

データ用語集は次のようになります。

位置

  • 名前:場所
  • データ型:整数
  • 値の範囲:0-9999
  • 行番号:20
  • 氏名:データの場所
  • 期待値:
    • 配送センターの場合は100、101、102
    • 顧客の場合は1-99
    • 103-9999無効

今、あなたはあなたの期待値を知っているので、あなたは戻ってあなたの88の値を変えるかもしれませんか?

...
 02 location pic 9(4).
   88 dist-center value 100, 101, 102.
   88 customers   value 1 thru 99.
   88 invalid     value 0, 103 thru 9999.
...    

いいえの場合:

88レベルのエントリより前に別のデータ用語集エントリを作成できます。

データ用語集は次のようになります。

位置

  • 名前:場所
  • データ型:整数
  • 値の範囲:0000-9999
  • 行番号:20
  • 氏名:データの場所

dist-center

  • 名前:dist-center
  • データ型:ブール値
  • 値の範囲:100、101、102
  • 行番号:5
  • 氏名:場所は配送センターです

お客様

  • 名前:顧客
  • データ型:ブール値
  • 値の範囲:1-99
  • 行番号:5
  • 氏名:場所は顧客です

無効

  • 名前:無効
  • データ型:ブール値
  • 値の範囲:0001、0010、0100
  • 行番号:5
  • 完全な名前:場所は無効な値ですか
于 2012-09-02T07:24:01.123 に答える
1

いつものように、それは異なります。:-)

レベル88の値は、パート3「値の範囲」に属しているようです。特に、ある変数に許可されている値のみが文書化されている場合はそうです。

ドキュメントを使用してレコードを再構築する場合は、もちろんFILLERフィールドが重要です。他のフィールドの使用法を文書化したいだけの場合、それらはあまり興味深いものではありません。

于 2012-09-01T12:16:40.437 に答える
1

'PIC X'FILLER変数は、おそらく88レベルの作業用ストレージのフラグであるため、非常に重要です。

たとえば、このタイプの構成をよく使用します。

01 FILLER                     PIC X.
    88 OPTION-IS-ON        VALUE 'Y', FALSE 'N'.
    88 OPTION-IS-OFF       VALUE 'N'.

これは、条件を使用してのみ参照するフラグを定義します。たとえば、次のように使用できます。

SET OPTION-IS-ON TO TRUE.     | This puts a 'Y' in the PIC X
   .
   .
   .
IF OPTION-IS-ON
   do something
END-IF

この場合、実際のフラグ値自体を参照する必要はないため、名前を付ける必要はありません。

88レベルの「FALSE」を使用すると、ステートメントを使用するときに何を保存するかを指定できます。

SET OPTION-IS-ON TO FALSE     | This puts an 'N' in the PIC X

もちろん、これは次のように言うのと同じです。

SET OPTION-IS-OFF TO TRUE     | This also puts an 'N' in the PIC X

それはすべて、その時点で何がより読みやすいかによって異なります。

于 2012-10-10T23:42:30.500 に答える