instruccionesbdd

19
Minicomputadoras -1- Ing. Alberto Moreno C. - BASE DE DATOS CON VISUAL AGE RPG CHAIN (Recuperación aleatoria desde un archivo) Sintaxis de formato libre CHAIN{(ENHMR)} arg-búsqueda nombre {estructura- datos} Código Factor 1 Factor 2 Campo de resultado Indicadores CHAIN (E N) arg- búsqueda nombre (formato de archivo o registro) estructura- datos NR _ La operación CHAIN recupera un registro desde un archivo controlado en cálculo (F en la posición 18 de las especificaciones de descripción de archivo) o un subarchivo, activa un indicador de identificación de registro (si se ha indicado en las especificaciones de entrada) y coloca los datos del registro en los campos de entrada. Puede especificar un indicador en las posiciones 71-72 que se active si ningún registro del archivo coincide con el argumento de búsqueda ,que devuelve '0' si se ha encontrado el registro y '1' si no CHAIN no se completa satisfactoriamente, los campos del programa permanecen sin cambios y el archivo debe volverse a situar para que pueda realizarse la siguiente operación de lectura sobre el archivo. Si se actualiza el archivo inmediatamente después de una operación CHAIN satisfactoria, se actualiza el último registro recuperado. Si no se encuentra ningún registro, si se produce un error durante la operación CHAIN o si ya se ha recuperado el último registro (fin de archivo), no se recupera ningún dato y todos los campos permanecen sin cambios. READ (Leer un registro) Sintaxis de formato libre READ{(EN)} nombre {estructura-datos} Código Factor 1 Factor 2 Campo de resultado Indicadores

Upload: francisco-becerra-bolanos

Post on 26-Jun-2015

122 views

Category:

Documents


4 download

TRANSCRIPT

Minicomputadoras -1- Ing. Alberto Moreno C.-

BASE DE DATOS CON VISUAL AGE RPG

CHAIN (Recuperación aleatoria desde un archivo)

Sintaxis deformato libre

CHAIN{(ENHMR)} arg-búsqueda nombre {estructura-datos}

Código Factor 1 Factor 2

Campoderesultado Indicadores

CHAIN(E N)

arg-búsqueda

nombre(formato dearchivo oregistro)

estructura-datos

NR _

La operación CHAIN recupera un registro desde un archivo controlado en cálculo(F en la posición 18 de las especificaciones de descripción de archivo) o unsubarchivo, activa un indicador de identificación de registro (si se ha indicado enlas especificaciones de entrada) y coloca los datos del registro en los campos deentrada.

Puede especificar un indicador en las posiciones 71-72 que se active si ningúnregistro del archivo coincide con el argumento de búsqueda ,que devuelve '0' sise ha encontrado el registro y '1' si no CHAIN no se completasatisfactoriamente, los campos del programa permanecen sin cambios y elarchivo debe volverse a situar para que pueda realizarse la siguiente operaciónde lectura sobre el archivo.

Si se actualiza el archivo inmediatamente después de una operación CHAINsatisfactoria, se actualiza el último registro recuperado.

Si no se encuentra ningún registro, si se produce un error durante la operaciónCHAIN o si ya se ha recuperado el último registro (fin de archivo), no se recuperaningún dato y todos los campos permanecen sin cambios.

READ (Leer un registro)

Sintaxis deformato libre

READ{(EN)} nombre {estructura-datos}

CódigoFactor1

Factor2

Campoderesultado Indicadores

Minicomputadoras -2- Ing. Alberto Moreno C.-

READ(E N)

nombre(formatodearchivooregistro)

estructura-datos

_ EQ(IGUAL)

RE

La operación READ lee datos de un archivo, requiere un indicador en la columnaigual de la hoja de calculo , este indicador se va activar *ON o ‘1’ cuando sedetecta el fin del archivo , de lo contrario va tomar el valor ‘0’ u *OFF.

Si la operación READ se realiza satisfactoriamente, el archivo se coloca en elsiguiente registro que satisface la lectura. Si se produce un error o una condiciónde fin de archivo, debe volver a posicionar el archivo (utilizando una operaciónCHAIN, SETLL o SETGT).

Figura 293. Operación READ para archivos

