Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Sentencias mas comunes en el lenguaje de Programación ABAP, Guías, Proyectos, Investigaciones de Informática

Es una guía con algunas de las sentencias mas usadas incluyendo su explicación, para ser usadas en el lenguaje ABAP para el ERP SAP

Tipo: Guías, Proyectos, Investigaciones

2021/2022

Subido el 25/08/2022

luis-quintero-22
luis-quintero-22 🇻🇪

1 documento

1 / 263

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
En esta página están todas las instrucciones ABAP/4 del sistema SAP R/3, además cada una de ellas contiene un pequeño ejemplo
(o al menos esa es mi intención). Las sentencias están ordenadas alfabéticamente para una mejor búsqueda y además cada
sentencia tiene su propia página para facilitar su impresión, copia, tratamiento, etc...
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Letra A
ADD
ADD-CORRESPONDING
APPEND
ASSIGN
AT .. ENDAT
AT END OF .. ENDAT
AT FIRST .. ENDAT
AT LAST .. ENDAT
AT LINE-SELECTION
AT NEW .. ENDAT
AT Pfnn
AT SELECTION-SCREEN
AT USER-COMMAND
AUTHORITY-CHECK
Letra B
BACK
BREAK
BREAK-POINT
Letra C
CALL
CALL CUSTOMER-FUNCTION
CALL DIALOG
CALL FUNCTION
CALL METHOD
CALL SCREEN
CALL SUBSCREEN
CALL TRANSACTION
CASE .. ENDCASE
CHAIN
CHECK
CLEAR
CLOSE CURSOR
CLOSE DATASET
CNT
COLLECT
COMMIT WORK
En esta página están todas las instrucciones ABAP
file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/sentencias_abap.htm (1 de 6) [09/11/2000 11:19:50]
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Sentencias mas comunes en el lenguaje de Programación ABAP y más Guías, Proyectos, Investigaciones en PDF de Informática solo en Docsity!

En esta página están todas las instrucciones ABAP/4 del sistema SAP R/3, además cada una de ellas contiene un pequeño ejemplo (o al menos esa es mi intención). Las sentencias están ordenadas alfabéticamente para una mejor búsqueda y además cada sentencia tiene su propia página para facilitar su impresión, copia, tratamiento, etc...

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Letra A l ADD l ADD-CORRESPONDING l APPEND l ASSIGN l AT .. ENDAT l AT END OF .. ENDAT l AT FIRST .. ENDAT l AT LAST .. ENDAT l AT LINE-SELECTION l AT NEW .. ENDAT l AT Pfnn l AT SELECTION-SCREEN l AT USER-COMMAND l AUTHORITY-CHECK

Letra B l BACK l BREAK l BREAK-POINT

Letra C l CALL l CALL CUSTOMER-FUNCTION l CALL DIALOG l CALL FUNCTION l CALL METHOD l CALL SCREEN l CALL SUBSCREEN l CALL TRANSACTION l CASE .. ENDCASE l CHAIN l CHECK l CLEAR l CLOSE CURSOR l CLOSE DATASET l CNT l COLLECT l COMMIT WORK

En esta página están todas las instrucciones ABAP

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/sentencias_abap.htm (1 de 6) [09/11/2000 11:19:50]

l COMMUNICATION l COMPUTE l CONCATENATE l CONDENSE l CONSTANTS l CONTINUE l CONTROLS l CONVERT DATE l CONVERT TEXT l CREATE OBJECT

Letra D l DATA l DEFINE .. END-OF-DEFINITION l DELETE l DELETE DATASET l DELETE DYNPRO l DELETE FROM DATABASE l DELETE FROM SHARED BUFFER l DELETE REPORT l DELETE TEXTPOOL l DESCRIBE DISTANCE l DESCRIBE FIELD l DESCRIBE LIST l DESCRIBE TABLE l DETAIL l DIVIDE l DIVIDE-CORRESPONDING l DO .. ENDDO

Letra E l EDITOR-CALL FOR REPORT l END-OF-PAGE l END-OF-SELECTION l EXEC SQL .. ENDEXEC l EXIT l EXIT FROM STEP-LOOP l EXIT FROM SQL l EXPORT l EXPORT DYNPRO l EXPORT TO DATABASE l EXPORT TO DATASET l EXPORT TO MEMORY l EXPORT TO SHARED BUFFER

En esta página están todas las instrucciones ABAP

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/sentencias_abap.htm (2 de 6) [09/11/2000 11:19:50]

l INSERT .. INTO l INSERT REPORT l INSERT TEXTPOOL

Letra L l LEAVE l LEAVE PROGRAM l LEAVE SCREEN l LEAVE TO LIST-PROCESSING l LEAVE TO SCREEN l LEAVE TO TRANSACTION l LOAD REPORT l LOCAL l LOOP .. ENDLOOP l LOOP AT SCREEN .. ENDLOOP

Letra M l MESSAGE l MODIFY l MODIFY CURRENT LINE l MODIFY LINE l MODIFY SCREEN l MODULE l MODULE .. ENDMODULE l MOVE l MOVE-CORRESPONDING l MULTIPLY l MULTIPLY-CORRESPONDING

Letra N l NEW-LINE l NEW-PAGE

Letra O l ON CHANGE OF .. ENDON l OPEN CURSOR l OPEN DATASET l Operador de asignación "=" l OVERLAY

Letra P l PACK l PARAMETERS l PERFORM l POSITION l PRINT-CONTROL

En esta página están todas las instrucciones ABAP

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/sentencias_abap.htm (4 de 6) [09/11/2000 11:19:50]

l PROCESS l PROGRAM l PROVIDE .. ENDPROVIDE l PUT

Letra R l RAISE l RANGES l READ CALENDAR l READ CURRENT LINE l READ DATASET l READ LINE l READ REPORT l READ TABLE l READ TEXTPOOL l RECEIVE RESULTS FROM FUNCTION l REFRESH l REFRESH CONTROL l REFRESH SCREEN l REJECT l REPLACE l REPORT l RESERVE l ROLLBACK WORK

Letra S l SCAN l SCROLL LIST l SEARCH l SELECT .. ENDSELECT l SELECT-OPTIONS l SELECTION-SCREEN l SET BLANK LINES l SE COUNTRY l SET CURSOR l SET EXTEND CHECK l SET LANGUAGE l SET LEFT SCROLL-BOUNDARY l SET LOCALE LANGUAGE l SET MARGIN l SET PARAMETER l SET PF-STATUS l SET PROPERTY l SET RUN TIME ANALIZER

En esta página están todas las instrucciones ABAP

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/sentencias_abap.htm (5 de 6) [09/11/2000 11:19:50]

ADD

Definición

Añade el contenido del campo sobre el campo . Además del formato básico, la sentencia ADD tiene otra variante para la suma de campos adyacentes.

Sintaxis:

ADD TO .

ADD THEN UNTIL { GIVING | TO }.

Suma la secuencia de campos , , ... , . . , >n2>, ... , deben ser una secuencia de campos equidistantes en memoria del mismo tipo y longitud.

l Con la cláusula GIVING el campo se actualiza con el resultado de la suma. l Con la cláusula TO al campo se le añade el resultado de la suma.

Ejemplo 1

DATA: NUMBER TYPE I VALUE 3, SUM TYPE I VALUE 5. ADD NUMBER TO SUM.

Ejemplo 2

DATA: BEGIN OF NUMBERS, ONE TYPE P VALUE 10, TWO TYPE P VALUE 20, THREE TYPE P VALUE 30, FOUR TYPE P VALUE 40, FIVE TYPE P VALUE 50, SIX TYPE P VALUE 60, END OF NUMBERS, SUM TYPE I VALUE 1000. ADD NUMBERS-ONE THEN NUMBERS-TWO UNTIL NUMBERS-FIVE GIVING SUM.

Errores

BCD_BADDATA : El campo P tiene un formato BCD incorrecto. BCD_FIELD_OVERFLOW : El campo del resultado es demasiado pequeño. BCD_OVERFLOW : Overflow al hacer la operación aritmética. COMPUTE_INT_PLUS_OVERFLOW : Al añadir se ha producido un "Overflow" en un entero.

l

Vease también: COMPUTE, ADD-CORRESPONDING

ADD

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/add.htm [09/11/2000 11:21:20]

ADD-CORRESPONDING

Definición

Añade el contenido de los componentes de un registro sobre otro.

Sintaxis:

ADD-CORRESPONDING TO .

Añade el contenido de los componentes del registro sobre el registro , para aquellos componentes que tengan el mismo nombre.

Ejemplo:

DATA: BEGIN OF VECTOR, X TYPE I, Y TYPE I, LENGTH TYPE I, END OF VECTOR, BEGIN OF CIRCLE, VOLUME TYPE P Y TYPE P, RADIUS TYPE I, X TYPE I, END OF CIRCLE. ... ADD-CORRESPONDING VECTOR TO CIRCLE.

Vease también: ADD MOVE-CORRESPONDING SUBTRACT-CORRESPONDING MULTIPLY-CORRESPONDING DIVIDE-CORRESPONDING.

ADD-CORRESPONDING

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/add_corresponding.htm [09/11/2000 11:21:26]

APPEND

Definición

Asigna con una referencia directa o dinámica el nombre del objeto que deseamos asignar a un campo.

Sintaxis:

Si conocemos el nombre del objeto de datos que deseamos asignar a un field-symbol antes de la ejecución del programa debemos realizar una asignación estática, es decir, con una referencia directa al objeto de dato. Si no conocemos el objeto de dato hasta la ejecución del programa, la asignación deberá ser dinámica, es decir, con una referencia indirecta.

La sintaxis de la sentencia ASSIGN estática, sin especificación del offset, es la siguiente:

ASSIGN TO { } { }.

Después de la asignación, el field-symbol tiene los atributos del objeto de datos , y apunta a la misma posición de memoria. Las cláusulas y son opciones y las veremos en posteriores apartados.

La sintaxis de la sentencia ASSIGN estática, con especificación del offset, es la siguiente:

ASSIGN { + } { () } TO { } { }.

La única diferencia con la variante anterior es que en ésta especificamos el offset y la longitud del objeto de datos que hay que asignar. Las cláusulas y son opcionales y las veremos en posteriores apartados. y pueden ser variables. El sistema no comprueba si la parte seleccionada en el campo, contando el offset y la longitud, es mayor que la longitud del campo. Se puede referenciar direcciones más allá de la longitud del campo, siempre y cuando no sobrepasemos el área de memoria asignada. Si no especificamos la longitud del campo con , el field-symbol apunta al área perteneciente a los límites del campo. Si es mayor que 0, siempre apunta a un área perteneciente a los límites del campo. Si es menor que la longitud del campo, se puede especificar un asterisco (*) para , para evitar sobrepasar el área asignada al campos. las cláusulas y son opcionales y las vceremos en posteriores apartados.

Si sólo en tiempo de ejecución conocemos el nombre del objeto de dato que hay que asignar al field-symbol debemos realizar una asignación dinámica. Para ello utilizaremos la sentencia ASSIGN con la siguiente sintaxis:

ASSIGN () TO { } { }.

El nombre de objeto de dato que hay que asignar al field-symbol estará contenido en (asignación indirecta). En tiempo de ejecución, el sistema busca el campo referenciado siguiendo la siguiente secuencia:

Si la asignación se realiza en una subrutina o módulo de función, el sistema busca el campo en la subrutina o módulo de función como objeto local.

l

Si la asignación se realiza fuera de una subrutina o módulo de función, o el campo no se encuentra allí, el sistema busca el campo como objeto global al programa.

l

Si el campo tampoco se encuentra como objeto global al programa, el sistema busca un área de trabajo declarada con la sentencia TABLES en el programa principal, o en el grupo de programas actual. La definición "grupo de programas" engloba un programa principal y todos los programa contenidos, incluyendo aquéllos en los que se realice una llamada a una subrutina.

l

Si la búsqueda del campo es satisfactoria y el campo puede ser asignado al field-symbol, el campo SY-SUBRC valdrá

  1. En otro caso valdrá 4. Por razones de seguridad, se debe comprobar el valor de SY-SUBRC después de realizar la asignación para prevenir que un field-symbol apunte a un área indefinida. Las cláusulas y son opcionales y las veremos en posteriores apartados. Ya que este tipo de búsqueda tiene unos efectos adversos en cuanto al tiempo de respuesta del programa, debemos utilizar este tipo de asignación sólo si es absolutamente necesario. Si antes de la ejecución del programa sabemos que la asignación sólo será de áreas de trabajo, se puede utilizar la variante de la sentencia ASSIGN que veremos a continuación.

Si antes de la ejecución del programa sabemos que vamos a asignar un área de trabajo a un field-symbol, pero hasta la ejecución no sabemos de dicha área de trabajo se puede utilizar la siguiente variante dinámica de la sentencia ASSIGN:

ASSIGN

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/assign.htm (1 de 5) [09/11/2000 11:22:42]

ASSIGN TABLE FIELD () TO { } { }.

