Sunteți pe pagina 1din 22

Sesin 09

Programacin en ABAP

REPORTS INTERACTIVOS(2)
Sistemas Distribuidos FIIS UNAS

2. Sentencias para control interactivo


Los eventos relacionados en un programa interactivo son:

Existe un evento alterno con sintaxis:


TOP-OF-PAGE DURING LINE-SELECTION
Que se activara cuando el sistema prepara los listados secundarios.
El sistema procesa todos los cdigos de funcin excepto el cdigo
PICK y las teclas de funcin PFnn. El cdigo PICK activa el evento AT
LINE-SELECTION si el cursor esta posicionado sobre alguna lnea del
listado, y no puede ser nunca utilizado en el evento AT USERCOMMAND. Las teclas de funcin PFnn siempre activan el evento ATPFnn.

2. Sentencias para control interactivo


Las siguientes lneas muestran los cdigos de funcione predefinidos.
PFnn

Activa el evento PFnn

PPn

Se pagina el listado hasta la pagina n

PP-n

Se pagina el listado n paginas atrs

PF+n

Se pagina el listado n paginas delante.

PSn

Se desplaza el listado hasta la columna n

PS--

Se desplaza el listado hasta la primera columna

PS-n

Se desplaza el listado a la izquierda n columnas

PS+n

Se desplaza el listado a la derecha n columnas

PS++

Se desplaza el listado hasta la ultima columna

PZn

Se pagina el listado hasta la linea n.

/..

Se utiliza para comandos del sistema

2. Sentencias para control interactivo


Hay ciertas teclas de funcin que es necesario comentar en detalle:
Tecla de Funcin F2. Si realizamos doble click con el ratn es
equivalente a pulsar la tecla de funcin F2. La funcin que
asignaremos a la tecla de funcin F2 ser la que se active si
realizamos doble click con el ratn. Si el cdigo de funcin de F2 es
PICK, el evento que se activara ser AT LINE-SELECTION. Si
asignamos un cdigo de funcin distinto a la tecla de funcin F2 ser
el evento AT USER-COMMAND el que se active.
Tecla de Funcin F10. Esta tecla de funcin sita el puntero del ratn
sobre la barra de men, no se puede asignar otro cdigo de funcin
distinto, ya sea estndar o de usuario.

Ejemplo.
Este ejemplo permite comprobar el cdigo de funcin que activa el
evento AT LINE-SELECTION. Se puede utilizar las distintas acciones
mencionadas para ver que el cdigo de funcin que activa el evento
es el evento PICK.

Ejemplo.

Ejemplo.
Este ejemplo muestra el uso de las teclas de Funcin F5,F6,F7 teclas
que se utiliza para llamar a la rutina SALIDA.

Ejemplo.
En este ejemplo a partir del listado bsico se pueden ir generando listados
secundarios seleccionando una lnea. En el primer y segn listado
secundario aparecen cabeceras particulares. A partir del tercero se usa la
variable del sistema SY-LSIND, para saber en que numero de listado vamos.

Sentencias para control interactivo


Adicional a las sentencias bsicas para control interactivo existe otro grupo de
sentencias que hace posible mejorar los listados interactivos.
MESSAGE

Activa un mensaje

SET PF-STATUS Define el cdigo de status, utilizado por el sistema para seleccionar
el men de pantalla asociado.
SET USER-COMMAND
Activa un comando, por lo tanto, se activa con esto el
evento AT USER-COMMAND
WINDOW Define una ventana con formato de pantalla.
HIDE

Utilizado para esconder campos en lneas de salida .

GET CURSOR

Recupera la posicin del cursor

SET CURSOR

Posiciona el cursor.

DESCRIBE LIST

Recupera informacin de un listado

SCROLL LIST

Realiza un desplazamiento del listado.

READ LINE

Lee una lnea del listado.

READ CURRENT LINE


MODIFY LINE

Lee la lnea actual del listado.

Modifica el contenido de una lnea.

MODIFY CURRENT LINE

Modifica el contenido de la lnea actual.

Ejemplo MESSAGE.
Primero tendremos que generar clase de mensajes Z1, una ventaja de usar
mensajes es la recepcin de parmetros que pueden ser utilizados
anteponiendo el smbolo &.

Ejemplo MESSAGE

Ejemplo SET PF-STATUS

Ejemplo SET PF-STATUS y AT USER-COMMAND

Ejemplo SET PF-STATUS y AT USER-COMMAND


Obsrvese que al hacer doble click, se intenta levantar el STATUS, un status
ser entonces un contenedor de Mens y Botones, como no existe el IDE nos
pedira que lo creemos.

Ejemplo SET PF-STATUS y AT USER-COMMAND

Ejemplo SET TITLEBAR

8) Ejemplo Window

9) Ejemplo Describe List

10) Ejemplo Get Cursor

11) Ejemplo Set Cursor

12) Ejemplo Scroll List

13) Ejemplo Conteo de Selecciones

Ejemplo Read Line

Ejemplo Read Current Line

Ejemplo Modify Line


REPORT Z00016.
DATA : CAMPO TYPE I,
LINEA(72) TYPE C.

DO 10 TIMES.
MOVE SY-INDEX TO CAMPO.
CAMPO = CAMPO + 10.
WRITE /1 CAMPO.
ENDDO.
AT LINE-SELECTION.
MODIFY LINE SY-LILLI LINE FORMAT COLOR 6.

Ejemplo Modify Current Line


REPORT Z00017 LINE-SIZE 40 NO STANDARD PAGE HEADING.
DATA C TYPE I VALUE 1.
WRITE 'Selecciona una linea para modificar su formato'.
AT LINE-SELECTION.
IF C = 8.
C = 0.
ENDIF.
MODIFY CURRENT LINE FORMAT COLOR = C.
ADD 1 TO C.

S-ar putea să vă placă și