Application Development and Automation 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: 
Read only

ALV OO dynamic

Former Member
0 Likes
1,142

Good,

could somebody tell me how I could make a dynamic ALV Object Oriented dynamic.

It is not known how many columns are displayed in a fixed manner.

I have done ALV OO, but not dynamic.

If someone could say something. Please.

Ideally, some code, so if you show me a link to it, perfect.

Thanks

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
825

Hello Jonnatan,

Dynamic alv is given as an example in the below link....

saptechnical-->Tutorials>ALV-->ALVMainPage

where "/" stands for "/".

you could also get more help on all kinds of alv in the above site

use ".com" after saptechnical

THanks ,

M.Naveen Kumar.

Good,

could somebody tell me how I could make a dynamic ALV Object Oriented dynamic.

It is not known how many columns are displayed in a fixed manner.

I have done ALV OO, but not dynamic.

If someone could say something. Please.

Ideally, some code, so if you show me a link to it, perfect.

Thanks

4 REPLIES 4
Read only

Former Member
0 Likes
826

Hello Jonnatan,

Dynamic alv is given as an example in the below link....

saptechnical-->Tutorials>ALV-->ALVMainPage

where "/" stands for "/".

you could also get more help on all kinds of alv in the above site

use ".com" after saptechnical

THanks ,

M.Naveen Kumar.

Read only

RaymondGiuseppi
Active Contributor
0 Likes
825

Also look (and use search tool) in sdn wiki

- [Dynamic Internal Table |http://wiki.sdn.sap.com/wiki/display/Snippets/DynamicInternalTable]

- [How to create dynamic internal table structure on the basis of dynamic ALV layout change at run time. |http://wiki.sdn.sap.com/wiki/display/Snippets/HowtocreatedynamicinternaltablestructureonthebasisofdynamicALVlayoutchangeatrun+time.]

etc.

Regards,

Raymond

Read only

0 Likes
825

Thanks a lot.

I have used this code:


*ALV OO dinámico
* Declaración de TYPE POOLS para el ALV
TYPE-POOLS: slis.                    " ALV Global Types
* Declaración de VARIABLES para la tabla interna dinámica y el ALV
DATA: l_structure            TYPE REF TO DATA,
      l_table                TYPE REF TO DATA,
      struc_desc             TYPE REF TO cl_abap_structdescr,
      lt_layout              TYPE slis_layout_alv,
      ls_lvc_fieldcatalogue  TYPE lvc_s_fcat,
      lt_lvc_fieldcatalogue  TYPE lvc_t_fcat,
      ls_fieldcatalogue      TYPE slis_fieldcat_alv,
      lt_fieldcatalogue      TYPE slis_t_fieldcat_alv.
* Declaración de FIELD-SYMBOLS
FIELD-SYMBOLS : <it_table> TYPE STANDARD TABLE,
<dyn_str>  TYPE ANY,
<str_comp> TYPE abap_compdescr.
* Textos para el TÍTULO del grid
DATA : t1(30),  "texto escrito por nosotros
       t2(10),  "recibirá el nombre de la tabla
       t3(50).  "texto final a mostrar
* Declaración de SELECTION SCREEN para la tabla de entrada
PARAMETERS : p_table TYPE TABNAME."LIKE dd02l-tabname. "Nombre de la tabla
* initialization event
INITIALIZATION.
* start of selection event
START-OF-SELECTION.
* Textos para los TÍTULOS DEL GRID
t1 = 'ALV OO dinámico de la tabla: '. "texto introducido por nosotros
t2 = p_table.                         "nombre de la tabla seleccionada
* Texto final a mostrar en la pantalla
CONCATENATE t1 t2 INTO t3 SEPARATED BY space.
* C R E A R   U N A   E S T R U C T U R A   D I N Á M I C A
CREATE DATA l_structure TYPE (p_table).
ASSIGN l_structure->* TO <dyn_str>.
* C A M P O S   D E   L A   E S T R U C T U R A
struc_desc ?= cl_abap_typedescr=>describe_by_data( <dyn_str> ).
LOOP AT struc_desc->components ASSIGNING <str_comp>.
*   construimos el Fieldcatalog
  ls_lvc_fieldcatalogue-fieldname = <str_comp>-name.
  ls_lvc_fieldcatalogue-ref_table = p_table.
  APPEND ls_lvc_fieldcatalogue TO lt_lvc_fieldcatalogue.
*   construimos el Fieldcatalog
  ls_fieldcatalogue-fieldname   = <str_comp>-name.
  ls_fieldcatalogue-ref_tabname = p_table.
  APPEND ls_fieldcatalogue TO lt_fieldcatalogue.
ENDLOOP.

Read only

0 Likes
825
  • And this part


* C R E A R   L A   T A B L A   I N T E R N A   D I N Á M I C A
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
  it_fieldcatalog = lt_lvc_fieldcatalogue
IMPORTING
  ep_table        = l_table.
ASSIGN l_table->* TO <it_table>.
* recuperar los datos de la tabla seleccionada
SELECT * FROM (p_table)
INTO CORRESPONDING FIELDS OF TABLE <it_table>.
* LAYOUT del ALV
lt_layout-zebra = 'X'.
lt_layout-colwidth_optimize = 'X'.
lt_layout-window_titlebar = t3.
* MOSTRAR el ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
  is_layout     = lt_layout
  it_fieldcat   = lt_fieldcatalogue
TABLES
  t_outtab      = <it_table>
EXCEPTIONS
  program_error = 1
  OTHERS        = 2.
IF sy-subrc <> 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.