안녕하십니까. 고수님들 도와주세요.
read report program_name into gt_source.
loop at gt_source.
search gt_source-line for 'SELECT'. 합니다.
if sy-subrc = 0.
select문장을 만나면 select문장의 만을 을 추출.
endif.
endloop.
만일 select문장이
select *
from bkpf
into corresponding fields of table gt_itab
where belnr = '0082000001'.
라면 이부분을 가겨오기위하여.
어떻게 해야합니까?
저는 search gt_source-line for '.'. 라고 했더니
'.' 이부분을 인식하지 못하는 것 같습니다.
도와주십시요. 감사합니다.
DATA: BEGIN OF GT_SOURCE OCCURS 0,
LINE(100),
END OF GT_SOURCE.
DATA: BEGIN OF GT_SELECT OCCURS 0,
LINE(100),
END OF GT_SELECT.
DATA: LV_CHECK(1),
LV_INDEX TYPE I.
PARAMETERS: P_PROG(30) OBLIGATORY.
READ REPORT P_PROG INTO GT_SOURCE.
LOOP AT GT_SOURCE.
SEARCH GT_SOURCE-LINE FOR 'SELECT'.
IF SY-SUBRC = 0 OR LV_CHECK EQ 'X'.
LV_CHECK = 'X'.
IF GT_SOURCE-LINE+0(1) EQ '*'.
CONTINUE.
ENDIF.
LV_INDEX = STRLEN( GT_SOURCE-LINE ).
IF LV_INDEX > 1.
LV_INDEX = LV_INDEX - 1.
ENDIF.
IF GT_SOURCE-LINE+LV_INDEX(1) EQ '.'.
GT_SELECT-LINE = GT_SOURCE-LINE.
APPEND GT_SELECT. CLEAR GT_SELECT.
CLEAR LV_CHECK.
CONTINUE.
ELSE.
GT_SELECT-LINE = GT_SOURCE-LINE.
APPEND GT_SELECT. CLEAR GT_SELECT.
ENDIF.
ENDIF.
ENDLOOP.
대충 이렇게 하면 될거 같아요 ㅎㅎ;;