Sie sind auf Seite 1von 10

Introducción al RPG IV

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.

Tipos de Hojas.
El RPG IV, maneja una diversidad de hojas, de las cuales vamos a mencionar
las hojas mas usadas.

Declaración de Archivos
Hoja FX o F = Permite declarar archivos tales como Pantallas, Tablas Físicas,
Tablas Lógicas, Reportes.
Sintaxis.
Archivo Tipo de Desig. Adición
Archivo Archivo Archivo

Formato Tipo Direc. Dispos Palab. Claves


Archivo Regist.

Donde.
• Archivo = Es el nombre del Archivo de Pantalla, Tabla Física, Tabla Lógica, o Reporte.
• Tipo de Archivo = Entre los cuales tenemos:
o C = Combinado (Entrada / Salida) de datos (solo pantallas).
o I = Entrada (solo tablas para consultas).
o U = Actualización (solo tablas para actualizaciones, eliminaciones, consultas).
o O = Salida (solo reportes).
• Designación de Archivo = Aquí usamos:
o F = Procedimiento completo.
Nota = Vas a utilizar la designación de archivos en todos los archivos menos en
reportes.
• Adición de Archivos = Aquí usamos:
o A = Adicionar registros
Nota = Vas a usar adición de archivos solo cuando quieras ingresar datos a una
tabla.
• Formato de Archivo = Aquí tenemos:
o E = Externo, quiere decir que vamos a llamar al archivo externamente del programa, pantalla,
tabla.
• Tipo de Dirección de Registro = Aquí tenemos.
o K = Campo Clave, es usado solo cuando definas tablas, te permite ordenar un tabla física o lógica
por su campo clave.
• Dispositivo = Aquí tenemos:
o WORKSTN = Estación de trabajo (solo en pantallas).
o DISK = Disco (solo en tablas).
o PRINTER = Reportes (solo en reportes).

• Palabras Claves = son palabras reservadas para la funcionalidad de un programa.

Ejemplo: Para definir PANTALLAS


Archivo Tipo de Desig. Adición
Archivo Archivo Archivo
DSP01 C F
Formato Tipo Direc. Dispos Palab. Claves
Archivo Regist.
E WORKSTN SFILE(DATA:NRR)
SFILE = SE DECLARA CUANDO LA PANTALLA ES UN SUBFILE

Ejemplo: Para definir REPORTES


Archivo Tipo de Desig. Adición
Archivo Archivo Archivo
PRT01 O
Formato Tipo Direc. Dispos Palab. Claves
Archivo Regist.
E PRINTER OFLIND(*IN10)
OFLIND = PERMITE CONTROLAR EL SALTO DE PAGINA EN UN REPORTE

Ejemplo: Para definir TABLAS (Consultas)


Archivo Tipo de Desig. Adición
Archivo Archivo Archivo
TAB01 I F
Formato Tipo Direc. Dispos Palab. Claves
Archivo Regist.
E K DISK

Ejemplo: Para definir TABLAS (Solo Ingreso de Datos)


Archivo Tipo de Desig. Adición
Archivo Archivo Archivo
TAB01 I F A
Formato Tipo Direc. Dispos Palab. Claves
Archivo Regist.
E K DISK

Ejemplo: Para definir TABLAS (Ingreso, Consulta, Modifica, Elimina)


Archivo Tipo de Desig. Adición
Archivo Archivo Archivo
TAB01 U F A
Formato Tipo Direc. Dispos Palab. Claves
Archivo Regist.
E K DISK

Ejemplo: Para definir TABLAS (Consulta, Modifica, Elimina)


Archivo Tipo de Desig. Adición
Archivo Archivo Archivo
TAB01 U F
Formato Tipo Direc. Dispos Palab. Claves
Archivo Regist.
E K DISK
Declaración de variables, constantes, estructura
de datos
Hoja D = Permite declarar variables, constantes, estructura de datos.
Sintaxis.
Nombre Tipo de Declaración Longitud

Tipo de Dato Pos. Decimales Funciones

Donde:
• Nombre = Es el nombre de la variable, constante o estructura de datos.
• Tipo de declaración = Aquí tenemos:
o S = Permite declarar variables.
o C = Permite declarar constantes,
o DS = Permite declarar estructura de datos.
• Longitud = Es la longitud de la variable.
• Tipo de dato = Aquí tenemos:
o S = Permite definir una variable numérica.
o A = Permite definir una variable carácter.
• Posiciones Decimales = Son los decimales del campo numérico.
• Funciones = Son las funciones que se pueden usar definiendo variables, constantes o
estructuras de datos.

Ejemplo: Para definir variable NUMERICA


Nombre Tipo de Longitud
Declaración
NUM01 S 5
Tipo de Pos. Funciones
Dato Dec.
S 00

Ejemplo: Para definir variable CARACTER


Nombre Tipo de Longitud
Declaración
VAR S 30
Tipo de Pos. Funciones
Dato Dec.
A

