Mantenimiento de Tablas de AS/400 con Visual Age

10

Click here to load reader

description

Instrucciones de busquedas , grabacion de datos de una tabla que se encuentra en as/400 con visual Age

Transcript of Mantenimiento de Tablas de AS/400 con Visual Age

Page 1: Mantenimiento de Tablas de AS/400 con Visual Age

Minicomputadoras -1- Ing. Alberto Moreno C.-

BASE DE DATOS CON VISUAL AGE RPG

Evento VKEYPRESS

Este evento se produce cuando se pulsa una tecla de mandato. Como ejemplos deteclas de mandato se pueden citar AvPág, Pausa y Control. Para obtener unadescripción del valor devuelto, consulte el atributo de evento %Character. Si asociaeste evento con el componente lienzo, solamente tendrá que codificar una subrutina deacción para todos los componentes que puedan responder a este evento.

Se aplica a los componentes

Lienzo Recuadro combinado Contenedor

Campo de entrada Recuadro de lista Edición de múltipleslíneas

Subarchivo

Ejemplo

Borrar un campo de entrada si se pulsa F5 cuando el campo tiene el foco deentrada:

*...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

Código de carácter generado por el evento.

Durante el evento VKeyPress, el atributo de evento %Character se devolverá como unvalor que representa la tecla no de carácter que se ha pulsado. Los valores son lossiguientes:

00 - Esc 13 - Fin 25 - Inter 37 - F14

01 - Tabuladorderecha

14 - Retrocesode página

26 - F2 38 - F15

Page 2: Mantenimiento de Tablas de AS/400 con Visual Age

Minicomputadoras -2- Ing. Alberto Moreno C.-

02 - Tabuladorizquierda

15 - Avance depágina

27 - F3 39 - F16

03 - Espacio 16 - Flechaizquierda

28 - F4 40 - F17

04 - Retroceso 17 - Flechaderecha

29 - F5 41 - F18

05 - Intro(tecladonumérico)

18 - Flechaarriba

30 - F6 42 - F19

06 - Intro 19 - Flechaabajo

31 - F7 43 - F20

07 - Mayús 20 - BloqueoMayúsculas

32 - F8 44 - F21

08 - Control 21 - BloqueoNumérico

33 - F9 45 - F22

09 - Alt 22 - BloqueoMayús

34 - F11 46 - F23

10 - Insertar 23 - Pausa 35 - F12 47 - F24

11 - Suprimir 24 - PetSis 36 - F13 56 - Alt

12 - Inicio

SETLL (Establecer límite inferior)

Sintaxis de formato libre SETLL{(EHMR)} arg-búsqueda nombre

Código Factor 1 Factor 2Campo deresultado Indicadores

SETLL (E) arg-búsqueda nombre (formato de archivoo registro)

NR ER EQ

La operación SETLL sitúa un archivo en el siguiente registro que tenga una clave o unnúmero relativo de registro mayor o igual al argumento de búsqueda. El archivo debeser un archivo controlado en cálculo (identificado con una F en la posición 18 de lasespecificaciones de descripción de archivo).

La operación SETLL solo se puede utilizar con archivos OS/400. No se puede utilizarcon archivos locales.

Page 3: Mantenimiento de Tablas de AS/400 con Visual Age

Minicomputadoras -3- Ing. Alberto Moreno C.-El argumento de búsqueda, arg-búsqueda, debe ser la clave o el número de registrorelativo que se utiliza para recuperar el registro. Si el acceso es por clave, arg-búsquedapuede ser una sola clave con el formato de un nombre de campo, una constante connombre, una constante figurativa o un literal.

Si nombre es un nombre de formato de registro para el que se ha de establecer el límite inferior, elarchivo se sitúa en el primer registro del tipo especificado que tenga una clave igual o mayor que elargumento de búsqueda.

Al alcanzar el final del archivo en un archivo procesado por SETLL, puede emitirse otro SETLL paravolver a situar el archivo. Después de que una operación SETLL sitúe satisfactoriamente el archivo enun registro, este se puede recuperar leyéndolo. Puede utilizarse *START y *END para posicionar elarchivo. Si especifica *START o *END en arg-búsqueda, tenga en cuenta lo siguiente:

• nombre debe ser un nombre de archivo.• No puede utilizar *HIVAL ni *LOVAL como arg-búsqueda.• No puede especificar los indicadores NR y EQ.• Debe especificarse un indicador de error (posiciones 73-74) o el expansor 'E'.

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ónC* SETLL sitúa el archivo en el primer registro con elC* valor de clave 101.C* %EQUAL devolverá '1'.CC ORDER SETLL ORDFILCC* El bucle DO siguiente procesa todos los registros que tienenC* el mismo valor de clave.C*C IF %EQUALC DOU %EOFC ORDER READE ORDFILC IF NOT %EOFC EXCEPT DETAILC ENDIFC ENDDOC ENDIFCC*C* La operación READE lee los registros 101 segundo, tercero y cuartoC* igual que se leyó el registro 101 primero. Tras haber leídoC* 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 elC* bucle DOU.