El sistema busca el objeto de dato que vamos a asignar al field-symbol sólo en las áreas de trabajo declaradas con la sentencia TABLES en el programa principal de un grupo de programa. El sistema sólo realiza el paso 3 de la sentencia anteriormente vista. Si la búsqueda es satisfactoria y el campo puede ser asignado al field-symbol, SY-SUBRC es 0; en caso contrario es 4. Las cláusulas y son opcionales y las veremos en posteriores apartados.

Además de poder asignar objetos de datos a field-symbols, el sistema nos permite asignar un field-symbol sobre otro field-symbol. Para realizar esto se puede utilizar cualquier variante vista hasta el momento de la sentencia ASSIGN, pero en lugar de utilizar un objeto de dato utilizaremos un field-symbol. Resumamos estas variantes a continuación:

ASSIGN () TO { } { }.

ASSIGN () { + } { () }TO { } { }.

ASSIGN () TO { } { }.

ASSIGN TABLE FIELD () TO { } { }.

es un objeto de datos con el valor de un field-symbol. Las cláusulas y son opcionales y las veremos en posteriores apartados. Se puede especificar componentes de un field-string a un field-symbol con la siguiente variante de la sentencia ASSIGN:

ASSIGN COMPONENT OF STRUCTURE TO { } { }.

El sistema asigna el componente de la estructura al field-symbol . puede ser un literal o una variable. Si la asignación es satisfactoria, SY-SUBRC es 0; en caso contrario es 4. Las cláusulas y son opcionales y las veremos en posteriores apartados.

Se puede definir el tipo de un field-symbol utilizando la cláusula TYPE de la sentencia ASSIGN. La cláusula TYPE se puede utilizar con todas las variantes de la sentencia ASSIGN vistas anteriormente. puede ser un literal a una variable. Se produce un error en tiempo de ejecución si el tipo de datos es desconocido, o si la longitud del tipo de datos especificado es incompatible con el tipo de dato asignado.

l

También se puede especificar el número de decimales de un field-symbol si el campo asignado es del tipo P (empaquetado). Para ello se especifica la cláusula DECIMALS de la sentencia ASSIGN. La cláusula DECIMALS se puede utilizar con todas las variantes de la sentencia ASSIGN. Con esta cláusula se puede tener distinto número de decimales entre el objeto de dato asignado y el field-symbol. puede ser un literal o una variable. Un erro en tiempo de ejecución se produce si no tiene un valor comprendido entre 0 y 14, o si el objeto de dato asignado no es del tipo P.

l

Cuando trabajamos con subrutinas, se puede estar interesados en crear copias locales de datos globales sobre la pila de datos. Para realizar esto, disponemos de la siguiente cláusula de la sentencia ASSIGN:

ASSIGN LOCAL COPY OF ... TO .

El sistema es una copia del dato global especificado sobre la pila. En la subrutina, se puede acceder y cambiar esta copia sin cambiar el valor del dato global. Se puede utilizar esta cláusula con todas las variantes de la sentencia ASSIGN a excepción de la vista en el apartado "Sentencia ASSIGN con componentes de un field-string".

Ejemplo 1:

DATA NAME(4) VALUE 'JOHN'. FIELD-SYMBOLS . ASSIGN NAME TO . WRITE .

Salida: JOHN

Ejemplo 2:

DATA: NAME(12) VALUE 'JACKJOHNCARL', X(10) VALUE 'XXXXXXXXXX'.

ASSIGN

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/assign.htm (2 de 5) [09/11/2000 11:22:42]

G(8) VALUE 'G_global'. MOVE 'XYZ_PROG' TO TRDIR-NAME. PERFORM U. FORM U. DATA: F(8) VALUE 'F_local', NAME(30) VALUE 'F'. FIELD-SYMBOLS . ASSIGN (NAME) TO . WRITE . MOVE 'G' TO NAME. ASSIGN (NAME) TO . WRITE . MOVE 'TRDIR-NAME' TO NAME. ASSIGN (NAME) TO . WRITE . ENDFORM.

Salida: F_local G_global XYZ_PROG

Ejemplo 8:

