Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

SET_TABLE_FOR_FIRST_DISPLAY and HotSpots

dean_hinson2
Active Contributor
0 Kudos
5,292

Hello,

We have a report that uses SET_TABLE_FOR_FIRST_DISPLAY which works well but I have been asked to add a hotspot to call another screen. I see that a fieldcatalog can be passed but I have not found a method that corresponds to REUSE_ALV_FIELDCATALOG_MERGE.

I am a novice at method programming and did think that using the FM was the correct thing to do. Is there was a method that would do the same thing? Does anyone have some sample code?

Thank you in advance.

Regards, Dean.

1 ACCEPTED SOLUTION

former_member598013
Active Contributor
0 Kudos
1,271

Hi Dean,

There is no harm in OOALV, But I would suggest you to go for the OOALV.

Now a days a new feature has provided by SAP regarding ALV which is SALV.

I have created a sample program corresponding to almost all funcitonality.

just copy and paste this program you will see the difference how easy is OOALV (SALV).


*&---------------------------------------------------------------------*
*& Report  ZCC_OOALV_CL_SALV_FUNCTIONS                                 *
*&                                                                     *
*&---------------------------------------------------------------------*
*&  Developer Name: Chidanand Chauhan                                  *
*&  Date: 15/05/2008                                                   *
*&  Description: SALV for the Program for the functionality.           *
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

report  zcc_ooalv_cl_salv_functions.

data: ispfli type table of spfli.
field-symbols: <fs> type spfli.
data: gr_table type ref to cl_salv_table.
data: gr_functions type ref to cl_salv_functions.

data: gr_display type ref to cl_salv_display_settings.


data: gr_columns type ref to cl_salv_columns_table.
data: gr_column type ref to cl_salv_column_table.
data: color type lvc_s_colo.


data: gr_sorts type ref to cl_salv_sorts.

data: gr_agg type ref to cl_salv_aggregations.

data: gr_filter type ref to cl_salv_filters.

data: gr_layout type ref to cl_salv_layout.
data: key type salv_s_layout_key.

data: gr_selections type ref to cl_salv_selections.
data: xspfli type spfli.
data: gr_events type ref to cl_salv_events_table.


*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events definition.
  public section.
    methods:
    on_user_command for event added_function of cl_salv_events
    importing e_salv_function,

    on_double_click for event double_click of cl_salv_events_table
    importing row column,

    on_link_click for event link_click of cl_salv_events_table
    importing row column.

endclass. "lcl_handle_events DEFINITION


data: event_handler type ref to lcl_handle_events.

data: lt_celltype  type salv_t_int4_column,
      ls_celltype  type salv_s_int4_column.


*&>>>>-----------------------------------------------------------------*
*                  START OF SELECTION
*&>>>>-----------------------------------------------------------------*

start-of-selection.

  select * into table ispfli from spfli.



  cl_salv_table=>factory( importing r_salv_table = gr_table
  changing t_table = ispfli ).
  gr_functions = gr_table->get_functions( ).
  gr_functions->set_all( abap_true ).
*&>>>>-----------------------------------------------------------------*
* Next, add functions to the application toolbar. For this, use the
* CL_SALV_FUNCTIONS class. Create the object reference variable and
* receive the object using the GET_FUNCTIONS method of the GR_TABLE
* object. Call the method SET_ALL to force the ALV grid to show all
* standard functions.
*&---------------------------------------------------------------------*
  gr_display = gr_table->get_display_settings( ).
  gr_display->set_striped_pattern( cl_salv_display_settings=>true ).
  gr_display->set_list_header( 'Test Program for ZSALV By Chidanand' ).
*&<<<<-----------------------------------------------------------------*

*&----------------------------------------------------------------------
* change the Heading Text of a column as well as the color of a column.
*&----------------------------------------------------------------------

  gr_columns = gr_table->get_columns( ).
  gr_column ?= gr_columns->get_column( 'CITYTO' ).
  gr_column->set_long_text( 'This is long text' ).
  gr_column->set_medium_text( 'This is med text' ).
  gr_column->set_short_text( 'This is sh' ).
  gr_column ?= gr_columns->get_column( 'CITYFROM' ).
  color-col = '6'.
  color-int = '1'.
  color-inv = '0'.
  gr_column->set_cell_type( if_salv_c_cell_type=>hotspot ).

  gr_column->set_color( color ).