*...1....+....2....+....3....+....4....+....5....+....6....+....7...CSRN01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....C*C* READ recupera el registro siguiente del archivo FILEA, que debe serC* un archivo controlado en cálculo.C*C* %EOF devolverá '1' si se da un fin de archivo en READC* o si se ha producido anteriormente y no se ha vuelto a posicionarC* el archivo. Cuando %EOF devuelve '1', el programa abandonaC* el bucle.C*C DOW '1'C READ FILEAC IF %EOFC LEAVEC ENDIFC*C* READ recupera el registro siguiente del tipo REC1 (factor 2)C* de un archivo descrito externamente. (REC1 es un nombre de formatoC* del registro). Se activa el indicador 64 si se produce el fin deC* archivo en READ, o si se ha producido anteriormente y no se ha vueltoC* a situar el archivo. Cuando se activa el indicador 64, el programaC* abandona el bucle. El expansor de código de operación NC* indica que el registro no está bloqueado.C*C READ(N) REC1 64C 64 LEAVEC ENDDO

Minicomputadoras -3- Ing. Alberto Moreno C.-READE (Leer clave igual)

Sintaxis deformato libre

READE{(ENHMR)} arg-búsqueda|*KEY nombre{estructura-datos}

Código Factor 1 Factor 2

Campoderesultado Indicadores

READE(E N)

arg-búsqueda

nombre(formatode archivoo registro)

estructura-datos

_ EOFRE

La operación READE recupera el siguiente registro secuencial de un archivocontrolado en cálculo (identificado por una F en la posición 18 de lasespecificaciones de descripción de archivo) si la clave del registro coincide con elargumento de búsqueda. Si la clave del registro no coincide con el argumento debúsqueda, se produce una condición EOF y no se devuelve el registro alprograma. También se da una condición EOF cuando se produce el fin dearchivo.

La operación READE solo puede utilizarse con archivos de OS/400.

El argumento de búsqueda, arg-búsqueda, identifica el registro que deberecuperarse. El operando arg-búsqueda es opcional en la sintaxis tradicional,pero obligatorio en la sintaxis de formato libre. arg-búsqueda puede ser:

• Un nombre de campo, un literal, una constante con nombre o unaconstante figurativa.

READP (Leer registro anterior)

Sintaxis deformato libre

READP{(EN)} nombre {estructura-datos}

CódigoFactor1 Factor 2

Campoderesultado Indicadores

READP(E N)

nombre(formatode archivoo registro)

estructura-datos

_ ER BOF

Minicomputadoras -4- Ing. Alberto Moreno C.-La operación READP lee el registro anterior de un archivo controlado en cálculo(identificado por una F en la posición 18 de las especificaciones de descripciónde archivo).

El operando nombre debe ser el nombre del archivo o formato de registro quedebe leerse. Un nombre de formato de registro solo se permite con un archivodescrito externamente. Si se especifica un nombre de formato de registro, elregistro recuperado es el primer registro anterior del tipo especificado. Seignoran los registros intermedios.

Si se especifica el operando estructura-datos, el registro se lee directamente enla 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 lamisma longitud que la longitud de registro declarada del archivo.

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,no puede volverse a recuperar.

Si no se especifica un argumento de búsqueda (arg-búsqueda), la operaciónDELETE suprime el registro actual. El registro actual es el último registrorecuperado. El registro debe haber sido bloqueado por una operación de entradaanterior como, por ejemplo, una operación CHAIN o READ.

Tenga en cuenta lo siguiente al suprimir registros:

• La supresión de un registro de un componente de subarchivo provoca undesplazamiento de los números de índice de registro del subarchivo paralos registros restantes del subarchivo.

• Si se realiza una operación de lectura secuencial en el archivo despuésde una operación DELETE satisfactoria para dicho archivo, se obtiene elregistro situado a continuación del registro suprimido

Minicomputadoras -5- Ing. Alberto Moreno C.-UPDATE (Modificar registro existente)

Sintaxis deformato libre

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

CódigoFactor1 Factor 2

Campoderesultado Indicadores

UPDATE(E)

nombre(archivo,formato deregistro osubarchivo)

estructura-datos

_ ER _

La operación UPDATE modifica el último registro bloqueado que se harecuperado para procesarse desde un archivo o subarchivo de disco deactualización. No debe realizarse ninguna otra operación en el archivo entre laoperación de entrada que ha recuperado y bloqueado el registro y la operaciónUPDATE.

Las operaciones como, por ejemplo, READ, READC, READE, READP, READPEy CHAIN recuperan y bloquean un registro. Si dichas operaciones de entrada nose realizan satisfactoriamente, no se bloquea el registro y no se puede emitirUPDATE. El registro debe volverse a leer con el valor por omisión de blanco enel expansor de operación para especificar una solicitud de bloqueo.

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

Las operaciones UPDATE consecutivas para el mismo archivo o registro no sonválidas. Deben emitirse intercaladamente operaciones de lectura satisfactoriaspara posicionar y bloquear el registro a actualizar.

