alv에서 f4를이용해 값을넣고 data_change 를 사용해서
f4가있는 필드의 값이 바뀌면 옆필드에 자동으로 그값에맞는 description을 셀렉트해서 넣어주려고하는데
잘안돼네요.,..
조언 부탁드려요~~~!!!
댓글 6
-
보나
2008.08.20 04:32
-
보나
2008.08.20 04:33
써놓고놔도 복잡하네요 ;;;
도움이 되셨길;;;
-
CoolGuy
2008.08.20 05:52
저런식으로 했는데요.... 처음 F4를 눌러서 선택하면 잘타서 옆필드에 디스크립션이 나옵니다!!
근데 다시 그필드를 F4를 눌러서 다른값을선택하면 값이 모두 사라져 버리네요 ㅠㅠ
디버깅걸어보니 VALUE를 처음부터 가져오지 못하네요!!결국 셀렉트도 못하구 모디파이시키니까 값이 없어져 버리네요
왜 VALUE를 가져오지 못할까요 ㅠㅠ 여기서 VALUE는 F4필드값입니다 ㅠㅠ
도와주세요~~
-
보나
2008.08.20 18:25
LVC_T_F4 (LVC_S_F4)
위부분에 대한 로직점검을 한번 해보시겠어요?
F4 의 value (필드네임? 이겠죠?) 를 가져오지 못한 적이 있었는데 위 부분 세팅을 빼먹었었더라구요;;;;
해당 스트럭쳐 lvc_s_f4 에서의 설정값은
fieldname = 'F4필드네임'
register = 'X'
getbefore = 'X'
chngeafter = ' '
위에 해당하는 내역들을 method "REGISTER_F4_FOR_FIELDS" (GL_GUI_ALV_GRID에 있음) 로~~
-
보나
2008.08.20 20:05
추가)
위 LVC_T_F4 에 append 되어야 하는 데이터가 여러건 (서치헬프가 달리는 필드가 여러개) 인 경우에는
알파벳순서대로 (sorting) 차례로 append 시켜주세요;
-
CoolGuy
2008.08.20 23:25
넵 감사해요~해결했어요^^
1. 메소드
METHOD HANDLE_DATA_CHANGED.
PERFORM 'aaa' USING ER_DATA_CHANGED.
ENDMETHOD.
2. 체인지퍼폼문
FORM aaa USING FP_ER_DATA_CHANGED
TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL.
DATA : LS_MOD_CELLS TYPE LVC_S_MODI,
LS_CELLS TYPE LVC_S_MODI.
LOOP AT FP_ER_DATA_CHANGED->MT_GOOD_CELLS INTO LS_MOD_CELLS.
PERFORM 'bbb' USING FP_ER_DATA_CHANGED
LS_MOD_CELLS
LS_MOD_CELLS-FIELDNAME.
ENDLOOP.
ENDFORM.
3. 내역변경
FORM bbb USING FP_ER_DATA_CHANGED
TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL
FS_MOD_CELLS TYPE LVC_S_MODI
P_FIELDNAME.
CALL METHOD FP_ER_DATA_CHANGED->GET_CELL_VALUE
EXPORTING
I_ROW_ID = FS_MOD_CELLS-ROW_ID
I_FIELDNAME = FS_MOD_CELLS-FIELDNAME
IMPORTING
E_VALUE = 'f4필드'
SELECT 'field_desc'
....
MODIFY itab INDEX FS_MOD_CELLS-ROW_ID. (itab 의 'f4 값의desc' 필드변경)
ENDFORM.
4. ALV 리플래쉬~