E* ARA:LEVEL 別部品構成 KEY の配列 E ARA 20 10 E* ARA の長さ = 部品構成 KEY の合計 バイト 数 E* ARA の項目数 = 最大 レベル の深さ I*( 部品展開 キー の DS 記述 ) I DS I 1 20 T$KEY I 1 10 OY$KEY I 11 20 KO$KEY C****************************************************** C READ BEGSR C****************************************************** C*( 部品構成 ファイル の READ ) CSR MOVE STRCOD OY$KEY CSR MOVE *LOVAL KO$KEY CSR MOVE *BLANKS ARA CSR Z-ADD1 LV 20 CSR NXTCMP TAG C*----------------------------------------------------+ C TENKEY KLIST | C KFLD OYCODE | C KFLD KOCODE | C*----------------------------------------------------+ CSR MOVE OY$KEY OYCODE CSR MOVE KO$KEY KOCODE C*( 子部品があるか ?) CSR SETOF 50 CSR TENKEY READETENKAI 50 C* 子部品なし CSR *IN50 IFEQ '1' OY\KEY C* ロー・レベル = 1 であれば終了 CSR NXTLV TAG CSR LV CABEQ1 REDEND C* 親の兄弟を検索 CSR SUB 1 LV C* 横部品あるか ? CSR ARA,LV CABEQ*BLANKS NXTLV CSR MOVE ARA,LV T$KEY C* 子部品あり CSR ELSE OY\KEY CSR ADD 1 LV CSR END OY\KEY C* 部品構成 マスター を検索 C*----------------------------------------------------+ C TENKEY KLIST | C KFLD OYCODE | C KFLD KOCODE | C*----------------------------------------------------+ CSR SETOF 99 CSR TENKEY CHAINTENKAI 99 CSR *IN99 IFEQ '0' C*( PROCES: 部品構成の処理 ) C*----------------------------------------------------+ C EXSR PROCES | C*----------------------------------------------------+ CSR END CSR TENKEY SETGTTENKAI CSR SETOF 50 CSR OYKEY READETENKAI 50 CSR *IN50 IFEQ '1' CSR MOVE *BLANKS ARA,LV CSR ELSE CSR MOVE OYCODE OY$KEY CSR MOVE KOKEY KO$KEY CSR MOVE T$KEY ARA,LV CSR END CSR MOVE KO$KEY OY$KEY CSR MOVE *BLANKS KO$KEY CSR GOTO NXTCMP