* Vamos mudar tudo para Orientação a Objeto', é o que a SAP fala sobre o
* ABAP no futuro, o problema vai ser dar manutenção nos ALV's antigos
* mudando para o ALV Orientado, para dar uma mãozinha nisso, existem duas
* funções que fazem a conversão do formato das tabelas usadas entre a
* função 'reuse_alv_gri_display' e a classe cl_gui_alv_grid, como sou
* defensor da Orientacao a objeto estarei mostrando a função que
* converte de Estrutural para Orientado, mas para não ficarem revoltados
* comigo a funcao q faz inverso é a 'LVC_TRANSFER_TO_SLIS'.
*&---------------------------------------------------------------------*
REPORT z_from_estrut_to_orient.
DATA :
t_fcat TYPE TABLE OF slis_fieldcat_alv,
t_fcat_lvc TYPE TABLE OF lvc_s_fcat,
t_sflight TYPE TABLE OF sflight
.
* Selecao de dados
SELECT *
FROM sflight
INTO TABLE t_sflight
UP TO 10 ROWS
.
BREAK-POINT.
* Criação do catalogo de campos da função
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
* I_INTERNAL_TABNAME =
i_structure_name = 'SFLIGHT'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_INCLNAME =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = t_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
BREAK-POINT.
* Essa função é muito simples de executar, e economiza um bom tempo.
* Percebam que além de catalogo de campos( IT_FIELDCAT_ALV ), e possivel
* a realização da conversao da tabela de ordenacao ( IT_SORT_ALV ),
* da tabela de filtro ( IT_FILTER_ALV ) e da estrutura do layout
* ( IT_LAYOUT_ALV ) também.
*&---------------------------------------------------------------------*
CALL FUNCTION 'LVC_TRANSFER_FROM_SLIS'
EXPORTING
it_fieldcat_alv = t_fcat
* IT_SORT_ALV =
* IT_FILTER_ALV =
* IS_LAYOUT_ALV =
IMPORTING
et_fieldcat_lvc = t_fcat_lvc
* ET_SORT_LVC =
* ET_FILTER_LVC =
* ES_LAYOUT_LVC =
TABLES
it_data = t_sflight
EXCEPTIONS
it_data_missing = 1
OTHERS = 2.
* t+
* ABAP no futuro, o problema vai ser dar manutenção nos ALV's antigos
* mudando para o ALV Orientado, para dar uma mãozinha nisso, existem duas
* funções que fazem a conversão do formato das tabelas usadas entre a
* função 'reuse_alv_gri_display' e a classe cl_gui_alv_grid, como sou
* defensor da Orientacao a objeto estarei mostrando a função que
* converte de Estrutural para Orientado, mas para não ficarem revoltados
* comigo a funcao q faz inverso é a 'LVC_TRANSFER_TO_SLIS'.
*&---------------------------------------------------------------------*
REPORT z_from_estrut_to_orient.
DATA :
t_fcat TYPE TABLE OF slis_fieldcat_alv,
t_fcat_lvc TYPE TABLE OF lvc_s_fcat,
t_sflight TYPE TABLE OF sflight
.
* Selecao de dados
SELECT *
FROM sflight
INTO TABLE t_sflight
UP TO 10 ROWS
.
BREAK-POINT.
* Criação do catalogo de campos da função
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
* I_INTERNAL_TABNAME =
i_structure_name = 'SFLIGHT'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_INCLNAME =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = t_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
BREAK-POINT.
* Essa função é muito simples de executar, e economiza um bom tempo.
* Percebam que além de catalogo de campos( IT_FIELDCAT_ALV ), e possivel
* a realização da conversao da tabela de ordenacao ( IT_SORT_ALV ),
* da tabela de filtro ( IT_FILTER_ALV ) e da estrutura do layout
* ( IT_LAYOUT_ALV ) também.
*&---------------------------------------------------------------------*
CALL FUNCTION 'LVC_TRANSFER_FROM_SLIS'
EXPORTING
it_fieldcat_alv = t_fcat
* IT_SORT_ALV =
* IT_FILTER_ALV =
* IS_LAYOUT_ALV =
IMPORTING
et_fieldcat_lvc = t_fcat_lvc
* ET_SORT_LVC =
* ET_FILTER_LVC =
* ES_LAYOUT_LVC =
TABLES
it_data = t_sflight
EXCEPTIONS
it_data_missing = 1
OTHERS = 2.
* t+