SAP快速查询2代3代增强的代码

tech2023-10-07  96

*&---------------------------------------------------------------------* *& Report  ZSAP_ENHANCEMENT *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------*

REPORT ZSAP_ENHANCEMENT. 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:/(109) sy-uline.       FORMAT COLOR COL_HEADING INTENSIFIED ON.       SORT jtab BY object.       DATA : wf_txt(60) TYPE c,             wf_smod TYPE i ,             wf_badi TYPE i ,             CNO(3) TYPE c,             wf_object2(30) TYPE c.       CLEAR : wf_smod, wf_badi , wf_object2.       LOOP AT jtab INTO wa_tadir.         AT FIRST.           FORMAT COLOR COL_HEADING INTENSIFIED ON.           WRITE:/1 sy-vline,           2 '',           5 sy-vline,           6 'Enhancement/ Business Add-in',           45 sy-vline ,           46 'Description',           109 sy-vline.           WRITE:/(109) 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 'No.',           5 sy-vline,           6 wf_object2,           109 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.             CNO = wf_smod.           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.             CNO = wf_badi.         ENDCASE.         WRITE:/1 sy-vline,         2 CNO,         5 sy-vline,         6 wa_tadir-obj_name HOTSPOT ON,         45 sy-vline ,         46 wf_txt,         109 sy-vline.         AT END OF object.           WRITE : /(109) sy-uline.         ENDAT.       ENDLOOP.       WRITE:/(109) 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:/(109) 'No userexits or BADis exist'.     ENDIF.   ELSE.     FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.     WRITE:/(109) '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+5(20).   MOVE jtab-object TO wf_object.   CASE wf_object.     WHEN 'SMOD'.       SET PARAMETER ID 'MON' FIELD sy-lisel+5(10).       CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.     WHEN 'SXSD'.       SET PARAMETER ID 'EXN' FIELD sy-lisel+5(20).       CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.   ENDCASE.

最新回复(0)