RPG Free - ferPiece/docs GitHub Wiki
Contenido
Introducción
El RPG Free es un estilo de formato libre de desarrollo, similar a los leguajes de programacion como JAVA, Python, C++. El RPG provee en sus especificaciones hojas de desarrollo, como la H, F, D, C, I entre otras.
Algunas equivalentes en formato free:
+ CTL-OPT para especificaciones de control (H)
+ DCL-F para especificaciones de archivos (F)
+ DCL-S, DCL-DS, DCL-SUBF, DCL-C, DCL-PR, DCL-PARM para especificaciones de datos (D)
+ DCL-PROC para especificación de procedimientos (P)
Ventajas
La sintaxis del RPG-Free es similar a los lenguajes modernos por lo que es puede ser mas
fácil de aprender, ya que resulta un poco mas familiar para los programadores y mas
beneficiosa.
Ejemplo de definición.
Formato columna Formato Free
D name S 10A DCL-S name char(10);
Declaración con directivas del compilador.
DCL-S Salario
/IF DEFINED(large_vals)
PACKED(13:3)
/ELSE
PAcKED(7:3)
/ENDIF
;
Comandos basicos:
- EDTLIBL --> Editar listado de las bibliotecas
- ADDLIBLE --> Añadir biblioteca al listado de bibliotecas existentes, solo dura la sesión
- STRPDM --> Para Desarrollo de programas, trabajar con miembros, objetos, bibliotecas.
- STRSEU --> Editor nativo del AS400
AVANZADOS
- WRKACTJOB - Trabajar con trabajos activos, muestra el rendimiento de los trabajos básicamente un administrador de tareas.
- WRKOBJ - Trabajar con objetos, muestra información referente a los objetos.
- DSPPFM - Muestra miembro de archivo físico, los datos que contiene.
- WRKPF - Emisión de estructura
- WRKF - Trabajar con archivos, solo con archivos
- STRSQL - SQL interactivo
- CHGPRTF - Cambia los atributos del archivo de impresora
- WRKMSG *SYSOPR - Visualizar mensajes
- CHGJOB - Cambiar trabajo
- CPYF - Copiar archivo
- CLRPFM - Limpiar tabla || archivo fisico
LISTADO DE %BIFs en RPG ILE (RPG-IV)
Función Sintaxis Descripción
----------------------------------------------------------------------------------------
%Abs %Abs(numeric expression) Devuelve el valor absoluto.
----------------------------------------------------------------------------------------
%Addr %Addr(variable) Devuelve un puntero que
contiene la dirección a la
variable especificada.
----------------------------------------------------------------------------------------
%Alloc %Alloc(num) Asigna la cantidad específica
de almacenamiento.
----------------------------------------------------------------------------------------
%Char %Char(expression) Convierte la expresión de
carácter de tipo.
----------------------------------------------------------------------------------------
%Check %Check(comparator:base{:start}) Busca el primer carácter en la
cadena de base que no está en
la comparación.
----------------------------------------------------------------------------------------
%CheckR %CheckR(comparator:base{:start}) Busca el último carácter en la
cadena de base que no está en
la comparación.
----------------------------------------------------------------------------------------
%Date %Date(expression{:date-format}) Convierte la expresión de una fecha.
----------------------------------------------------------------------------------------
%Days %Days(num) Convierte el número en una duración,
en días.
----------------------------------------------------------------------------------------
%Dec %Dec(numeric{:precision:decimal}) Convierte el valor de la expresión
numérica a decimal (con embalaje)
con formato de dígitos decimales de
precisión y las posiciones decimales.
----------------------------------------------------------------------------------------
%DecH %DecH(numeric{:precision:decimal}) Igual que el% de diciembre función
integrada, excepto media modifica se
aplica.
----------------------------------------------------------------------------------------
%DecPos %DecPos(numeric expression) Devuelve el número de posiciones
decimales en la expresión numérica.
----------------------------------------------------------------------------------------
%Diff %Diff(op1:op2:unit) Calcula la diferencia (duración) entre
dos fecha, la hora, o los valores de
marca de tiempo en las unidades
especificadas.
----------------------------------------------------------------------------------------
%Div %Div(n:m) Divide n por m, y devuelve la parte entera del resultado. ^ %EditC %EditC(numeric : editcode) Devuelve un número de caracteres que representa el valor numérico editado de acuerdo con la edición de código. ^ %EditFlt %EditFlt(numeric expression) Convierte el valor de la expresión numérica de la representación de caracteres pantalla externa de flotador. ^ %EditW %EditW(numeric : editword) Devuelve un número de caracteres que representa el valor numérico editado según la palabra de edición. ^ %Elem %Elem(table OR array OR multiple occurence data structure name) Devuelve el número de elementos de la matriz especificada de mesa, o una estructura de múltiples apariciones de datos. ^ %EOF %EOF{(file_name)} Devuelve *On El ('1 ') si la operación más reciente leer o escribir en un subfile terminó en un fin de archivo o inicio de la condición de archivo. ^ %Equal %Equal{(file_name)} Devuelve *On El ('1 ') si la operación pertinentes más recientes se encuentran una coincidencia exacta. ^ %Error %Error Devuelve *On El ('1 ') si la operación más reciente con extensor' ^ especificado dado lugar a una condición de error. E ' %Float %Float(numeric expression) Convierte el valor de la expresión numérica de flotar formato. ^ %Found %Found{(file_name)} * Devuelve el *On ('1 ') si la operación correspondiente archivo más reciente encontró un registro. ^ %Graph %Graph(char-expr OR graph-expr OR UCS-2-expr { : ccsid }) Convierte el valor de la expresión del carácter, gráfico o UCS-2 y devuelve un valor gráfico. ^ %Hours %Hours(num) Convierte el número en una duración, en horas. ^ %Int %Int(numberic expression) Convierte el valor de la expresión numérica a un entero. ^ %IntH %IntH(numeric expression) Int Igual%, excepto media modifica se aplica. ^ %Len %Len(expression) Puede ser utilizado para obtener la longitud de una expresión o variable para establecer la longitud actual de un campo de longitud variable. ^ %LookUp %LookUp(arg:array{:startindex{:numelems}}) Encuentra una coincidencia exacta del argumento especificado en una matriz. ^ %LookUpGE %LookUpGE(arg:array{:startindex{:numelems}}) Encuentra el argumento especificado, o un valor más cercano a, pero mayor que el argumento especificado, en una matriz. ^ %LookUpGT %LookUpGT(arg:array{:startindex{:numelems}}) Busca un valor en una matriz que es el más cercano y más grande que el argumento especificado. ^ %LookUpLE %LookUpLE(arg:array{:startindex{:numelems}}) Encuentra el argumento especificado, o un valor más cercano a, pero menor que el argumento especificado, en una matriz. ^ %LookUpLT %LookUpLT(arg:array{:startindex{:numelems}}) Busca un valor en una matriz que es el más cercano y menos el argumento especificado. ^ %Minutes %Minutes(num) Convierte el número en una duración, en cuestión de minutos. ^ %Months %Months(num) Convierte el número en una duración, en meses. ^ %MSeconds %MSeconds(num) Convierte el número en una duración, en microsegundos. ^ %NullInd %NullInd(field name) Se puede utilizar para consultar o establecer el indicador nulo para los campos de nulos. ^ %Occur %Occur(dsn-name) Establece u obtiene la posición actual de una estructura de múltiples apariciones de datos. ^ %Open %Open(file name) Devuelve * El *On('1 ') si el archivo especificado está abierto. ^ %PAddr %PAddr(string representing procedure name) Devuelve un puntero cuya dirección es el punto de entrada al procedimiento establecido. ^ %Parms %Parms Devuelve el número de parámetros que se pasan al procedimiento. ^ %ReAlloc %ReAlloc(pointer:number) Reasigna la cantidad especificada de almacenamiento para el puntero especificado. ^ %Rem %Rem(n:m) Divide n por m, y devuelve el resto. ^ %Replace %Replace(replacement string: source {:start pos. {:length to replace}}) Devuelve la cadena de caracteres producida por la inserción de una cadena de reemplazo en la cadena de origen, a partir de la posición inicial y la sustitución de un número especificado de caracteres. ^ %Scan %Scan(search argument : source string {: start}) Devuelve la primera posición del argumento de búsqueda en la cadena de origen, o 0 si no fue encontrada. ^ %Seconds %Seconds(num) Convierte el número en una duración, en segundos. ^ %ShtDn %ShtDn Comprueba si el gestor de la red ha solicitado la parada. ^ %Size %Size(variable OR literal OR array OR table or multiple occurence DS) Devuelve el número de bytes ocupados por el campo o constante. ^ %SqRt %SqRt(numeric-expression) Calcula la raíz cuadrada del número especificado. ^ %Status %Status{(file_name)} Devuelve el valor más reciente establecido para el estado del programa o archivo. ^ %Str %Str(basing pointer{: max-length}) ^ Se utiliza para crear o utilizar de terminación nula cadenas de caracteres, que se utilizan comúnmente en C y C + +. %SubDt %SubDt(value:unit) Extrae la parte especificada de una fecha, hora, o el valor de marca de tiempo. ^ %SubSt %SubSt(string:start{:length}) Devuelve una subcadena de una cadena. ^ %This %This Devuelve un valor de objeto que contiene una referencia a la instancia de clase en cuyo nombre nativo es el método que se llama. ^ %Time %Time(expression{:time-format}) Convierte la expresión a la vez. ^ %TimeStamp %TimeStamp(expression{:*ISO * ISO0}) %TLookUp %TLookUp(arg:search-table{:alt-table}) Encuentra el argumento especificado, o el tipo específico de cerca al partido, en la tabla especificada. ^ %Trim %Trim(string) Devuelve una cadena sin espacios iniciales y finales. ^ %TrimL %TrimL(string) Devuelve una cadena sin espacios a la izquierda. ^ %TrimR %TrimR(string) Devuelve una cadena sin espacios finales. ^ %UCS2 %UCS2(expression) Convierte el valor de una expresión a un valor de UCS-2. ^ %Uns %Uns(numeric expression) Convierte el valor de la expresión numérica de formato sin signo. ^ %UnsH %UnsH(numeric expression) Uns mismo como%, excepto media ajuste se aplica. ^ %XFoot %XFoot(array-expression) Devuelve la suma de todos los elementos de la matriz especificada numérica o expresión. ^ %XLate %XLate(from:to:string{:startpos}) Convierte la cadena especificada, sobre la base de la cadena y la cadena de. ^ %Years %Years(num) Convierte el número en una duración, en años. ^