*  data: val type SALV_DE_CONSTANT.
*  val = 1.
*  gr_column->SET_DROPDOWN_ENTRY( val ).
*&----------------------------------------------------------------------
*sorting to the ALV grid.
*&----------------------------------------------------------------------
  gr_sorts = gr_table->get_sorts( ).

**&----------------------------------------------------------------------
** sorted by CITYTO, we can add an aggregation to subtotal the DISTANCE
** by CITYTO. Create the object reference variable and receive the object
** using the GET_AGGREGATIONS method of the GR_TABLE object. Next, add
** the aggregation by calling the ADD_AGGREGATION method of the GR_SORTS
** object. We also need to modify the call to ADD_SORT to set
** the SUBTOTAL = ABAP_TRUE.
**&----------------------------------------------------------------------


  gr_sorts->add_sort( columnname = 'CITYTO' subtotal = abap_true ).
  gr_agg = gr_table->get_aggregations( ).
  gr_agg->add_aggregation( 'DISTANCE' ).
*&>>>>-----------------------------------------------------------------*
* Using the CL_SALV_FILTERS class setup some filters for the data
* in our ALV GRID. Create the object reference variable and receive the
* object using the GET_FILTERS method of the GR_TABLE object,and then
* simply called the method ADD_FILTER with the parameters.
*&>>>>-----------------------------------------------------------------*
  gr_filter = gr_table->get_filters( ).
  gr_filter->add_filter( columnname = 'CARRID' low = 'LH' ).

*&>>>>-----------------------------------------------------------------*
* If you want to allow the user to manage layouts of the ALV grid, you
* must use the class CL_SALV_LAYOUT.Create the object reference variable
* and receive the object using the GET_LAYOUT method of the GR_TABLE
* object. Then simply call the method SET_KEY with the parameters and
* set the save restriction using the SET_SAVE_RESTRICTION method.
*&>>>>-----------------------------------------------------------------*
  gr_layout = gr_table->get_layout( ).
  key-report = sy-repid.
  gr_layout->set_key( key ).
  gr_layout->set_save_restriction( cl_salv_layout=>restrict_none ).


*&>>>>-----------------------------------------------------------------*
*----------------------------SET GUI STATUS ---------------------------
* Go to function group SALV_METADATA_STATUS and copy the gui status
* ZSALV_TABLE_STANDARD into the ZCC_OOALV_CL_SALV_FUNCTIONS program.This
* is the standard gui status for the 2 Dimensional Table ALV grid. Once
* you have copied the status, set the screen status using the appropriate
* method of the object GR_TABLE. Go to the gui status and add a new
* button on the application toolbar and name it as u201CMYFUNCTIONu201D.
*&>>>>-----------------------------------------------------------------*

  gr_table->set_screen_status(
  pfstatus = 'ZSALV_TABLE_STANDARD'
  report = sy-repid
  set_functions = gr_table->c_functions_all ).

*&>>>>-----------------------------------------------------------------*
* -----------------Get Event Handler.----------------------------------*
* Define the event handler method for DOUBLE_CLICK event and add the
* implementation for the ON_DOUBLE_CLICK event handler method. Remember
* to set the handler for the event.
*&>>>>-----------------------------------------------------------------*

  gr_events = gr_table->get_event( ).
  create object event_handler.
  set handler event_handler->on_user_command for gr_events.
  set handler event_handler->on_double_click for gr_events.
  set handler event_handler->on_link_click for gr_events.
* Set up selections.
  gr_selections = gr_table->get_selections( ).
  gr_selections->set_selection_mode( 1 ).       "Single


  gr_table->display( ).



*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events implementation.
  method on_user_command.