Page 4: Mantenimiento de Tablas de AS/400 con Visual Age

Minicomputadoras -4- Ing. Alberto Moreno C.-

Cómo situar archivos mediante la operación SETLL

SETGT (Establecer mayor que)

Sintaxis de formato libre SETGT{(EHMR)} arg-búsqueda nombre

Código Factor 1 Factor 2Campo deresultado Indicadores

SETGT (E) arg-búsqueda nombre (formato de archivoo registro)

NR ER _

La operación SETGT sitúa un archivo en el siguiente registro con una clave o númerorelativo de registro mayor que el argumento de búsqueda. El archivo debe ser unarchivo controlado en cálculo (identificado con una F en la posición 18 de lasespecificaciones de descripción de archivo).

La operación SETGT solo se puede utilizar con archivos OS/400.

El argumento de búsqueda, arg-búsqueda, debe ser la clave o el número de registrorelativo que se utiliza para recuperar el registro. Si el acceso es por clave, arg-búsquedapuede ser una sola clave con el formato de un nombre de campo, una constante connombre, una constante figurativa o un literal.

Si la operación SETGT no es satisfactoria (ningún registro cumple la condición), el archivo seposiciona al final del archivo.

.

Operación SETGT

*...1....+....2....+....3....+....4....+....5....+....6....+....7...CSRN01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....

Page 5: Mantenimiento de Tablas de AS/400 con Visual Age

Minicomputadoras -5- Ing. Alberto Moreno C.-

C* Este ejemplo muestra cómo situar el archivo de modo que READC* lea el registro siguiente. El argumento de búsqueda, KEY, especificadoC* para la operación SETGT tiene el valor 98; por lo tanto, SETGT sitúaC* el archivo antes del primer registro de formato de archivo FILEA queC* tiene un valor de campo de clave mayor que 98. El archivo se posicionaC* antes del primer registro con un valor de clave de 100. La operaciónC* READ lee el registro que tiene un valor igual a 100 en su campo deC* clave.CC KEY SETGT FILEAC READ FILEA 64C*C* Este ejemplo muestra cómo leer el último registro de un grupo deC* registros con el mismo valor de clave y formato de un archivo descritoC* por programa. El argumento de búsqueda, KEY, especificado por laC* operación SETGT posiciona el archivo antes del primer registro deC* 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 deC* clave de 80. La operación READP lee el último registro que tiene unC* valor de 70 en su campo de clave.CC KEY SETGT FILEBC READP FILEB 64

Figura 307. Cómo situar archivos mediante la operación SETGT

READS (Leer seleccionados)

Sintaxis de formato libre READS{(E)} nombre-subarchivo

Código Factor 1 Factor 2Campo deresultado Indicadores

READS (E) nombre-subarchivo _ ER EOF

La operación READS recupera los registros seleccionados de un componente desubarchivo. Se lee el primer registro seleccionado del componente de subarchivo.

Page 6: Mantenimiento de Tablas de AS/400 con Visual Age

Minicomputadoras -6- Ing. Alberto Moreno C.-Si el estilo de selección de subarchivo es extendido o múltiple, se deselecciona elregistro. Si el estilo de selección del subarchivo es uno solo, el registro permaneceseleccionado. Una operación READS posterior lee de nuevo el mismo registro.

El operando nombre-subarchivo especifica el nombre del componente de subarchivo.

Si el campo de resultado está especificado, debe ser numérico sin posicionesdecimales. El número de índice de subarchivo del registro recuperado se coloca en elcampo del resultado.

Para manejar las excepciones de READS (códigos de estado de archivo mayores que1000), puede especificarse el expansor de código de operación 'E' o un indicador deerror ER, pero no ambos. Para obtener más información sobre la gestión de errores,consulte el apartado Excepciones/errores de archivo.

Puede especificar un indicador en las posiciones 75-76 que se activará cuando se déuna condición EOF: es decir, cuando no haya registros seleccionados en el subarchivo.Esta información puede obtenerse también a partir de la función incorporada %EOF,que devuelve '1' si se produce una condición EOF y '0' en caso contrario.

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 subarchivoC* visualizado uno por uno en el bucle do while. SCUSNO y SCUSNAMC* son campos definidos en el subarchivo.C*C READS SUBCUST 27C DOW *IN27 = *OFFC*C* Los campos SCUSNO, SCUSNAM pueden utilizarse aquí para procesar elC* registro seleccionado que se ha leído.C*C READS SUBCUST 27C ENDDOC*

Page 7: Mantenimiento de Tablas de AS/400 con Visual Age

