H DATEDIT(*YMD/) F********** ライブラリー一覧表 **************************************** F* QUSLOBJ のサンプル F********************************************************************** /COPY QSYSINC/QRPGLESRC,QUS /COPY QSYSINC/QRPGLESRC,QUSLOBJ D OBJOBJLIB S 20A INZ('*ALLUSR *LIBL ') D APIERR DS D GETBYT 1 4B 0 INZ(160) D AVLBYT 5 8B 0 INZ(0) D MSGID 9 15 D MSGDTA 17 160 D USRSPC DS D USNAME 10A INZ('QUSLOBJ ') D USLIB 10A INZ('QTEMP ') D MSGFFLIB DS D MSGF 10A INZ('QCPFMSG ') D MSGFLIB 10A INZ('QSYS ') D HEDSTR DS 256 D OFFSET 1 4B 0 D NOENTR 9 12B 0 D LSTSIZ 13 16B 0 D USL0100 DS QUALIFIED D OBJ 10A D OBJLIB 10A D OBJTYP 10A D SPCBIN DS D INZSIZ 10I 0 INZ(1000) D MSGDTALEN 10I 0 INZ(100) D PGMSTKCNT 10I 0 INZ(1) D RCVLEN 4B 0 INZ(%SIZE(QUSL010003)) D STRPOS 10I 0 D LENDTA 10I 0 D N 4S 0 D DATE 6A D TIME 6A C*(1) QUSCRTUS: ユーザー・スペースの作成 C*----------------------------------------------------+ C CALL 'QUSCRTUS' C PARM USRSPC C PARM 'PF ' EXATTR 10 C PARM INZSIZ C PARM ' ' INZCHR 1 C PARM '*ALL ' AUT 10 C PARM TEXT 50 C PARM '*YES ' REPLACE 10 C PARM APIERR C*----------------------------------------------------+ C AVLBYT CABNE *ZEROS SNDERR C*(2) QUSLOBJ: オブジェクト一覧 C*----------------------------------------------------+ C CALL QUSLOBJ C PARM USRSPC C PARM 'OBJL0100' FOTMAT 8 C PARM OBJOBJLIB C PARM '*LIB ' OBJTYPE 10 C PARM APIERR C*----------------------------------------------------+ C AVLBYT CABNE *ZEROS SNDERR C*(3) QUSRTVUS : ヘッダー構造の読み取り C*----------------------------------------------------+ C CALL 'QUSRTVUS' C PARM USRSPC C PARM 125 STRPOS | C PARM 16 LENDTA | C PARM HEDSTR C PARM APIERR C*----------------------------------------------------+ C AVLBYT CABNE *ZEROS SNDERR C*(4) QUSRTVUS : リスト・セクションの読み取り C* HEADER によって OFFSET,LSTSIZ を受取った C Z-ADD OFFSET STRPOS C ADD 1 STRPOS C Z-ADD LSTSIZ LENDTA C* リスト・サイズの分だけ LOOP して検索 C 1 DO NOENTR N N=1-NOENTR C*----------------------------------------------------+ C CALL 'QUSRTVUS' 99 | C PARM USRSPC | C PARM STRPOS | C PARM LENDTA | C PARM USL0100 | C*----------------------------------------------------+ C* ------( 処理の開始 - ここから )------ C 'OBJ=' CAT(P) USL0100.OBJ:0 DSP40 40 C DSP40 DSPLY C* ------( 処理の終了 - ここまで )------ C ADD LENDTA STRPOS C END N=1-NOENTR C MOVE *ON *INLR C '** END **' DSPLY ANS 1 C RETURN C SNDERR TAG C GETBYT SUB 15 MSGDTALEN C*----------------------------------------------------+ C CALL(E) 'QMHSNDPM' C PARM MSGID | C PARM MSGFFLIB | C PARM MSGDTA | C PARM MSGDTALEN | C PARM '*ESCAPE ' MSGTYPE 10 | C PARM '* ' PGMQUE 10 | C PARM PGMSTKCNT | C PARM ' ' MSGKEY 4 | C PARM APIERR C*----------------------------------------------------+ C MOVE *ON *INLR C RETURN