Sie sind auf Seite 1von 29
REPORT PROGRAM GENERATOR (RPG)  Es un lenguaje de programación de alto nivel desarrollado y diseñado
REPORT PROGRAM GENERATOR (RPG)  Es un lenguaje de programación de alto nivel desarrollado y diseñado
REPORT PROGRAM GENERATOR (RPG)
Es un lenguaje de programación de alto nivel desarrollado y diseñado
por IBM para generar informes comerciales o de negocios.
Ha sido actualizado en diversas ocasiones, dando origen a las diferentes
versiones del lenguaje. Una de las últimas actualizaciones que se ha
realizado hasta la fecha es el RPG/IV también conocido como RPG ILE,
y con la aparición de la versión 5 del OS/400, surgió una nueva
modificación sobre el lenguaje, soportándose a partir de ese momento
la programación en formato libre.
El RPG IV es un lenguaje estructurado, cuya programación es mediante
hojas y la lógica es mediante columnas, la ventaja de programar en RPG
IV, es que se pueden utilizar sentencias del RPG III.
RPG -- Columna 09: 7 Hojas de codificación.  H  Head “Cabecera de programación” 
RPG -- Columna 09: 7 Hojas de codificación.  H  Head “Cabecera de programación” 
RPG -- Columna 09: 7 Hojas de codificación.
H  Head “Cabecera de programación”
F  Formato “ Para definir Archivo: Físico ,Lógicos , Pantallas , …
E  Elementos “ Se utiliza para declarar matrices (Arreglos),
renombrar Registros.”
L  Logical “Se usa para declarar secuencia de quiebres”
I  Imput - Integridad “Se utiliza para declarar estructuras”
C  Calculo “ Se utiliza para la Secuencia principal de programa
RPG”
O  Salida “Se utiliza para Generar Reportes en el mismo
programa”
RPGILE : Intervienen las hojas: H F D C Columna 09  Tipo de Hoja. 
RPGILE : Intervienen las hojas: H F D C
Columna 09  Tipo de Hoja.
Hoja “H”
HPalabras Clave+++++++++++++++++++++++Comentarios+++++++
...
Palabras clave de especificación de control
+
...
Palabras Claves
0000.01 HDATFMT(*YMD) TIMFMT(*HMS)
100517
Hoja “F”
Declaración de archivos ( Físicos , Lógicos, Pantallas, Impresoras)
Formato de Especificación
 HOJA F: 2 1 3 4 5 6 7 8
 HOJA F: 2 1 3 4 5 6 7 8
HOJA F:
2
1
3
4
5
6
7
8
Donde: 1. Nombre arch: Es el nombre del Archivo de Pantalla, Tabla Física, Tabla Lógica, o

