2009 Apr 20 11:35 AM
Hi experts..
I am using read report statement..
example : read report itab-repid into rtab. suppose report name is mv45afzz.
this include program consist of two FORM defination..
I want to check that the form contains active code or not.. for that I am using following code..
LOOP AT ITAB.
READ REPORT ITAB-REPID INTO RTAB.
LOOP AT RTAB.
IF RTAB-TEXT(1) = '*'.
TEXT_TYPE-TEXT = 'NO ACTIVE CODING'.
MODIFY ITAB FROM TEXT_TYPE TRANSPORTING TEXT
WHERE MODULENAME = ITAB-MODULENAME.
ELSEIF RTAB-TEXT CS 'FORM USEREXIT'
OR RTAB-TEXT CS 'form userexit'.
ELSEIF RTAB-TEXT CS 'ENDFORM'
OR RTAB-TEXT CS 'endform'.
ELSEIF RTAB-TEXT = SPACE.
ELSE.
TEXT_TYPE-TEXT = 'ACTIVE CODING'.
MODIFY ITAB FROM TEXT_TYPE TRANSPORTING TEXT
WHERE MODULENAME = ITAB-MODULENAME.
ENDIF.
ENDLOOP.and i want display text into ouput,..
MV45AFZZ FORM USEREXIT_ ACTIVE CODING.
IN ABOVE FORMAT..
BUT I AM FACING PROBLEM IN READING THE FORMS. .. IF PROGRAMS HAVING MORE THAN ONE FORMS.... PLEASE HELP ME...
Hi experts..
I am using read report statement..
example : read report itab-repid into rtab. suppose report name is mv45afzz.
this include program consist of two FORM defination..
I want to check that the form contains active code or not.. for that I am using following code..
LOOP AT ITAB.
READ REPORT ITAB-REPID INTO RTAB.
LOOP AT RTAB.
IF RTAB-TEXT(1) = '*'.
TEXT_TYPE-TEXT = 'NO ACTIVE CODING'.
MODIFY ITAB FROM TEXT_TYPE TRANSPORTING TEXT
WHERE MODULENAME = ITAB-MODULENAME.
ELSEIF RTAB-TEXT CS 'FORM USEREXIT'
OR RTAB-TEXT CS 'form userexit'.
ELSEIF RTAB-TEXT CS 'ENDFORM'
OR RTAB-TEXT CS 'endform'.
ELSEIF RTAB-TEXT = SPACE.
ELSE.
TEXT_TYPE-TEXT = 'ACTIVE CODING'.
MODIFY ITAB FROM TEXT_TYPE TRANSPORTING TEXT
WHERE MODULENAME = ITAB-MODULENAME.
ENDIF.
ENDLOOP.and i want display text into ouput,..
MV45AFZZ FORM USEREXIT_ ACTIVE CODING.
IN ABOVE FORMAT..
BUT I AM FACING PROBLEM IN READING THE FORMS. .. IF PROGRAMS HAVING MORE THAN ONE FORMS.... PLEASE HELP ME...
2009 Apr 20 11:42 AM
Hi,
You may try using SCAN functionality to analyze the read report. Go through the SAP help provided for SCAN functionality and you will understand it better.
Regards
Sitharamaraju
2009 Apr 20 12:01 PM
Hi,
Use the code given below...
data :
fs type string,
t_itab like table of fs.
data : fl_flag type c.
LOOP AT ITAB.
READ REPORT ITAB-REPID INTO RTAB.
LOOP AT RTAB.
IF RTAB-TEXT CS 'FORM USEREXIT'
OR RTAB-TEXT CS 'form userexit'.
CONCATENATE ITAB-REPID RTAB-TEXT TO FS.
fl_flag = 'F'.
ELSEIF RTAB-TEXT CS 'ENDFORM'
OR RTAB-TEXT CS 'endform'.
IF FL_FLAG NE 'N'.
CONCATENATE FS 'ACTIVE CODING' TO FS.
ENDIF.
fl_flag = 'S'.
ENDIF.
IF FL_FLAG = 'F'.
IF RTAB-TEXT(1) = '*'.
CONCATENATE FS 'NO ACTIVE CODING' TO FS.
FL_FLAG = 'N'.
ENDIF.
ELSEIF FL_FLAG = 'S'.
APPEND FS TO T_ITAB.
ENDIF.
ENDLOOP.
ENDLOOP.
LOOP AT T_ITAB INTO FS.
WRITE FS.
ENDLOOP.
2009 Apr 22 5:18 AM
Solved by myself..
LOOP AT itab.
text_type-repid = itab-repid.
READ REPORT itab-repid INTO rtab.
LOOP AT rtab INTO wa_rtab.
TRANSLATE wa_rtab-text TO UPPER CASE.
IF wa_rtab-text CS 'FORM' AND wa_rtab-text CS 'USEREXIT'
AND wa_rtab-text(1) NE '*' AND NOT wa_rtab-text CS 'PERFORM'
AND NOT wa_rtab-text CS '"USEREXIT'
AND NOT wa_rtab-text CS '" USEREXIT'.
MOVE : wa_rtab-text TO text_type-modulename,
itab-repid TO text_type-repid,
sy-tabix TO text_type-zzline.
APPEND text_type.
f_check = 'X'.
ENDIF.
IF wa_rtab-text CS 'ENDFORM' AND f_check EQ 'X'
AND wa_rtab-text(1) NE '*'.
IF f_active EQ space.
text_type-text = 'NO ACTIVE CODING'.
MODIFY text_type TRANSPORTING text
WHERE repid = itab-repid
AND modulename = text_type-modulename.
ELSE.
f_active = space.
ENDIF.
f_check = space.
ENDIF.
IF f_check = 'X'.
IF ( wa_rtab-text(1) = '*' OR wa_rtab-text = space ) OR
( wa_rtab-text CS 'FORM' AND wa_rtab-text CS 'USEREXIT' ) OR
f_active = 'X'.
ELSE.
f_active = 'X'.
text_type-text = 'ACTIVE CODING'.
MODIFY text_type TRANSPORTING text
WHERE repid = itab-repid
AND modulename = text_type-modulename.
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
| User | Count |
|---|---|
| 6 | |
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |