私のプログラムでは、データベーステーブルから取得したデータを次の配列に入力し続け、それを調べて特定の単語を見つけます。
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 をプロシージャに供給するにはどうすればよいですか?