안녕하세요?
처음으로 질문올려봅니다. 아시는분은 답변좀 부탁합니다.
R/3 Release 4.6C를 사용하는데 Docking Container로 Report를 작성하려고 합니다.
그런데 테스트 결과 빈화면만 나타납니다.
혹 위 버전에서는 Docking Container가 지원이 안되는 건가요?
- 클래스: cl_gui_docking_container
cl_gui_alv_grid
댓글 6
-
Giant
2008.11.12 20:18
지원이 되는데요! 혹시 코딩한 부분을 올려주시면 참고한 다음 답변을 드리겠습니다. -
설탕한박스
2008.11.12 20:28
*** 소스코드 입니다 MODULE init_0100() 참고하시면 됩니다.
REPORT ykjy018 .
TABLES: sflight.
DATA: g_docking TYPE REF TO cl_gui_docking_container,
g_grid TYPE REF TO cl_gui_alv_grid.
DATA: gt_sflight TYPE TABLE OF sflight,
gs_layout TYPE slis_layout_alv.
PARAMETER p_carrid TYPE sflight-carrid.
START-OF-SELECTION.
SELECT * FROM sflight INTO TABLE gt_sflight
UP TO 25 ROWS.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'M0100'.
SET TITLEBAR 'T0100'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
LEAVE TO SCREEN 0.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module INIT_0100 OUTPUT
*&---------------------------------------------------------------------*
MODULE init_0100 OUTPUT.
CHECK g_docking IS INITIAL.
CREATE OBJECT g_docking
EXPORTING
repid = sy-repid
dynnr = sy-dynnr
extension = 20.
CREATE OBJECT g_grid
EXPORTING
i_parent = g_docking.
CALL METHOD g_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'SFLIGHT'
CHANGING
it_outtab = gt_sflight.
ENDMODULE. " INIT_0100 OUTPUT
-
Giant
2008.11.12 20:55
MODULE init_0100 OUTPUT.에서 extension만 지정해 놓고 어디시 부터 extension하는지는 지정해지 않았군요!
extension = 20위에서 g_docking->dock_at_left 를 더 코딩해 보십시요! 그리고 화면이 작게 나오면 extension의 값을 더 크게 하시면 됩니다.
사실 docking container에서는 네가지 속성이 있습니다.(이 네가지 속성은 한꺼번에 사용할수는 없다.)
DOCK_AT_LEFT
DOCK_AT_RIGHT
DOCK_AT_TOP
DOCK_AT_BOTTOM
영어를 보시면 알겠지만 테스트 해봐서 이해를 하길 바랍니다.
도움이 된는지 모르겠네요!
그럼 오늘도 좋은 하루 되세요!
-
설탕한박스
2008.11.12 21:52
Giant님께서 말씀하신 대로 side를 지정해도 마찬가지 입니다.
아래와 같이 수정해놓고 테스트해보았습니다.
참고로 GUI버젼은 710입니다.
MODULE init_0100 OUTPUT.
CHECK g_docking IS INITIAL.
CREATE OBJECT g_docking
EXPORTING
repid = sy-repid
dynnr = sy-dynnr
side = g_docking->dock_at_left
extension = 100.
CREATE OBJECT g_grid
EXPORTING
i_parent = g_docking.
CALL METHOD g_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'SFLIGHT'
CHANGING
it_outtab = gt_sflight.
ENDMODULE. " INIT_0100 OUTPUT
-
설탕한박스
2008.11.12 23:49
해결되었습니다.
위 소스와 같이 docking container생성시 'repid = sy-repid' 를 직접 지정시 빈화면이 나타납니다.
왜 그런지는 모르겠지만 4.6C에서 테스트를 해본 결과 입니다.
도움주신 여러분께 감사드립니다.
-
Giant
2008.11.13 00:18
그래요? 저도 GUI버전이 640이여서 테스트 해보니까 나왔는데.... ?
ㅎㅎ 어쨌던 나왔다니 다행이네요!