2014 May 26 4:57 AM
Hello Everyone,
I have developed a ALV drill down report using the method G_GRID->SET_TABLE_FOR_FIRST_DISPLAY. The problem is what ever layout i save for the primary list 'Screen 100' is effecting my secondary list 'Screen 200'. User need to save both Screen 100 and Screen 200 layouts independently without affecting each other.
I am calling screen 100 as below,
Call metthod g_grid_100->set_table_for_first_display
Exporting
i_Save = 'A'
is_layout = ls_layout
is_Variant = ls_Variant
Changing
it_outtab = ct_poitems
it_fieldcatalog = lt_fieldcat
Exceptions
Invalid_parameter_combimation = 1
Program_error = 2
too_many_lines = 3
others = 4.
Could any body suggest me a way to do this..
Thanks in advance.
Regards,
Shyam.
2014 May 26 5:16 AM
Hi,
Use multiple Layout structure (each alv have its own structure) .
Note the use of disvariant-log_group .
DATA: gs_disvariant_1 TYPE disvariant ,
gs_disvariant_2 TYPE disvariant .
* Layout-Logical groups
CONSTANTS: gc_log_group_1 TYPE disvariant-log_group VALUE 'ALV1' ,
gc_log_group_2 TYPE disvariant-log_group VALUE 'ALV2' .
INITIALIZATION.
PERFORM at_initialization .
FORM at_initialization .
DATA: vari TYPE disvariant-variant .
PERFORM alv_variant_get_default USING gc_log_group_1 CHANGING gs_disvariant_1 vari .
PERFORM alv_variant_get_default USING gc_log_group_2 CHANGING gs_disvariant_2 vari .
ENDFORM.
*----------------------------------------------------------------------*
FORM alv_variant_get_default
USING
log_group TYPE disvariant-log_group
CHANGING
disvariant TYPE disvariant
variant TYPE slis_vari .
DATA: ls_disvariant TYPE disvariant.
ls_disvariant-report = sy-repid .
ls_disvariant-log_group = log_group .
disvariant = ls_disvariant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = ls_disvariant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
disvariant = ls_disvariant.
variant = ls_disvariant-variant .
ENDIF.
ENDFORM. "alv_variant_get_default
*----------------------------------------------------------------------*
Later....
CALL METHOD gui_alv_grid_1->set_table_for_first_display
EXPORTING
is_layout = wa_layout
is_print = wa_print
i_save = 'A'
is_variant = gs_disvariant_1
CHANGING
it_sort = it_sort
it_fieldcatalog = it_fieldcatalog
it_outtab = it_alv_grid_1.
CALL METHOD gui_alv_grid_2->set_table_for_first_display
EXPORTING
is_layout = wa_layout
is_print = wa_print
i_save = 'A'
is_variant = gs_disvariant_2
CHANGING
it_sort = it_sort
it_fieldcatalog = it_fieldcatalog
it_outtab = it_alv_grid_2.
Regards.
Hello Everyone,
I have developed a ALV drill down report using the method G_GRID->SET_TABLE_FOR_FIRST_DISPLAY. The problem is what ever layout i save for the primary list 'Screen 100' is effecting my secondary list 'Screen 200'. User need to save both Screen 100 and Screen 200 layouts independently without affecting each other.
I am calling screen 100 as below,
Call metthod g_grid_100->set_table_for_first_display
Exporting
i_Save = 'A'
is_layout = ls_layout
is_Variant = ls_Variant
Changing
it_outtab = ct_poitems
it_fieldcatalog = lt_fieldcat
Exceptions
Invalid_parameter_combimation = 1
Program_error = 2
too_many_lines = 3
others = 4.
Could any body suggest me a way to do this..
Thanks in advance.
Regards,
Shyam.
2014 May 26 5:01 AM
Hi Prasad,
While calling the second screen which variant and layout your passing.
Regards,
Krishna
2014 May 26 5:10 AM
Hi krishna,
I am using different variants for screen 200 but with the same parameters which i used for Screen 100. Because both screens belong to same program, and so i am able to see same layout name when i go to 'Manage layouts' option. But user need to save both the layouts indenpendently.
Thanks,
Shyam.
2014 May 26 5:16 AM
Hi,
Use multiple Layout structure (each alv have its own structure) .
Note the use of disvariant-log_group .
DATA: gs_disvariant_1 TYPE disvariant ,
gs_disvariant_2 TYPE disvariant .
* Layout-Logical groups
CONSTANTS: gc_log_group_1 TYPE disvariant-log_group VALUE 'ALV1' ,
gc_log_group_2 TYPE disvariant-log_group VALUE 'ALV2' .
INITIALIZATION.
PERFORM at_initialization .
FORM at_initialization .
DATA: vari TYPE disvariant-variant .
PERFORM alv_variant_get_default USING gc_log_group_1 CHANGING gs_disvariant_1 vari .
PERFORM alv_variant_get_default USING gc_log_group_2 CHANGING gs_disvariant_2 vari .
ENDFORM.
*----------------------------------------------------------------------*
FORM alv_variant_get_default
USING
log_group TYPE disvariant-log_group
CHANGING
disvariant TYPE disvariant
variant TYPE slis_vari .
DATA: ls_disvariant TYPE disvariant.
ls_disvariant-report = sy-repid .
ls_disvariant-log_group = log_group .
disvariant = ls_disvariant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = ls_disvariant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
disvariant = ls_disvariant.
variant = ls_disvariant-variant .
ENDIF.
ENDFORM. "alv_variant_get_default
*----------------------------------------------------------------------*
Later....
CALL METHOD gui_alv_grid_1->set_table_for_first_display
EXPORTING
is_layout = wa_layout
is_print = wa_print
i_save = 'A'
is_variant = gs_disvariant_1
CHANGING
it_sort = it_sort
it_fieldcatalog = it_fieldcatalog
it_outtab = it_alv_grid_1.
CALL METHOD gui_alv_grid_2->set_table_for_first_display
EXPORTING
is_layout = wa_layout
is_print = wa_print
i_save = 'A'
is_variant = gs_disvariant_2
CHANGING
it_sort = it_sort
it_fieldcatalog = it_fieldcatalog
it_outtab = it_alv_grid_2.
Regards.
2014 May 26 9:09 AM
2014 May 26 5:35 AM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |