Bucles en El RPG PDF

También podría gustarte

Está en la página 1de 5

INVERSIONES

PRETEL MARIN Y CIA Calle 173 # 52 A 31 Santafé de Bogota - Colombia


S.C.S.
www.ipm-gs.com Teléfonos: 6710110 5260991 Fax: 5261805

02. BUCLES EN EL RPG

Objetivos:
• Conocer qué hojas se utilizan usando el ciclo de RPG (Hoja D, C y CX en un
bucle FOR).
• Conocer cuál es la estructura de la Hoja D para definir variables autónomas.
• Conocer cuál es la estructura y equivalencias de las instrucciones DO / ENDDO
y FOR / ENDFOR.

La siguiente figura muestra la estructura de un ciclo Do EndDo (Bucle) y la utilización de la


hoja D de definición (la hoja DX se utiliza en la misma posición y significa extensión de la
definición) véase el anexo V para conocer el detalle de las hojas D y DX.

La hoja de definición substituye muchas hojas que anteriormente se utilizaban en el RPG (E,
DS y la definición de variables dentro de la hoja C) y valga la burda semejanza, se asemeja
al DCL y DCLF del CL.

La siguiente práctica indica como codificar un programa que muestra un mensaje en


pantalla, compilarlo y ejecutarlo.

Instrucciones usadas: Dsply, Do / EndDo, For / EndFor y Eval, Move (véase el anexo VI
para conocer el detalle de los códigos de operación).

Prácticas:
001.- Cómo se puede crear un bucle (loop) para mostrar varios mensajes, usando Do /
EndDo.

Cree un fuente como se creó para la primera práctica, cuando aparece la siguiente pantalla
escriba lo que aparece en ella:

Capítulo 02 - 1
Material para el curso de RPG IV (Report Program Generator) para el AS/400.
Prohibida la reproducción parcial o total sin autorización escrita de IPM.
INVERSIONES
PRETEL MARIN Y CIA Calle 173 # 52 A 31 Santafé de Bogota - Colombia
S.C.S.
www.ipm-gs.com Teléfonos: 6710110 5260991 Fax: 5261805

Escriba la instrucción IPD, “Insert Prompt Define”, y presione Intro para continuar, se
visualizará una pantalla como la que se ilustra a continuación:

Escriba Bajo el título “Nombre”: Contador (variable); bajo “Declaración Tipo”: S (Variable
autónoma); “Bajo A / Longitud”: 5; bajo “Tipo de Datos Interno”: P y bajo “Posiciones
decimales”: 0 y presione Intro para continuar, se visualizará una pantalla como la que se
ilustra a continuación:

Las otras instrucciones se ingresan igual a la hoja C y CX, según muestra el código más a
continuación:

*************** Principio de datos ************************************


FMT D DNombre+++++++++ETDsDesde++A+/L+++IDc.Palabras Clave+++++++++++++++++++
0001.00 DContador S 5P 0
FMT C CL0N01Factor1+++++++Operac&ExtFactor2+++++++Resultado+++++Lon++D+MaMeIg
0003.00 C 1 Do 5 Contador
0004.00 C 'HOLA' Dsply
0005.00 C EndDo
FMT CX CL0N01Factor1+++++++Operac&ExtFactor-ampliado2+++++++++++++++++++++++++
0006.00 C Eval *InLr = *On
****************** Fin de datos ***************************************

Se debe notar que lo único que obedece a un formato dentro de la hoja “C” son las
instrucciones /FREE y /END-FREE, dentro de ellas el formato es completamente libre y se
omite EVAL al igual como se hace en Basic con la instrucción Let.

*************** Principio de datos ************************************


FMT D DNombre+++++++++ETDsDesde++A+/L+++IDc.Palabras Clave+++++++++++++++++++

Capítulo 02 - 2
Material para el curso de RPG IV (Report Program Generator) para el AS/400.
Prohibida la reproducción parcial o total sin autorización escrita de IPM.
INVERSIONES
PRETEL MARIN Y CIA Calle 173 # 52 A 31 Santafé de Bogota - Colombia
S.C.S.
www.ipm-gs.com Teléfonos: 6710110 5260991 Fax: 5261805

0001.01 DContador S 5P 0
FMT C CL0N01Factor1+++++++Operac&ExtFactor2+++++++Resultado+++++Lon++D+MaMeIg
0002.00 C/FREE
0003.00 Do 1 5 Contador ;
0004.00 Dsply ‘HOLA’ ;
0005.00 EndDo ;
0006.00 Eval *InLr = *On ;
0007.00 C/END-FREE
****************** Fin de datos ***************************************