* Get the selection rows
    data: lr_selections type ref to cl_salv_selections.
    data: lt_rows type salv_t_row.
    data: ls_rows type i.
    data: message type string.
    case e_salv_function.
      when '&FUNCTION'.
        lr_selections = gr_table->get_selections( ).
        lt_rows = lr_selections->get_selected_rows( ).
        read table lt_rows into ls_rows index 1.
        read table ispfli into xspfli index ls_rows.
        concatenate xspfli-carrid xspfli-connid
        xspfli-cityfrom xspfli-cityto
        into message separated by space.
        message i001(00) with 'You Clicked the button!' message.
    endcase.
  endmethod. "on_user_command

  method on_double_click.
    data: message type string.
    data: row_c(4) type c.
    row_c = row.
    concatenate 'Row' row_c 'Column' column
    into message separated by space.
    message i001(00) with 'You double-clicked on ' message.
  endmethod. "on_double_click



  method on_link_click.

    data: message type string.
    data: row_c(4) type c.
    row_c = row.
    concatenate 'Row' row_c 'Column' column
    into message separated by space.
    message i001(00) with 'You link-clicked on ' message.

  endmethod.      "lcl_handle_events IMPLEMENTATION

endclass. "lcl_handle_events IMPLEMENTATION

5 REPLIES 5

Former Member
0 Kudos
1,271

Hi,

n Fieldcatalog We have a option to make a HOTSPOT

Example

fcat-fieldname = 'TRECEP'.

fcat-hotspot = 'X'. " For that Particular screen field assigned with Hotsot

Thanks

Vikranth

Former Member
0 Kudos
1,271

Hi,

Check this example..You have to change the field catalog internal table with the hopspot..

TYPE-POOLS: slis.

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: BEGIN OF wa_ekko,
ebeln like ekko-ebeln,
ekorg like ekko-ekorg,
ekgrp like ekko-ekgrp,
END OF wa_ekko.

DATA: v_repid TYPE syrepid.
v_repid = sy-repid.

DATA it_ekko LIKE STANDARD TABLE OF wa_ekko WITH HEADER LINE.

SELECT * UP TO 100 ROWS
FROM ekko
INTO CORRESPONDING FIELDS OF TABLE it_ekko.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = v_repid
i_internal_tabname = 'WA_EKKO'
i_inclname = v_repid
CHANGING
ct_fieldcat = gt_fieldcat.

    * have hotspot for a PO.

DATA: s_fieldcat LIKE LINE OF gt_fieldcat.
s_fieldcat-hotspot = 'X'.

MODIFY gt_fieldcat FROM s_fieldcat TRANSPORTING hotspot
WHERE fieldname = 'EBELN'.

    * Pass the program.

v_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = gt_fieldcat
i_callback_user_command = 'USER_COMMAND'
TABLES
t_outtab = it_ekko.

---------------------------------------------------------------------

    * FORM display_detail *

---------------------------------------------------------------------

    * ........ *

---------------------------------------------------------------------

    * --> UCOMM *
    * --> SELFIELD *

---------------------------------------------------------------------
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.

IF ucomm = '&IC1'.

READ TABLE it_ekko INDEX selfield-tabindex.

IF sy-subrc = 0.
SET PARAMETER ID 'BES' FIELD it_ekko-ebeln.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.

ENDIF.

ENDFORM.

Thanks

Vikranth

former_member598013
Active Contributor
0 Kudos
1,272

Hi Dean,

There is no harm in OOALV, But I would suggest you to go for the OOALV.

Now a days a new feature has provided by SAP regarding ALV which is SALV.

I have created a sample program corresponding to almost all funcitonality.

just copy and paste this program you will see the difference how easy is OOALV (SALV).


*&---------------------------------------------------------------------*
*& Report  ZCC_OOALV_CL_SALV_FUNCTIONS                                 *
*&                                                                     *
*&---------------------------------------------------------------------*
*&  Developer Name: Chidanand Chauhan                                  *
*&  Date: 15/05/2008                                                   *
*&  Description: SALV for the Program for the functionality.           *
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

report  zcc_ooalv_cl_salv_functions.

data: ispfli type table of spfli.
field-symbols: <fs> type spfli.
data: gr_table type ref to cl_salv_table.
data: gr_functions type ref to cl_salv_functions.

data: gr_display type ref to cl_salv_display_settings.


