首页 > 代码库 > ABAP 程序查找增强 简约版

ABAP 程序查找增强 简约版

*&---------------------------------------------------------------------**& Report  ZTEST001*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT  ZTEST001.TABLES : TSTC,TADIR,MODSAPT,MODACT,TRDIR,TFDIR,ENLFDIR,SXS_ATTRT ,TSTCT.DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.DATA : FIELD1(30).DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.PARAMETERS : P_TCODE LIKE TSTC-TCODE,P_PGMNA LIKE TSTC-PGMNA .DATA WA_TADIR TYPE TADIR.START-OF-SELECTION.  IF NOT P_TCODE IS INITIAL.    SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.  ELSEIF NOT P_PGMNA IS INITIAL.    TSTC-PGMNA = P_PGMNA.  ENDIF.  IF SY-SUBRC EQ 0.    SELECT SINGLE * FROM TADIR    WHERE PGMID = R3TR    AND OBJECT = PROG    AND OBJ_NAME = TSTC-PGMNA.    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.    IF SY-SUBRC NE 0.      SELECT SINGLE * FROM TRDIR      WHERE NAME = TSTC-PGMNA.      IF TRDIR-SUBC EQ F.        SELECT SINGLE * FROM TFDIR        WHERE PNAME = TSTC-PGMNA.        SELECT SINGLE * FROM ENLFDIR        WHERE FUNCNAME = TFDIR-FUNCNAME.        SELECT SINGLE * FROM TADIR        WHERE PGMID = R3TR        AND OBJECT = FUGR        AND OBJ_NAME EQ ENLFDIR-AREA.        MOVE : TADIR-DEVCLASS TO V_DEVCLASS.      ENDIF.    ENDIF.    SELECT * FROM TADIR INTO TABLE JTAB    WHERE PGMID = R3TR    AND OBJECT IN (SMOD, SXSD)    AND DEVCLASS = V_DEVCLASS.    SELECT SINGLE * FROM TSTCT    WHERE SPRSL EQ SY-LANGU    AND TCODE EQ P_TCODE.    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.    WRITE:/(19) Transaction Code - ,    20(20) P_TCODE,    45(50) TSTCT-TTEXT.    SKIP.    IF NOT JTAB[] IS INITIAL.      WRITE:/(105) SY-ULINE.      FORMAT COLOR COL_HEADING INTENSIFIED ON.*Sorting the internal Table      SORT JTAB BY OBJECT.      DATA : WF_TXT(60) TYPE C,      WF_SMOD TYPE I ,      WF_BADI TYPE I ,      WF_OBJECT2(30) TYPE C.      CLEAR : WF_SMOD, WF_BADI , WF_OBJECT2.*Get the total SMOD.      LOOP AT JTAB INTO WA_TADIR.        AT FIRST.          FORMAT COLOR COL_HEADING INTENSIFIED ON.          WRITE:/1 SY-VLINE,          2 Enhancement/ Business Add-in,          41 SY-VLINE ,          42 Description,          105 SY-VLINE.          WRITE:/(105) SY-ULINE.        ENDAT.        CLEAR WF_TXT.        AT NEW OBJECT.          IF WA_TADIR-OBJECT = SMOD.            WF_OBJECT2 = Enhancement .          ELSEIF WA_TADIR-OBJECT = SXSD.            WF_OBJECT2 =  Business Add-in.          ENDIF.          FORMAT COLOR COL_GROUP INTENSIFIED ON.          WRITE:/1 SY-VLINE,          2 WF_OBJECT2,          105 SY-VLINE.        ENDAT.        CASE WA_TADIR-OBJECT.          WHEN SMOD.            WF_SMOD = WF_SMOD + 1.            SELECT SINGLE MODTEXT INTO WF_TXT            FROM MODSAPT            WHERE SPRSL = SY-LANGU            AND NAME = WA_TADIR-OBJ_NAME.            FORMAT COLOR COL_NORMAL INTENSIFIED OFF.          WHEN SXSD.*For BADis            WF_BADI = WF_BADI + 1 .            SELECT SINGLE TEXT INTO WF_TXT            FROM SXS_ATTRT            WHERE SPRSL = SY-LANGU            AND EXIT_NAME = WA_TADIR-OBJ_NAME.            FORMAT COLOR COL_NORMAL INTENSIFIED ON.        ENDCASE.        WRITE:/1 SY-VLINE,        2 WA_TADIR-OBJ_NAME HOTSPOT ON,        41 SY-VLINE ,        42 WF_TXT,        105 SY-VLINE.        AT END OF OBJECT.          WRITE : /(105) SY-ULINE.        ENDAT.      ENDLOOP.      WRITE:/(105) SY-ULINE.      SKIP.      FORMAT COLOR COL_TOTAL INTENSIFIED ON.      WRITE:/ No.of Exits: , WF_SMOD.      WRITE:/ No.of BADis: , WF_BADI.    ELSE.      FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.      WRITE:/(105) No userexits or BADis exist.    ENDIF.  ELSE.    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.    WRITE:/(105) Transaction does not exist.  ENDIF.AT LINE-SELECTION.  DATA : WF_OBJECT TYPE TADIR-OBJECT.  CLEAR WF_OBJECT.  GET CURSOR FIELD FIELD1.  CHECK FIELD1(8) EQ WA_TADIR.  READ TABLE JTAB WITH KEY OBJ_NAME = SY-LISEL+1(20).  MOVE JTAB-OBJECT TO WF_OBJECT.  CASE WF_OBJECT.    WHEN SMOD.      SET PARAMETER ID MON FIELD SY-LISEL+1(10).      CALL TRANSACTION SMOD AND SKIP FIRST SCREEN.    WHEN SXSD.      SET PARAMETER ID EXN FIELD SY-LISEL+1(20).      CALL TRANSACTION SE18 AND SKIP FIRST SCREEN.  ENDCASE.  DO 2 TIMES.  ENDDO.

 

ABAP 程序查找增强 简约版