La longitud de la variable puede ser de 14 caracteres y la S indica que es la definición


autónoma (single), el contador es empaquetado y con longitud de 5 enteros, cero decimal.

El resto de la grabación es similar al programa ya ingresado.

La siguiente figura indica que el programa se llevará acabo en el recuadro de proceso y se


definirá el contador en la hoja D.

Inicio

D DECLARATIVAS

C PROCESO

LECTURA

FIN DE
ARCHIVO

PROCESO
POR ULTIMO
REGISTRO

FINAL

La semejanza con el lenguaje Basic es la instrucción: For - Next

002.- Cómo se puede crear un bucle (loop) para mostrar varios mensajes, usando For /
EndFor.

La siguiente figura muestra como se implementaría usando una estructura FOR / ENDFOR,
que sólo está disponible a partir de la versión 4,4 (fíjese que el contador es binario).

*************** Principio de datos ************************************


FMT D DNombre+++++++++ETDsDesde++A+/L+++IDc.Palabras Clave+++++++++++++++++++
0001.00 DContador S 2B 0

Capítulo 02 - 3
Material para el curso de RPG IV (Report Program Generator) para el AS/400.
Prohibida la reproducción parcial o total sin autorización escrita de IPM.
INVERSIONES
PRETEL MARIN Y CIA Calle 173 # 52 A 31 Santafé de Bogota - Colombia
S.C.S.
www.ipm-gs.com Teléfonos: 6710110 5260991 Fax: 5261805

FMT C CL0N01Factor1+++++++Operac&ExtFactor2+++++++Resultado+++++Lon++D+MaMeIg
0003.00 C For Contador = 1 To 5
0004.00 C 'HOLA' Dsply
0005.00 C EndFor
FMT CX CL0N01Factor1+++++++Operac&ExtFactor-ampliado2+++++++++++++++++++++++++
0006.00 C Eval *InLr = *On
****************** Fin de datos ***************************************

Se debe notar que lo único que obedece a un formato dentro de la hoja “C” son las
instrucciones /FREE y /END-FREE, dentro de ellas el formato es completamente libre y se
omite EVAL al igual como se hace en Basic con la instrucción Let.

*************** Principio de datos ************************************


FMT D DNombre+++++++++ETDsDesde++A+/L+++IDc.Palabras Clave+++++++++++++++++++
0001.00 DContador S 2B 0
FMT C CL0N01Factor1+++++++Operac&ExtFactor2+++++++Resultado+++++Lon++D+MaMeIg
0002.00 C/FREE
0003.00 For Contador = 1 To 5 ;
0004.00 Dsply 'HOLA' ;
0005.00 EndFor ;
0006.00 Eval *InLr = *On ;
0007.00 C/END-FREE
****************** Fin de datos ***************************************

Para el ejemplo actual se utilizará el CRTBNDPGM (opción 14 sobre el miembro fuente del
PDM cuando el tipo es RPGLE).

Escriba la siguiente instrucción en la línea de mandatos después de haber completado con


éxito la compilación se debe ejecutar el programa recientemente ingresado CALL
PGM(CRSOBJ/JJS002$1), así como muestra la siguiente pantalla:

Presione Intro para continuar, se visualizará una pantalla como la que se ilustra a
continuación:

Capítulo 02 - 4
Material para el curso de RPG IV (Report Program Generator) para el AS/400.
Prohibida la reproducción parcial o total sin autorización escrita de IPM.
INVERSIONES
PRETEL MARIN Y CIA Calle 173 # 52 A 31 Santafé de Bogota - Colombia
S.C.S.
www.ipm-gs.com Teléfonos: 6710110 5260991 Fax: 5261805

Presione cuatro veces Intro para continuar, se visualizará una pantalla como la que se
ilustra a continuación:

Presione Intro para finalizar.

Conteste las siguientes preguntas


¿Por qué se debe usar FOR / ENDFO en vez de DO / ENDDO?
† Es más simple el uso del FOR.
† Es una instrucción estructurada y homologada por otros lenguajes.
† Ninguna de las anteriores.

¿En cuál tipo de fuente e puede usar la hoja “D”?


† RPG.
† RPGLE.
† Ninguna de las anteriores.

Revisando el anexo VI conteste la siguiente pregunta


¿Es DO equivalente en funcionalidad a FOR?
† Sí.
† No.

Capítulo 02 - 5
Material para el curso de RPG IV (Report Program Generator) para el AS/400.
Prohibida la reproducción parcial o total sin autorización escrita de IPM.

También podría gustarte