안녕하세요!!!
ALV구현중 몇몇 의문점이 생겨 글을 올립니다!!!
1. 입력하는곳에 값을 입력후 탭이나 마우스로 커서를 옆으로 옮기면 커서가 제일 처음으로 가버립니다.
그래서 제가알고있는
DATA: ls_stable TYPE lvc_s_stbl.
ls_stable-row = 'X'.
ls_stable-col = 'X'.
CALL METHOD : go_grid1->refresh_table_display
EXPORTING
is_stable = ls_stable.
CALL METHOD : cl_gui_cfw=>flush.
이걸로 고정이 된다고 알고있었는데 고정이 되질 안네요....ㅠㅠ
2. SE11에서 제가만든 서치헬프를 제프로그램에서.. ALV로 구현했구요 서치헬프를 띄우고 싶은데
방법이 있을까요? 필드카탈로그에서 찾아봤는데 마땅히 참조할 필드캣이 없는듯싶은데요...
3. ALV에서 제가추가 버튼을 눌렀을때 한칸이 추가되면서 다열리는것이 아니고 필요한필드만 열려서
값을 입력되게 하려고하는데 STYL이라는걸 이용하라느 는 조언을 받아서 했는데 안되네요
디버깅을 걸어보니
LOOP AT gt_fieldcat1 WHERE fieldname = 'EQCODE'.
ls_celltab-fieldname = gt_fieldcat1-fieldname.
ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_celltab INTO TABLE p_celltab.
ENDLOOP.
이런식으로 셀탭에 값을 넣어주었는데 모디파이까지 되는걸 확인했는데 안열리네요
참고로 저건 시험해볼려고 EQCODE라는 필드만 열리게 하려고했는데 안열리네요 ㅠㅠ
조언부탁드려요....ㅜㅜ
행복한 하루되십쇼!!
댓글 3
-
쭌수야~!
2008.09.02 00:08
-
보나
2008.09.02 01:02
2. 따로 참조하실 필드캣 없이 자동으로 됩니다.
단 ALV Display 시 ( CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY .. 이런부분)
참조되는 IT_OUTAB = "itab" 의 인터널테이블 "itab" 에서 해당필드가 SE11 에서 서치헬프를 생성한
필드와 내역이 일치하여야 됩니다.
-
기본도없는초보
2008.09.02 03:08
쭈녕씨 보세요 도움이 될지는 모르겠지만
1. 쭈녕씨 말대로 그거 커서위치 제자리에 놓는거 맞긴한데 저두 그런경험있는데
리플레쉬 위치가 위에서 한번 더해주는바람에 젤첫자리로 갔었거든요 리플레쉬를 다시하지않나 위치한번 체크해보세요
2.'F4IF_FIELD_VALUE_REQUEST'
이펑션 쓰시면 EXPORTING에 SEARCHHELP = '요기자신이만든서치헬프'
달아주심 서치헬프 나옵니다
3. 스타일은 이소스 참고해보세요
WHEN 'CREAT'.
CLEAR : st_itab, e_stable-row, e_stable-col.
CLEAR : itab, g_styl_mode, gt_celltab.
MOVE cl_gui_alv_grid=>mc_style_enabled TO g_styl_mode.
CLEAR gs_celltab.
gs_celltab-style = g_styl_mode.
gs_celltab-fieldname = 'WERKS'.
INSERT gs_celltab INTO TABLE gt_celltab.
CLEAR gs_celltab.
gs_celltab-style = g_styl_mode.
gs_celltab-fieldname = 'MATNR'.
INSERT gs_celltab INTO TABLE gt_celltab.
CLEAR gs_celltab.
gs_celltab-style = g_styl_mode.
gs_celltab-fieldname = 'LGORT'.
INSERT gs_celltab INTO TABLE gt_celltab.
CLEAR gs_celltab.
gs_celltab-style = g_styl_mode.
gs_celltab-fieldname = 'PRD_WERKS'.
INSERT gs_celltab INTO TABLE gt_celltab.
CLEAR gs_celltab.
gs_celltab-style = g_styl_mode.
gs_celltab-fieldname = 'END_DATE'.
INSERT gs_celltab INTO TABLE gt_celltab.
CLEAR gs_celltab.
gs_celltab-style = g_styl_mode.
gs_celltab-fieldname = 'YOUTONGTIME'.
INSERT gs_celltab INTO TABLE gt_celltab.
INSERT LINES OF gt_celltab INTO TABLE itab-celltab.
APPEND itab.
* APPEND st_itab TO itab.
e_stable-row = e_stable-col = 'X'.
CALL METHOD grid1->refresh_table_display
EXPORTING is_stable = e_stable.
1. 아래 매소드를 사용하시면 원하시는 위치에 커서를 옮겨주실 수 있습니다.
CALL METHOD go_grid1->set_current_cell_via_id
EXPORTING
is_row_id = ls_row
is_column_id = ls_col.
2. 질문이... 너무 어려워요... ^^;
3. layout-stylefname = 'EQCODE'. 를 하셨는지 확인 또는
CALL METHOD go_grid1->set_ready_for_input
EXPORTING
i_ready_for_input = '1'. 를 해주셨는지 확인.