PROMO SEPTIEMBRE en CVOSOFT United States Of America: 💎Calidad, 🔥Bonificaciones, 🥶Precios Congelados y MÁS!

 X 

✒️ABAP La creación de un ALV TREE orientado a objetos

ABAP La creación de un ALV TREE orientado a objetos

ABAP La creación de un ALV TREE orientado a objetos

Creating an ALV Tree Using Object Orientation

In this tutorial, we'll walk through the creation of a program, Z_LLENAR_SPFLI, which populates data into the standard table SPFLI containing flight information. Then, using transaction SE38, we'll create the program Z_ALV_TREE.

Key Points:

  • Internal Table Declaration: We start by declaring an internal table with 7 fields, which will be displayed on the screen.
  • Instance Variables: We declare variables to instantiate two classes, CL_GUI_ALV_TREE and CL_GUI_CUSTOM_CONTAINER.
  • Data Retrieval: Inside the START-OF-SELECTION event, we construct the obtener_datos subroutine, which retrieves all data from the SPFLI table.
  • Instance Check: We check if the tree has not been instantiated yet, then we instantiate both the tree and the container.
  • Catalog Filling: The fill_catalog_tree subroutine fills the catalog.
  • Hierarchy Building: We build the data hierarchy of the tree using the build_hierarchy_header and create_hierarchy subroutines.
  • Displaying ALV: Finally, we call the method to display the ALV on the screen.
  • Dynpro Creation: We also need to create a dynpro where we place a custom control containing the ALV Tree and a GUI status for screen navigation.
  • Execution: Execute the program to see the output on the screen.

E.g

*&---------------------------------------------------------------------*
*& Report Z_ALV_TREE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_alv_tree.

*----------------------------------------------------------------------*
* DECLARACION DE TYPES
*----------------------------------------------------------------------*
TYPES: BEGIN OF ty_spfli,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
countryfr TYPE spfli-countryfr,
cityfrom TYPE spfli-cityfrom,
airpfrom TYPE spfli-airpfrom,
countryto TYPE spfli-countryto,
cityto TYPE spfli-cityto,
END OF ty_spfli.

TYPES: BEGIN OF ty_header,
carrid TYPE spfli-carrid,
END OF ty_header.

*----------------------------------------------------------------------*
* DECLARACION DE TABLAS INTERNAS
*----------------------------------------------------------------------*
DATA: t_spfli TYPE STANDARD TABLE OF ty_spfli WITH HEADER LINE,
tab_tree TYPE STANDARD TABLE OF ty_spfli WITH HEADER LINE,
t_tree TYPE STANDARD TABLE OF ty_spfli WITH HEADER LINE,
t_header TYPE STANDARD TABLE OF ty_header WITH HEADER LINE.

*----------------------------------------------------------------------*
* DECLARACION DE VARIABLES
*----------------------------------------------------------------------*
DATA: g_alv_tree TYPE REF TO cl_gui_alv_tree,
l_hierarchy_header TYPE treev_hhdr,
gs_fieldcat TYPE lvc_s_fcat,
gt_fieldcat_tree TYPE lvc_t_fcat,
g_custom_container TYPE REF TO cl_gui_custom_container.

*----------------------------------------------------------------------*
* DECLARACION DE FIELD-SYMBOLS
*----------------------------------------------------------------------*
FIELD-SYMBOLS: <header> LIKE LINE OF t_header,
<spfli> LIKE LINE OF t_spfli.

*----------------------------------------------------------------------*
START-OF-SELECTION.
*----------------------------------------------------------------------*

* Obtenemos los datos que se mostrarán en el ALV
PERFORM obtener_datos.

IF g_alv_tree IS INITIAL.
* Se crearán los objetos correspondientes al CONTAINER y el ALV TREE
PERFORM init_tree.

CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2.
ENDIF.

CALL SCREEN 100.

*----------------------------------------------------------------------*
* FORM init_tree *
*----------------------------------------------------------------------*
FORM init_tree.

DATA: l_tree_container_name(30) TYPE c.

l_tree_container_name = 'TREE_CONTROL'.

* Creamos el objeto CONTAINER
CREATE OBJECT g_custom_container
EXPORTING
container_name = l_tree_container_name
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.