Minicomputadoras -7- Ing. Alberto Moreno C.-

APLICACIONES :

1.- Mantenimiento de la tabla alumno generando el código del alumno, tal como se muestra en lafigura:

Los controles empleados:Codigo => txtcod C(5)Apelido => txtape C(15)Nombre => Txtnom C(15)Dos botones:Btnsave => botón grabar inicialmente desactivado (Enabled)BtnNew =>Botón nuevo

Codificación :

Page 8: Mantenimiento de Tablas de AS/400 con Visual Age

Minicomputadoras -8- Ing. Alberto Moreno C.-

Page 9: Mantenimiento de Tablas de AS/400 con Visual Age

Minicomputadoras -9- Ing. Alberto Moreno C.-DELETE (Suprimir registro)

Sintaxis deformato libre

DELETE{(EHMR)} {arg-búsqueda} nombre

Código Factor 1 Factor 2

Campoderesultado Indicadores

DELETE(E)

arg-búsqueda

nombre(archivo,formato deregistro osubarchivo)

NR ER _

La operación DELETE suprime un registro. Cuando se ha suprimido un registro, nopuede volverse a recuperar.

Si no se especifica un argumento de búsqueda (arg-búsqueda), la operación DELETEsuprime el registro actual. El registro actual es el último registro recuperado. El registrodebe haber sido bloqueado por una operación de entrada anterior como, por ejemplo,una operación CHAIN o READ.

Si se especifica un argumento de búsqueda (arg-búsqueda), debe contener una clave,un número relativo de registro o un número de índice de subarchivo que identifique elregistro que debe suprimirse:

• Si el acceso es por clave, el operando nombre debe ser un archivo remoto. Siexisten registros duplicados para la clave, solo se suprime del archivo el primerode los registros duplicados.

El arg-búsqueda puede ser una sola clave con el formato de un nombre decampo, una constante con nombre, una constante figurativa o un literal.

• Si el acceso se efectúa por número de registro relativo o número de índice desubarchivo, el argumento de búsqueda debe contener una constante o variablenumérica con cero posiciones decimales.

UPDATE (Modificar registro existente)

Código Factor 1 Factor 2

Campoderesultado Indicadores

UPDATE(E)

nombre(archivo,formato deregistro osubarchivo)

estructura-datos

_ ER _

Page 10: Mantenimiento de Tablas de AS/400 con Visual Age

Minicomputadoras -10- Ing. Alberto Moreno C.-La operación UPDATE modifica el último registro bloqueado que se ha recuperado paraprocesarse desde un archivo o subarchivo de disco de actualización. No debe realizarseninguna otra operación en el archivo entre la operación de entrada que ha recuperado ybloqueado el registro y la operación UPDATE.

Las operaciones como, por ejemplo, READ, READC, READE, READP, READPE yCHAIN recuperan y bloquean un registro. Si dichas operaciones de entrada no serealizan satisfactoriamente, no se bloquea el registro y no se puede emitir UPDATE. Elregistro debe volverse a leer con el valor por omisión de blanco en el expansor deoperación para especificar una solicitud de bloqueo.

Después de una operación UPDATE satisfactoria, la siguiente operación de entradasecuencial recupera el registro siguiente al registro actualizado.

Las operaciones UPDATE consecutivas para el mismo archivo o registro no son válidas.Deben emitirse intercaladamente operaciones de lectura satisfactorias para posicionar ybloquear el registro a actualizar.

El operando nombre debe ser el nombre de un archivo, subarchivos o formato deregis

troque

debe

actualizarse. Si se especifica un nombre de archivo, dicho archivo debe estar descritopor programa. Si se especifica un nombre de formato de registro, el archivo debe estardescrito externamente. El nombre de formato de registro debe ser el nombre del últimoregistro que se ha leído del archivo; de lo contrario se produce un error.

Si se especifica el operando estructura-datos, el registro se actualiza directamente apartir de la estructura de datos. Si nombre hace referencia a un archivo descrito porprograma (identificado mediante una F en la posición 22 de la especificación dedescripción de archivo), la estructura de datos puede ser cualquiera que tenga la mismalongitud que la longitud de registro declarada del archivo. Si nombre hace referencia aun archivo descrito externamente, la estructura de datos debe estar definida conEXTNAME(...:*INPUT) o LIKEREC(...:*INPUT). El registro actualizado se escribedirectamente desde la estructura de datos en el archivo.

Nota:Si se han de actualizar solo algunos de los campos de un registro, en vez detodos, utilice las especificaciones de salida y no la operación UPDATE.

Consulte la sección Soporte de valores nulos de base de datos, si desea obtenerinformación acerca de cómo leer registros con campos con posibilidad de nulos.

Aplicación 2.-

Sintaxis deformato libre

UPDATE{(E)} nombre {estructura-datos |%FIELDS(nombre{:nombre...})}