0

私のプログラムでは、データベーステーブルから取得したデータを次の配列に入力し続け、それを調べて特定の単語を見つけます。

01 PRODUCTS-TABLE.
     03 PRODUCT-LINE                 PIC X(40) OCCURS 50 TIMES.

6 回発生することもあれば、6 回以上発生することもあります。

配列にデータを書き込むたびに配列の行数を知りたいのですが、どうすればよいですか?

私はこれを試しましたが、固定長に基づいています:

 INSPECT-PROCESS.
     MOVE 0 TO TALLY-1.
     INSPECT PRODUCTS-TABLE TALLYING TALLY-1 FOR ALL "PRODUCT"
     IF TALLY-1 > 0
     MOVE SER-NUMBER TO HITS-SN-OUTPUT
     MOVE FILLER-SYM TO FILLER-O
     MOVE PRODUCT-LINE(1) TO HITS-PR-OUTPUT
     WRITE HITS-REC
     PERFORM WRITE-REPORT VARYING CNT1 FROM 2 BY 1 UNTIL CNT1 = 11.

 WRITE-REPORT.
     MOVE "   " TO HITS-SN-OUTPUT
     MOVE PRODUCT-LINE(CNT1) TO HITS-TX-OUTPUT
     WRITE HITS-REC.

最初の出力行に SN と最初の製品ラインを書き込み、次の行に残りのすべての製品ラインを書き込み、SN を空白にします。

次のようなもの: 12345678 最初の製品ライン 2 番目の製品ラインなど

動作していますが、CNT1 が 11 の場合にのみ停止します。毎回 PRODUCTS-TABLE に実際にある行数に基づいて変数 CNT1 をプロシージャに供給するにはどうすればよいですか?

4

1 に答える 1