DEFINE __exclude.
clear exclud.
move : &1 to exclud-tcode.
append exclud.
END-OF-DEFINITION.
옛날에 짜논 코딩 수정하는 과정에서
Top 부분에 위와 같은 코딩을 발견했는데
왜 선언해논건지 잘 모르겠네요
이지아밥 책에도 안나와있고 인터넷에도 안나와있어서 물어봅니다
어떤 기능 하는지 구체적으로 무엇을 할때 쓰는지 좀 알려주세요 ㅠ
댓글 7
-
카스테라
2011.01.07 18:45
-
오렌지겅주님
2011.01.07 19:54
좀더 자세히 알려주시면 안될까요?
어음등록하는 프로그램인데 음... 엑셀기능 사용하는곳이 없는거 같은데...
그냥 값입력받아서 테이블에 저장하는 프로그램이거든요
-
초보아밥퍼
2011.01.07 20:03
화면상에 exclude 시킬 펑션코드를 넣기 위한 매크로로 보이네요.
function code 'XXXX', 'YYYY', 'ZZZZ' 라고 등록을 했을때
어떤 경우에 따라 'XXXX' 는 미표현 하기위해 사용한 경우겠네요.
-
지크
2011.01.07 20:15
macro는 명령어의 set를 정의해 놓은 거라고 생각하심 됩니다.
위 구문을 예를 들자면,
_exclude 'BACK' 이런 식으로 사용하게 되면, macro에서 정의한 &1값에 'BACK'이 입력되어 exclude라는 itab에 한 라인이 append되는 겁니다.
위와 같은 식으로 macro를 정의해 놓으면, 반복되는 구문을 피할 수 있어서 재활용성이 좋아지는 거죠..
-
취선자
2011.01.10 18:43
매크로는 문자열 치환 역할을 합니다.
위와 같은 경우
코드에
__exclude 'XXXX'.
set pf-status 'STA_100' excluding exclud.
라고 되어 있다면
실제로는 clear exclud.
move : 'XXXX' to exclud-tcode.
append exclud.
set pf-status 'STA_100' excluding exclud.
로 코드가 변경되어 실행됩니다.
코드가 반복되어질 경우 많이 사용됩니다.
조건에 따라 메뉴를 제어하기 위해 사용되어진 것 같네요.
-
jube
2011.01.13 00:49
사용적인 의미에서 본다면 "Function = Perform문 = Macro" 라고 생각하시면 됩니다.
그러면 왜 Macro 를 사용하느냐. 편리하기 때문에?
특정일을 기준으로 요일을 알아낼 수 있는 방법으로 설명하자면
1.첫번째 펑션을 이용할 경우
DATA: day TYPE c,
t_day(2) TYPE c.
call function 'DATE_COMPUTE_DAY'
exporting
date = sy-datum
importing
day = day.
clear: t_day.
if day = '1'.
t_day = '월'.
elseif day = '2'.
t_day = '화'.
elseif day = '3'.
t_day = '수'.
elseif day = '4'.
t_day = '목'.
elseif day = '5'.
t_day = '금'.
elseif day = '6'.
t_day = '토'.
elseif day = '7'.
t_day = '일'.
endif.
이렇게 알아낼 수 있겠죠? 재 사용해야 할때는 다시 Call Function 호출해서 코딩을 해줘야겠죠?
2.Macro를 사용할 때
DATA: day TYPE c,
t_day(2) TYPE c.
DEFINE get_day.
clear: day.
call function 'DATE_COMPUTE_DAY'
exporting
date = &1
importing
day = day.
clear: t_day.
if day = '1'.
t_day = '월'.
elseif day = '2'.
t_day = '화'.
elseif day = '3'.
t_day = '수'.
elseif day = '4'.
t_day = '목'.
elseif day = '5'.
t_day = '금'.
elseif day = '6'.
t_day = '토'.
elseif day = '7'.
t_day = '일'.
endif.
END-OF-DEFINITION.
이렇게 선언한 다음 요일을 알아내고 싶을 때
get_day sy-datum 또는 get_day '20110112'.
짧게 코딩만 해도
Define 구문으로 이동해서 Define 내에 코딩되어 있는 구문을 수행하게 됩니다.
편하죠?
단, 매크로는 제약사항이 있습니다.
첫째. 디버깅이 되지 않습니다. Define ~ End of Definition 사이의 코딩은 브레이크를 걸 수 없거든요.
둘째. 매크로가 입력 받을 수 있는 변수는 &1 ~ &9 까지 9개만 지정이 가능합니다.
-
jube
2011.01.13 00:52
그리고 이지아밥책에 보시면 242 페이지에 2페이지로 매크로에 대한 설명이 있습니다. ^^
일명 macro 라고 하는것입니다.
excel 의 macro 기능을 이용하는것이라고 이해하시면 빠를겁니다.