제가 펑션으로 ALV를 구현했는데요.
ALV의 편집모드에서 특정 필드 F4기능을 이용하려 합니다.
근데 대부분 클래스 방식의 F4기능에 대한 설명이라 미치겠네요...ㅜㅜ
현재 제가 필드 카달로그에
LS_FIELDCAT_LVC-F4AVAILABL = 'X'.
LS_FIELDCAT_LVC-REF_FIELD = 'COUNTRY'.
LS_FIELDCAT_LVC-REF_TABLE = 'ADRC'.
위와 같은식으로 설정을 하니, 말그대로.. 딕셔너리에 있는 전체값을 가져오더라구요.
근데 제가 하고 싶은건 제가 원하는 값들을 Possible Entry로 뛰우고 싶거든요...ㅜㅜ
제발 방법 좀 알려주세요..ㅜㅜ
부탁드려요..ㅜㅜ
댓글 5
-
남군
2010.04.12 20:47
-
래피드
2010.04.13 00:47
제가 알기론 Function Alv 는 F4기능을 Event 에서 Handling을 따로 지원하지 않기 때문에 저의 경우에는 se11에서 만들어서 데이터 유형에 붙여넣었거나 Fucntion Alv 를 Class 로 바꿔서 화면에 출력했습니다~
아니면 Function Alv를 Display할때 Class Alv로 바꿔주는 펑션이 있는데 이 걸 사용해서 Class 에 on_f4메소드 달고 한번 해보심이..
-
삐지미
2010.04.13 18:37
[남군]님 답변 감사드립니다..근데 제가 펑션으로 짜서 해당 프로그램으로는 안돼네요~감사합니다.
[래피드]님 답변 감사드립니다.
말씀중에 "Function Alv를 Display할때 Class Alv로 바꿔주는 펑션이 있는데" 에서 그 펑션이
"REUSE_ALV_GRID_DISPLAY_LVC" 인가요? 만약 아니라면 그 펑션을 알려주실 수 있을까요? ㅜㅜ -
Upitel
2010.04.13 19:41
'LVC_TRANSFER_FROM_SLIS'이란 펑션있는데 SLIS 필드카타로그를 LVC 필드카타로그로 변환해줍니다.
Class 형태로 바뀐 필드카탈로그를 적용하고 레이아웃 등 파라미터를 세팅 후
ALV를 GRID->SET_TABLE_FOR_FIRST_DISPLAY로 출력하시면 될 것 같습니다.
-
쥬앙
2010.04.14 00:27
DATA: LCL_EVENT_RECEIVER TYPE REF TO LCL_DEF_RECEIVER.
* 클래스 정의
CLASS LCL_DEF_RECEIVER DEFINITION.
PUBLIC SECTION.
METHODS : HANDLE_DATA_CHANGED
FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID
IMPORTING ER_DATA_CHANGED E_ONF4.
ENDCLASS.
* 클래스 구현
CLASS LCL_DEF_RECEIVER IMPLEMENTATION.
METHOD HANDLE_ON_F4.
PERFORM ON_F4 USING SENDER
E_FIELDNAME
E_FIELDVALUE
ES_ROW_NO
ER_EVENT_DATA
ET_BAD_CELLS
E_DISPLAY.
ENDMETHOD. "handle_on_f4
ENDCLASS.
* 이벤트 틍록
CREATE OBJECT LCL_EVENT_RECEIVER.
SET HANDLER:
LCL_EVENT_RECEIVER->HANDLE_ON_F4 FOR LCL_GRID.
* 이벤트 구현
FORM ON_F4 USING P_C_SENDER TYPE REF TO CL_GUI_ALV_GRID
P_FIELDNAME TYPE LVC_FNAME
P_FIELDVALUE TYPE LVC_VALUE
P_S_ROW_NO TYPE LVC_S_ROID
P_C_EVENT_DATA TYPE REF TO CL_ALV_EVENT_DATA
P_T_BAD_CELLS TYPE LVC_T_MODI
P_DISPLAY TYPE CHAR01.
PERFORM ON_F4_100 USING P_C_SENDER
P_FIELDNAME
P_FIELDVALUE
P_S_ROW_NO
P_C_EVENT_DATA
P_T_BAD_CELLS
P_DISPLAY.
ENDFORM.
이런 식으로해서 구현 하면 될듯 한데요 ㅎㅎ 쏘스가 길어서 ㅋㅋ
참고 프로그램 함 보세요..
ALV Class 로 구현하셨다면 "BCALV_EDIT_08" 프로그램을 참조해보세요~ ^^