• Lock and Unlock Users


    REPORT ZUSR_LOCK.
    TABLES USR02.
    DATA: Z_USR02 LIKE USR02 OCCURS 0 WITH HEADER LINE.
    DATA: ZCOUNT TYPE I,
           DEST(72).

    *-- Select-Options-----------------------------------------------------
    SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-100.
    SELECT-OPTIONS: S_BNAME FOR USR02-BNAME NO INTERVALS.
    *                S_CLASS FOR USR02-CLASS NO INTERVALS.
    PARAMETER: ZTEST AS CHECKBOX DEFAULT 'X'.
    selection-screen end of block 1.

    SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE TEXT-110.
    PARAMETERS: ZUFLAG_L RADIOBUTTON GROUP RADI,
                ZUFLAG_U RADIOBUTTON GROUP RADI.
    SELECTION-SCREEN END OF BLOCK 2.
    *-- Select-Options-----------------------------------------------------
    AT SELECTION-SCREEN.
      IF SY-SUBRC NE 0.
        MESSAGE I001(CJ) WITH TEXT-001.
        EXIT.
      ENDIF.
      IF S_BNAME IS INITIAL.
    * and    S_CLASS IS INITIAL.
        MESSAGE E001(CJ) WITH TEXT-003.
      ENDIF.

    START-OF-SELECTION.

    IF ZUFLAG_L EQ 'X'.
      SELECT * FROM USR02 INTO TABLE Z_USR02 WHERE BNAME IN S_BNAME
    *                                           AND CLASS IN S_CLASS
                                               AND UFLAG EQ ' '.
    ENDIF.

    IF ZUFLAG_U EQ 'X'.
      SELECT * FROM USR02 INTO TABLE Z_USR02 WHERE BNAME IN S_BNAME
    *                                           AND CLASS IN S_CLASS
                                               AND UFLAG EQ '64'.
      ENDIF.
      IF SY-SUBRC <> 0.
        MESSAGE I001(CJ) WITH TEXT-002.
        EXIT.
      ELSE.
        IF ZTEST EQ ' '.
          LOOP AT Z_USR02.
            SELECT SINGLE * FROM USR02 WHERE BNAME EQ Z_USR02-BNAME.
            IF ZUFLAG_L EQ 'X'.
              USR02-UFLAG = '64'.
            ENDIF.
            IF ZUFLAG_U EQ 'X'.
              USR02-UFLAG = '0'.
            ENDIF.
            MODIFY USR02.
            IF SY-SUBRC EQ 0.
              ZCOUNT = ZCOUNT + 1.
    *          z_usr02-zbvmaster = 'X'.
              MODIFY Z_USR02.
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
    END-OF-SELECTION.

    *Write result
      IF NOT ZCOUNT IS INITIAL.
        IF ZUFLAG_L EQ 'X'.
          WRITE TEXT-200 TO DEST(40).
          WRITE ZCOUNT TO DEST+41(3).
        ENDIF.
        IF ZUFLAG_U EQ 'X'.
          WRITETEXT-300 TO DEST(40).
          WRITE ZCOUNT TO DEST+41(3).
        ENDIF.
      ELSE.
        WRITETEXT-400.
      ENDIF.

      LOOP AT Z_USR02.
        WRITE: /3 Z_USR02-BNAME.
      ENDLOOP.

    TOP-OF-PAGE.
      WRITE: /1 DEST COLOR 3.
  • 相关阅读:
    C# 对Outlook2010进行二次开发
    利用AForge.NET 调用电脑摄像头进行拍照
    SQL2012 提示评估已过期 解决方案- sql server问题
    图片转换PDF
    [转载]理解weight decay
    ATTENTION NETWORK分析
    sys.stdout.write和print和sys.stdout.flush
    Flutter免费(视频)教程汇总
    Windows核心编程随笔
    .NET家族
  • 原文地址:https://www.cnblogs.com/elegantok/p/1601745.html
Copyright © 2020-2023  润新知