여기저기 찾아봤지만 어렵네요...
select-options s_vdt like sy-datum. 에서
s_vdt-low 부분에 전일을 default로 넣고 싶네요..
1. 오늘이 월요일이면 전주 금요일 날짜를 넣고싶습니다. 금요일이 휴일이었으면 목요일 날짜를 넣고요..
2. s_vdt-low의 default 값으로 넣고 싶은데 어떻게 해야 하나요?
댓글 8
-
無念군
2009.03.31 23:05
-
아카드05
2009.03.31 23:20
무념군님께서 설명하신 내용을 START-OF-SELECTION 전에 INITIALIZATION 에 코딩하시면
INITIALIZATION 에서 구해진 일자가 default로 화면에 뜹니다.
참고하세요~
-
보나
2009.03.31 23:54
Call Function 'HOLIDAY_CHECK_AND_GET_INFO'
을 이용해보셔도 ^^;;; 공휴일과 휴일세팅은 IMG 에서 해놓아야 합니다.
Select-Option 의 Low 에 default 로 넣는 건
http://e-abap.servebbs.net/zb/bbs/zboard.php?id=ONEPAPER&no=45
http://e-abap.servebbs.net/zb/bbs/zboard.php?id=ONEPAPER&no=102
등등 참고하세요.
아카드05님 말씀처럼 INITIALIZATION 이벤트에 구현하시면 됩니다.
-
Bizzard.Chul
2009.04.01 00:08
DATA : LV_DAYTXT LIKE HRVSCHED-DAYTXT,
LV_DAYNR LIKE HRVSCHED-DAYNR.
DATA: THOC LIKE THOC OCCURS 0 WITH HEADER LINE.
S_VDT-LOW = SY-DATUM - 1.
DO 7 TIMES. "연속휴일 체크
CALL FUNCTION 'RH_GET_DATE_DAYNAME' "요일 찾는 Function
EXPORTING
LANGU = SY-LANGU
DATE = S_VDT-LOW "입력된 변수임
IMPORTING
DAYNR = LV_DAYNR
DAYTXT = LV_DAYTXT.
IF LV_DAYNR = '7' . "일요일
S_VDT-LOW = S_VDT-LOW - 2.
ELSEIF LV_DAYNR = '6'." 토요일
S_VDT-LOW = S_VDT-LOW - 1.
ENDIF.
*---(회사 공휴일 및 년도별 특정 등록 휴일체크;창립일,국민투표일등)
SELECT SINGLE * FROM THOC INTO THOC WHERE IDENT = 'KR'
"각 회사 calendar:KO,KR
AND DATUM = S_VDT-LOW.
IF SY-SUBRC = 0. "공휴일
S_VDT-LOW = S_VDT-LOW - 1.
ELSE.
EXIT.
ENDIF.
ENDDO.
*INITIALIZATION에서 S_VDT에 APPEND
-
불근모자
2009.04.01 00:40
오옷~~~ +_+
캄사합니다...
그런데 Call Function 'HOLIDAY_CHECK_AND_GET_INFO' 는 공휴일만 체크하는 것 같습니다..
-
보나
2009.04.01 02:32
공휴일 체크 펑션이구요;
THOC 테이블과 같습니다.
주말(토/일)포함 사용하시려면
Bizzard.Chul님의 소스에서와 같이 토,일 체크 후 펑션 이용하시면 될 것 같습니다.
-
mars
2009.04.01 18:10
Calculate Previous Working Day
DATA: p_date TYPE sy-datum,
g_date TYPE sy-datum.
CALL FUNCTION 'BKK_GET_PRIOR_WORKDAY'
EXPORTING
i_date = p_date "date
i_calendar1 = 'KR'. "Factory calendar id
IMPORTING
e_workday = g_date.
참고) Calculates the Next Working Day for a Day
Call function 'BKK_GET_NEXT_WORKDAY'
EXPORTING
I_DATE = p_date "date
I_CALENDAR1 = 'KR'. "Factory calendar id
IMPORTING
e_workday = g_date. -
불근모자
2009.04.02 01:54
도와주신덕분에 전영업일 구하기를 한번 만들어 봤습니다...^^;;
data: lt_day like ISCAL_DAY occurs 0 with header line.
data: ls_day like line of lt_day.
data: l_bdate like sy-datum.
data: l_line type i.
l_bdate = sy-datum - 1.
do.
CALL FUNCTION 'HOLIDAY_GET'
EXPORTING
HOLIDAY_CALENDAR = 'KR'
FACTORY_CALENDAR = 'KR'
DATE_FROM = l_bdate
TABLES
holidays = lt_day.
read table lt_day into ls_day with key DATE = l_bdate.
if sy-subrc is initial.
l_bdate = l_bdate - 1.
else.
exit.
endif.
enddo.
s_vdt-low = l_bdate.
APPEND s_vdt.
http://e-abap.servebbs.net/zb/bbs/zboard.php?id=abaptip&no=184
을 활용해 보시면 될듯 한데요 +_+
output set -----------------------
가령. 현재 일자 - 1일 을 하고..
if (현재일 - 1일) = '휴일'
한번더 -1일처리 ..
else. " ( 현재일 -1일) <> 휴일
default setting --> output..
endif.