Donde:

  • 1. Nombre arch: Es el nombre del Archivo de Pantalla, Tabla Física, Tabla Lógica, o Reporte.

  • 2. Tipo de Archivo: Entre los cuales tenemos

    • C =Indica que el archivo combina Entrada y Salida de datos (solo pantallas).

    • I =Indica que es un archivo de entrada de datos (solo tablas para consultas).

    • U =Indica que es un archivo de actualización de datos (solo tablas para actualizaciones, eliminaciones, consultas).

    • O =Indica que es un archivo de salida de datos (solo reportes). Nota = Cuando se utilice el tipo de archivo U, se deberá definir en Adición de Archivo la letra A.

  • 3. Designación de Archivo: Aquí usamos:

    • P Digite P para indicar un archivo primario.

    • S Digite

  • S para indicar un archivo secundario.

    • R Digite R para indicar un archivo de Direcciones de registros.

    • T Digite T para indicar un archivo de matrices o de tablas.

    • F Digite F para indicar un archivo de procedimiento completo.

    Nota = Vas a utilizar la designación de archivos en todos los archivos menos en reportes.

    Donde: 5. Formato de Archivo = Aquí tenemos E (Externo), quiere decir que vamos a llamar
    Donde:
    5.
    Formato de Archivo = Aquí tenemos E (Externo), quiere decir que vamos a llamar al archivo
    externamente del programa.
    6.
    Tipo de Dirección de Registro = Aquí tenemos K (Campo Clave), es usado solo cuando definas
    tablas, te permite ordenar un tabla física o lógica por su campo clave. También podemos utilizar lo
    siguiente:
     Deje en blanco el campo si se utilizan números de registro relativos para procesar el archivo, si los registros se leen
    consecutivamente o si las claves de un archivo de proceso entre límites están en el mismo formato que las claves del
    archivo que se procesa.
    A  Digite A para una clave de carácter.
    D  Digite D para una clave de fecha.
    F  Digite F para una clave de número flotante.
    G  Digite G para un campo clave de Gráficos.
    P  Digite P para una clave empaquetada.
    T
     Digite
    T para una clave de hora.
    Z  Digite Z para una clave de indicación de hora.
    7.
    Dispositivo: Aquí tenemos:
    WORKSTN = Estación de trabajo (solo en pantallas).
    DISK = Disco (solo en tablas).
    PRINTER = Reportes (solo en reportes).
    Donde: 8. Palabras Claves : Son palabras reservadas para la funcionalidad de un programa. Elija entre

    Donde:

    • 8. Palabras Claves: Son palabras reservadas para la funcionalidad de un programa. Elija entre las siguientes palabras claves:

      • BLOCK(*NO | *YES): Digite esta palabra clave para controlar el bloqueo de registros para el archivo.

      • COMMIT{(nombre rpg): Digite COMMIT si este archivo está bajo control de compromiso. Especifique nombre_rpg si desea determinar, en el momento de la ejecución, si el archivo está bajo control de compromiso.

      • DEVID(nombre campo): Digite DEVID para especificar el nombre del campo que va a contener el nombre del dispositivo.

      • EXTIND(*INU1-*INU8): Especifique esta palabra clave para indicar que sólo se puede realizar OPEN en el archivo si el indicador externo se ha establecido en el trabajo.

    • IGNORE(nombre formato registro: nombre formato registro:

    ):

    Digite el nombre del formato de registro a ignorar de un

    archivo descrito externamente. Puede especificar múltiples formatos de registro. No puede especificar IGNORE si quiere especificar

    INCLUDE.

    • INCLUDE(nombre formato registro: nombre formato registro:

    ):

    Digite los nombres de los formatos de registro que deben

    incluirse. No especifique formatos de registro que se especifican para los archivos WORKSTN con la palabra clave SFILE. Puede

    especificar múltiples formatos de registro. No puede especificar INCLUDE si quiere especificar IGNORE.

    • INDDS(nombre de estructura de datos): Digite el nombre de la estructura de datos de indicador asociada a una estación de trabajo o a un archivo de impresora.

    • INFDS(nombre estructura datos): Digite el nombre de la estructura de datos que contendrá la información de excepción/error.

    • INFSR(nombre subrutina): Digite el nombre de la subrutina que tomará el control cuando se produzca una condición de excepción/error.

    • MAXDEV(*ONLY|*FILE): Especifique el tipo de archivo de dispositivo WORKSTN. El valor por omisión, *ONLY, indica un archivo de un solo dispositivo. Digite *FILE para recuperar el máximo número de dispositivos al abrir el archivo.

    • OFLIND(indicador): Digite un valor de *IN01 a *IN99 para activar un indicador cuando se imprime una línea en la línea de desbordamiento, o cuando se alcanza o se salta la línea de desbordamiento durante una operación de espacio o salto.

     HOJA D: 3 2 1 4 5 6
     HOJA D: 3 2 1 4 5 6
    HOJA D:
    3
    2
    1
    4
    5
    6
    Donde: 1 Nombre: Es el nombre de la variable, constante o estructura de datos. 2 Tipo
    Donde: 1 Nombre: Es el nombre de la variable, constante o estructura de datos. 2 Tipo
    Donde:
    1
    Nombre: Es el nombre de la variable, constante o estructura de datos.
    2
    Tipo de declaración: Aquí tenemos:
    S = Permite declarar variables.
    C = Permite declarar constantes,
    DS = Permite declarar estructura de datos.
    3
    Longitud: Es la longitud de la variable y debe estar alineada a la derecha.
    4
    Tipo de dato: Aquí tenemos:
    S = Permite definir una variable numérica.
    A = Permite definir una variable carácter.
    5
    Posiciones Decimales: Son los decimales del campo numérico.
    6
    Funciones: Son las funciones que se pueden usar definiendo variables, constantes o
    estructuras de datos.
     HOJA C: Permite realizar la lógica del programa, este tipo de hoja es de RPG
    • HOJA C: Permite realizar la lógica del programa, este tipo de hoja es de RPG III.

     HOJA C: Permite realizar la lógica del programa, este tipo de hoja es de RPG
     HOJA C: Permite realizar la lógica del programa, este tipo de hoja es de RPG
     HOJA C: Permite realizar la lógica del programa, este tipo de hoja es de RPG
    • HOJA CX: Permite realizar la lógica del programa, este tipo de hoja es de RPG IV.

     Operadores Aritméticos.  Operadores de Relación. • Operadores Lógicos.
    Operadores Aritméticos.
     Operadores de Relación.
    Operadores Lógicos.
    OTRO OPERADORES:  Operador DSPLY: Visualizar función, permite ingresar como visualizar datos de una variable, y
    OTRO OPERADORES:  Operador DSPLY: Visualizar función, permite ingresar como visualizar datos de una variable, y
    OTRO OPERADORES:
    Operador DSPLY: Visualizar función, permite ingresar como visualizar datos de una variable, y es
    usado en la hoja C.
    Sintaxis.
    Ejemplo.
    Se pide ingresar un número a la variable NUM
    Operador EVAL.  Permite evaluar expresiones, y es usado en la hoja C o CX. 
    Operador EVAL.
    Permite evaluar expresiones, y es usado en la hoja C o CX.
    Sintaxis.
    Ejemplo.
    Se pide sumar las variables numéricas N1 +N2 y el resultado guardarlo en RESUL
    Condicionales Estructuras Repetitivas 16
    Condicionales Estructuras Repetitivas
    Condicionales
    Estructuras
    Repetitivas
    Instrucción IF – ELSE – ENDIF  Es una instrucción condicional, que permite comparar datos, y
    Instrucción IF – ELSE – ENDIF  Es una instrucción condicional, que permite comparar datos, y
    Instrucción IF – ELSE – ENDIF
    Es una instrucción condicional, que permite
    comparar datos, y es usado en la hoja C o CX.
    Sintaxis.
    FACTOR1
    OPERADOR
    FACTOR2
    IF
    <CONDICION>
    ELSE
    ENDIF
    Instrucción IF – ELSEIF – ENDIF  Es una instrucción condicional, que permite comparar datos con
    Instrucción IF – ELSEIF – ENDIF  Es una instrucción condicional, que permite comparar datos con
    Instrucción IF – ELSEIF – ENDIF
    Es una instrucción condicional, que permite comparar datos con
    posibles resultados diferentes, realizando para cada caso una serie de
    instrucciones específicas, y es usado en la hoja C de RPG III o CX de
    RPG IV.
    Sintaxis.
    FACTOR1
    OPERADOR
    FACTOR2
    IF
    <CONDICION>
    ELSEIF
    <CONDICION>
    ENDIF
    Instrucción SELECT - WHEN – ENDSL  Es una instrucción condicional, que permite comparar datos, y
    Instrucción SELECT - WHEN – ENDSL  Es una instrucción condicional, que permite comparar datos, y
    Instrucción SELECT - WHEN – ENDSL
    Es una instrucción condicional, que permite comparar datos, y es usado
    en la hoja CX de RPG IV.
    Sintaxis.
    FACTOR1
    OPERADOR
    FACTOR2
    SELECT
    WHEN
    <CONDICION>
    WHEN
    <CONDICION>
    OTHER
    ENDSL
    PROCESOS REPETITIVOS Entre los procesos repetitivos más usados tenemos los siguientes:  Proceso FOR – ENDFOR
    PROCESOS REPETITIVOS
    Entre los procesos repetitivos más usados tenemos los siguientes:
    Proceso FOR – ENDFOR
    Sintaxis.
    FACTOR1
    OPERADOR
    FACTOR2
    FOR
    X=Var.InicialToVar.Final
    ENDFOR
     Proceso DOW – ENDDO Sintaxis. FACTOR1 OPERADOR FACTOR2 DOW <CONDICION> ENDDO
     Proceso DOW – ENDDO Sintaxis. FACTOR1 OPERADOR FACTOR2 DOW <CONDICION> ENDDO
    Proceso DOW – ENDDO
    Sintaxis.
    FACTOR1
    OPERADOR
    FACTOR2
    DOW
    <CONDICION>
    ENDDO
    Operador LEAVE.  Es un operador que me permite salir de un proceso repetitivo.  Sintaxis.
    Operador LEAVE.
    Es un operador que me permite salir de un proceso
    repetitivo.
    Sintaxis.
    FACTOR1
    OPERADOR
    FACTOR2
    DOW
    <CONDICION>
    DOW
    <CONDICION>
    LEAVE
    ENDDO
    ENDDO
    Operador ITER  Es un operador que me permite regresar al inicio de un proceso repetitivo.
    Operador ITER
    Es un operador que me permite regresar al inicio de un proceso
    repetitivo.
    Sintaxis.
    FACTOR1
    OPERADOR
    FACTOR2
    DOW
    <CONDICION>
    DOW
    <CONDICION>
    ITER
    ENDDO
    ENDDO
     Ingrese por teclado dos notas, calcular el promedio y visualizar su condición “APROBADO” o “DESAPROBADO”.
    • Ingrese por teclado dos notas, calcular el promedio y visualizar su condición “APROBADO” o “DESAPROBADO”.

     Ingrese por teclado dos notas, calcular el promedio y visualizar su condición “APROBADO” o “DESAPROBADO”.
     Ingrese por teclado dos notas, calcular el promedio y visualizar su condición “APROBADO” o “DESAPROBADO”.

    FACTOR 1

    OPERACIÓN

    FACTOR 2

    RESULTADO

     

    EVAL

    *INLR='0'

     

    ‘ING. Nota 1: ‘

    DSPLY

     

    N1

    ‘ING. Nota 2: ‘

    DSPLY

     

    N2

     

    EVAL

    PROM=(N1+N2)/2

     
     

    IF

    PROM>=10.5

     

    ‘APROBADO’

    DSPLY

       
     

    ELSE

       

    ‘DESAPROBADO’

    DSPLY

       
     

    ENDIF

       
     

    EVAL

    *INLR='1'

     
     Ingresar un número entre 1 y 5, y luego visualizar su equivalente en letras.
    • Ingresar un número entre 1 y 5, y luego visualizar su equivalente en letras.

     Ingresar un número entre 1 y 5, y luego visualizar su equivalente en letras.
     Ingresar un número entre 1 y 5, y luego visualizar su equivalente en letras.
     Ingrese por teclado un número de dos cifras y visualice si es capicúa o no
    • Ingrese por teclado un número de dos cifras y visualice si es capicúa o no es capicúa.

     Ingrese por teclado un número de dos cifras y visualice si es capicúa o no
     Ingrese por teclado un número de dos cifras y visualice si es capicúa o no
     Visualizar los números enteros del 1 al 5.
    • Visualizar los números enteros del 1 al 5.

     Visualizar los números enteros del 1 al 5.
     Visualizar los números enteros del 1 al 5.
     Crear un programa que permita ingresar un número entero de dos cifras, calcular y visualizar
    • Crear un programa que permita ingresar un número entero de dos cifras, calcular y visualizar si dicho número es primo o no es primo.

     Crear un programa que permita ingresar un número entero de dos cifras, calcular y visualizar
     Crear un programa que permita ingresar un número entero de dos cifras, calcular y visualizar
     Crear un programa que permita invertir un número.
    • Crear un programa que permita invertir un número.

     Crear un programa que permita invertir un número.