data: gr_columns type ref to cl_salv_columns_table.
data: gr_column type ref to cl_salv_column_table.
data: color type lvc_s_colo.


data: gr_sorts type ref to cl_salv_sorts.

data: gr_agg type ref to cl_salv_aggregations.

data: gr_filter type ref to cl_salv_filters.

data: gr_layout type ref to cl_salv_layout.
data: key type salv_s_layout_key.

data: gr_selections type ref to cl_salv_selections.
data: xspfli type spfli.
data: gr_events type ref to cl_salv_events_table.


*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events definition.
  public section.
    methods:
    on_user_command for event added_function of cl_salv_events
    importing e_salv_function,

    on_double_click for event double_click of cl_salv_events_table
    importing row column,

    on_link_click for event link_click of cl_salv_events_table
    importing row column.

endclass. "lcl_handle_events DEFINITION


data: event_handler type ref to lcl_handle_events.

data: lt_celltype  type salv_t_int4_column,
      ls_celltype  type salv_s_int4_column.


*&>>>>-----------------------------------------------------------------*
*                  START OF SELECTION
*&>>>>-----------------------------------------------------------------*

start-of-selection.

  select * into table ispfli from spfli.



  cl_salv_table=>factory( importing r_salv_table = gr_table
  changing t_table = ispfli ).
  gr_functions = gr_table->get_functions( ).
  gr_functions->set_all( abap_true ).
*&>>>>-----------------------------------------------------------------*
* Next, add functions to the application toolbar. For this, use the
* CL_SALV_FUNCTIONS class. Create the object reference variable and
* receive the object using the GET_FUNCTIONS method of the GR_TABLE
* object. Call the method SET_ALL to force the ALV grid to show all
* standard functions.
*&---------------------------------------------------------------------*
  gr_display = gr_table->get_display_settings( ).
  gr_display->set_striped_pattern( cl_salv_display_settings=>true ).
  gr_display->set_list_header( 'Test Program for ZSALV By Chidanand' ).
*&<<<<-----------------------------------------------------------------*

*&----------------------------------------------------------------------
* change the Heading Text of a column as well as the color of a column.
*&----------------------------------------------------------------------

  gr_columns = gr_table->get_columns( ).
  gr_column ?= gr_columns->get_column( 'CITYTO' ).
  gr_column->set_long_text( 'This is long text' ).
  gr_column->set_medium_text( 'This is med text' ).
  gr_column->set_short_text( 'This is sh' ).
  gr_column ?= gr_columns->get_column( 'CITYFROM' ).
  color-col = '6'.
  color-int = '1'.
  color-inv = '0'.
  gr_column->set_cell_type( if_salv_c_cell_type=>hotspot ).

  gr_column->set_color( color ).


*  data: val type SALV_DE_CONSTANT.
*  val = 1.
*  gr_column->SET_DROPDOWN_ENTRY( val ).
*&----------------------------------------------------------------------
*sorting to the ALV grid.
*&----------------------------------------------------------------------
  gr_sorts = gr_table->get_sorts( ).

**&----------------------------------------------------------------------
** sorted by CITYTO, we can add an aggregation to subtotal the DISTANCE
** by CITYTO. Create the object reference variable and receive the object
** using the GET_AGGREGATIONS method of the GR_TABLE object. Next, add
** the aggregation by calling the ADD_AGGREGATION method of the GR_SORTS
** object. We also need to modify the call to ADD_SORT to set
** the SUBTOTAL = ABAP_TRUE.
**&----------------------------------------------------------------------


  gr_sorts->add_sort( columnname = 'CITYTO' subtotal = abap_true ).
  gr_agg = gr_table->get_aggregations( ).
  gr_agg->add_aggregation( 'DISTANCE' ).
*&>>>>-----------------------------------------------------------------*
* Using the CL_SALV_FILTERS class setup some filters for the data
* in our ALV GRID. Create the object reference variable and receive the
* object using the GET_FILTERS method of the GR_TABLE object,and then
* simply called the method ADD_FILTER with the parameters.
*&>>>>-----------------------------------------------------------------*
  gr_filter = gr_table->get_filters( ).
  gr_filter->add_filter( columnname = 'CARRID' low = 'LH' ).