Ejemplo: Para definir CONTANTES


Nombre Tipo de Longitud
Declaración
CONS0 C
1
Tipo de Pos. Funciones
Dato Dec.
CONST(‘CODIGO DE EXISTE’)

Ejemplo: Para definir variables ESTRUCTURA DE DATOS


Nombre Tipo de Desde To/ Tipo Pos
Declaración Longitud Dato Dec
XFECHA DS
MM 1 2 S 00
DD 3 4 A
AA 5 8 A

Lógica del programa


Hoja C = Permite realizar la lógica del programa, este tipo de hoja es de RPG
III.
Sintaxis.
Factor1 Operador Factor2 Resultado HI LO EQ

CX = Permite realizar la lógica del programa, este tipo de hoja es de RPG IV.
Sintaxis.
Factor1 Operador Factor2 – Ampliado

Tipos de Operadores.
Operadores Aritméticos.
Operador RPG III RPG IV
SUMA ADD +
RESTA SUB -
MULTIPLICACION MULT *
DIVISION DIV /
RESTO MVR FORMULA

Operadores de Relación
Operador RPG III RPG IV
MAYOR GT >
MENOR LT <
MAYOR IGUAL GE >=
MENOR IGUAL LE <=
IGUAL EQ =
DIFERENTE NE <>
Operadores Lógicos
Operador RPG III o RPG IV
Y AND
O OR
NEGACION NOT

Operador DSPLY.
Es un operador de RPG III, que permite ingresar como visualizar datos de una
variable, y es usado en la hoja C de RPG III.
Sintaxis.
Factor1 Operador Factor2 Resultado
‘Texto’ DSPLY Variable

Ejemplo.
Se pide ingresar un número a la variable NUM1
Factor1 Operador Factor2 Resultado
‘Ing. Numero:’ DSPLY NUM1

Operador EVAL.
Es un operador de RPG IV, que permite evaluar expresiones, y es usado en la
hoja CX o C.
Sintaxis.
Factor1 Operador Factor 2 – Ampliado
EVAL Variable= Expresión

Ejemplo.
Se pide sumar las variables numéricas A + B y el resultado guardarlo en C
Factor1 Operador Factor 2 – Ampliado
EVAL C=A+B

Operador MOVE
Es un operador que me permite mover un valor de una variable a otra, de
Derecha a Izquierda, también es usado para convertir un valor numérico a
cadena o viceversa, o para extraer caracteres desde el lado derecho hacia el
izquierdo, y es usado en la hoja C de RPG III.
Sintaxis.
Factor1 Operador Factor2 Resultado
MOVE Variable Origen Variable Destino

Ejemplo.
Se pide extraer 4 caracteres de un código desde el lado derecho hacia el
izquierdo.
Donde.
CODCLI = ‘C0001’
XNRO = 0
NOTA.- La variable XNRO es de longitud 4 con 0 decimales y es de tipo
numérico.

Factor1 Operador Factor2 Resultado


MOVE CODCLI XNRO
Resultado.
XNRO = 0001

Operador MOVEL
Es un operador que me permite mover un valor de una variable a otra, de
Izquierda a Derecha, también es usado para convertir un valor numérico a
cadena o viceversa, o para extraer caracteres desde el lado izquierdo hacia el
derecho, y es usado en la hoja C de RPG III.
Sintaxis.
Factor1 Operador Factor2 Resultado
MOVEL Variable Origen Variable Destino

Ejemplo.
Se pide extraer 4 caracteres de un código desde el lado izquierdo hacia el
derecho.
Donde.
CODCLI = ‘C0001’
XCAD = ‘‘
NOTA.- La variable XCAD es de longitud 4 y es de tipo carácter.

Factor1 Operador Factor2 Resultado


MOVEL CODCLI XCAD
Resultado.
XCAD = ‘C000’

Operador *LOVAL.- Permite ubicar el puntero en el primer registro de


un archivo
Factor1 Operador Factor2 Resultado
*LOVAL SETLL Nom.Registro

Operador SETLL.- Permite ubicar el puntero un registro antes de donde


esta ubicado actualmente el puntero o del registro mas parecido
Factor1 Operador Factor2 Resultado
XCOD SETLL Nom.Registro

Operador READ.- Permite leer el siguiente registro de un archivo


Factor1 Operador Factor2 Resultado EQ
READ Nom.Registro Ind
Nota.- El Indicador que colocas en el igual (EQ), te retornara “0”, si lee el
registro y “1”, si no lee el registro o si la tabla esta vacía.
Sintaxis para leer el primer registro de un archivo
Factor1 Operador Factor2 Resultado EQ
*LOVAL SETLL RTABCLI
READ RTABCLI 30

Operador *HIVAL.- Permite ubicar el puntero en el ultimo registro de un


archivo
Factor1 Operador Factor2 Resultado
*HIVAL SETGT Nom.Registro
Operador SETGT.- Permite ubicar el puntero un registro después de
donde esta ubicado actualmente el puntero o del registro mas parecido
Factor1 Operador Factor2 Resultado
XCOD SETGT Nom.Registro

