REPORT YUSRLOCK NO STANDARD PAGE HEADING. TABLES: TRDIR, USR02. DATA: MARK,CNTR TYPE I, ACCNT LIKE USR02-ACCNT, ERDAT LIKE USR02-ERDAT, ANAME LIKE USR02-ANAME, CLI(3) VALUE 'AAA', SZIN TYPE I, SYDATUM LIKE SY-DATUM, FLAG(3). TABLES: UINFO. DATA: OPCODE TYPE X VALUE 2. DATA: BEGIN OF USR_TABL OCCURS 10. INCLUDE STRUCTURE UINFO. DATA: END OF USR_TABL. START-OF-SELECTION. CALL 'ThUsrInfo' ID 'OPCODE' FIELD OPCODE ID 'TAB' FIELD USR_TABL-*SYS*. SELECT * FROM USR02 CLIENT SPECIFIED ORDER BY MANDT BNAME. IF USR02-MANDT <> CLI. SZIN = SZIN + 1. SZIN = SZIN MOD 2. CLI = USR02-MANDT. ENDIF. IF USR02-UFLAG = 0. MARK = ' '. ELSE. MARK = 'X'. ENDIF. CLEAR FLAG. LOOP AT USR_TABL. IF USR_TABL-BNAME = USR02-BNAME AND USR_TABL-MANDT = USR02-MANDT. FLAG = '!!!'. ENDIF. ENDLOOP. SYDATUM = SY-DATUM - 30. IF SYDATUM < USR02-TRDAT. IF SZIN = 0. WRITE:/ ' ', MARK AS CHECKBOX,' ', USR02-BNAME COLOR 2, ' ',USR02-MANDT COLOR 2, ' ',USR02-USTYP COLOR 2, ' ',USR02-TRDAT COLOR 2, USR02-LTIME COLOR 2, ' ',FLAG COLOR 6. ELSE. WRITE:/ ' ', MARK AS CHECKBOX,' ', USR02-BNAME COLOR 3, ' ',USR02-MANDT COLOR 2, ' ',USR02-USTYP COLOR 2, ' ',USR02-TRDAT COLOR 2, USR02-LTIME COLOR 2, ' ',FLAG COLOR 6. ENDIF. ELSE. IF SZIN = 0. WRITE:/ ' ', MARK AS CHECKBOX,' ', USR02-BNAME COLOR 2, ' ',USR02-MANDT COLOR 2, ' ',USR02-USTYP COLOR 2, ' ',USR02-TRDAT COLOR 4, USR02-LTIME COLOR 4, ' ',FLAG COLOR 6. ELSE. WRITE:/ ' ', MARK AS CHECKBOX,' ', USR02-BNAME COLOR 3, ' ',USR02-MANDT COLOR 2, ' ',USR02-USTYP COLOR 2, ' ',USR02-TRDAT COLOR 4, USR02-LTIME COLOR 4, ' ',FLAG COLOR 6. ENDIF. ENDIF. HIDE: USR02-BNAME, USR02-MANDT. ENDSELECT. CLEAR USR02. TOP-OF-PAGE. WRITE:/ 'LOCK USER CLIENT TYPE LAST lOGIN ' COLOR 6. SKIP. AT USER-COMMAND. IF SY-UCOMM = 'SEL'. DO. CLEAR MARK. READ LINE SY-INDEX FIELD VALUE MARK. IF SY-SUBRC NE 0. EXIT. ENDIF. IF USR02-BNAME IS INITIAL.CONTINUE.ENDIF. SELECT SINGLE * FROM USR02 CLIENT SPECIFIED WHERE MANDT = USR02-MANDT AND BNAME = USR02-BNAME. IF MARK = 'X' AND USR02-UFLAG = 0. USR02-UFLAG = 64. UPDATE USR02 CLIENT SPECIFIED SET: UFLAG = 64 WHERE MANDT = USR02-MANDT AND BNAME = USR02-BNAME. COMMIT WORK. ENDIF. IF MARK = ' ' AND USR02-UFLAG = 64. USR02-UFLAG = 0. UPDATE USR02 CLIENT SPECIFIED SET: UFLAG = 0 WHERE MANDT = USR02-MANDT AND BNAME = USR02-BNAME. COMMIT WORK. ENDIF. ENDDO. CLEAR USR02. ENDIF.