Módulo 3 - Programación de...Módulo 3: Programación de reports 4 1.2. Pantalla de selección...
Transcript of Módulo 3 - Programación de...Módulo 3: Programación de reports 4 1.2. Pantalla de selección...
Módulo 3 Programación de Reports
Módulo 3: Programación de reports
WWW.AYIESAP.COM 2
ÍNDICE
1. REPORTS .................................................................................................................... 3
1.1. Estructura de reports ABAP - Eventos ................................................................... 3
1.2. Pantalla de selección ............................................................................................. 4
1.3. Selección de datos ................................................................................................. 5
1.4. Salida de datos ....................................................................................................... 5
1.5. Elementos de texto ................................................................................................ 6
1.6. Bases de datos lógicas (BDL) ................................................................................. 9
1.7. Otros eventos ...................................................................................................... 13
Módulo 3: Programación de reports
WWW.AYIESAP.COM 3
1. REPORTS
Son programas orientados a hacer diferentes tipos de listados, ya sea simple o
interactivo.
Principales transacciones:
• SE38 (Editor ABAP)
• SA38 (Ejecución de programas tipo REPORT)
• SE80 (Object Navigator)
1.1. Estructura de reports ABAP - Eventos
El ABAP es un lenguaje de programación orientado
a eventos. Esto significa que se ejecuta en el
orden predeterminado en los eventos,
independientemente de cómo esté estructurado
el programa.
Bloques principales de un programa de tipo report:
• Cabecera del programa: REPORT ….
• Definición de datos: DATA, TABLES,… no es
un bloque ejecutable
• INITIALIZATION: ejecutado siempre al
iniciar un programa
• SELECTION-SCREEN: pantalla de selección,
ver figura contigua para entender otros
sub-eventos
• START-OF-SELECTION: inicio del programa,
utilizado principalmente para selección de
datos y cálculos.
• END-OF-SELECTION: fin del programa,
utilizado principalmente para mostrar el
listado de los datos seleccionados.
Módulo 3: Programación de reports
WWW.AYIESAP.COM 4
1.2. Pantalla de selección
Define los campos de entrada que el usuario tendrá que informar para obtener el
listado.
Hay 2 tipos:
• PARAMETERS, campos simples
o RADIOBUTTON, permite elegir 1 entre varias opciones de una lista
o CHECKBOX, permite marcar varias opciones de una lista
• SELECT-OPTIONS, rangos de datos (desde-hasta, lista de valores, …)
Ejemplos:
PARAMETERS: p1(10) TYPE c VISIBLE LENGTH 1,
p2(10) TYPE c VISIBLE LENGTH 5,
p3(10) TYPE c VISIBLE LENGTH 10.
PARAMETERS: r1 RADIOBUTTON GROUP rad1,
r2 RADIOBUTTON GROUP rad1 DEFAULT 'X',
r3 RADIOBUTTON GROUP rad1.
PARAMETERS: a AS CHECKBOX USER-COMMAND flag,
b AS CHECKBOX DEFAULT 'X' USER-COMMAND flag.
SELECT-OPTIONS: s_soc FOR T001-BUKRS.
PARAMETERS: test1(10) TYPE c MODIF ID sc1,
test2(10) TYPE c MODIF ID sc2,
test3(10) TYPE c MODIF ID sc1,
test4(10) TYPE c MODIF ID sc2.
Módulo 3: Programación de reports
WWW.AYIESAP.COM 5
1.3. Selección de datos
Bloque delimitado por START-OF-SELECTION, hasta el siguiente bloque, donde se
realizan todas las selecciones de datos deseadas y cálculos.
Ejemplo:
START-OF-SELECTION.
SELECT * FROM T001 INTO TABLE IT_T001.
1.4. Salida de datos
Una vez obtenidos los datos a mostrar de base de datos o calculados, se utilizan
deferentes comandos para mostrar los datos por pantallas, bien sea en el evento START-
OF-SELECTION o en END-OF-SELECTION.
Los comandos básicos para mostrar una lista en pantalla son
• WRITE, escribe datos en pantalla
• ULINE, escribe un línea horizontal
• SKIP, deja una línea en blanco
• NEW-LINE, salto de línea
• NEW-PAGE, salto de página
START-OF-SELECTION.
..
WRITE: / 'Hola mundo'.
END-OF-SELECTION.
Módulo 3: Programación de reports
WWW.AYIESAP.COM 6
SKIP.
WRITE:'Soc','Descripción'.
ULINE.
LOOP AT IT_T001.
WRITE: IT_T001-BUKRS, IT_T001-BUTXT.
NEW-LINE.
ENDLOOP.
1.5. Elementos de texto
Es una forma de definir textos a utilizar en el programa, que pueden ser traducidos a
diferentes idiomas y mostrarlos según el idioma de logon:
Desde SE38, al editar un programa:
Desde la SE38, en la pantalla de selección:
Módulo 3: Programación de reports
WWW.AYIESAP.COM 7
• Simbolos de texto: se utilizan en el programa con TEXT-XXX siendo XXX el código
del símbolo:
WRITE: TEXT-001, TEXT-003. "'Soc','Descripción'.
• Textos de selección, se corresponden con los parámetros definidos en la pantalla
de selección:
Módulo 3: Programación de reports
WWW.AYIESAP.COM 8
• Cabecera de lista, corresponden con la cabecera del listado
Módulo 3: Programación de reports
WWW.AYIESAP.COM 9
1.6. Bases de datos lógicas (BDL)
Son unos tipos de listado que utilizan un tipo especial de programas para realizar la
selección, llamados Bases de datos lógicas.
En estos programas se definen, la estructura de datos con varias tablas anidadas, y una
pantalla de selección por defecto.
La BDL a utilizar se define en la creación del report:
También podemos verlo en los atributos del programa:
Mediante doble-clic podemos visualizar su estructura:
Módulo 3: Programación de reports
WWW.AYIESAP.COM 10
• NODES: define los nodos de la BDL a utilizar, esta definición tiene implícita otros
elementos del programa. Podemos verlo ejecutando:
Sin añadir nada más se ha creado una pantalla de selección:
• GET node, evento que equivale a un SELECT al nodo indicado, cada nodo se
ejecuta en el orden definido en la BDL.
Módulo 3: Programación de reports
WWW.AYIESAP.COM 11
Si incluimos 2 nodos:
Aparecen nuevos campos en la pantalla de selección:
Módulo 3: Programación de reports
WWW.AYIESAP.COM 12
Veamos un ejemplo con más eventos, nótese que el orden de los eventos en el programa
no coincide con la salida del listado, ya que la ejecución de los eventos sigue su orden
prestablecido. Por claridad de código se deberían incluir en el orden de ejecución.
Módulo 3: Programación de reports
WWW.AYIESAP.COM 13
1.7. Otros eventos
Otros eventos que podemos ver en programas de tipo report:
• AT SELECTION-SCREEN … - permite incluir validaciones en la pantalla de
selección, o modificar el comportamiento estándar de las ayudas de búsqueda
(F4) o botón de ayuda (F1). Se ejecutan al seleccionar un código de función en
la pantalla
• AT USER-COMMAND // AT LINE-SELECTION – permite hacer listados
interactivos, y añadiendo funcionalidad una vez mostrado el listado. Ej.:
seleccionar datos del listado, visualizar un documento seleccionado, ejecutar un
proceso para actualizar datos …
• TOP-OF-PAGE - comienzo de una nueva página de listado
• END-OF-PAGE - final de una página de listado.
• GET <nodo> LATE – se ejecuta al final de cada GET, después de todas sus tablas
anidadas