El operando nombre debe ser el nombre de un archivo, subarchivos o formato deregistro que debe actualizarse. Si se especifica un nombre de archivo, dichoarchivo debe estar descrito por programa. Si se especifica un nombre de formatode registro, el archivo debe estar descrito externamente. El nombre de formatode registro debe ser el nombre del último registro que se ha leído del archivo; de locontrario se produce un error

Minicomputadoras -6- Ing. Alberto Moreno C.-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.

El argumento de búsqueda, arg-búsqueda, debe ser la clave o el número deregistro relativo que se utiliza para recuperar el registro. Si el acceso es porclave, 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 nombre es un nombre de formato de registro para el que se ha de establecerel límite inferior, el archivo se sitúa en el primer registro del tipo especificado quetenga una clave igual o mayor que el argumento de búsqueda.

Al alcanzar el final del archivo en un archivo procesado por SETLL, puede emitirse otroSETLL para volver a situar el archivo. Después de que una operación SETLL sitúesatisfactoriamente el archivo en un registro, este se puede recuperar leyéndolo. Puedeutilizarse *START y *END para posicionar el archivo. Si especifica *START o *END enarg-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.

Minicomputadoras -7- Ing. Alberto Moreno C.-

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

Cómo situar archivos mediante la operación SETLL

SETGT (Establecer mayor que)

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

Minicomputadoras -8- Ing. Alberto Moreno C.-

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

Minicomputadoras -9- Ing. Alberto Moreno C.-

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.

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

Minicomputadoras -10- Ing. Alberto Moreno C.-

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*

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

Minicomputadoras -11- Ing. Alberto Moreno C.-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

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

Minicomputadoras -12- 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 :

Minicomputadoras -13- Ing. Alberto Moreno C.-

Minicomputadoras -14- 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 _

Minicomputadoras -15- 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 deregistro que 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.-EMPLEANDO UN LOGICO DE UNION .-Ingresando un código de alumno que muestre sus notas los cursos que ha llevado , pintarademás el promedio con azul si esta aprobado y rojo si esta desaprobado. Como semuestra en la figura.

Sintaxis deformato libre

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

Minicomputadoras -16- Ing. Alberto Moreno C.-

Las tablas a emplear sonTALUMNO PFSEU==> FMT PF .....A..........T.Nombre++++RLon++TPdB..... *************** Principio de datos ********0001.00 A R REGA0002.00 A CODA 5A0003.00 A APEALU 15A0004.00 A NOMALU 15A0005.00 A K CODA ****************** Fin de datos ***********

TNOTAS PFFMT PF .....A..........T.Nombre++++RLon++TPdB.. *************** Principio de datos *****0001.00 A R REGN0002.00 A CODA 5A0003.00 A CODC 4A0004.00 A EXP 2S 00005.00 A EXF 2S 00006.00 A K CODA0007.00 A K CODC ****************** Fin de datos ********

TCURSO PF.A..........T.Nombre++++RLon++TPdB.*********** Principio de datos ****

Minicomputadoras -17- Ing. Alberto Moreno C.- A R REGC A CODC 4A A NOMC 15A A CRED 2S 0 A K CODC A************** Fin de datos *******

TPAGOS PF.A..........T.Nombre++++RLon++TPdB*********** Principio de datos *** A R REGP A RECIBO 5A A CODALU 5A A MONTO 6S 0 A K RECIBO************** Fin de datos ******

Y EL LOGICO DE UNION: UNENOTA LF para realizar nuestra consulta

UNENOTA.A..........T.Nombre++++.Lon++TPdB......Funciones++++++++++++++++++*********** Principio de datos ************************************ A R REGL JFILE(TALUMNO TNOTAS TCURSO) A J JOIN(1 2) A JFLD(CODA CODA) A J JOIN(2 3) A JFLD(CODC CODC) A CODA JREF(1) A NOMALU A APEALU A CODC JREF(2) A NOMC A EXP A EXF A K CODA

El diseño del formulario es:

Minicomputadoras -18- Ing. Alberto Moreno C.-

nro Control Name longitud1 Campo de Entrada xcod 52 Texto estatico nomalu 153 textoestatico apealu 154 subarchivo SUB01

En el subarchivo añadir los siguientes campos

Columna Tipo longitudCODC TEXTO 4NOMC TEXTO 15EXP NUMERICO 2,0EXF NUMERICO 2,0PROM NUMERICO 3,1

Codificación en RPG

1

2

3

4

Minicomputadoras -19- Ing. Alberto Moreno C.-