‎2017 Sep 12 7:40 AM
Hi,
I have one problem when I display table with CL_GUI_ALV. In the program I call screen 100. I also have one Form INIT which contains code for creating object, creating container and set table for first display. In the module PBO, if I perform INIT, I got dump problem with this error "Consecutive nested call screen dump". I searched already about that error.
But my question is that: If in module PBO, I don't set perform Display_ALV, I copy code in that form, and paste directly, it works correctly. Why is that? There is any thing different in here?
Thanks so much.
Best regards.
REPORT ZABC.
CALL SCREEN 0100.
MODULE status_0100 OUTPUT.
SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}
MODULE status_0100 OUTPUT.
SET PF-STATUS 'ZDIN_STATUS'.
* SET TITLEBAR 'xxx'.
PERFORM init.
* If I let PERFORM in here, it got dump screen. But if I copy code in that form and paste it direct in here, it works. Why???
* DATA: vl_container TYPE scrfname VALUE 'ZDIN_EX2_CONTAINER'.
* DATA: ol_grid TYPE REF TO cl_gui_alv_grid,
* ol_custom_container TYPE REF TO cl_gui_custom_container.
* DATA: tl_flight TYPE TABLE OF sflight,
* tl_fieldcat TYPE lvc_t_fcat.
* CREATE OBJECT ol_custom_container
* EXPORTING
* container_name = vl_container.
* CREATE OBJECT ol_grid
* EXPORTING
* i_parent = ol_custom_container.
*
* SELECT * FROM sflight INTO TABLE tl_flight.
*
* CALL METHOD ol_grid->set_table_for_first_display
* EXPORTING
* i_structure_name = 'SFLIGHT'
* CHANGING
* it_outtab = tl_flight
** it_fieldcatalog = tl_fieldcat
** it_sort = tl_sort
** it_filter =
* EXCEPTIONS
* invalid_parameter_combination = 1
* program_error = 2
* too_many_lines = 3
* OTHERS = 4.
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
MODULE user_command_0100 INPUT.
DATA: vl_ucomm LIKE sy-ucomm.
vl_ucomm = sy-ucomm.
CASE vl_ucomm.
WHEN '&F03'.
LEAVE PROGRAM.
ENDCASE.
CLEAR vl_ucomm.
ENDMODULE. " USER_COMMAND_0100 INPUT
FORM init.
DATA: vl_container TYPE scrfname VALUE 'ZDIN_EX2_CONTAINER'.
DATA: ol_grid TYPE REF TO cl_gui_alv_grid,
ol_custom_container TYPE REF TO cl_gui_custom_container.
DATA: tl_flight TYPE TABLE OF sflight,
tl_fieldcat TYPE lvc_t_fcat.
CREATE OBJECT ol_custom_container
EXPORTING
container_name = vl_container.
CREATE OBJECT ol_grid
EXPORTING
i_parent = ol_custom_container.
SELECT * FROM sflight INTO TABLE tl_flight.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
i_structure_name = 'SFLIGHT'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = tl_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
CALL METHOD ol_grid->set_table_for_first_display
* EXPORTING
* i_structure_name = 'SFLIGHT'
CHANGING
it_outtab = tl_flight
it_fieldcatalog = tl_fieldcat
* it_sort = tl_sort
* it_filter =
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
‎2017 Sep 12 12:49 PM
There's nothing suspicious : I copied your code, as you show (with PERFORM init), and it works, there's no short dump:

The error "Consecutive nested call screen dump" says that there's a nested CALL SCREEN (more than 50 times). Probably there's a CALL SCREEN in the PBO. If you don't see it, make sure you have activated your program before executing.