PROGRAM P1MAIN. TABLES TRDIR. DATA NAME(30) VALUE 'TFDIR-PNAME'. FIELD-SYMBOLS . MOVE 'XYZ_PROG' TO TRDIR-NAME. PERFORM U(P1SUB). ASSIGN (NAME) TO . WRITE . CALL FUNCTION 'EXAMPLE'. PROGRAM P1SUB. TABLES TFDIR. ... FORM U. FIELD-SYMBOLS . DATA NAME(30) VALUE 'TRDIR-NAME'. ASSIGN TABLE FIELD (NAME) TO . WRITE . MOVE 'FCT_PROG' TO TFDIR-PNAME. ENDFORM. FUNCTION-POOL FUN1. FUNCTION EXAMPLE. DATA NAME(30) VALUE 'TRDIR-NAME'. FIELD-SYMBOLS . ASSIGN (NAME) TO . IF SY-SUBRC = 0. WRITE . ELSE. WRITE / 'TRDIR-NAME cannot be accessed'. ENDIF.

ASSIGN

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/assign.htm (4 de 5) [09/11/2000 11:22:42]

ENDFUNCTION.

Salida: XYZ_PROG FCT_PROG TRDIR-NAME no se tiene acceso.

Ejemplo 9:

PROGRAM P1MAIN. TABLES TRDIR. DATA NAME(30) VALUE 'TFDIR-PNAME'. FIELD-SYMBOLS . MOVE 'XYZ_PROG' TO TRDIR-NAME. CALL FUNCTION 'EXAMPLE'. FUNCTION-POOL FUN1. FUNCTION EXAMPLE. DATA NAME(30) VALUE 'TRDIR-NAME'. FIELD-SYMBOLS . ASSIGN LOCAL COPY OF MAIN TABLE FIELD (NAME) TO . IF SY-SUBRC = 0. WRITE . ELSE. WRITE / 'TRDIR-NAME cannot be accessed'. ENDIF. ENDFUNCTION.

Salida: XYZ_PROG

Ejemplo 10:

PROGRAM P1MAIN. DATA: BEGIN OF REC, A VALUE 'a', B VALUE 'b', C VALUE 'c', D VALUE 'd', END OF REC, CN(5) VALUE 'D'. FIELD-SYMBOLS . DO 3 TIMES. ASSIGN COMPONENT SY-INDEX OF STRUCTURE REC TO . IF SY-SUBRC <> 0. EXIT. ENDIF. WRITE . ENDDO. ASSIGN COMPONENT CN OF STRUCTURE REC TO . WRITE .

Output: a b c d

Vease también: DESCRIBE FIELD, MOVE.

ASSIGN

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/assign.htm (5 de 5) [09/11/2000 11:22:42]

AT END OF .. ENDAT

Definición

La sentencia AT END OF .. ENDAT sólo puede ser utilizada dentro de un bucle LOOP .. ENDLOOP e identifica un bloque de proceso. La sentencia se ejecuta cuando se detecta que cambia algún valor para el campo especificado.

Sintaxis:

AT END OF .

<bloque-sentencias>

ENDAT.

La sentencia AT END OF se cierra con ENDAT, identificando de esta forma un bloque de proceso. En un bloque AT END OF .. ENDAT el área de trabajo no se rellena con la línea actual de la tabla interna. Todos los campos que no forman parte de la clave estándar de la tabla toman el valor inicial. Para la condición de línea END OF el sistema sobrescribe todos los campos de la clave estándar, que se encuentran a la derecha del campo con asterisco (*). No se debe utilizar la sentencia AT END OF .. ENDAT en combinación con la sentencia LOOP .. ENDLOOP con las cláusulas FROM, TO o WHERE.

Ejemplo 1:

DATA: BEGIN OF COMPANIES OCCURS 20, NAME(30), PRODUCT(20), SALES TYPE I, END OF COMPANIES. ... LOOP AT COMPANIES. AT NEW NAME. NEW-PAGE. WRITE / COMPANIES-NAME. ENDAT. WRITE: / COMPANIES-PRODUCT, COMPANIES-SALES. AT END OF NAME. SUM. WRITE: / COMPANIES-NAME, COMPANIES-SALES. ENDAT. ENDLOOP.

Vease también: LOOP.

AT END OF .. ENDAT

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/at_end_of_endat.htm [09/11/2000 11:22:43]

AT FIRST .. ENDAT

Definición

La sentencia AT FIRST .. ENDAT sólo puede ser utilizada dentro de un bucle LOOP .. ENDLOOP e identifica un bloque de proceso. La sentencia se ejecuta con el primer valor o primer registro de la sentencia LOOP .. ENDLOOP.

Sintaxis:

AT FIRST.

<bloque-sentencias>