* Creamos el objeto del ALV TREE
CREATE OBJECT g_alv_tree
EXPORTING
parent = g_custom_container
node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
item_selection = ''
no_html_header = 'X'
no_toolbar = ''
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7.

* Completamos el catálogo
PERFORM fill_catalog_tree.

* Construimos la jerarquia del ALV TREE
PERFORM build_hierarchy_header CHANGING l_hierarchy_header.

* Ejecutamos el método que muestra el ALV
CALL METHOD g_alv_tree->set_table_for_first_display
EXPORTING
is_hierarchy_header = l_hierarchy_header
CHANGING
it_outtab = t_tree[]
it_fieldcatalog = gt_fieldcat_tree.

PERFORM create_hierarchy.

ENDFORM. "INIT_TREE

*----------------------------------------------------------------------*
* FORM FILL_CATALOG_TREE
*----------------------------------------------------------------------*
FORM fill_catalog_tree.

DATA: gs_fieldcat_add TYPE lvc_s_fcat.

CLEAR gs_fieldcat.
gs_fieldcat-col_pos = 1.
gs_fieldcat-reptext = 'Flight'.
gs_fieldcat-scrtext_s = 'Flight'.
gs_fieldcat-fieldname = 'CONNID'.
gs_fieldcat-tabname = 'T_SPFLI'.
APPEND gs_fieldcat TO gt_fieldcat_tree.

CLEAR gs_fieldcat.
gs_fieldcat-col_pos = 2.
gs_fieldcat-reptext = 'Country'.
gs_fieldcat-scrtext_s = 'Country'.
gs_fieldcat-fieldname = 'COUNTRYFR'.
gs_fieldcat-tabname = 'T_SPFLI'.
APPEND gs_fieldcat TO gt_fieldcat_tree.

CLEAR gs_fieldcat.
gs_fieldcat-col_pos = 3.
gs_fieldcat-reptext = 'Dep.City'.
gs_fieldcat-scrtext_s = 'Dep.City'.
gs_fieldcat-fieldname = 'CITYFROM'.
gs_fieldcat-tabname = 'T_SPFLI'.
gs_fieldcat-outputlen = '15'.
APPEND gs_fieldcat TO gt_fieldcat_tree.

CLEAR gs_fieldcat.
gs_fieldcat-col_pos = 4.
gs_fieldcat-reptext = 'Dep.Airp'.
gs_fieldcat-scrtext_s = 'Dep.Airp'.
gs_fieldcat-fieldname = 'AIRPFROM'.
gs_fieldcat-tabname = 'T_SPFLI'.
gs_fieldcat-outputlen = '20'.
APPEND gs_fieldcat TO gt_fieldcat_tree.

CLEAR gs_fieldcat.
gs_fieldcat-col_pos = 5.
gs_fieldcat-reptext = 'Country'.
gs_fieldcat-scrtext_s = 'Country'.
gs_fieldcat-fieldname = 'COUNTRYTO'.
gs_fieldcat-tabname = 'T_SPFLI'.
gs_fieldcat-outputlen = '15'.
APPEND gs_fieldcat TO gt_fieldcat_tree.

CLEAR gs_fieldcat.
gs_fieldcat-col_pos = 6.
gs_fieldcat-reptext = 'Arr.City'.
gs_fieldcat-scrtext_s = 'Arr.City'.
gs_fieldcat-fieldname = 'CITYTO'.
gs_fieldcat-tabname = 'T_SPFLI'.
gs_fieldcat-outputlen = '20'.
APPEND gs_fieldcat TO gt_fieldcat_tree.

ENDFORM. "FILL_CATALOG_TREE
*----------------------------------------------------------------------*
* FORM build_hierarchy_header
*----------------------------------------------------------------------*
FORM build_hierarchy_header CHANGING p_hierarchy_header TYPE treev_hhdr.
CLEAR p_hierarchy_header.
p_hierarchy_header-heading = 'Airline carrier'(300).
p_hierarchy_header-width = 18.
p_hierarchy_header-width_pix = ' '.
ENDFORM. "BUILD_HIERARCHY_HEADER
*----------------------------------------------------------------------*
* FORM create_hierarchy *
*----------------------------------------------------------------------*
FORM create_hierarchy.

