
지금 수정 후 다시 오류는...
GS_LAYOUT" is not type-compatible with formal parameter "IS_LAYOUT
이렇게 출력되고 있어요..
지금 작업중에 오류가 나는 부분은요.,.
perform display_data. 클릭하고 들었갔을 때 문은..
FORM DISPLAY_DATA .
call FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_interface_check = 'X'
i_callback_program = sy-repid
i_callback_pf_status_set = gv_status
i_callback_user_command = g_user_command
is_layout = gs_layout
it_fieldcat = gt_fieldcat_lvc
tables
t_outtab = it_result.
ENDFORM. " DISPLAY_
위 쪽 소스입니다...
START-OF-SELECTION.
end-of-SELECTION.
PERFORM display_data.
at USER-COMMAND.
perform user_command using r_ucomm rs_selfield.
... 전체 문은.
REPORT ZTOP.
data: BEGIN OF it_result OCCURS 0.
include STRUCTURE zinput.
DATA end of it_result.
DATA: ok_code LIKE sy-ucomm,
save_ok like sy-ucomm,
g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',
g_grid TYPE REF TO cl_gui_alv_grid,
g_custom_container TYPE REF TO cl_gui_custom_container,
gs_layout TYPE lvc_s_layo,
GT_FIELDCAT_LVC TYPE LVC_T_FCAT WITH HEADER LINE,
gt_FIELDCAT_LVC_ln LIKE LINE OF gt_FIELDCAT_LVC,
g_max type i value 100.
DATA: gt_outtab type table of zinput.
* i_call_user_command
data : g_user_command type slis_formname value 'user_command'.
data : r_ucomm type sy-ucomm.
data : rs_selfield type slis_selfield.
*status
type-POOLs : slis.
data : gv_status type slis_formname.
START-OF-SELECTION.
end-of-SELECTION.
PERFORM display_data.
at USER-COMMAND.
perform user_command using r_ucomm rs_selfield.
*---------------------------------------------------------------------*
* MAIN *
*---------------------------------------------------------------------*
CALL SCREEN 100 starting at 1 1..
*---------------------------------------------------------------------*
* MODULE PBO OUTPUT *
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
SET PF-STATUS 'MAIN100'.
set TITLEBAR 'MAIN100'.
IF g_custom_container IS INITIAL.
PERFORM BUILD_CAT.
CREATE OBJECT g_custom_container
EXPORTING container_name = g_container.
CREATE OBJECT g_grid
EXPORTING i_parent = g_custom_container.
*§1.Set status of all cells to editable using the layout structure.
gs_layout-edit = 'X'.
select * from zinput into table gt_outtab up to g_max rows.
CALL METHOD g_grid->set_table_for_first_display
EXPORTING i_structure_name = 'zinput'
is_layout = gs_layout
CHANGING it_outtab = gt_outtab
IT_FIELDCATALOG = GT_FIELDCAT_LVC[].
*§2.Use SET_READY_FOR_INPUT to allow editing initially.
* (state "editable and ready for input").
CALL METHOD g_grid->set_ready_for_input
EXPORTING i_ready_for_input = 1.
ENDIF.
ENDMODULE.
*---------------------------------------------------------------------*
* MODULE PAI INPUT *
*---------------------------------------------------------------------*
MODULE pai INPUT.
save_ok = ok_code.
clear ok_code.
CASE save_ok.
WHEN 'EXIT'.
PERFORM exit_program.
WHEN 'SWITCH'.
PERFORM switch_edit_mode.
WHEN OTHERS.
* do nothing
ENDCASE.
ENDMODULE.
*---------------------------------------------------------------------*
* FORM EXIT_PROGRAM *
*---------------------------------------------------------------------*
FORM exit_program.
LEAVE PROGRAM.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SWITCH_EDIT_MODE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM switch_edit_mode.
*§3.Use IS_READY_FOR_INPUT to fetch current substate of editable cells.
IF g_grid->is_ready_for_input( ) EQ 0.
*§4.Use SET_READY_FOR_INPUT to switch between the substates.
CALL METHOD g_grid->set_ready_for_input
EXPORTING i_ready_for_input = 1.
ELSE.
CALL METHOD g_grid->set_ready_for_input
EXPORTING i_ready_for_input = 0.
ENDIF.
ENDFORM. " SWITCH_EDIT_MODE
INCLUDE ZTOP_TOP.
INCLUDE ZTOP_INPUT.
INCLUDE ZTOP_OUTPUT.
INCLUDE ZTOP_FORM.
아직 잘하지 못해서 이렇게 질문드려 답변바라는 점 죄송합니다..ㅠㅠ
댓글 5
-
버미!
2010.10.29 06:58
-
labap
2010.10.29 07:09
"GS_LAYOUT" is not type-compatible with formal parameter "IS_LAYOUT".
이런 오류가 나타나는데 어떻게 해야 하나요??ㅜㅜ
-
버미!
2010.10.29 17:29
아래에서 덤프난 거구요..
call FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_interface_check = 'X'
i_callback_program = sy-repid
i_callback_pf_status_set = gv_status
i_callback_user_command = g_user_command
is_layout = gs_layout
it_fieldcat = gt_fieldcat_lvc
여기 ls_layout 타입과 gs_layout 타입이 다르므로 slis_layout_alv로 선언해주세요..
참고로 set_table_for_first_display의 is_layout 은 lvc_s_layo 타입이고요..
각각 맞게 선언해주세요
-
테라스
2010.10.29 18:34
call FUNCTION 'REUSE_ALV_LIST_DISPLAY' 과 CALL METHOD g_grid->set_table_for_first_display 에 사용되는 파라메터들은
이름이 동일하더라도 구조가 다를수 있습니다.
그런데 여기서는 gs_layout을 'REUSE_ALV_LIST_DISPLAY' 와 g_grid->set_table_for_first_display 에서 동일하게 사용하고 있습니다.
각 함수와 메소드의 파라메터 타입과 동일한 변수를 사용해서 사용하시기 바랍니다.
참고로 gt_fieldcat_lvc도 'REUSE_ALV_LIST_DISPLAY' 에서는 SLIS_T_FIELDCAT_ALV
set_table_for_first_display 에서는 lvc_t_fcat 으로 서로 다릅니다.
-
labap
2010.10.31 05:24
감사합니다 버미님 테라스님 도움 많이 됬습니다^^
gs_layout 타입이 달라서 발생한 것임
따라서 gs_layout type slis_layout_alv로 선언하시면 됨