form alv_layout .
data : lt_lvc_styl type lvc_t_styl,
l_index type i.
loop at gt_list.
l_index = sy-tabix.
refresh lt_lvc_styl.
perform set_celltab changing lt_lvc_styl.
~
endloop.
endform.
form set_celltab changing p_t_lvc_styl type lvc_t_styl.
loop at ty_fieldcat into ls_fieldcat.
ls_lvc_styl-fieldname = ls_fieldcat-fieldname.
case ls_lvc_styl-fieldname.
when 'OK_FLAG'.
ls_lvc_styl-style = cl_gui_alv_grid=>mc_style_enabled.
when others.
ls_lvc_styl-style = cl_gui_alv_grid=>mc_style_disabled.
endcase.
insert ls_lvc_styl into table p_t_lvc_styl.
endloop.
endform. " set_celltab
alv_layout에서 'OK_FLAG'를 제외한 부분을 disable처리해서 화면을 띄우면 적용되는데요..
툴바버튼을 이용하여 bdc를 실행하고 오면 'OK_FLAG'를 제외한 부분이외의 disable이 되지 않는 컬럼이 있는데
alv화면을 refresh해주는 이벤트가 있던걸로 아는데.. 답변 부탁드리겠습니다..
댓글 4
-
요요
2009.10.01 19:33
-
prt
2009.10.01 23:52
method 'REFRESH_TABLE_DISPLAY' 는 현재 적용되어 있습니다..
grid 전체 refresh 적용은 다른 메소드를 써야 되네요..
-
sagar
2009.10.02 02:17
method 'REFRESH_TABLE_DISPLAY' 는 현재 적용되어 있습니다..//하시니, (정확히 파악을 못하고 그저, 전 무리없이 끝이나서요)
*..carry out user defined-function......................................
CALL METHOD CL_GUI_CFW=>DISPATCH
IMPORTING
RETURN_CODE = RETURN_CODE.
*..carry out standard function..........................................
CALL METHOD W_GRID->SET_FUNCTION_CODE
CHANGING
C_UCOMM = OK_CODE.
**..current position.....................................................
* L_STABLE-ROW = 'X'.
* L_STABLE-COL = 'X'.
이부분도 확실하신거죠?
CLEAR OK_CODE.
*..Refresh screen.......................................................
L_STABLE-ROW = 'X'.
L_STABLE-COL = 'X'.
CALL METHOD W_GRID->REFRESH_TABLE_DISPLAY
EXPORTING
IS_STABLE = L_STABLE.
CALL METHOD W_GRID->SET_FOCUS
EXPORTING
CONTROL = W_GRID.
CALL METHOD CL_GUI_CFW=>FLUSH.
이부분 다시 보아 주시고요. 제가 정확히 읽지 않아서 혹시 혼동이 있을수 있으나, refresh 되는 문제는 Method가 아닌 일반적인 alv도 같은 양상이니,,,확대 해석 유추 해보시고요. 빠른 종료 되셨음 합니다.
IT_LAYOUT/즉 스트럭쳐로 정의하고 refer하셨겠지만. 이부분 속성등등 다시 한번 보시고요.
-
prt
2009.10.05 17:23
답변감사드립니다.
alv refresh 는 method 'REFRESH_TABLE_DISPLAY' 을 사용하시면 됩니다.
DATA LS_STABLE TYPE LVC_S_STBL.
LS_STABLE = 'XX'.
G_GRID->REFRESH_TABLE_DISPLAY( EXPORTING IS_STABLE = LS_STABLE ).