martes, 19 de noviembre de 2013

Filtrar datos de una base de datos con SELECT-OPTIONS y SQL

¿Quieres filtrar los datos de una base de datos? En esta entrada se explicará como copiar la base de datos a una tabla interna con una sentencia SQL.

Es fundamental tener conocimiento de las sentencias SELECT-OPTIONS y SELECTION-SCREEN en este ejercicio para la pantalla de selección, y de la sentencia SQL para copiar los datos filtrados a la tabla.

REPORT  z_sflight.

* Cargar la tabla SFLIGHT de la base de datos
TABLES: sflight.

* Definición de variables
DATA: g_it_sflight TYPE TABLE OF sflight,
      g_st_sflight TYPE sflight.

* Pantalla de selección
SELECTION-SCREEN: BEGIN OF BLOCK b01 WITH FRAME TITLE text-001.
  
SELECT-OPTIONS: p01 FOR sflight-carrid,
                p02 FOR sflight-connid,
                p03 FOR sflight-fldate.

SELECTION-SCREEN SKIP 1.

SELECT-OPTIONS: p04 FOR sflight-price.

SELECTION-SCREEN: END OF BLOCK b01.

* Copiado de los datos a la tabla con los filtros
SELECT * FROM sflight INTO TABLE g_it_sflight
         WHERE carrid IN p01
         AND   connid IN p02
         AND   fldate IN p03
         AND   price  IN p04.

* Ver en el debugging los valores de la tabla g_it_sflight
BREAK-POINT.

Se ha incluido un BREAK-POINT para ver la tabla interna g_it_sflight en el debugging.

Si ejecutamos, veremos que en la pantalla de selección aparecen los nombres de las variables. Para poder editarlo tenemos que ir a los textos de selección:

Ir a los textos de selección.
Editar los campos para mostrar en la pantalla de selección.
 Ya tenemos la pantalla lista para mostrar y ejecutar el programa.

Pantalla de selección con los textos editados.

0 comentarios :

Publicar un comentario