E*( 入力フィールド ) E IFR 100 10 INPFLD X 100 E IPR 100 4 0 INP.POS X 100 E ILR 100 3 0 INP.LEN X 100 E ITR 100 1 INP.TYP X 100 E IDR 100 2 INP.DEC X 100 IUSRSPC DS I 1 10 USNAME I 11 20 USLIB IRCVVAR DS I B 1 40OFFSET I B 9 120NOENTR I B 13 160LSTSIZ I* リストデータ・セクション ... フィールドAPI IRCVAR1 DS I 1 10 FLDNAM I 11 11 FLDTYP I 12 12 FLDUSG I B 13 160FLDOUT I B 17 200FLDINP I B 21 240FLDBYT I B 25 280FLDKTA I B 29 320FLDDEC I 33 82 FLDTXT I 83 84 FLDHNS I B 85 880FLDHNL I 89 152 FLDHNG I 153 172 FLDCH1 I 173 192 FLDCH2 I 193 212 FLDCH3 I DS I B 1 40LENDTA I B 5 80STRPOS C EXSR USRSPC C****************************************************** C USRSPC BEGSR C****************************************************** C* フィールド の リスト API : QUSLFLD によって作成された C* ユーザー 空間 : UPDSPC.QTEMP を検索する。 CSR MOVEL'UPDSPC 'USNAME CSR MOVEL'QTEMP 'USLIB C* 1. リストデータセクション の オフセット 値を検索 CSR Z-ADD125 STRPOS CSR Z-ADD16 LENDTA C*----------------------------------------------------+ C CALL 'QUSRTVUS' | C PARM USRSPC | C PARM STRPOS | C PARM LENDTA | C PARM RCVVAR | C*----------------------------------------------------+ C* DS:RCVVAR によって OFFSET,LSTSIZ を受取った CSR Z-ADDOFFSET STRPOS CSR ADD 1 STRPOS CSR Z-ADDLSTSIZ LENDTA C* リストサイズ の分だけ LOOP して検索 CSR 1 DO NOENTR N 40 N=1-NOENTR C*----------------------------------------------------+ C CALL 'QUSRTVUS' | C PARM USRSPC | C PARM STRPOS | C PARM LENDTA | C PARM RCVAR1 | C*----------------------------------------------------+ C* C* - - - 入力フィールドの SAVE - - - CSR MOVELFLDNAM IFR,N 名前 CSR MOVE FLDINP IPR,N 位置 CSR MOVE FLDBYT ILR,N 長さ CSR MOVE FLDTYP ITR,N タイプ CSR MOVE FLDDEC IDR,N 小数 C* - - - - - - - - - - - - - - - - - - - CSR ADD LENDTA STRPOS CSR END N=1-NOENTR C* CSR USREND ENDSR