*&>>>>-----------------------------------------------------------------*
* If you want to allow the user to manage layouts of the ALV grid, you
* must use the class CL_SALV_LAYOUT.Create the object reference variable
* and receive the object using the GET_LAYOUT method of the GR_TABLE
* object. Then simply call the method SET_KEY with the parameters and
* set the save restriction using the SET_SAVE_RESTRICTION method.
*&>>>>-----------------------------------------------------------------*
  gr_layout = gr_table->get_layout( ).
  key-report = sy-repid.
  gr_layout->set_key( key ).
  gr_layout->set_save_restriction( cl_salv_layout=>restrict_none ).


*&>>>>-----------------------------------------------------------------*
*----------------------------SET GUI STATUS ---------------------------
* Go to function group SALV_METADATA_STATUS and copy the gui status
* ZSALV_TABLE_STANDARD into the ZCC_OOALV_CL_SALV_FUNCTIONS program.This
* is the standard gui status for the 2 Dimensional Table ALV grid. Once
* you have copied the status, set the screen status using the appropriate
* method of the object GR_TABLE. Go to the gui status and add a new
* button on the application toolbar and name it as u201CMYFUNCTIONu201D.
*&>>>>-----------------------------------------------------------------*

  gr_table->set_screen_status(
  pfstatus = 'ZSALV_TABLE_STANDARD'
  report = sy-repid
  set_functions = gr_table->c_functions_all ).

*&>>>>-----------------------------------------------------------------*
* -----------------Get Event Handler.----------------------------------*
* Define the event handler method for DOUBLE_CLICK event and add the
* implementation for the ON_DOUBLE_CLICK event handler method. Remember
* to set the handler for the event.
*&>>>>-----------------------------------------------------------------*

  gr_events = gr_table->get_event( ).
  create object event_handler.
  set handler event_handler->on_user_command for gr_events.
  set handler event_handler->on_double_click for gr_events.
  set handler event_handler->on_link_click for gr_events.
* Set up selections.
  gr_selections = gr_table->get_selections( ).
  gr_selections->set_selection_mode( 1 ).       "Single


  gr_table->display( ).



*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events implementation.
  method on_user_command.
* Get the selection rows
    data: lr_selections type ref to cl_salv_selections.
    data: lt_rows type salv_t_row.
    data: ls_rows type i.
    data: message type string.
    case e_salv_function.
      when '&FUNCTION'.
        lr_selections = gr_table->get_selections( ).
        lt_rows = lr_selections->get_selected_rows( ).
        read table lt_rows into ls_rows index 1.
        read table ispfli into xspfli index ls_rows.
        concatenate xspfli-carrid xspfli-connid
        xspfli-cityfrom xspfli-cityto
        into message separated by space.
        message i001(00) with 'You Clicked the button!' message.
    endcase.
  endmethod. "on_user_command

  method on_double_click.
    data: message type string.
    data: row_c(4) type c.
    row_c = row.
    concatenate 'Row' row_c 'Column' column
    into message separated by space.
    message i001(00) with 'You double-clicked on ' message.
  endmethod. "on_double_click



  method on_link_click.

    data: message type string.
    data: row_c(4) type c.
    row_c = row.
    concatenate 'Row' row_c 'Column' column
    into message separated by space.
    message i001(00) with 'You link-clicked on ' message.

  endmethod.      "lcl_handle_events IMPLEMENTATION

endclass. "lcl_handle_events IMPLEMENTATION

former_member212653
Active Contributor
0 Kudos
1,271

1) create a program with screen 100

2)copy - paste the code

3)declare a pf-status of "0100" with "EXIT"


REPORT ZTEST7 .
TYPE-POOLS slis.
TABLES: sflight.
*--------------------------------------------------------------------
* G L O B A L   I N T E R N  A L   T A B L E S
*--------------------------------------------------------------------
DATA: gi_sflight TYPE STANDARD TABLE OF sflight.
*--------------------------------------------------------------------
* G L O B A L   D A T A
*--------------------------------------------------------------------
DATA: ok_code LIKE sy-ucomm,
      g_wa_sflight LIKE sflight.
