Reglas
Una regla es un texto con comandos para el sistema, que determinará los procedimientos a realizar. Con estos comandos, el usuario puede escribir sus propios procedimientos, para que el sistema procese la información a su manera.
Haciendo un análisis general de la rutina de reglas, se advierte que en su desarrollo se utilizanVariables,Constantes, Tablas/Campos, Operadores, Comandos, Funcionesy notas delógica de programacion Consulte la definición de estos componentes a continuación:
Las variables son palabras especiales que podemos usar para crear reglas. Estas variables asumen o proporcionan datos específicos que pueden o no variar dependiendo de la ejecución de la regla. El nombre de la variable puede estar compuesto por letras y/o números o el carácter (guión bajo o guion bajo), no pudiendo tener más de 30 (treinta) caracteres y debiendo comenzar, necesariamente, con una letra.
Toda variable debe ser declarada al inicio de la regla, mediante el comando Definir (ver comandos), asignándole un tipo, nombre y, si es necesario, el número de ocurrencias de esta variable.
Importante: No es necesario declarar variables numéricas simples como contadores, acumuladores, indicadores, etc. Se declaran automáticamente cuando se les hace referencia.
Las constantes son información que no cambia durante la ejecución de una regla. Estos son los números que ingresa en la regla. Ejemplo: cuando dices que VlrAux = 200; el número “200” es la constante.
Las tablas son las unidades básicas para almacenar datos. Se componen de filas y columnas.
Columnas, también llamadas "Campos", las columnas se utilizan para representar el valor de datos ingresado debajo de cada columna y tienen las siguientes propiedades:
- Cada columna tiene un nombre único;
- Están ordenados de izquierda a derecha;
- Líneas: las líneas se pueden ver como "registros" en un archivo, las líneas tienen las siguientes propiedades:
- Las líneas no están ordenadas;
- Cada fila de una tabla tiene solo un valor para cada columna de esa tabla;
Cada fila de una tabla debe ser única; - Como se utilizan en todos los lugares donde se definen reglas o fórmulas, tenemos la tecla F8 que nos trae la relación de las tablas con los datos existentes en el sistema.
Luego puede desplazarse por la lista de tablas con las flechas, hacer clic en el signo "+" que se muestra en el lado izquierdo del nombre de la tabla, para abrir la lista de campos que pertenecen a la tabla, coloque el cursor sobre el nombre del campo y haga clic en en el botón Seleccionar, para que los datos se desplacen al texto de la regla en la posición del cursor. Se pueden seleccionar varios campos a la vez, sin embargo, todos se incluirán en la regla, comenzando desde la posición del cursor.
Conociendo el nombre de la tabla y el nombre del campo, estos datos se pueden digitar, separando el nombre de la tabla y el nombre del campo por un “." (Puntaje).
Describimos los operadores, que se utilizan en las reglas y fórmulas:
Operadores logicos
| Signo de | Descripción |
| = | Signo igual: Se utiliza en comparaciones/operaciones aritméticas |
| > | Más grande que: Usado en comparaciones del comando "Si" |
| < | Menos que: Usado en comparaciones del comando "Si" |
| <> | Diferente de: Usado en comparaciones del comando "If" |
| >= | Mayor o igual a: Usado en comparaciones del comando "Si" |
| <= | Menos que o igual a: Usado en comparaciones del comando "If" |
| y | Se usa con el comando "Si", para vincular varias condiciones, donde todas deben ser verdaderas para que el resultado de la comparación sea verdadero. |
| o | Se usa con el comando "Si", para vincular múltiples condiciones, donde al menos una de las condiciones debe ser verdadera para que el resultado de la comparación sea verdadero. |
Operadores aritméticos
| Signo de | Descripción |
| = | Signo igual: Se utiliza en comparaciones/operaciones aritméticas |
| + | Añadir signo: Se utiliza en operaciones aritméticas para sumar |
| - | Signo de resta: Operaciones aritméticas usadas para restar |
| / | Signo de división: Se utiliza en operaciones de división aritmética. |
| * | Asterisco: Se utiliza en operaciones de multiplicación aritmética |
| ++ | +1 incremento: Se utiliza para aumentar el valor de una variable, uno por uno. |
| -- | Disminución de - 1: Se utiliza para disminuir el valor de una variable, uno por uno. |
Operadores adicionales
| Signo de | Descripción |
| @ | A: Delimitador utilizado para incluir comentarios que tienen como máximo una línea. |
| /* | Comienzo del comentario. |
| */ | Fin del comentario. |
Los comandos reconocidos por el sistema son:
Inicio o { (abre llaves) =>Indica el inicio de un bloque de comandos, cuando está subordinado a una condición o conjunto de condiciones (Se o Senao).
Sintaxis: Inicio o {
Fin o } (cerrar llaves) =>Indica el final de un bloque de comandos, cuando está subordinado a una condición o conjunto de condiciones (Se o Senao).
Sintaxis: Fin; o }
Definir =>Define una variable o función. Si la variable no está definida, se considerará de tipo Número.
Sintaxis: Definir <Tipo> <Nombre_Variable>
Donde el Tipo puede ser: Alfa, Número, Tabla, Función o Cursor.
Alfa: Variable alfanumérica. Puede contener letras y/o números.
Ejemplo: Establecer Alpha Vname[30];
Número: Variable que solo puede almacenar números. Estos pueden ser números enteros o con decimales.
Ejemplo: Establecer número Vvalue;
Tabla: Variable que puede almacenar valores en forma de tabla, donde tienes filas y columnas. Cada columna es un nombre con un tipo específico de información. Las filas están indexadas de 1 a "N".
Definir tabla Months_of_Year[12] =
{Nombre alfabético_Mes[9];
Número Cantidad_Días;}
Ocupación: Es un conjunto de comandos, cuyo objetivo es calcular uno o más valores y devolverlos para su uso en la regla. La ventaja de la función es que si hay una operación que se repite en muchas reglas, puede crear la función y llamarla en cada regla, sin tener que implementarla nuevamente.
Una función puede tomar parámetros y devolver valores. Imagina la siguiente situación: En varios puntos de la regla, de Control Horario y Comedor, necesitas pasar las horas de una situación a otra. Para ello se podría crear la siguiente función:
Funcao AltSituacao (Numero SitOri, Numero SitDes);
Inicio
HorSit[SitDes] = HorSit[SitOri];
HorSit[SitOri] = 0;
Fim;
Nótese que la función está definida y se le asocian dos parámetros, definiendo el tipo para cada uno. el tipo de parámetrono puede ser alfanumérico. El nombre de la función es “AltSituacao” y sus parámetros son SitOri (Situación Origen) y SitDes (Situación Destino). Es importante recordar que los valores cambiados dentro de la función también se cambiarán fuera de ella. Por ejemplo, si se cambia HorSit[ ] dentro de la función, se cambiará automáticamente en la regla principal.
Para usar la función en la regla, debe declararse al principio de la regla.
Definir Funcao AltSituacao (Numero SitOri, Numero SitDes);
Es interesante reservar, por ejemplo, la regla 001 solo para implementar funciones.
Si:Se utiliza para comparar. Ejecuta el bloque vinculado a la condición, solo si es verdadera.
Sintaxis: Si ( )
Si no:Se usa junto con el comandosi. El comando Senao se ejecutará cuando la condición especificada en el comando If no sea verdadera.
Sintaxis: De lo contrario
Para:Comando utilizado para bucle de comandos. Es decir, hacer que un bloque de comandos se ejecute un cierto número de veces. Se indica un <valor inicial> y este valor se incrementa con el valor del <contador> hasta que la <condición> sea falsa.
Sintaxis: Hasta (<valor inicial>; <condición>; <contador>)
Tiempo:Comando utilizado para bucle de comandos. Es decir, hacer que un bloque de comandos se ejecute un cierto número de veces hasta que la <condición> sea falsa.
Sintaxis: Mientras (<condición>)
Deténgase:Interrumpe la ejecución de un bloque de comando.Para oTiempo. Detener simplemente hace que el sistema abandone el bloque de comandos y continúe ejecutando el resto de las reglas.
Sintaxis: Detener;
Cancelar (1):Si se usa en la regla de evento “Antes de Imprimir” de una sección, cancela la impresión de la sección. Si se usa en el evento “Al Imprimir” de un campo, cancela la impresión de este campo.
Sintaxis: Cancelar(1);
Cancelar (2):Debe usarse junto con las variables de sistema ValStr o ValRet y solo en el Evento "On Print". El valor alfa asignado a ValStr seguido de Cancelar (2) se imprimirá en el campo donde se implementó la regla.
Sintaxis: Cancelar(2);
Mensaje:Muestra un mensaje al usuario mientras se ejecuta la regla.
Sintaxis: Mensaje (<tipo_mensaje>,"<mensaje>");
Donde el tipo de mensaje puede ser:
Error:Muestra el mensaje y detiene la ejecución de la regla.
Devoluciones:Muestra el mensaje, con botones de opción. En este caso, tendríamos la siguiente sintaxis:
Mensaje (Retorna "¿Desea finalizar la ejecución de la regla? [&Sí,&No]");
En este caso, "Devoluciones" devolverá 1 si se hace clic en la primera opción y 2 si se hace clic en la segunda opción.
Ir: Desvía la ejecución de la regla a la <etiqueta> dada.
Sintaxis: Vapara <etiqueta>;
Regla:Llama a otra regla, identificada por <número de regla>.
Sintaxis: Regla (<número_regla>);
continúa:Continúa la ejecución de un bucle realizado por el comandoPara. Es decir, si desea que el bucle no se ejecute en un caso determinado, pruebe la condición y use el comando junto con ella.
Sintaxis: Continuar;
Si (prueba < > 0)
continúa;
Final:Se utiliza en la definición de una función para indicar qué parámetro devolverá un valor.
Sintaxis: Prueba de función (fin <tipo de parámetro> <nombre de parámetro>);
Abierto:Abre el <archivo introducido>, en el <modo de apertura> deseado. Si el archivo no existe, se crea. Devuelve un identificador de archivo.
Sintaxis: File_handler = Open (“<nombre_archivo>”,<modo_abrir>);
Donde el Modo Abierto puede ser:Leer oPara registrar.
Cerca:Cierra el archivo abierto por la función Abrir.
Sintaxis: Cerrar (<file_handler>)
Leer:Lee un <número de caracteres> del archivo especificado en el <controlador de archivos> y arroja el valor de lectura en una <variable>.
Sintaxis: Read(<file_handler>, <variable>,<size>);
Para registrar:Escribe el valor de una <variable o constante> en el <controlador de archivos>.
Sintaxis: Write(<file_handler>,<variable o constante>,<tamaño>);
Leer:Lea una línea en el archivo indicado por el <controlador de archivos> y arroje el valor de lectura en una <variable>.
Sintaxis: Lernl (<file_handler>,<variable>);
Registro:Escribe una línea en el archivo indicado por el <controlador de archivos> con el valor contenido en la variable especificada.
Sintaxis: Gravarnl(<file_handler>,<variable o constante>);
Insertar:Hace que el sistema inserte un archivo en la regla actual, en tiempo de ejecución/compilación.
Sintaxis: Inserte “<nombre_de_archivo>”;
ValStr:Usado solo en el generador, para cambiar la descripción de un campo Descripción. El texto pasado a ValStr se imprimirá en lugar de la descripción del campo original.
ValStr = 'Prueba';
Cancel (2);
Los cursores no son más que un SELECT en una regla, devolviendo registros que satisfacen la condición informada en la propiedad SQL de un Cursor.
Nota: El SELECT utilizado en el cursor no tiene relación directa con el SELECT utilizado por el generador de informes, por ejemplo.
Los siguientes comandos se utilizan junto con los cursores:
SQL: Se utiliza para definir un comando SQL para el cursor.
Sintaxis: <nombre_cursor>.SQL “<comando_SQL>”;
Cursor abierto: Abre un cursor.
Sintaxis: <nombre_cursor>.OpenCursor();
Cerrar Cursor: Cierra un cursor.
Sintaxis: <nombre_cursor>.CloseCursor();
Próximo: Lee el siguiente registro desde el cursor.
Sintaxis: <nombre_cursor>.Next();
<campos> Se puede acceder directamente a los campos pertenecientes al cursor. Los campos son de “Solo Lectura”, es decir, no se pueden modificar.
Sintaxis: <nombre_cursor>.<nombre_campo>
El pensó: Devuelve verdadero si encuentra alguna línea de cursor.
Sintaxis: <nombre_cursor>.Found
No encontró: Devuelve verdadero si no se encontraron líneas de cursor.
Sintaxis: <cursor_name>.Not Found
- Cursor Devolviendo solo una línea: Cuando se tiene la clave completa, este cursor debe devolver solo una línea, por lo que se utiliza la siguiente implementación:
Establecer Cursor Cur_E140NFV; @La nomenclatura Cur_+Table Name se usa por defecto
Definir alfa VCodSnf[03];
VcodEmp=1;
VcodFil=1;
VcodSnf=U;
VnumNfv=100;
Cur_E140Nfv.Sql SELECT VLRLIQ FROM E140NFV WHERE CODEMP=:VCODEMP \
AND CODFIL=:VCODFIL AND CODSNF=:VCODSNF \
AND NUMNFV=:VNUMNFV;
Cur_E140Nfv.AbrirCursor();
Se (Cur_E140Nfv.Achou)
Inicio
@ Encontré el registro @
VvlrLiq=Cur_E140Nfv.VlrLiq;
Orden;
Cur_E140Nfv.fecharCursor();
- Cursor Devolviendo varias líneas: Cuando no se tiene la clave completa, este cursor puede devolver varias líneas, por lo que se utiliza la siguiente implementación:
Establecer Cursor Cur_E140NFV; @La nomenclatura Cur_+Nombre de la tabla@ se utiliza por defecto
Definir data VDatEmiIni;
Definir data VDatEmiFim;
Definir alfa VtnsPro[05];
VcodEmp=1;
VcodFil=1;
MontaData(15/01/1998,VdatEmiIni);
MontaData(30/01/1998,VdatEmiFim);
VTnsPro=511;
Cur_E140Nfv.Sql SELECT VLRLIQ FROM E140NFV WHERE CODEMP=:VCODEMP \
AND CODFIL=:VCODFIL AND DATEMI>=:VDATEMIINI \
DATEMI<=:VDATEMIFIM AND TNSPRO=:VTNSPRO;
Cur_E140Nfv.AbrirCursor();
VvlrLiq=0;
Enquanto (Cur_E140Nfv.Achou)
Inicio
@ Encontré el registro @
VvlrLiq= VvlrLiq +Cur_E140Nfv.VlrLiq;
ListSecao("Prueba Adicional"); @Esta sección adicional de listado para cada registro del
Cursor@
Cur_E140Nfv.Proximo();
Orden;
Cur_E140Nfv.fecharCursor();
Las funciones son comandos predefinidos por el sistema, que realizan operaciones específicas y que pueden o no devolver valores. Generalmente, una función cuando se ejecuta, necesita parámetros.
Funciones generales
ConvertDataBank (Fuente_Fecha, Destino_Fecha): Esta función convierte cualquier fecha al formato de fecha de la base de datos.
Parámetros:
Date_Origin: es el campo de la tabla o la variable de tipo de fecha que desea convertir.
Data_Destino: es una variable tipo Alpha, que contendrá el retorno de la conversión.
Convierta la fecha 31/12/1997, que se informó en la entrada del informe, en una variable de entrada llamada EData.
Definir Alfa VDataStr[50];
ConverteDataBanco (EData,VDataStr);
Devuelve: VDataStr = “to_date('12/31/1997','DD/MM/YYYY')” o en el formato bancario utilizado.
Se utiliza en: regla de preselección para insertar una cláusula Where en el modelo, dependiendo de un valor que el usuario ingresó en la pantalla de entrada.
ConvertMask(Tipo_datos,Valor_origen,Alfa_origen/Destino,Máscara): Esta función convierte un valor dado, que está en una máscara específica, a otra máscara, llevando la conversión a la variable especificada en Alpha_Source/Destination.
Parámetros:
Tipo_de_datos: Puede ser: 1=Número, 2=Dinero (cantidad), 3=Fecha, 4=Hora, 5=Alfa.
Source_Value: Campo/Variable/Valor a convertir.
Alpha_Origin/Destination: Variable alfa que recibirá el resultado de la conversión.
Máscara: especifique el formato en el que se debe mostrar el resultado de la conversión.
Importante: En caso de que el tipo de datos sea 5=Alpha, el parámetro Value_Origin se pasa como cero y el parámetro Alpha_Origin/Destination recibirá el campo alfa que se convertirá y, después de la conversión, recibirá el resultado de la conversión.
Si el tipo de registro de la empresa es CPF, el número de registro debe presentarse en el informe con la máscara 999.999.999-99 y si es CGC, debe presentarse con la máscara 99.999.999/9999-99.
Definir Alfa VinscrStr[18];
Se (R030Fil.TipIns = 1) @ C.G.C @
ConverteMascara (1,R030Fil.NumCgc,VInscrStr,99.999.999/9999-99);
Senao
Se (R030Fil.TipIns = 3) @ C.P.F @
ConverteMascara (1,R030Fil.NumCgc,VInscrStr,999.999.999-99);
Utilizado en: Informes, siempre que sea necesario cambiar la máscara de edición de algún valor en el momento de la ejecución del informe. Uno de los casos es el ejemplo anterior.
InsertAlpha (Source_Text, Destination_Variable, Initial_Position): Esta función inserta uno o más caracteres en una Variable/Campo, comenzando desde la posición indicada. Es decir, si el campo alfa en el que se va a insertar el texto ya contiene información, los de la posición indicada se desplazarán hacia la derecha y todo lo que supere el tamaño definido del campo/variable se truncará.
Parámetros:
Source_Text: variable de texto/alfa a insertar.
Destination_Variable: Variable de tipo alfa, en la que se quiere insertar el texto.
Initial_Position: Posición inicial de Destination_Variable, desde donde se insertará el source_text.
Desea insertar desde la posición 12 del nombre del empleado, el texto "Prueba".
InserirAlfa (Teste,R034Fun.NomEmp,12);
Por lo tanto, si el campo R034Fun.NameEmp tuviera como contenido original “Fabio Luis Griebner”, el contenido de este campo luego de usar la función InsertAlpha sería “Fabio Luis TesteGriebner”. Y, si el campo tuviera una limitación de 20 caracteres, el resultado sería “Fabio Luis TesteGrie”.
Usado en: Siempre que sea necesario tratar parte de una variable alfa.
Leer PositionAlpha (Origen, Destino, Posición): Esta función identifica qué carácter está en una determinada posición del campo/variable de origen.
Parámetros:
Origen: Tipo alfa de campo/variable que desea verificar.
Destino: Variable numérica que recibirá el carácter leído.
Posición: Posición del campo/variable de origen que desea identificar el carácter.
Es necesario tomar la primera letra del Nombre del Empleado para hacer alguna comparación.
Definir Numero VCaractere;
LerPosicaoAlfa (R034Fun.NomEmp,VCaractere,1);
Se (VCaractere = F)
....
Se observa que, si el nombre del empleado es, por ejemplo, “Fabio Luis Griebner”, luego de usar la función, la variable VCaracter tendría “F”. Sin embargo, la letra “F” es almacenada por el código Ascii, por lo que, si se quiere hacer una comparación, con un carácter determinado, se debe especificar entre apóstrofes (o comillas simples).
DeleteAlpha (Variable/Campo, Posición, Cantidad): Esta función borra (borra) un cierto número de caracteres de una variable/campo, comenzando desde la posición informada.
Parámetros:
Variable/Campo: Nombre del campo o variable alfabética del que se van a borrar los caracteres.
Posición: Posición del campo/variable del cual se deben borrar caracteres.
Cantidad: Número de caracteres que se deben eliminar de la posición ingresada.
Desea eliminar 10 caracteres del nombre del empleado, comenzando desde la posición 8 (ocho).
DeletarAlfa (R034Fun.NomEmp,8,10);
Entonces, si el nombre del empleado fuera, por ejemplo, “Fabio Luis Griebner”, después de usar la función EliminarAlfa tendríamos “Fabio Ler”.
CopyAlpha(Origen,Init_Position,Cantidad): Esta función copia parte del contenido de una variable/campo a la variable/campo de origen.
Parámetros:
Fuente: Variable/Campo Alfa de donde se va a copiar parte del contenido.
Initial_Position: Posición desde la que copiar los caracteres.
Cantidad: número de caracteres que se copiarán desde Initial_Position.
Desea copiar los siguientes 10 caracteres del nombre del empleado, comenzando en la posición 12.
CopiarAlfa (R034Fun.NomEmp,12,10);
Entonces, si el nombre del empleado fuera, por ejemplo, “Fabio Luis Griebner”, después de usar la función CopyAlfa, el nombre sería “Griebner”.
SizeAlpha (Origen,Tamaño): Esta función comprueba el tamaño del campo alfa especificado en Fuente.
Parámetros:
Origen: Campo/Variable Alfa cuyo tamaño desea conocer.
Tamaño: Número de tipo de variable que devolverá el tamaño del campo/variable especificado en Origen.
Quiere saber el tamaño del campo R034Fun.EmployeeName (nombre del empleado).
Definir Numero TamNome;
TamanhoAlfa (R034Fun.NomEmp,TamNome);
Entonces, si el nombre del empleado fuera, por ejemplo, "Fabio Luis Griebner", la variable TamNome devolvería 19.
PositionAlpha (Texto_Búsqueda, Campo_Búsqueda, Posición): Esta función busca un fragmento de texto dentro de un campo/variable de tipo alfabético y regresa donde comienza el texto.
Parámetros:
Search_Text: Ingrese el texto que está buscando entre comillas.
Field_Research: Nombre del campo/variable de tipo alfa en el que desea buscar.
Posición: Devolverá la posición inicial del texto buscado, dentro del Field_Research.
Desea buscar el término “Luis” dentro de los nombres de los empleados.
PosicaoAlfa (Luis,R034Fun.NomEmp,Vposicao);
Entonces, si el nombre del empleado fuera, por ejemplo, “Ana Luisa Prates”, la variable VPosicao arrojaría 5. Pero, si el nombre del empleado fuera, por ejemplo, “Pedro Silva”, la variable Vposición devolvería 0 (cero).
IntToAlpha (Source_Num, Destination_Alpha): Esta función convierte un número a formato alfanumérico, sin tener en cuenta los lugares decimales.
Parámetros:
Num_Origem: Número de tipo de campo/variable que se convertirá.
Alfa_Destino: Campo/variable tipo alfa que recibirá el resultado de la conversión.
Desea convertir la variable VvlrAux a tipo alfa.
Definir Alfa ValfAux;
IntParaAlfa (VVlrAux,VAlfAux);
Entonces, si la variable VVlrAux tuviera, por ejemplo, el valor 150.50 después de usar la función IntParaAlpha, la variable VAlfAux tendría “150”.
Usado en: Cuando existe la necesidad, por ejemplo, de concatenar el número a otro campo/variable de tipo alfabético.
AlphaToInt(Alpha_Source,Num_Destination): Esta función convierte un número almacenado en un campo de tipo alfabético en un campo de tipo numérico, sin tener en cuenta los lugares decimales. En caso de imposibilidad de conversión, el resultado será CERO.
Parámetros:
Alpha_Origin: Campo/variable de tipo alfa que contiene el número a convertir.
Num_destino: Campo/Variable tipo Número que recibirá el resultado de la conversión.
AlfaParaInt (R034Fun.CadFol,Vcadastro);
Usado en: Cuando existe la necesidad, por ejemplo, de realizar operaciones aritméticas con este número.
CharacterToAlpha(Carácter,Destino): Esta función convierte un carácter (que está almacenado por el código Ascii) al valor alfanumérico correspondiente.
Parámetros:
Carácter: Campo/Variable tipo Número/Carácter, que contiene el código Ascii de un carácter.
Destino: Variable tipo Alfa que recibirá el resultado de la conversión.
Desea convertir el campo de tilde de Pago de Aporte Sindical (R034Fun.PagSin) del Archivo Básico del empleado.
Definir Alfa VLetra;
CaracterParaAlfa (R034Fun.PagSin,VLetra);
MountDate (Día, Mes, Año, Fecha): Esta función concatena tres variables, formando una fecha.
Parámetros:
Día: Variable que contiene el día de la fecha a generar.
Mes: Variable que contiene el mes de la fecha a generar.
Año: Variable que contiene el año de la fecha a generar. Es importante recordar que el año debe tener 4 lugares, es decir debe tener, por ejemplo, 1998.
Fecha: Número de tipo variable que recibirá el resultado de la conversión.
Quiere fijar la fecha 09/01/1998.
VDia = 01;
VMes = 09;
VAno = 1998;
MontaData (VDia,VMes,VAno,Vdata);
De esta forma, la variable VData contendrá “09/01/1998”.
Usado en: Siempre que sea necesario crear una fecha auxiliar para algún tipo de comparación o cálculo.
Fecha de desmontaje (fecha, día, mes, año): Esta función desensambla una fecha, separando la información de Día/Mes/Año de la fecha en tres variables.
Parámetros:
Fecha: Campo/Variable tipo fecha a desmantelar.
Día: Número de tipo variable que recibirá el día de la fecha a desmontar.
Mes: Número de tipo variable que recibirá el mes de la fecha a desmontar.
Año: Número de tipo variable que recibirá el año de la fecha a desmontar.
Desea desensamblar la fecha de admisión del empleado para hacer algún tipo de cálculo.
DismountData (R034Fun.DatAdm,VDay,VMes,VAyear);
Por lo tanto, si la fecha de contratación del empleado fuera, por ejemplo, 24/04/1995, después de usar la función DismountData tendríamos la variable VDay=24, VMes = 04 y VAyear = 1995.
Utilizado en: Siempre que exista la necesidad de probar los elementos de una fecha de forma aislada.
Duración de la fecha (fecha, duración):Esta función genera la extensión de una fecha determinada.
Parámetros:
Fecha: Campo/Variable tipo fecha a partir de la cual se va a generar la prórroga.
Duración: Variable de tipo alfa que recibirá la duración de la fecha.
ThisNull(Variable,Retorno); Esta función comprueba si un campo de tipo alfabético es nulo o no.
Parámetros:
Variable: Tipo de campo/variable alfa que desea verificar.
Retorno: Número de tipo de variable que devolverá UNO si la variable es nula y CERO si no lo es.
Queremos saber si el campo Dígito de la cuenta actual del empleado (R034Fun.DigBan) es nulo o no.
Esta Nulo (R034Fun.DigBan,Vresultado);
Si el campo está en blanco, VResult devolverá 1 (uno); de lo contrario, VResult devolverá 0 (cero).
Último día (fecha): Esta función comprueba cuál es el último día del mes/año de la fecha informada, devolviendo esta nueva fecha día/mes/año en la variable indicada.
Parámetros:
Fecha: Campo/Variable de tipo fecha de la que se quiere saber el último día del mes.
Quiere saber el último día del mes/año de la fecha de admisión del empleado.
DatosV = R034Fun.DatAdm;
ÚltimoDía(VData);
Por lo tanto, si la Fecha de Ingreso del empleado fue, por ejemplo, 24/04/1995, la variable VData devolverá 30/04/1995.
Longitud (Valor,Tamaño_Línea1,Tamaño_Línea2,Tamaño_Línea3,Línea1,Línea2,Línea3): Esta función genera la longitud de un valor.
Parámetros:
Valor: Campo/Variable del que se quiere obtener el extenso.
Size_Linha1: Número de caracteres que se utilizarán en la primera línea para generar la extensión.
Size_Linha2: Número de caracteres que se utilizarán en la segunda línea para generar la extensión.
Size_Linha3: Número de caracteres que se utilizarán en la tercera línea para generar la extensión.
Line1: Variable tipo Alpha que recibirá la primera línea de la extensión de valor.
Línea2: Variable tipo Alfa que recibirá la segunda línea de la extensión de valor.
Línea3: Variable tipo Alfa que recibirá la tercera línea de la extensión de valor.
Quiere generar la ampliación del importe del salario del empleado.
Definir Alfa VextLin1;
Definir Alfa VextLin2;
Definir Alfa VextLin3;
Extenso (R034Fun.ValSal,30,30,30,VExtLin1,VextLin2,VextLin3);
Por lo tanto, si el salario del empleado fuera, por ejemplo, R$ 1.577,95, tendríamos el siguiente resultado:
VextLin1 = "Un mil quinientos setenta y cinco"
VextLin2 = " siete reales con noventa y cinco "
VextLin3 = “centavos ********************”
Utilizado en: Duplicados, cheques, documentos, etc.
Extensión del mes (fecha, extensión): Esta función ensambla la extensión del mes de una fecha dada.
Parámetros:
Fecha: Campo/Variable tipo fecha a partir de la cual se va a obtener la duración del mes.
Extensiva: Variable tipo Alfa que recibirá la extensión del mes.
Desea generar la extensión de fecha actual de la máquina.
Definir Alfa VMesExt;
ExtensoMes (DatSis,VMesExt);
Entonces, si la fecha de hoy fuera, por ejemplo, 10/07/1998, la variable VMesExt sería igual a “Julio”.
ExtendWeek (fecha, duración): Esta función ensambla la extensión del día de la semana de una fecha dada.
Parámetros:
Fecha: Campo/Variable de tipo fecha a partir de la cual se quiere obtener la duración del día.
Extensiva: Variable tipo Alfa que recibirá la extensión del día de la semana.
Desea generar la extensión del día de la semana de la fecha de hoy de la máquina.
Definir Alfa VSemExt;
ExtensoMes (DatSis,VSemExt);
Entonces, si la fecha de hoy fuera, por ejemplo, 10/7/1998, la variable VSemExt sería igual a “viernes”.
BreakText(Texto,Tamaño_de_línea,Cantidad_de_línea):Esta función toma el texto indicado y realiza asignaciones de saltos de línea de acuerdo con Line_Size especificado, y devuelve el número de líneas que se utilizarán para imprimir el texto.
Parámetros:
Texto: Tipo de campo/variable alfa que desea imprimir en más de una línea.
Line_Size: número máximo de caracteres por línea.
Qtde_Linhas: Variable de tipo Número que devolverá el número de líneas que serán necesarias para imprimir el texto.
BuscarLinhaTexto (Texto,Nro_Linha,Texto_Linha):Esta función se utiliza para imprimir las líneas de texto que ha dividido la función Textwrap.
Parámetros:
Texto: Será el mismo Campo/variable tipo Alfa indicado en la función Salto de Texto.
Line_Number: Número de línea a imprimir.
Text_Line: Variable de tipo alfa que devolverá la parte del Texto que se imprimirá.
Quiere imprimir el texto “Veamos qué pasa cuando usamos estas funciones para controlar la impresión de líneas de texto más largas” en líneas de un máximo de 30 caracteres cada una.
Definir Alfa Vtexto;
Definir Alfa VFrase;
Vtext = “Veamos qué pasa cuando usamos estas funciones para controlar la impresión de líneas de
un texto más largo”
QuebraTexto (VTexto,30,NumLin);
Linatu = 1;
Enquanto linatu <= NumLin
Inicio
BuscaLinhaTexto (VTexto,linatu,VFrase);
ListaSecao (Adicional_1);
Linatu++;
Fim;
En este ejemplo, se imprimirían 5 líneas y el texto se imprimiría de la siguiente manera: Línea 1 => “Veamos qué pasa” Línea 2 => “cuando usamos estas funciones” Línea 3 => “para el control de impresión de” Línea 4 => ”líneas de texto más” Línea 5 => “largo”.
RemainderDivision (Dividendo, Divisor, Resto):Esta función devuelve el resto de dividir un número por otro.
Parámetros:
Dividendo: Campo/Variable tipo Número que se dividirá.
Divisor: Campo/Variable tipo Número por el cual se dividirá el Dividendo.
Resto: Número de tipo variable que recibirá el resto de la división.
Queremos saber el resto de dividir un valor por otro.
Valor1 = 1500;
Valor2 = 400;
RestoDivisao (Valor1,Valor2, VResto);
VResto será igual a 300.
TruncarValor (Valor): Esta función elimina los decimales del valor pasado, sin realizar ningún tipo de redondeo.
Parámetros:
Valor = Campo/Variable desea mantener solo la parte entera del valor.
Solo desea conservar la parte completa del salario del empleado.
TruncarValor (R034Fun.ValSal);
Por lo tanto, si el salario del empleado fue de BRL 1.577,99, después de utilizar TruncarValor, sería de BRL 1.577,00.
RoundValue (Valor,Cantidad_Casas): Esta función redondea un determinado valor, según el número de decimales informado.
Parámetros:
Valor: Campo/Variable que será redondeado.
Cant_Casas: Número de decimales a redondear. Si se informa 0 (cero), se redondea a la parte entera del resultado.
- Desea redondear el salario del empleado a la décima de centavo más cercana.
ArredondarValor (R034Fun.ValSal,1);
Por lo tanto, si el salario del empleado fuera, por ejemplo, BRL 1.577,87, el resultado sería BRL 1.577,90.
- Desea redondear el salario del empleado a la unidad de reales.
ArredondarValor (R034Fun.ValSal,0);
Por lo tanto, si el salario del empleado fuera, por ejemplo, R$ 1.577,87, el resultado sería R$ 1.578,00.
Concatenar (Texto1, Texto2, Texto3, Destino): Esta función concatena hasta 3 campos/variables alfa, formando una sola variable.
Parámetros:
Texto1: Tipo de campo/variable alfa que se concatenará.
Texto2: Campo/variable tipo alfa que se concatenará.
Text3 : Tipo alfa de campo/variable que se concatenará.
Destino: variable de tipo alfa que recibirá el resultado de la concatenación.
Desea unir el nombre y el apodo del empleado, separándolos con un “-“ (guión).
Definir Alfa VResultado.
Concatena (R034Fun.NomEmp, , R034Fun.ApeEmp,VResultado);
Entonces, si el nombre del empleado fuera, por ejemplo, “Fabio Luis Griebner” y el apodo fuera “Teste”, el resultado sería: “Fabio Luis Griebner – Teste”.
CalculateQtyMinutes (DatIni,HorIni,DatFim,Horfim,Qty_Minutes): Esta función calcula el número de minutos entre una fecha/hora de inicio y una fecha/hora de finalización.
Parámetros:
DatIni: Campo/Variable tipo fecha, inicial.
HorIni: Campo/Variable tipo tiempo, inicial.
DateFim: Campo/Variable tipo fecha, fin.
EndHor: Campo/Variable tipo tiempo, fin.
Qty_Minutos: Devuelve el número de minutos entre la fecha/hora de inicio y la fecha/hora de finalización.
Funciones sin parámetros
FechaSis:Devuelve la fecha actual del sistema.
DaySis:Devuelve el día del mes a partir de la fecha del sistema
Mes: Devuelve el mes del sistema
AñoSis:Devuelve el año del sistema con 4 posiciones
ExtSis:fecha completa
HorSis:hora del sistema
PagNum:Número de página de los informes.
Nombre de usuario: nombre de usuario registrado
Desenchufar: Descripción de la plantilla a utilizar en el pie de página.
English
Español