DATA: l_root_key TYPE lvc_nkey,
l_next_key TYPE lvc_nkey,
l_last_key TYPE lvc_nkey,
header TYPE string,
w_menge_text(13) TYPE c.

CLEAR l_root_key.

LOOP AT t_header ASSIGNING <header>.
CLEAR l_root_key.
CLEAR l_next_key.

* Agregamos un nuevo nodo en el ALV TREE
PERFORM add_node USING <header>-carrid l_root_key
CHANGING l_next_key.

LOOP AT t_spfli ASSIGNING <spfli> WHERE carrid EQ <header>-carrid.
MOVE-CORRESPONDING <spfli> TO tab_tree.
PERFORM add_leaf USING tab_tree l_next_key
CHANGING l_last_key.
ENDLOOP.
ENDLOOP.

* Actualizamos el ALV TREE
CALL METHOD g_alv_tree->frontend_update.
ENDFORM. "CREATE_HIERARCHY

*----------------------------------------------------------------------*
* FORM ADD_NODE
*----------------------------------------------------------------------*
FORM add_node USING l_name l_root_key CHANGING l_next_key.

DATA: l_node_text TYPE lvc_value,
ls_tree TYPE ty_spfli.

l_node_text = l_name.

CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = l_root_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_tree
IMPORTING
e_new_node_key = l_next_key.

ENDFORM. "ADD_NODE

*----------------------------------------------------------------------*
* FORM ADD_LEAF *
*----------------------------------------------------------------------*
FORM add_leaf USING l_tree TYPE ty_spfli
l_next_key
CHANGING l_last_key.

CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = l_next_key
i_relationship = cl_gui_column_tree=>relat_last_child
is_outtab_line = tab_tree
IMPORTING
e_new_node_key = l_last_key.

ENDFORM. "ADD_LEAF

*----------------------------------------------------------------------*
* FORM OBTENER_DATOS
*----------------------------------------------------------------------*
FORM obtener_datos.

SELECT carrid connid countryfr cityfrom
airpfrom countryto cityto
INTO TABLE t_spfli
FROM spfli.

IF sy-subrc EQ 0.
LOOP AT t_spfli ASSIGNING <spfli>.
MOVE <spfli>-carrid TO t_header-carrid.
APPEND t_header.
ENDLOOP.

SORT t_header.

DELETE ADJACENT DUPLICATES FROM t_header.

ENDIF.

ENDFORM. "OBTENER_DATOS

*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS '0100'.
SET TITLEBAR '0100'.
ENDMODULE. " STATUS_0100 OUTPUT

*&---------------------------------------------------------------------*
*& Module EXIT_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
MODULE exit_command_0100 INPUT.
LEAVE PROGRAM.
ENDMODULE. " EXIT_COMMAND_0100 INPUT


 

 

 


Sobre el autor

Publicación académica de Jaime Eduardo Gomez Arango, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Expert


Jaime Eduardo Gomez Arango

Profesión: Ingeniero de Sistemas y Computaci?n - Espa?a - Legajo: SW34C

✒️Autor de: 149 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Presentación:

Ingeniero de sistemas y computaci?n con 8 a?os de experiencia el desarrollo frontend & backend (react/node) y en cloud (aws), actualmente desarrollando habilidades en sap btp, ui5, abap y fiori.

Certificación Académica de Jaime Gomez

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "La creación de un ALV TREE orientado a objetos" de la mano de nuestros alumnos.

SAP Expert


Creación de una ALV TREE orientado a objetos Clases que se usan para su creación: CL_GUI_ALV_TREE CL:_GUI_ALV_TREE_SIMPLE (No es posible usar jerarquías) Programas estándar útiles a tener en cuenta para la creación de nuestros ALVs tree: BCALV_TREE_01 BCALV_TREE_02 BCALV_TREE_03 BCALV_TREE_04 BCALV_TREE_05 BCALV_TREE_06 BCALV_TREE_DND_MULTIPLE

Acceder a esta publicación