* Declare reference variables to the ALV grid and the container
DATA:
  go_grid             TYPE REF TO cl_gui_alv_grid,
  go_custom_container TYPE REF TO cl_gui_custom_container.
*--------------------------------------------------------------------
* S T A R T - O F - S E L E C T I O N.
*--------------------------------------------------------------------
START-OF-SELECTION.
  SET SCREEN '100'.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE ok_code.
    WHEN 'EXIT'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS '0100'.

* Create objects
  IF go_custom_container IS INITIAL.
    CREATE OBJECT go_custom_container
      EXPORTING
        container_name = 'ALV_CONTAINER'.
    CREATE OBJECT go_grid
      EXPORTING
        i_parent = go_custom_container.
    PERFORM load_data_into_grid.
  ENDIF.
ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  load_data_into_grid
*&---------------------------------------------------------------------*
FORM load_data_into_grid.
  DATA:l_i_fieldcat_alv TYPE slis_t_fieldcat_alv,
       l_wa_fieldcat_alv TYPE slis_fieldcat_alv,
       l_i_fcat TYPE lvc_t_fcat,
       l_wa_fcat TYPE lvc_s_fcat.
* Read data from table SFLIGHT
  SELECT *
    FROM sflight
    INTO TABLE gi_sflight UP TO 100 ROWS.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
      EXPORTING
*       I_PROGRAM_NAME               =
*       I_INTERNAL_TABNAME           =
        i_structure_name             = 'SFLIGHT'
*       I_CLIENT_NEVER_DISPLAY       = 'X'
*       I_INCLNAME                   =
*       I_BYPASSING_BUFFER           =
*       I_BUFFER_ACTIVE              =
    CHANGING
      ct_fieldcat                  = l_i_fieldcat_alv
   EXCEPTIONS
     inconsistent_interface       = 1
     program_error                = 2
     OTHERS                       = 3
            .
  IF sy-subrc = 0.

    LOOP AT l_i_fieldcat_alv INTO l_wa_fieldcat_alv.
      MOVE-CORRESPONDING l_wa_fieldcat_alv TO l_wa_fcat.
      IF l_wa_fcat-fieldname = 'CARRID'.
        l_wa_fcat-hotspot = 'X'.
      ENDIF.

      APPEND l_wa_fcat TO l_i_fcat.

    ENDLOOP.


* Load data into the grid and display them
*  CALL METHOD go_grid->set_table_for_first_display
*    EXPORTING i_structure_name = 'SFLIGHT'
*    CHANGING  it_outtab        = gi_sflight.

    CALL METHOD go_grid->set_table_for_first_display
*      EXPORTING
*        i_buffer_active               =
*        i_bypassing_buffer            =
*        i_consistency_check           =
*        i_structure_name              =
*        is_variant                    =
*        i_save                        =
*        i_default                     = 'X'
*        is_layout                     =
*        is_print                      =
*        it_special_groups             =
*        it_toolbar_excluding          =
*        it_hyperlink                  =
*        it_alv_graphics               =
*        it_except_qinfo               =
*        ir_salv_adapter               =
      CHANGING
        it_outtab                     = gi_sflight
        it_fieldcatalog               = l_i_fcat
*        it_sort                       =
*        it_filter                     =
        EXCEPTIONS
          invalid_parameter_combination = 1
          program_error                 = 2
          too_many_lines                = 3
          OTHERS                        = 4
            .
    IF sy-subrc <> 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
  ENDIF.


ENDFORM.                    " load_data_into_grid

Clemenss
Active Contributor
0 Kudos
1,271

Hi Dean,

you can convert the field catalog created with REUSE_ALV_FIELCATALOG_MERGE:


  CALL FUNCTION 'LVC_TRANSFER_FROM_SLIS'
    EXPORTING
      it_fieldcat_alv                     = lt_fcat  " TYPE slis_t_fieldcat_alv.
    IMPORTING
      et_fieldcat_lvc                     = pt_alv_fieldcat "TYPE lvc_t_fcat.
    TABLES
      it_data                             = pt_outtab
    EXCEPTIONS
      it_data_missing                     = 1
      OTHERS                              = 2
            .

Regards,

Clemens