ENDAT.

La sentencia AT FIRST se cierra con ENDAT, identificando de esta forma un bloque de proceso. En un bloque AT FIRST .. ENDAT el área de trabajo no se rellena con la línea actual de la tabla interna. Todos los campos que no forman parte de la clave estándar de la tabla toman el valor inicial. Para la condición de línea FIRST el sistema sobrescribe todos los campos de la clave estándar, que se encuentran a la derecha del campo con asterisco (*). No se debe utilizar la sentencia AT FIRST .. ENDAT en combinación con la sentencia LOOP .. ENDLOOP con las cláusulas FROM, TO o WHERE.

Ejemplo 1:

DATA: BEGIN OF COMPANIES OCCURS 20, NAME(30), PRODUCT(20), SALES TYPE I, END OF COMPANIES. ... LOOP AT COMPANIES. AT FIRST. NEW-PAGE. WRITE / COMPANIES-BUKRS. ENDAT. WRITE: / COMPANIES-PRODUCT, COMPANIES-SALES. ENDLOOP.

Vease también: LOOP.

AT FIRST .. ENDAT

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/at_first_endat.htm [09/11/2000 11:22:43]

AT LINE-SELECTION

Definición

Para permitir al usuario seleccionar una línea de un listado y realizar alguna acción, se puede escribir un bloque de proceso en el programa para el evento AT LINE-SELECTION.

Sintaxis:

AT LINE-SELECTION..

<bloque-de-proceso>

ENDAT.

Este evento define un bloque de proceso que se activa cuando seleccionamos una línea del informe. Este evento se utiliza en los informes interactivos cuando generan salidas secundarias. Este evento se describe con mayor detalle en el Capítulo 15: "Programas interactivos". Si no definimos una interfaz particular para el listado (a través de la transacción "menu painter") el sistema crea una interfaz estándar. La apariencia de esta interfaz es la misma que la de cualquier informe, interactivo o no. El usuario podrá activar este evento a través de las siguientes acciones:

l En el menú "edición", se elige la opción "seleccionar". l Presionando la tecla de función F2. l Realizando un doble-click sobre la línea o un solo click sobre un hotspot (ver las opciones sentencia WRITE).

después de posicionar el cursor sobre una línea y realizar alguna de las acciones anteriores, el evento AT LINE-SELECTION se activa.

Internamente, el código de función PICK activa el evento AT LINE-SELECTION. En la interfaz predefinida, la opción de menú "edición" -> "seleccionar" y la tecla de función F" están asignadas al código de función PICK.

Ejemplo 1:

DATA TEXT(20).

START-OF-SELECTION. PERFORM WRITE_AND_HIDE USING SPACE SPACE.

AT LINE-SELECTION. CASE TEXT. WHEN 'List index'. PERFORM WRITE_AND_HIDE USING 'X' SPACE. WHEN 'User command'. PERFORM WRITE_AND_HIDE USING SPACE 'X'. WHEN OTHERS. SUBTRACT 2 FROM SY-LSIND. PERFORM WRITE_AND_HIDE USING SPACE SPACE. ENDCASE. CLEAR TEXT.

FORM WRITE_AND_HIDE USING P_FLAG_LSIND P_FLAG_UCOMM. WRITE / 'SY-LSIND:'. PERFORM WRITE_WITH_COLOR USING SY-LSIND P_FLAG_LSIND. TEXT = 'List index'. HIDE TEXT. WRITE / 'SY-UCOMM:'.

AT LINE-SELECTION

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/at_line_selection.htm (1 de 2) [09/11/2000 11:22:44]

PERFORM WRITE_WITH_COLOR USING SY-UCOMM P_FLAG_UCOMM.

TEXT = 'User command'. HIDE TEXT. IF SY-LSIND > 0. WRITE / 'PICK here to go back one list level'. ENDIF. ENDFORM.

FORM WRITE_WITH_COLOR USING P_VALUE P_FLAG_POSITIVE. IF P_FLAG_POSITIVE = SPACE. WRITE P_VALUE COLOR COL_NORMAL. ELSE. WRITE P_VALUE COLOR COL_POSITIVE. ENDIF. ENDFORM.

Vease también: HIDE, WINDOW, SCROLL LIST.

AT LINE-SELECTION

file:///C|/DOWNLOADS INTERNET/Ayuda ABAP 4/at_line_selection.htm (2 de 2) [09/11/2000 11:22:44]