Creado y Compartido por: Jos? Luis Zevallos Mamani

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Creación de un ALV TREE orientado a objetos Para la creación de un ALV TREE se debe tomar en cuenta los siguientes pasos: Primero se debe crear un programa Z. Luego se crea un programa ejemplo Z_ALVTREE. Los puntos más importantes a tomar en cuenta en la creación del programa son: La declaración de una tabla interna la cual se mostrara por pantalla. Se declara una variable para instanciar la clase CL_GUI_ALV_TREE y otra para instanciar la clase CL_GUI_CUSTOM_CONTAINER. Dentro del STAR-OF-SELECTION se construye una subrutina obtener datos, la cual recuperara los datos de la tabla. Luego se construye una instancia del árbol y del contenido. Luego se crea una rutina para llenar el catalogo. Se construye...

Acceder a esta publicación

Creado y Compartido por: Jesus Enrique Ramos Bello / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Creación de un ALV TREE Orientado a Objetos. Creamos un programa Z para llenar datos a una tabla interna, en dicho ejemplo llenamos la tabla SPFLI. Creamos otro programa Z para el ALV TREE. Declarar una tabla interna con los campos necesarios para mostrar en pantalla. Instanciamos la clase CL_GUI_ALV_TREE y otra para instanciar la clase CL_GUI_CUSTOM_CONTAINER. Crear una subrutina obtener datos de la tabla SPFLI. Para instanciar el arbol construimos una instancia del arbol y container. Crear una subrutina fill_catalogo_tree para llenar el catalogo. Se contruye la jerarquia de los datos del arbol mediante de las subrutinas build_hierarchy_header y create_hierarchy. Por ultimo se llama el metodo SET_TABLE_FOR_FIRST_DISPLAY...

Acceder a esta publicación

Creado y Compartido por: Erick Omar M?rmol Ascencio / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Lección 9: Creación de ALV TREE orientado a objetos Crear el programa Z_LLENAR_SPFLI que llena con datos la tabla SPFLI, información sobre vuelos. Crear el programa Z_ALV_TREE. Se declarar de una tabla interna con 7 campos, que se mostrará por pantalla. Se declarar una variable para instanciar la clase CL_GUI_ALV_TREE y otra para instanciar la clase CL_GUI_CUSTOM_CONTAINER. Dentro del evento START-OF-SELECTION crear la subrutina Obtener_datos que recupera los datos de la tabla SPFLI. Si el árbol no fue instanciado, crear una instancia del árbol, init_tree. Mediante la subrutina fill_catalog_tree se hace el llenado de catálogo. Crear la jerarquía de los datos del árbol mediante...

Acceder a esta publicación

Creado y Compartido por: Felipe Roca Molina

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


CREACION DE UN ALV TREE ORIENTADO A OBJETOS DECLARAR UNA TABLA INTERNA DECLARAR UNA VARIABLE PARA DISTANCIAR LA CLASE CL_GUI_ALV_TREE Y OTRA PARA DECLARAR LA CLASE CL_GUI_CUSTOM_CONTAINER DENTRO DEL EVENTO START-OF-SELECTION CONSTRUIMOS LA SUBRUTINA OBTENER DATOS LA CUAL RECUPERA TODOS LOS DATOS DE LA TABLA DE NUESTRO PROGRAMA CREADO. SI EL ÁRBOL NO FUE INSTANCIADO TODAVÍA, CONSTRUIMOS UNA INSTANCIA DEL ÁRBOL Y DEL CONTAINER. MEDIANTE LA RUTINA FILL_CATALOG_TREE LLENAMOS EL CATALOGO. SE CONSTRUYE LA JERARQUÍA DE LOS DATOS DEL ÁRBOL MEDIANTE UNA SUBRUTINA BUILD_HIERARCHY_HEADER. SE LLAMA AL MÉTODO SET_FIRST_DISPLAY PARA MOSTRAR EL ALV POR PANTALLA. TAMBIÉN SE DEBE CREAR UNA DYNPRO QUE TENGA EL...

Acceder a esta publicación

Creado y Compartido por: Oscar Guillermo Rodriguez Villate / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

