AT SELECTION-SCREEN.
CASE SSCRFIELDS-UCOMM.
WHEN 'ONLI'.
PERFORM FORM_YIELD_SELECT. " 수율분석 조회
WHEN 'FC01'.
PERFORM FORM_YIELD_CREATE. " 수율분석 생성
WHEN 'FC02'.
* 제품별 실제 원가 구성요소 데이터 집계 및 조회 Call
CALL TRANSACTION C_TCODE1.
WHEN 'FC03'.
* Standard/Results Yield Rate Totalize Call
CALL TRANSACTION C_TCODE2.
ENDCASE.
*---------------------------------------------------------------------*
* AT USER-COMMAND *
*---------------------------------------------------------------------*
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'REFRESH'.
SY-LSIND = 0.
PERFORM FORM_YIELD_SELECT.
PERFORM FORM_WRITE_DATA.
ENDCASE.
이렇게 사용하면 그림처럼 아이콘을 사용할 수 있게 나타나는데...(위쪽 기본 아이콘이랑 아래쪽 두개)
AT SELECTION-SCREEN.
CASE SSCRFIELDS-UCOMM.
*--- 2008.01.10 radiobutton 추가로 조건문 수정
* WHEN 'ONLI'.
* PERFORM FORM_YIELD_SELECT. " 수율분석 조회
* WHEN 'FC01'.
* PERFORM FORM_YIELD_CREATE. " 수율분석 생성
*--- 2008.01.10 radiobutton 추가로 조건문 수정
WHEN 'FC02'.
* 제품별 실제 원가 구성요소 데이터 집계 및 조회 Call
CALL TRANSACTION C_TCODE1.
WHEN 'FC03'.
* Standard/Results Yield Rate Totalize Call
CALL TRANSACTION C_TCODE2.
ENDCASE.
*---------------------------------------------------------------------*
* AT USER-COMMAND *
*---------------------------------------------------------------------*
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'REFRESH'.
SY-LSIND = 0.
PERFORM FORM_YIELD_SELECT.
PERFORM FORM_WRITE_DATA.
ENDCASE.
.
.
.
*---------------------------------------------------------------------*
* START-OF-SELECTION *
*---------------------------------------------------------------------*
START-OF-SELECTION.
*--- 2008.01.10 radiobutton 추가로 조건문 수정
CASE 'X'.
WHEN P_TOT.
PERFORM FORM_YIELD_CREATE. " 수율분석 조회
WHEN P_DIS.
PERFORM FORM_YIELD_SELECT. " 수율분석 생성
ENDCASE.
*--- 2008.01.10 radiobutton 추가로 조건문 수정
이렇게 수정하면 아이콘이 하나도 안나타납니다.
AT SELECTION-SCREEN의 영향인가요?
보통 USER-COMMAND는
FORM USER_COMMAND USING P_UCOMM LIKE SY-UCOMM
P_SELFIELD TYPE SLIS_SELFIELD.
CASE P_UCOMM.
WHEN '&IC1'.
READ TABLE IT_01 INDEX P_SELFIELD-TABINDEX.
CHECK SY-SUBRC = 0.
CHECK NOT P_SELFIELD-VALUE IS INITIAL AND
P_SELFIELD-VALUE <> '0'.
ENDCASE.
ENDFORM.
이렇게 사용했었는데... AT USER-COMMAND와는 어떻게 차이가 나는 건가요?
내용이 너무 길어졌네요... 끝까지 읽어주셔서 감사 (--)(__)
댓글 3
-
avtiveman
2008.01.11 03:48
-
지의
2008.01.11 17:27
스탠다드 초기화면? 온라인? ALV? 에 따라서 틀립니다. 저거만 봐서는 스탠다드 초기화면 같은데..
님께서는 전혀 다른 것을 가지고 확인하고 있는 것입니다만.
ALV 라면 거의 근접하셨군요. 조금만 더 찾으시면 될 것 같습니다.
-
행복한외계인
2008.01.11 19:08
avtiveman님, 지의님 답변 감사드립니다.
자면서 곰곰히 생각해 보니 스탠다드 화면이라서 아이콘 생성을 안해줘서 그런 것 같더라구요.
방금 수정한 소스 본 프로그램에 적용해서 테스트해 보니 본프로그램은 GUI Status 생성되어 있어서
아무런 문제없이 결과값 조회하면 아이콘이 나타납니다.
ALV와 스탠다드가 다르다는 것을 이제 이해했습니다. ^^
application toolbar에 나타다는 아이콘은 user-command와 상관 없습니다.
SET PF-STATUS 명령어를 찾아보시고 이것에 정의되어 있는 GUI상태를 열어서
기능키(Function key)를 application toolbar에 정의 해 놓았는지 확인해 보십시요.
그리고
FORM USER_COMMAND USING P_UCOMM LIKE SY-UCOMM
P_SELFIELD TYPE SLIS_SELFIELD.
의 사용은 이벤트로 'USER_COMMAND'를 등록해서 사용할때 사용합니다.(ALV에서)