Introducción al RPG IVEl 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. FX = Permite declarar archivos tales como Pantallas, Tablas Físicas, Tablas Lógicas, Reportes. Sintaxis. Archivo Tipo de Desig. Adición Archivo Archivo Archivo Formato Archivo Tipo Direc. Regist. Dispos Palab. Claves 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). • Nota = Cuando se utilice el tipo de archivo U, se deberá definir en Adición de Archivo la letra A. 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 o o o o E = Externo, quiere decir que vamos a llamar al archivo externamente del programa. K = Campo Clave, es usado solo cuando definas tablas, te permite ordenar un tabla física o lógica por su campo clave. WORKSTN = Estación de trabajo (solo en pantallas). DISK = Disco (solo en tablas). PRINTER = Reportes (solo en reportes). Tipo de Dirección de Registro = Aquí tenemos. Dispositivo = Aquí tenemos: • Palabras Claves = son palabras reservadas para la funcionalidad de un programa. D = Permite declarar variables, constantes, estructura de datos. Sintaxis. Nombre Tipo de Declaración Longitud Sintaxis. C = Permite realizar la lógica del programa. o C = Permite declarar constantes. constante o estructura de datos. Sintaxis. Factor1 Operador Factor2 – Ampliado Tipos de Operadores. • Posiciones Decimales = Son los decimales del campo numérico. • Longitud = Es la longitud de la variable. • Tipo de dato = Aquí tenemos: o S = Permite definir una variable numérica. Decimales Funciones Donde: • Nombre = Es el nombre de la variable. este tipo de hoja es de RPG IV. Operadores Aritméticos. • Funciones = Son las funciones que se pueden usar definiendo variables. constantes o estructuras de datos. este tipo de hoja es de RPG III. o A = Permite definir una variable carácter.Tipo de Dato Pos. • Tipo de declaración = Aquí tenemos: o S = Permite declarar variables. Factor1 Operador Factor2 Resultado MA ME IG CX = Permite realizar la lógica del programa. o DS = Permite declarar estructura de datos. Operador SUMA RESTA MULTIPLICACION DIVISION RESTO RPG III ADD SUB MULT DIV MVR RPG IV + * / FORMULA Operadores de Relación Operador MAYOR MENOR MAYOR IGUAL MENOR IGUAL IGUAL DIFERENTE RPG III GT LT GE LE EQ NE RPG IV > < >= <= = <> . Factor1 Operador Factor 2 – Ampliado EVAL Variable= Expresión Ejemplo. Sintaxis. .La variable XNRO es de longitud 4 con 0 decimales y es de tipo numérico. Factor1 Operador Factor2 Resultado ‘Texto’ DSPLY Variable Ejemplo. que permite ingresar como visualizar datos de una variable. Se pide extraer 4 caracteres de un código desde el lado derecho hacia el izquierdo. Se pide ingresar un número a la variable NUM1 Factor1 Operador Factor2 ‘Ing.. y es usado en la hoja C de RPG III. 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. que permite evaluar expresiones. Factor1 Operador Factor2 Resultado MOVE Variable Origen Variable Destino Ejemplo. Donde. o para extraer caracteres desde el lado derecho hacia el izquierdo. y es usado en la hoja CX de RPG IV. también es usado para convertir un valor numérico a cadena o viceversa. CODCLI = ‘C0001’ XNRO = 0 NOTA.Operadores Lógicos Operador Y O NEGACION RPG III o RPG IV AND OR NOT Operador DSPLY. y es usado en la hoja C de RPG III. Sintaxis. Numero:’ DSPLY Resultado NUM1 Operador EVAL. Es un operador de RPG III. de Derecha a Izquierda. Sintaxis. Es un operador de RPG IV. de Izquierda a Derecha. Factor1 Operador Factor2 Resultado MOVEL Variable Origen Variable Destino Ejemplo. también es usado para convertir un valor numérico a cadena o viceversa. Operador SETLL Factor2 RTABCLI Resultado IG Sintaxis Factor1 *LOVAL .Permite leer el siguiente registro de un archivo Factor1 Operador Factor2 Resultado IG READ Nom. Sintaxis.. XNRO = 0001 Operador MOVE Factor2 CODCLI Resultado XNRO Operador MOVEL Es un operador que me permite mover un valor de una variable a otra. te retornara “0”.El Indicador que colocas en el igual (IG).Registro Resultado 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. y es usado en la hoja C de RPG III. si no lee el registro o si la tabla esta vacía.. Factor1 Resultado. o para extraer caracteres desde el lado izquierdo hacia el derecho. si lee el registro y “1”. XCAD = ‘C000’ Operador MOVEL Factor2 CODCLI Resultado XCAD Operador *LOVAL.Registro Operador READ. Se pide extraer 4 caracteres de un código desde el lado izquierdo hacia el derecho. Donde. CODCLI = ‘C0001’ XCAD = ‘‘ NOTA..Factor1 Resultado.un archivo Factor1 *LOVAL Operador SETLL Permite ubicar el puntero en el primer registro de Factor2 Nom..Registro Ind Nota.La variable XCAD es de longitud 4 y es de tipo carácter. . te retornara “0”.Registro *IN30=’0’ Nom. si no lee el registro o si la tabla esta vacía. si no lee el registro o si la tabla esta vacía.- Permite leer el siguiente registro igual al valor buscado en un archivo Factor1 Operador Factor2 Resultado IG XCOD READE Nom. te retornara “0”.Registro Resultado 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...- Operador READP.El Indicador que colocas en el igual (IG). si lee el registro y “1”.. Sintaxis Factor1 XCOD XCOD XCOD Operador CHAIN DOW DSPLY READE ENDDO Factor2 Nom.Registro Ind Nota.Registro Operador SETGT..El Indicador que colocas en el igual (IG). si lee el registro y “1”.El Indicador que colocas en el igual (IG). si no haces ningún cambio.Registro Ind Nota. te retornara “0”.Permite ubicar el puntero en el ultimo registro de un archivo Factor1 *HIVAL Operador SETGT Factor2 Nom. si cambias el registro en el Subfile. Operador READC Factor2 DATA Resultado IG 60 Operador READC Sintaxis Factor1 .READ RTABCLI 30 Operador *HIVAL. y “1”.Registro Resultado MA 30 IG 30 Operador READC. Operador SETGT READP Factor2 RTABCLI RTABCLI Resultado IG 30 Sintaxis Factor1 *HIVAL Operador READE.Permite leer el anterior registro de un archivo Factor1 Operador Factor2 Resultado IG READP Nom.Permite leer el registro cambiado en un subarchivo Factor1 Factor2 Resultado IG Registro de Datos Ind del Subfile Nota.. .Registro Resultado Operador UPDATE.Permite imprimir o grabar un registro en un archivo Factor1 Operador WRITE Factor2 Nom.Permite actualizar un registro en un archivo Factor1 Operador UPDATE Factor2 Nom. si no encontró.Permite eliminar un registro en un archivo Factor1 Operador DELETE Factor2 Nom.. te retornara “0”.Registro Resultado Operador DELETE.- Operador WRITE..OP DOW CASEQ ENDSC READC ENDDO *IN60=’0’ ‘1’ DATA CONS 60 Permite buscar y leer un registro en un archivo.. si encontró el registro y “1”.Permite unir claves en un solo campo. mediante una variable o campo Factor1 Operador Factor2 Resultado MA XCOD CHAIN Nom.El Indicador que colocas en el mayor (MA).Registro Ind Nota.Registro Resultado Operador KLIST. Sintaxis Factor1 XCOD ‘ENCONTRO’ Operador CHAIN IF DSPLY ENDIF Factor2 RTABCLI *IN30=’0’ Resultado MA 30 Operador CHAIN.. Factor1 KEY01 Operador KLIST KFLD KFLD Factor2 Resultado Clave01 Clave02 Donde: KFLD = Campo clave a unir Sintaxis Factor1 KEY01 KEY01 Operador KLIST KFLD KFLD CHAIN Factor2 Resultado NUMPED CODPRO MA RTABDEP 30 . Factor1 Operador CALL PARM PARM Factor2 ‘Nom..Programa’ Resultado Parámetro Parámetro Donde: PARM = Parámetro a enviar (opcional) Sintaxis Factor1 Operador CALL PARM PARM Factor2 ‘PRG09’ Resultado XNUMT XDESC Operador EXFMT.Subrutin a Operador BEGSR Factor2 Resultado Operador ENDSR..Permite el fin de la subrutina Factor1 Operador Factor2 Resultado ENDSR Nota: El inicio de toda subrutina va después del EVAL *INLR=’1’ Operador EXSR EVAL BEGSR SETGT READP EVAL Factor2 GENERA *INLR=’1’ RTABCLI NUM = NUM + 1 30 Resultado IG Sintaxis Factor1 GENERA *HIVAL .‘ENCONTRO’ IF DSPLY ENDIF *IN30=’0’ Operador CALL..Pantalla Resultado Operador EXSR.Permite mostrar un registro de pantalla Factor1 Operador EXFMT Factor2 Reg..Permite el inicio de la subrutina Factor1 Nom.Permite ejecutar Subrutina Factor1 Operador EXSR Factor2 Nom.Subrutina Resultado Operador BEGSR..Permite llamar a un programa. ENDSR .