CREACIÓN DE UN ALV TREE ORIENTADO A OBJETOS. En este vídeo aprenderemos a realizar un ALV TREE orientado a objetos para ello construiremos el programa Z_LLENAR_SPFLI el cual llena contactos la tabla estándar SPFLI que contiene información sobre vuelos luego construiremos el programa z _ALV_TREE los puntos más importantes a tener en cuenta del programa son declaramos una tabla interna con 7 campo la cual se mostrará por pantalla declaramos una variable para instanciar la clase CL_GUI_ALV_TREE para instanciar la clase CL_GUI_CUSTOM_CONTAINER dentro del evento STAR-OF-SELECTION construimos la subrutina obtener datos la cual recupera todos los datos de la tabla SPFLI luego si el árbol no fue instanciado...

Acceder a esta publicación

Creado y Compartido por: Diego Armando De Santiago Castanon

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

VIDEO - CREACION DE UN ALV TREE ORIENTADO A OBJETOS En este video, aprenderemos a realizar un ALV TREE orientado a objetos, para ello, construiremos el programa Z_LLENAR_SPFLI el cual llena con datos la tabla estandar SPFLI que contienen informacion sobre vuelos Luego construiremos el programa Z_ALV_TREE, en la transaccion SE38 Los puntos mas importantes a tener en cuenta del programa son: Declaramos una tabla interna con 7 campos la cual se mostrara por pantalla Declaramos una variable para instanciar la clase CL_GUI_ALV_TREE y otra para instanciar la clase CL_GUI_CUSTOM_CONTAINER Dentro del evento STAR-OF-SELECTION construimos la subrutina a obtener datos, la cual recupera todos los datos de la tabla SPFLI Luego si el arbol no fue...

Acceder a esta publicación

Creado y Compartido por: Ixhel Magai Lopez Valencia / Disponibilidad Laboral: PartTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


LA CREACIÓN DE UN ALV TREE ORIENTADO A OBJETOS Construiremos el programa Z_LLENAR_SPFLI, el cual llena con datos la tabla estándar SPFLI que contiene información sobre vuelos. Luego mediante la transacción SE38 construiremos el programa Z_ALV_TREE. Los puntos más importantes a tener en cuenta del programa son: Declaramos una tabla interna con 7 campos, la cual se mostrará por pantalla. Declaramos una variable para instanciar la clase CL_GUI_ALV_TREE y otra para instanciar la clase CL_GUI_CUSTOM_CONTAINER. Dentro del evento START-OF-SELECTION construimos la subrutina obtener_datos la cual recupera todos los datos de la tabla SPFLI. Luego si el arbol no fue instanciado todavía,...

Acceder a esta publicación

Creado y Compartido por: Ducelvis Lolimar Arcia Cova / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


CRECIÒN DE UN ALV TREE ORIENTADO A OBJETOS 1.- Crear el programa para llenar el archivo estàndar SPFLI, que contiene informaciòn sobre vuelos. 2.- Luego construiremos el programa Z_ALV_TREE: Lo màs importante a tener en cuenta son: - Declarar una tabla interna con 7 campos, la cual se mostrarà por pantalla. - Declaramos una variable para instanciar la clase, cl_gui_alav_tree y otra para para instanciar la clase cl_gui_custom_container. Dentro del evento STAR-OF-SELECTION, construimos la subrutina obtener datos la cual recupera todos los datos de la tabla SPFLI. Luego si el àrbolo no fue instanciado todavìa, construimos una instancia del àrbol y del container , Mediante la rutina fill_catalog_tree.-...

Acceder a esta publicación

Creado y Compartido por: Miguel Angel Acosta Acosta / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Unidad 5: Programación Orientada a Objetos. Lección 9: Video - Creación de un ALV TREE orientado a objetos. Video: En este video aprenderemos a realizar un ALV TREE orientado a objetos. Para ello construiremos el programa llamado Z_LLENAR_SPFLI el cual llena con datos la tabla estándar FPFLI que contiene información sobre vuelos. Luego construiremos el programa Z_ALV_TREE (en la transacción estándar SE38 ). Los puntos más importantes a tener en cuenta del programa son: Declaramos una tabla interna con siete campos la cual se mostrará por pantalla. Declaramos una variable para instanciar la clase cl_gui_alv_tree y otra para instanciar la clase cl_gui_custom_container. Dentro del...

Acceder a esta publicación

Creado y Compartido por: Brenda Castillo Dom?nguez / Disponibilidad Laboral: FullTime

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 80.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!