Operador READP.- Permite leer el anterior registro de un archivo


Factor1 Operador Factor2 Resultado EQ
READP Nom.Registro Ind
Nota.- El Indicador que colocas en el igual (EQ), te retornara “0”, si lee el
registro y “1”, si no lee el registro o si la tabla esta vacía.

Sintaxis para leer el ultimo registro de un archivo


Factor1 Operador Factor2 Resultado EQ
*HIVAL SETGT RTABCLI
READP RTABCLI 30

Operador READE.- Permite leer el siguiente registro igual al valor


buscado en un archivo
Factor1 Operador Factor2 Resultado EQ
XCOD READE Nom.Registro Ind
Nota.- El Indicador que colocas en el igual (EQ), te retornara “0”, si lee el
registro y “1”, si no lee el registro o si la tabla esta vacía.

Sintaxis
Factor1 Operador Factor2 Resultado HI EQ
XCOD CHAIN Nom.Registro 30
DOW *IN30=’0’
XCOD DSPLY
XCOD READE Nom.Registro 30
ENDDO

Operador READC.- Permite leer el registro cambiado en un subarchivo


Factor1 Operador Factor2 Resultado EQ
READC Registro de Datos Ind
del Subfile
Nota.- El Indicador que colocas en el igual (EQ), te retornara “0”, si cambias el
registro en el Subfile, y “1”, si no haces ningún cambio.
Sintaxis
Factor1 Operador Factor2 Resultado EQ
READC DATA 60
DOW *IN60=’0’
OP CASEQ ‘1’ CONS
ENDSC
READC DATA 60
ENDDO

Operador CHAIN.- Permite buscar y leer un registro en un archivo,


mediante una variable o campo
Factor1 Operador Factor2 Resultado HI
XCOD CHAIN Nom.Registro Ind
Nota.- El Indicador que colocas en el mayor (HI), te retornara “0”, si encontró el
registro y “1”, si no encontró.
Si le colocas CHAIN, aparte de buscar y leer te bloquea el registro si es que lo
encuentra, ahora si colocas CHAIN(N), busca y lee el registro pero no lo
bloquea

Sintaxis: Busca el código de cliente y lo bloquea


Factor1 Operador Factor2 Resultado HI
XCOD CHAIN RTABCLI 30
IF *IN30=’0’
‘ENCONTRO’ DSPLY
ENDIF

Sintaxis: Busca el código de cliente y no lo bloquea


Factor1 Operador Factor2 Resultado HI
XCOD CHAIN(N) RTABCLI 30
IF *IN30=’0’
‘ENCONTRO’ DSPLY
ENDIF

Operador WRITE.- Permite imprimir o grabar un registro en un archivo


Factor1 Operador Factor2 Resultado
WRITE Nom.Registro

Operador DELETE.- Permite eliminar un registro en un archivo


Factor1 Operador Factor2 Resultado
DELETE Nom.Registro

Operador UPDATE.- Permite actualizar un registro en un archivo


Factor1 Operador Factor2 Resultado
UPDATE Nom.Registro

Operador KLIST.- Permite formar claves compuestas en un solo campo.


Factor1 Operador Factor2 Resultado
KEY01 KLIST
KFLD Clave01
KFLD Clave02
Donde:
KFLD = Campo clave a unir

Sintaxis
Factor1 Operador Factor2 Resultado HI
KEY01 KLIST
KFLD NUMPED
KFLD CODPRO
KEY01 CHAIN RTABDEP 30
IF *IN30=’0’
‘ENCONTRO’ DSPLY
ENDIF

Operador CALL.- Permite llamar a un programa.


Factor1 Operador Factor2 Resultado
CALL ‘Nom.Programa’
PARM Parámetro
PARM Parámetro
Donde:
PARM = Parámetro a enviar (opcional)

Sintaxis
Factor1 Operador Factor2 Resultado
CALL ‘PRG09’
PARM XNUMT
PARM XDESC

Operador EXFMT.- Permite mostrar un registro de pantalla


Factor1 Operador Factor2 Resultado
EXFMT Reg.Pantalla

Operador EXSR.- Permite ejecutar Subrutina


Factor1 Operador Factor2 Resultado
EXSR Nom.Subrutin
a

Operador BEGSR.- Permite el inicio de la subrutina


Factor1 Operador Factor2 Resultado
Nom.Subrutin BEGSR
a
Operador ENDSR.- Permite el inicio de la subrutina
Factor1 Operador Factor2 Resultado
ENDSR
Nota: El inicio de toda subrutina va después del EVAL *INLR=’1’

Sintaxis
Factor1 Operador Factor2 Resultado EQ
EXSR GENERA

EVAL *INLR=’1’
GENERA BEGSR
*HIVAL SETGT
READP RTABCLI 30
EVAL NUM = NUM + 1
ENDSR

Das könnte Ihnen auch gefallen