Professional Documents
Culture Documents
-
BASE DE DATOS CON VISUAL AGE RPG
Evento VKEYPRESS
Este evento se produce cuando se pulsa una tecla de mandato. Como ejemplos de
teclas de mandato se pueden citar AvPág, Pausa y Control. Para obtener una
descripción del valor devuelto, consulte el atributo de evento %Character. Si asocia
este evento con el componente lienzo, solamente tendrá que codificar una subrutina de
acción para todos los componentes que puedan responder a este evento.
Subarchivo
Ejemplo
*...1....+....2....+....3....+....4....+....5....+...
.6....+....7....+.
CSRN01Factor1+++++++Opcode(E)+Factor2+++++++Result+++
+++++Len++D+HiLoEq
*
C EF1 BEGACT VKEYPRESS
*
C %character IFEQ '29'
C 'EF1' SETATR *BLANKS 'TEXT'
C ENDIF
*
C ENDACT
*
%character
12 - Inicio
Campo de
Código Factor 1 Factor 2 resultado Indicadores
La operación SETLL sitúa un archivo en el siguiente registro que tenga una clave o un
número relativo de registro mayor o igual al argumento de búsqueda. El archivo debe
ser un archivo controlado en cálculo (identificado con una F en la posición 18 de las
especificaciones de descripción de archivo).
La operación SETLL solo se puede utilizar con archivos OS/400. No se puede utilizar
con archivos locales.
Minicomputadoras -3- Ing. Alberto Moreno C.
-
El argumento de búsqueda, arg-búsqueda, debe ser la clave o el número de registro
relativo que se utiliza para recuperar el registro. Si el acceso es por clave, arg-búsqueda
puede ser una sola clave con el formato de un nombre de campo, una constante con
nombre, una constante figurativa o un literal.
Al alcanzar el final del archivo en un archivo procesado por SETLL, puede emitirse otro SETLL para
volver a situar el archivo. Después de que una operación SETLL sitúe satisfactoriamente el archivo en
un registro, este se puede recuperar leyéndolo. Puede utilizarse *START y *END para posicionar el
archivo. Si especifica *START o *END en arg-búsqueda, tenga en cuenta lo siguiente:
Operación SETLL
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+...
CSRN01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq..
C*
C* La totalidad de los 101 registros de ORDFIL se imprimirán.
C* El valor 101 ha sido previamente situado en ORDER. La operación
C* SETLL sitúa el archivo en el primer registro con el
C* valor de clave 101.
C* %EQUAL devolverá '1'.
C
C ORDER SETLL ORDFIL
C
C* El bucle DO siguiente procesa todos los registros que tienen
C* el mismo valor de clave.
C*
C IF %EQUAL
C DOU %EOF
C ORDER READE ORDFIL
C IF NOT %EOF
C EXCEPT DETAIL
C ENDIF
C ENDDO
C ENDIF
C
C*
C* La operación READE lee los registros 101 segundo, tercero y cuarto
C* igual que se leyó el registro 101 primero. Tras haber leído
C* el registro 101 cuarto, se intenta la operación READE.
C* Al no pertenecer el registro 102 al mismo grupo, %EOF devolverá
C* '1', se ignora la operación EXCEPT y finaliza el
C* bucle DOU.
Minicomputadoras -4- Ing. Alberto Moreno C.
-
Campo de
Código Factor 1 Factor 2 resultado Indicadores
La operación SETGT sitúa un archivo en el siguiente registro con una clave o número
relativo de registro mayor que el argumento de búsqueda. El archivo debe ser un
archivo controlado en cálculo (identificado con una F en la posición 18 de las
especificaciones de descripción de archivo).
Operación SETGT
*...1....+....2....+....3....+....4....+....5....+....6....+....7...
CSRN01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
Minicomputadoras -5- Ing. Alberto Moreno C.
-
C* Este ejemplo muestra cómo situar el archivo de modo que READ
C* lea el registro siguiente. El argumento de búsqueda, KEY, especificado
C* para la operación SETGT tiene el valor 98; por lo tanto, SETGT sitúa
C* el archivo antes del primer registro de formato de archivo FILEA que
C* tiene un valor de campo de clave mayor que 98. El archivo se posiciona
C* antes del primer registro con un valor de clave de 100. La operación
C* READ lee el registro que tiene un valor igual a 100 en su campo de
C* clave.
C
C KEY SETGT FILEA
C READ FILEA 64
C*
C* Este ejemplo muestra cómo leer el último registro de un grupo de
C* registros con el mismo valor de clave y formato de un archivo descrito
C* por programa. El argumento de búsqueda, KEY, especificado por la
C* operación SETGT posiciona el archivo antes del primer registro de
C* archivo FILEB que tiene un valor de campo de clave mayor que 70.
C* El archivo se posiciona antes del primer registro con un valor de
C* clave de 80. La operación READP lee el último registro que tiene un
C* valor de 70 en su campo de clave.
C
C KEY SETGT FILEB
C READP FILEB 64
Campo de
Código Factor 1 Factor 2 resultado Indicadores
Para manejar las excepciones de READS (códigos de estado de archivo mayores que
1000), puede especificarse el expansor de código de operación 'E' o un indicador de
error ER, pero no ambos. Para obtener más información sobre la gestión de errores,
consulte el apartado Excepciones/errores de archivo.
Operación READS
*...1....+....2....+....3....+....4....+....5....+....6....+....7...
CSRN01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
C*
C* SUBCUST es un componente subarchivo que muestra una lista de registros.
C* La operación READS lee los registros seleccionados en el subarchivo
C* visualizado uno por uno en el bucle do while. SCUSNO y SCUSNAM
C* son campos definidos en el subarchivo.
C*
C READS SUBCUST 27
C DOW *IN27 = *OFF
C*
C* Los campos SCUSNO, SCUSNAM pueden utilizarse aquí para procesar el
C* registro seleccionado que se ha leído.
C*
C READS SUBCUST 27
C ENDDO
C*
Minicomputadoras -7- Ing. Alberto Moreno C.
-
APLICACIONES :
1.- Mantenimiento de la tabla alumno generando el código del alumno, tal como se muestra en la
figura:
Codificación :
Minicomputadoras -8- Ing. Alberto Moreno C.
-
Minicomputadoras -9- Ing. Alberto Moreno C.
-
DELETE (Suprimir registro)
Campo
de
Código Factor 1 Factor 2 resultado Indicadores
Campo
de
Código Factor 1 Factor 2 resultado Indicadores
Las operaciones como, por ejemplo, READ, READC, READE, READP, READPE y
CHAIN recuperan y bloquean un registro. Si dichas operaciones de entrada no se
realizan satisfactoriamente, no se bloquea el registro y no se puede emitir UPDATE. El
registro debe volverse a leer con el valor por omisión de blanco en el expansor de
operación para especificar una solicitud de bloqueo.
Las operaciones UPDATE consecutivas para el mismo archivo o registro no son válidas.
Deben emitirse intercaladamente operaciones de lectura satisfactorias para posicionar y
bloquear el registro a actualizar.
Nota:
Si se han de actualizar solo algunos de los campos de un registro, en vez de
todos, utilice las especificaciones de salida y no la operación UPDATE.
Aplicación 2.-