Web de Velneo V7

Asistente de fórmulas

Asistente de fórmulas
Una fórmula es una secuencia de valores, operadores o números usados para calcular valores nuevos. Ese valor se muestra en el elemento donde se haya declarado la fórmula. En una fórmula se permiten expresiones tanto aritméticas como booleanas (lógicas).

En V7 existen multitud de lugares donde pueden declararse fórmulas, como por ejemplo contenidos iniciales de campos, en valores de propiedades de objetos y subobjetos, etc.

El asistente de fórmulas es una utilidad que nos permite especificar las fórmulas de forma asistida y verificarlas.
Siepmre que debamos especificar una fórmula, junto a control donde deba escribirse ésta, aparecerá siguiente botón: . Si lo pulsamos abriremos el asistente:

Principalmente se compone de un cuadro de edición donde se escribe la expresión de la fórmula. En este área, por medio del asistene, podremos insertar identificadores de campos, variables o constantes, símbolos y funciones a medida que se seleccionan en las diversas opciones. De igual forma puede insertar manualmente datos como paréntesis, operadores, identificadores de campos, etc.

Los botones de la barra le permiten acceder a la lista de:

Operadores.
Funciones estándar.
Funciones proceso.
Lista de campos de la tabla en curso. Esta opción estará inactiva si el objeto o sub-objeto donde etamos creando la fórmula no está asociado a una tabla.
Constantes. Esta opción estará inactiva si no se han declarado constantes en el proyecto en curso ni en los proyectos heredados.
variables globales. Esta opción estará inactiva si no se han declarado variables en los proyectos de datos heredados.
Variables locales. Esta opción estará inactiva si el objeto o sub-objeto donde etamos creando la fórmula no se han declarado variables locales.
Variables del sistema.

Para insertar un elemento (operador, campo, variable, etc.) en la fórmula, bastará con situar el cursor en la parte del editor donde queramos insertarlo y haremos doble clic sobre él.

Una vez declarada la fórmula podremos hacer una verificación de la sintaxis de la misma pulsando el botón .

Operadores
Para activar/desactivar la lista de operadores del asistente para la creación de fórmulas pulsaremos el botón del editor de fórmulas. Los operadores disponibles son:

+ Suma
- Resta
* Multiplicación
/ División
% Resto o módulo
= Igual que
! Distinto de
> Mayor que
< Menor que
& Operador Y
| Operador O

Para añadir un operador en la fórmula hacer doble clic sobre el mismo en la lista de operadores del asistente de fórmulas, o escribirlo directamente en la misma.
Funciones de fórmula
Para activar/desactivar la lista de funciones estándar del asistente para la creación de fórmulas pulsaremos el botón del editor de fórmulas.

Las funciones de fórmula son un conjunto de funciones predefinidas del Asistente para edición de fórmulas que nos permiten retornar valores usando como parámetros los elementos disponibles en el asistente: campos, variables localesvariables globales, variables de sistema, constante, operadores y literales: cadenas y números, además del retorno de otras funciones.

API
Conjunto de Funciones de fórmula que hacen de uso del API de Velneo para retornar valores propios de los proyectos y objetos en tiempo de ejecución.

getProjectName
Devuelve el nombre del proyecto en curso.
Sintaxis:

getProjectName()

Parámetros: No tiene.
Devuelve una cadena con el nombre del proyecto en curso.

Ejemplo: getProjectName() = “Velneo vSalesDaybook”
getProjectVersion
Devuelve la versión del proyecto en curso.
Sintaxis:

getProjectVersion()

Parámetros: No tiene.
Devuelve una cadena con la versión del proyecto en curso.

Ejemplo: getProjectVersion() = “0.1 Beta”
getTableHandle
Devuelve el manejador o handle de la tabla en curso.
Sintaxis:

getTableHandle()

Parámetros: Ninguno.
Devuelve el manejador hexadecimal de la tabla en la que nos encontramos.

Ejemplo: getTableHandle() = 1a
Básicas
Conjunto de Funciones de fórmula básicas para la construcción de fórmulas.

choose
Devuelve un valor u otro en función de una condición.
Sintaxis:

choose(condicion, datoSi, datoNo)

Parámetros:

condicion: Condición a evaluar por la función.
datoSi: Valor retornado si la condición se cumple.
datoNoi: Valor retornado si la condición no se cumple.

Ejemplo: choose( “Velneo” = “Velneo”, “Correcto”, “Incorrecto”) = Correcto
isEmpty
Devuelve true (1) si la cadena, parametro pasado esta vacío.
Sintaxis:

isEmpty(parametro)

Parámetros:

parametro: Cadena a evaluar. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: isEmpty(“Velneo”) = 1
remoteFunctionCall
Esta función permite ejecutar funciones-proceso declaradas en otro proyecto de Velneo V7. Muy útil, por tanto, para comunicar distintas aplicaciones, tanto alojadas en un mismo Velneo vServer V7 como en servidores distintos
Sintaxis:

remoteFunctionCall(idFuncion, dominioIP, idInstancia, usuario, contraseña, parametros)

Parámetros:

idFuncion: Identificador de la función a ejecutar.

dominioIP: Dominio o IP de la máquina donde está instalado el Velneo vServer V7 donde se encuentra instanciado el proyecto donde la función ha sido declarada. Debe ir precedido del esquema vatp:// y, si el puerto es distinto del 690, seguido de dos puntos (:) y el número de puerto.

idInstancia: Identificador de la instancia a la que queremos acceder. Para conocer el identificador de la instancia usaremos Velneo vAdmin V7 haciendo doble clic sobre la definición de instancia:

usuario: Nombre de un usuario declarado en Velneo vServer V7 que tenga permisos de acceso a la
instancia.

contraseña: Del usuario anterior. Si ese usuario no tiene contraseña este parámetro será resuelto con “”.

parametros: Si la función tiene declarado más de un parámetro, éstos irán separados por comas.

remoteFunctionCall(“GET_USER_SESION_NUMBER”, “vatp://localhost:85″, “GESTION”, “velneo”, “”, “carlos@gmail.com”, “ib3zax1″)
Cadenas
Conjunto de Funciones de fórmula orientadas al manejo de cadenas.

countString
Devuelve el número de veces que la cadena contiene la subcadena.
Sintaxis:

countString(cadena, subcadena)

Parámetros:

cadena: Expresión alfabética de referencia.

subcadena: Expresión alfabética a buscar en la cadena.

Ejemplo: countString(“velneo”, “e” ) = 2
fillString
Devuelve una cadena con la repetición de la que pasamos como parámetro.
Sintaxis:

fillString(cadena, nRepeticiones)

Parámetros:

cadena: Expresión alfabética a repetir.

nRepeticiones: Número de repeticiones.

Ejemplo: fillString(“*”, “4″ ) = ****

getStringRegExp
Devuelve la cadena que se corresponde con la subexpresión regular a partir de la posición indicada teniendo en cuenta si distinguimos mayúsculas y minúsculas. Para la subexpresion 0 devuelve toda cadena.
SINTAXIS:

getStringRegExp(cadena, expresionRegular, posIni, caseSensitive, numSubExpresion)

PARÁMETROS:

cadena: Expresión alfabética de referencia.
expresionRegular: Expresión regular con el texto a encontrar en la cadena.
posIni: Posición inicial de la búsqueda.
caseSensitive: 1 distingue mayúsculas y minúsculas, 0 no.
numSubExpresion: Si la expresión regular establecida en el segundo parámetro contiene varios gupos de expresiones regulares, en este parámetro podremos hacer que busque coincdencias de todas las subexpresiones (0) o de una en concreto; en cuyo caso escribiremos un valor comprendido entre 1 y el número total de subexpresiones declaradas. La primera subexpresión será la 1, la segunda la 2 y así sucesivamente.

Una expresión regular (regexp) es un patrón que sirve encontrar coincidencias de subcaednas en un texto.Esto es muy útil en varios contextos. Por ejemplo:

Validación: Una regexp puede comprobar si una subcadena cumple determinados criterios, por ejemplo, si es un número o si no contiene espacios en blanco.
Búsqueda: Una regexp facilita patrones más potentes para buscar coincidencias que una simple búsqueda de subcadena, por ejemplo, comprobar la exisstencia en una cadena de las palabras “mail”, “letter” o “correspondence” y la no existencia de las palabras “email”,”letterbox”, “mailman”, “mailer”, etc.
Buscar y reemplazar: Podremos usar esta función combinada con la función replaceString para reemplazar en una cadena todas las ocurrencias de la subcadena & por & amp; excepto cuando el & ya se encuentre seguido de la subcadena amp;.
División de cadenas: Una regexp puede ser usada para identificar dónde debería dividirse una cadena, por ejemplo, al encontrar tabulaciones en la misma.

Las expresiones regulares son construidas mediante expresiones, cuantificadores y metacaracteres. La expresión más simple es un carácter, por ejemplo: x ó 5. Una expresión también puede ser una serie de caracteres contenidos entre corchetes. [ABCD] genera una ocurrencia cuando encuentra A, B, C o D. Esta misma expresión podría ser escrita de la forma siguiente: [A-D]. La expresión para generar ocurrencias con cualquier letra del alfabeto será [A-Z].

Un cuantificador permite indicar el número de ocurrencias de una subcadena que deben darse. x{1,1} significa que debe generar solamente la ocurrencia de un carácter x. x{1,5} siginifica que debe generar solamente la ocurrencia si se da una secuencia de caracteres que contenga al menos una x pero no más de cinco.

En general las expresiones regulares no pueden ser usadas para comprobar un correcto anidamiento de corchetes o etiquetas. Por ejemplo, una expresión regular puede ser escrita para encontrar la etiqueta html de apertura <b> y su correspondiente etiqueta de cierre </b> si las etiquetas <b> no están anidadas, pero si las etiquetas <b> se encuentran anidadas, la misma expresión regular generará una ocurrencia con una etiqueta de apertura <b> con la etiqueta de cierre </b> equivocada. Para el texto <b>destacado<b>más destacado</b></b>, el primer <b> sería emparejado con el primer </b>, lo que no es correcto. Sin embargo, es posible escribir una expresión regular que permita generar las coincidencias de corchetes o etiquetas anidadas correctamente, pero solamente si el número de niveles de anidamiento es fijo y conocido. Si el número de niveles de anidamiento no es fijo y conocido, será imposible escribir una expresión regular que no falle.

Supongamos que queremos construir una expresión regular que gener coincidencias con números comprendidos entre 0 y 99. Al menos se requiere un dígito, así que comenzaremos con la expresión [0-9] {1,1}, que generará coincidencia con un único dígito una única vez. Esta expresión regular genera coincidencia con números comprendidos entre 0 y 9. Para genear coincidencias con números hasta 99, incrementaremos el número máximo de ocurrencias a 2, así que la expresión regular pasaría a ser [0-9] {1,2}. Esta expresión regular cumple con el requisito original de encontrar números comprendidos entre 0 y 99, pero también generará ocurrencias con números que existan en el medio de cadenas. Si queremos que el número que genere concurrencia sea la cadena completa, debemos usar los metacaracteres, ^ (acento circunflejo) y $ (dólar). Cuando ^ es el primer carácter en una expresión regular, significa que la expresión regular debe generar la ocurrencia desde el comienzo de la cadena. Cuando $ es el último carácter de la expresión regular, significa que la expresión regular debe generar coincidencia con el final de la cadena. La expresión regular, por tanto, pasaría a ser ^[0-9] {1,2}$. Los metacaracteres ^ y $ no son usados para buscar ocurrencias de ambos caracteres en la cadena, sino para indicar posiciones dentro de la cadena.

Determinados conjuntos de caraceteres y cuantificadores son tan comunes que se les han asignado símbolos especiales para su representación. [0-9] puede ser reemplazado por el símbolo \d. El cuantificador que permite especificar una única ocurrencia {1,1}, puede ser reemplazado por la expresión en sí misma, Ejemplo: x{1,1} es lo mismo que x. Para nuestro generador coincdencias de números comprendidos entre el 0 y el 99 podríamos escribirlo de la forma siguiente ^\d{1,2}$. También podría ser escrito como ^\d\d{0,1}$, por ejemplo: Desde el comienzo de la cadena, genera ocurrencia de un número, seguido inmediatamente por 0 ó 1 dígito. En la práctica, podría ser escrito como ^\d\d?$. El carácter ? es el símbolo especial que equivale a cuantificador {0,1}, por ejemplo, 0 ó 1 ocurrencias. ? hace una expresión opcional. La expresión regular ^\d\d?$ significa: Desde el comienzo de la cadena, que haya coincidencia de un número, seguido inmediatamente por 0 ó 1 dígito más y seguido inmediatamente del final de la cadena.

Para escribir una expresión regular que genere una coincidencia con las palabras “mai” o “letter” o “correspondence” pero que no genere coincidencia con palabras que contengan las palabras “email”, “mailman”, “mailer” ni “letterbox”, comenzaremos con la expresión regular que genere una coincidencia con la palabra “mail”. Expresada en su totalidad la expresión regular sería m{1,1}a{1,1}i{1,1}l{1,1}, pero ya que una expresión de carácter es automáticamente cuantificada por {1,1}, podemos simplificar la regesp escribiendo mail, es decir, una “m” seguida de una “a” seguida de una “i” seguida de una “l”. Ahora podemos usar la barra vertical |, que significa o, para incluir las otras dos palabras, así, nuestra regesp para generar coincidencia con cualquier de las tres palabras sería: mail|letter|correspondence. Genera coincidencia con “mail”, o con “letter” o con “correspondence”. Mientras esta regesp generará una coincidencia con cualquiera de las tres palabras indicadas, también generaría coincidencia con palabras con las que no queremos, por ejemplo, “email”. Para impedir que la expresión regular genere coincidencias con palabras no deseadas, debemos indicarle que la coincidencia debe darse con el comienzo y el final de una palabra,es decir, la palabra completa. En primer lugar, cerraremos nuestra expresión regular entre paréntesis (mail|letter|correspondence). Los paréntesis agrupan expresiones, e identifican una parte de la expresión regular que se desea caputrar en el parámetro numSubExpresion de esta función (recordar que si este parámetro es 0, identificará la expresión regular completa). Cerrar la expresión entre paréntesis nos permite usarla como un componente en expresiones regulares complejas. Para forzar la generación de coincidencia con la palabra completa, cerraremos la expresión regular con el metacarácter que indica límite de palabra \b: \b(mail|letter|correspondence)\b. Ahora la expresión regular significa: Genera coincidencia de una palabra, seguida de la expresión regular entre paréntesis, seguido de un límite de palabra. El metacarácter \b genera coincidencia con una posición dentro de la expresión regular, no un carácter. Un límite de palabra es cualquier carácter no de palabra,por ejemplo, espacio, nueva línea o el comienzo o el final de una cadena.

Si queremos localizar en una cadena el carácter ampersand (&) con el fin de reemplazaro con por su código equivalente en html: & amp;, la expresión regular es &. Pero esta expresión regular también generará coincidencias con ampersands que ya hayan sido reemplazados por su equivalente html. Si queremos generar coincidencia solamente con aquellos ampersands que no se encuentren seguidos de la cadena amp;, para ello necesitaremos el metacaracter de negación (?!__). La expresión regular, por tanto, podrá ser escrita: &(?!amp;).

Si queremos generar conicicencias de las palabras “Eric” y “Eirik” en una cadena, dos posibles soluciones son \b(Eric|Eirik)\b y \bEi?ri[ck]\b. El metacarácter de límite de palabra \b se necesita para evitar la generación de coincidencias, por ejemplo, con cadenas como “Erica”. Atención: La segunda expresión regular generará coincidencia con más palabras que las indicadas: “Eric”, “Erik”, “Eiric” y “Eirik”.

Caracteres y abreviaturas para conjuntos de caracteres

c: En una expresión regular cualquier carácter se representa a sí mismo, salvo si el carácter es un carácter que se usa como metacarácter o cuantificador. Así, c se corresponde con el carácter c, pero ^ no representa al carácter ^ ya que es un metacarácter que se usa identificar una posición en la cadena.
\c: Un carácter precedido de la barra de directorios (\) se corresponde con ese carácter en sí. Es decir, en una expresión regular “\c” y “c” identifican indistintamente al carácter cy la cadena \^ se corresponde con el carácter ^, no es tomado como metacarácter.
\a: Equivale al carácter ASCII de campana (BEL, 0×07).
\f: Equivale al carácter ASCII de salto de página (FF, 0×0C).
\n: Equivale al cáracter ASCII de nueva línea (LF, 0×0A, Unix newline).
\r: Equivale al cáracter ASCII de retorno de carro (CR, 0×0D).
\t: Equivale al cáracter ASCII de tabulador horizontal (HT, 0×09).
\v: Equivale al cáracter ASCII de tabulador vertical (VT, 0×0B).
\xhhhh: Equivale al carácter Unicode correspondiente al número hexadecimal hhhh (entre 0×0000 y 0xFFFF). ooo (i.e., \zero ooo) equivale al carácter ASCII/Latin-1 character que se corresponde con el número octal ooo (entre 0 y 0377).
. (dot): Equivale a cualquier carácter (incluido nueva línea).
\d: Equivale a un dígito.
\D: Equivale a un no-dígito.
\s: Equivale a un espacio en blanco.
\S: Equivale a un no-espacio en blanco.
\w: Equivale a un carácter (dígito o letra).
\W: Equivale a un no-carácter (espacio en blanco, fin de línea, etc.).

NOTA: Si en un expresión regular queremos incluir el carácter \ como carácter, tendremos que escrbirlo dos veces: \\.

Conjuntos de caracteres

Los corchetes implican generar coincidencia con cualquier carácter contenido entre ellos. Las abreviaturas de conjuntos de caracteres descritas anteriormente pueden aparecer en un conjunto de caracteres entre corchetes. Los cracteres no tienen ningún significado especial cuando van entre corchetes, excepto en los casos sigiuentes:

^: El acento circunflejo niega el conjunto de caracteres cuando es el primer carácter (por ejemplo, inmediatamente después del corchete de apertura). [abc] genera ocurrencia con cualquier carácter “a” o “b” o “c” de la cadena, pero [^abc] generará una ocurrencia con cualquier carácter distitno de “a”, “b” o “c”.
-: El guión indica un rango de caracteres. [W-Z] generará una ocurrencia con cualquier carácter comprendido entre la “W” y la “Z”; es decir, con “W” o “X” o “Y” o “Z”.

Cuantificadores

Por defecto, una expresión regular es automáticamente cuantificada como {1,1}, es decir, solamente podría generar una única ocurrencia. En la lista que presentamos a continuación, E significa “expresión”. Una expresión es un carácter, o una abreviatura de conjunto de caracteres, o un conjunto de caracteres entre corchetes, o una expresión entre paréntesis.

E?: Genera cero o una ocurrencias de E. Este cuantificador significa “la expresión anterior es opcional”, ya que generará ocurrencia tanto si encuentra la expresión en la cadena como si no. E? es lo mismo que E{0,1}. Ejemplo: dientes? generará concidencia con “diente” o “dientes”.
E+: Genera cero o más ocurrencias de E. E+ es lo mismo que E{1,}. Ejemplo: 0+ generará concidencia con “0″, “00″, “000″, etc.
E*: Genera cero o más ocurrencias de E. E* es lo mismo que E{0,}. El cuantificador * suele ser usado equivocadamente cuando debería usarse +. Ejemplo: Si \s*$ es usado en una expresión para generar ocurrencias con cadenas que terminen con un espacio en blanco, generaría ocurrencia con cualquier cadena porque \s*$ quiere decir “Genera ocurrencia con cero o más espacios en blanco seguidos de un final de cadena”. La expresión regular correcta para generar ocurrencia con cadenas que tengan al menos un espacio en blanco al final es \s+$.
E{n}: Genera n ocurrencias exactas de E. E{n} es lo mismo que repetir E n veces. Ejemplo: x{5} es lo mismo que xxxxx. Es también lo mismo que x{5,5}.
E{n,}: Genera ocurrencias de al menos n ocurrencias de E.
E{,m}: Genera ocurrencias de como mucho n ocurrencias de E. E{,m} es lo mismo que E{0,m}
E{n,m}: Genera ocurrencias desde n ocurrencias de E hasta m ocurrencias de E.

Para aplicar un cuantificador a más que simplemente al caracter previo, utilizaremos paréntesis para agrupar los caracteres en una expresión. Por ejemplo, tag+ genera ocurrencia de una “t” seguida de una “a” seguida de al menos una “g”, mientras que (tag)+ generará al menos una ocurrencia de “tag”.

NOTA: Los cuantificadores son “avariciosos”. Siempre generan ocurrencia con tanto texto como les sea posible. Por ejemplo, 0+ generará ocurrencia con el primer 0 que encuentre pero también con los siguientes ceros consecutivos después del primero. Aplicado a 2005generará coincidencia con 20005.

Metacaracteres

Los metacaracteres permiten declarar posiciones dentro del texto en el punto en el que ocurran en la expresión regular, pero no generan coincidencia con carácter alguno. En la siguiente lista E equivale a cualquier expresión:

^: El acento circunflejo indica comienzo de la cadena. Si en una expresión regular quisiésemos usar el acento circunflejo ^ como carácter y no como metacarácter tendríamos que escribirlo precedido por el carácter de escape: \\^. Por ejemplo ^#include solamente generará ocurrencia con cadenas que comiencen con los caractres “#incluide”. Cuando el acento circunflejo es el primer carácter de un grupo de caracteres, recordemos que tiene un significado especial (ver el apartado dedicado a los conjuntos de caracteres de este mismo capítulo).
$: El dólar indica fin de cadena. Por ejemplo \d\s*$ generará ocurrencia con cadenas que finalicen con un número opcionalmente seguido en un espacio en blanco. Si quisiésemos comprobar ocurrencias del literal $, tendríamos que escribirlo precedido por el carácter de escape: \\$
\b: Límite de palabra. Por ejeplo, la expresión regular \bOK\b significa generar ocurrencia de la letra “O” seguida de la letra “K”, tras un límite de palabra (por ejemplo, el comienzo de la cadena o un espacio en blanco). Destacar que este metacarácter no genera ocurrencia con ningún espacio en blanco, por lo que si escribimos (\bOK\b) y encontramos una ocurrencia, ésta será de la cadena OK, incliuso si la cadena es “Todo está OK ahora”.
\B: No-límite de palabra. Este metacarácter es el contrario a \b. Por ejemplo, si buscamos \Bno\B en la cadena “Esto no” no se generaría ocurrencia alguna (el espacio y el finla de la cadena no son no-límites de palabra), si generaría coincidencia en “tonos”.
(?=E): Aserción. Este metacarácter es verdadero cuando la expresión genere coincidencia en este punto en la expresión regular. Por ejemplo, const(?=\s+char) genera ocurrencia con “const” siempre que vaya seguido por “char” como por ejemplo en “static const char *”. const\s+char, aplicado sobre la cadena “static const char *” generará coincidencia con “const char”.
\B: No-límite de palabra. Este metacarácter es el contrario a \b. Por ejemplo, si buscamos \Bno\B en la cadena “Esto no” no se generaría ocurrencia alguna (el espacio y el finla de la cadena no son no-límites de palabra), si generaría coincidencia en “tonos”.
(?!E): Negación. Este metacarácter es verdadero cuando la expresión genere coincidencia en este punto en la expresión regular. Por ejemplo, const(?!\s+char) genera ocurrencia con “const” excepto cuando vaya seguido por la cadena “char”.

Uso del parámetro numSubExpresion de la función getStringRegExp

Como hemos explicado anteriormente, podemos agrupar distintas subexpresiones de una expresión regular simplemente cerrándolas entre paréntesis. Si en la expresión regular escribimos (a)|(b)|(c) y el parámetro numSubExpresion de esta función es 0, se buscarán coincidencias de las tres subexpresiones, es decir, de “a”, “b” o “c” en la cadena. Si quisiésemos que solamente se buscasen coincdencias de una de ellas, por ejemplo b, sin tener que modificar la expresión regular, bastará con escribir en el parámetro numSubExpresion de esta función en valor 2 que se corresponde con el número de subexpresión declarado; (a) sería 1 y (c) sería 3.

Ejemplos:

getStringRegExp(“Hay 1235 personas”, “\d{1,3}”, 0, 0, 0) = 123
getStringRegExp(“abcd”, “(a)(b)(c)(d)”, 0, 0, 0) = abcd
getStringRegExp(“( 2 * 4 = 8 )”, “[0-9]“, 0, 0, 0) = 2
getStringRegExp(“( 2 * 4 = 8 )”, “^[0-9]“, 0, 0, 0) = No generará ocurrencia peus el primer carácter de la cadena no es un número.
indexOfRegExp
Devuelve la posición de la cadena en la que encontramos la expresión regular a partir de la posición indicada teniendo en cuenta si distinguimos o no entre mayúsculas y minúsculas.
Devolverá -1 si no la encuentra.
Sintaxis:

indexOfRegExp(cadena, expresionRegular, posIni, caseSensitive)

Parámetros:

cadena: Expresión alfabética de referencia.

Una expresión regular (regexp) es un patrón que sirve encontrar coincidencias de subcaednas en un texto.Esto es muy útil en varios contextos. Por ejemplo:

Validación: Una regexp puede comprobar si una subcadena cumple determinados criterios, por ejemplo, si es un número o si no contiene espacios en blanco.
Búsqueda: Una regexp facilita patrones más potentes para buscar coincidencias que una simple búsqueda de subcadena, por ejemplo, comprobar la exisstencia en una cadena de las palabras “mail”, “letter” o “correspondence” y la no existencia de las palabras “email”,”letterbox”, “mailman”, “mailer”, etc.
Buscar y reemplazar: Podremos usar esta función combinada con la función replaceString para reemplazar en una cadena todas las ocurrencias de la subcadena & por & amp; excepto cuando el & ya se encuentre seguido de la subcadena amp;.
División de cadenas: Una regexp puede ser usada para identificar dónde debería dividirse una cadena, por ejemplo, al encontrar tabulaciones en la misma.

Las expresiones regulares son construidas mediante expresiones, cuantificadores y metacaracteres. La expresión más simple es un carácter, por ejemplo: x ó 5. Una expresión también puede ser una serie de caracteres contenidos entre corchetes. [ABCD] genera una ocurrencia cuando encuentra A, B, C o D. Esta misma expresión podría ser escrita de la forma siguiente: [A-D]. La expresión para generar ocurrencias con cualquier letra del alfabeto será [A-Z].

Un cuantificador permite indicar el número de ocurrencias de una subcadena que deben darse. x{1,1} significa que debe generar solamente la ocurrencia de un carácter x. x{1,5} siginifica que debe generar solamente la ocurrencia si se da una secuencia de caracteres que contenga al menos una x pero no más de cinco.

En general las expresiones regulares no pueden ser usadas para comprobar un correcto anidamiento de corchetes o etiquetas. Por ejemplo, una expresión regular puede ser escrita para encontrar la etiqueta html de apertura <b> y su correspondiente etiqueta de cierre </b> si las etiquetas <b> no están anidadas, pero si las etiquetas <b> se encuentran anidadas, la misma expresión regular generará una ocurrencia con una etiqueta de apertura <b> con la etiqueta de cierre </b> equivocada. Para el texto <b>destacado<b>más destacado</b></b>, el primer <b> sería emparejado con el primer </b>, lo que no es correcto. Sin embargo, es posible escribir una expresión regular que permita generar las coincidencias de corchetes o etiquetas anidadas correctamente, pero solamente si el número de niveles de anidamiento es fijo y conocido. Si el número de niveles de anidamiento no es fijo y conocido, será imposible escribir una expresión regular que no falle.

Supongamos que queremos construir una expresión regular que gener coincidencias con números comprendidos entre 0 y 99. Al menos se requiere un dígito, así que comenzaremos con la expresión [0-9] {1,1}, que generará coincidencia con un único dígito una única vez. Esta expresión regular genera coincidencia con números comprendidos entre 0 y 9. Para genear coincidencias con números hasta 99, incrementaremos el número máximo de ocurrencias a 2, así que la expresión regular pasaría a ser [0-9] {1,2}. Esta expresión regular cumple con el requisito original de encontrar números comprendidos entre 0 y 99, pero también generará ocurrencias con números que existan en el medio de cadenas. Si queremos que el número que genere concurrencia sea la cadena completa, debemos usar los metacaracteres, ^ (acento circunflejo) y $ (dólar). Cuando ^ es el primer carácter en una expresión regular, significa que la expresión regular debe generar la ocurrencia desde el comienzo de la cadena. Cuando $ es el último carácter de la expresión regular, significa que la expresión regular debe generar coincidencia con el final de la cadena. La expresión regular, por tanto, pasaría a ser ^[0-9] {1,2}$. Los metacaracteres ^ y $ no son usados para buscar ocurrencias de ambos caracteres en la cadena, sino para indicar posiciones dentro de la cadena.

Determinados conjuntos de caraceteres y cuantificadores son tan comunes que se les han asignado símbolos especiales para su representación. [0-9] puede ser reemplazado por el símbolo \d. El cuantificador que permite especificar una única ocurrencia {1,1}, puede ser reemplazado por la expresión en sí misma, Ejemplo: x{1,1} es lo mismo que x. Para nuestro generador coincdencias de números comprendidos entre el 0 y el 99 podríamos escribirlo de la forma siguiente ^\d{1,2}$. También podría ser escrito como ^\d\d{0,1}$, por ejemplo: Desde el comienzo de la cadena, genera ocurrencia de un número, seguido inmediatamente por 0 ó 1 dígito. En la práctica, podría ser escrito como ^\d\d?$. El carácter ? es el símbolo especial que equivale a cuantificador {0,1}, por ejemplo, 0 ó 1 ocurrencias. ? hace una expresión opcional. La expresión regular ^\d\d?$ significa: Desde el comienzo de la cadena, que haya coincidencia de un número, seguido inmediatamente por 0 ó 1 dígito más y seguido inmediatamente del final de la cadena.

Para escribir una expresión regular que genere una coincidencia con las palabras “mai” o “letter” o “correspondence” pero que no genere coincidencia con palabras que contengan las palabras “email”, “mailman”, “mailer” ni “letterbox”, comenzaremos con la expresión regular que genere una coincidencia con la palabra “mail”. Expresada en su totalidad la expresión regular sería m{1,1}a{1,1}i{1,1}l{1,1}, pero ya que una expresión de carácter es automáticamente cuantificada por {1,1}, podemos simplificar la regesp escribiendo mail, es decir, una “m” seguida de una “a” seguida de una “i” seguida de una “l”. Ahora podemos usar la barra vertical |, que significa o, para incluir las otras dos palabras, así, nuestra regesp para generar coincidencia con cualquier de las tres palabras sería: mail|letter|correspondence. Genera coincidencia con “mail”, o con “letter” o con “correspondence”. Mientras esta regesp generará una coincidencia con cualquiera de las tres palabras indicadas, también generaría coincidencia con palabras con las que no queremos, por ejemplo, “email”. Para impedir que la expresión regular genere coincidencias con palabras no deseadas, debemos indicarle que la coincidencia debe darse con el comienzo y el final de una palabra,es decir, la palabra completa. En primer lugar, cerraremos nuestra expresión regular entre paréntesis (mail|letter|correspondence). Los paréntesis agrupan expresiones, e identifican una parte de la expresión regular que se desea caputrar en el parámetro numSubExpresion de esta función (recordar que si este parámetro es 0, identificará la expresión regular completa). Cerrar la expresión entre paréntesis nos permite usarla como un componente en expresiones regulares complejas. Para forzar la generación de coincidencia con la palabra completa, cerraremos la expresión regular con el metacarácter que indica límite de palabra \b: \b(mail|letter|correspondence)\b. Ahora la expresión regular significa: Genera coincidencia de una palabra, seguida de la expresión regular entre paréntesis, seguido de un límite de palabra. El metacarácter \b genera coincidencia con una posición dentro de la expresión regular, no un carácter. Un límite de palabra es cualquier carácter no de palabra,por ejemplo, espacio, nueva línea o el comienzo o el final de una cadena.

Si queremos localizar en una cadena el carácter ampersand (&) con el fin de reemplazaro con por su código equivalente en html: & amp;, la expresión regular es &. Pero esta expresión regular también generará coincidencias con ampersands que ya hayan sido reemplazados por su equivalente html. Si queremos generar coincidencia solamente con aquellos ampersands que no se encuentren seguidos de la cadena amp;, para ello necesitaremos el metacaracter de negación (?!__). La expresión regular, por tanto, podrá ser escrita: &(?!amp;).

Si queremos generar conicicencias de las palabras “Eric” y “Eirik” en una cadena, dos posibles soluciones son \b(Eric|Eirik)\b y \bEi?ri[ck]\b. El metacarácter de límite de palabra \b se necesita para evitar la generación de coincidencias, por ejemplo, con cadenas como “Erica”. Atención: La segunda expresión regular generará coincidencia con más palabras que las indicadas: “Eric”, “Erik”, “Eiric” y “Eirik”.

Caracteres y abreviaturas para conjuntos de caracteres

c: En una expresión regular cualquier carácter se representa a sí mismo, salvo si el carácter es un carácter que se usa como metacarácter o cuantificador. Así, c se corresponde con el carácter c, pero ^ no representa al carácter ^ ya que es un metacarácter que se usa identificar una posición en la cadena.
\c: Un carácter precedido de la barra de directorios (\) se corresponde con ese carácter en sí. Es decir, en una expresión regular “\c” y “c” identifican indistintamente al carácter cy la cadena \^ se corresponde con el carácter ^, no es tomado como metacarácter.
\a: Equivale al carácter ASCII de campana (BEL, 0×07).
\f: Equivale al carácter ASCII de salto de página (FF, 0×0C).
\n: Equivale al cáracter ASCII de nueva línea (LF, 0×0A, Unix newline).
\r: Equivale al cáracter ASCII de retorno de carro (CR, 0×0D).
\t: Equivale al cáracter ASCII de tabulador horizontal (HT, 0×09).
\v: Equivale al cáracter ASCII de tabulador vertical (VT, 0×0B).
\xhhhh: Equivale al carácter Unicode correspondiente al número hexadecimal hhhh (entre 0×0000 y 0xFFFF). ooo (i.e., \zero ooo) equivale al carácter ASCII/Latin-1 character que se corresponde con el número octal ooo (entre 0 y 0377).
. (dot): Equivale a cualquier carácter (incluido nueva línea).
\d: Equivale a un dígito.
\D: Equivale a un no-dígito.
\s: Equivale a un espacio en blanco.
\S: Equivale a un no-espacio en blanco.
\w: Equivale a un carácter (dígito o letra).
\W: Equivale a un no-carácter (espacio en blanco, fin de línea, etc.).

NOTA: Si en un expresión regular queremos incluir el carácter \ como carácter, tendremos que escrbirlo dos veces: \\.

Conjuntos de caracteres

Los corchetes implican generar coincidencia con cualquier carácter contenido entre ellos. Las abreviaturas de conjuntos de caracteres descritas anteriormente pueden aparecer en un conjunto de caracteres entre corchetes. Los cracteres no tienen ningún significado especial cuando van entre corchetes, excepto en los casos sigiuentes:

^: El acento circunflejo niega el conjunto de caracteres cuando es el primer carácter (por ejemplo, inmediatamente después del corchete de apertura). [abc] genera ocurrencia con cualquier carácter “a” o “b” o “c” de la cadena, pero [^abc] generará una ocurrencia con cualquier carácter distitno de “a”, “b” o “c”.
-: El guión indica un rango de caracteres. [W-Z] generará una ocurrencia con cualquier carácter comprendido entre la “W” y la “Z”; es decir, con “W” o “X” o “Y” o “Z”.

Cuantificadores

Por defecto, una expresión regular es automáticamente cuantificada como {1,1}, es decir, solamente podría generar una única ocurrencia. En la lista que presentamos a continuación, E significa “expresión”. Una expresión es un carácter, o una abreviatura de conjunto de caracteres, o un conjunto de caracteres entre corchetes, o una expresión entre paréntesis.

E?: Genera cero o una ocurrencias de E. Este cuantificador significa “la expresión anterior es opcional”, ya que generará ocurrencia tanto si encuentra la expresión en la cadena como si no. E? es lo mismo que E{0,1}. Ejemplo: dientes? generará concidencia con “diente” o “dientes”.
E+: Genera cero o más ocurrencias de E. E+ es lo mismo que E{1,}. Ejemplo: 0+ generará concidencia con “0″, “00″, “000″, etc.
E*: Genera cero o más ocurrencias de E. E* es lo mismo que E{0,}. El cuantificador * suele ser usado equivocadamente cuando debería usarse +. Ejemplo: Si \s*$ es usado en una expresión para generar ocurrencias con cadenas que terminen con un espacio en blanco, generaría ocurrencia con cualquier cadena porque \s*$ quiere decir “Genera ocurrencia con cero o más espacios en blanco seguidos de un final de cadena”. La expresión regular correcta para generar ocurrencia con cadenas que tengan al menos un espacio en blanco al final es \s+$.
E{n}: Genera n ocurrencias exactas de E. E{n} es lo mismo que repetir E n veces. Ejemplo: x{5} es lo mismo que xxxxx. Es también lo mismo que x{5,5}.
E{n,}: Genera ocurrencias de al menos n ocurrencias de E.
E{,m}: Genera ocurrencias de como mucho n ocurrencias de E. E{,m} es lo mismo que E{0,m}
E{n,m}: Genera ocurrencias desde n ocurrencias de E hasta m ocurrencias de E.

Para aplicar un cuantificador a más que simplemente al caracter previo, utilizaremos paréntesis para agrupar los caracteres en una expresión. Por ejemplo, tag+ genera ocurrencia de una “t” seguida de una “a” seguida de al menos una “g”, mientras que (tag)+ generará al menos una ocurrencia de “tag”.

NOTA: Los cuantificadores son “avariciosos”. Siempre generan ocurrencia con tanto texto como les sea posible. Por ejemplo, 0+ generará ocurrencia con el primer 0 que encuentre pero también con los siguientes ceros consecutivos después del primero. Aplicado a 2005generará coincidencia con 20005.

Metacaracteres

Los metacaracteres permiten declarar posiciones dentro del texto en el punto en el que ocurran en la expresión regular, pero no generan coincidencia con carácter alguno. En la siguiente lista E equivale a cualquier expresión:

^: El acento circunflejo indica comienzo de la cadena. Si en una expresión regular quisiésemos usar el acento circunflejo ^ como carácter y no como metacarácter tendríamos que escribirlo precedido por el carácter de escape: \\^. Por ejemplo ^#include solamente generará ocurrencia con cadenas que comiencen con los caractres “#incluide”. Cuando el acento circunflejo es el primer carácter de un grupo de caracteres, recordemos que tiene un significado especial (ver el apartado dedicado a los conjuntos de caracteres de este mismo capítulo).
$: El dólar indica fin de cadena. Por ejemplo \d\s*$ generará ocurrencia con cadenas que finalicen con un número opcionalmente seguido en un espacio en blanco. Si quisiésemos comprobar ocurrencias del literal $, tendríamos que escribirlo precedido por el carácter de escape: \\$
\b: Límite de palabra. Por ejeplo, la expresión regular \bOK\b significa generar ocurrencia de la letra “O” seguida de la letra “K”, tras un límite de palabra (por ejemplo, el comienzo de la cadena o un espacio en blanco). Destacar que este metacarácter no genera ocurrencia con ningún espacio en blanco, por lo que si escribimos (\bOK\b) y encontramos una ocurrencia, ésta será de la cadena OK, incliuso si la cadena es “Todo está OK ahora”.
\B: No-límite de palabra. Este metacarácter es el contrario a \b. Por ejemplo, si buscamos \Bno\B en la cadena “Esto no” no se generaría ocurrencia alguna (el espacio y el finla de la cadena no son no-límites de palabra), si generaría coincidencia en “tonos”.
(?=E): Aserción. Este metacarácter es verdadero cuando la expresión genere coincidencia en este punto en la expresión regular. Por ejemplo, const(?=\s+char) genera ocurrencia con “const” siempre que vaya seguido por “char” como por ejemplo en “static const char *”. const\s+char, aplicado sobre la cadena “static const char *” generará coincidencia con “const char”.
\B: No-límite de palabra. Este metacarácter es el contrario a \b. Por ejemplo, si buscamos \Bno\B en la cadena “Esto no” no se generaría ocurrencia alguna (el espacio y el finla de la cadena no son no-límites de palabra), si generaría coincidencia en “tonos”.
(?!E): Negación. Este metacarácter es verdadero cuando la expresión genere coincidencia en este punto en la expresión regular. Por ejemplo, const(?!\s+char) genera ocurrencia con “const” excepto cuando vaya seguido por la cadena “char”.

Uso del parámetro numSubExpresion de la función getStringRegExp

Como hemos explicado anteriormente, podemos agrupar distintas subexpresiones de una expresión regular simplemente cerrándolas entre paréntesis. Si en la expresión regular escribimos (a)|(b)|(c) y el parámetro numSubExpresion de esta función es 0, se buscarán coincidencias de las tres subexpresiones, es decir, de “a”, “b” o “c” en la cadena. Si quisiésemos que solamente se buscasen coincdencias de una de ellas, por ejemplo b, sin tener que modificar la expresión regular, bastará con escribir en el parámetro numSubExpresion de esta función en valor 2 que se corresponde con el número de subexpresión declarado; (a) sería 1 y (c) sería 3.

Ejemplo: getStringRegExp(“Hay 1235 personas”, “\d{1,3}”, 0, 0, 0) = 4
indexOfString
Devuelve la posición del inicio de la subcadena de texto dentro de la cadena o -1 si no la contiene.
Sintaxis:

indexOfString(cadena, subcadena, posInicio, caseSensitive)

Parámetros:

cadena: Expresión alfabética de referencia.

subcadena: Expresión alfabética a buscar en la cadena.

posInicio: Posición de la cadena a partir de la cual se desea buscar la subcadena. La primera posición es la 0.

caseSensitive: 1 distingue mayúsculas y minúsculas, 0 no.

Ejemplo: indexOfString(“Velneo v7″, “v”, 0, 1) = 7
insertString
Inserta la subcadena en la posición deseada de la cadena.
Sintaxis:

insertString(cadena, posicion, subcadena)

Parámetros:

cadena: Expresión alfabética de referencia.

posición: Posición, dentro de la cadena, donde se desea insertar la subcadena. La primera posición es la 0.

subcadena: Expresión alfabética a insertar en la cadena.

Ejemplo: insertString(“Velneo 7″, 7, “V”) = Velneo V7
left
Extracta caracteres por la izquierda de la cadena. El primer carácter tiene la posición 1.
Sintaxis:

left(cadena, longitud)

Parámetros:

cadena: Expresión alfabética de referencia.

longitud: Número de caracteres a extraer.

Ejemplo: left(“Velneo V7″, 6) = Velneo
leftJustified
Devuelve una cadena, justificada a la izquierda, de la longitud especificada, rellenando por la derecha, si es necesario, con un carácter de relleno.
Sintaxis:

leftJustified(cadena, longitud, relleno)

Parámetros:

cadena: Expresión alfabética de referencia.

longitud: Longitud total de la cadena a generar.

relleno: Carácter de relleno. Por defecto será un espacio en blanco.

Ejemplo: leftJustified(“250 €”, 20, “*”) = 250 €***************
leftWords
Extrae desde la parte izquierda de la cadena hasta una determinada posición, sin cortar palabras.
Sintaxis:

leftWords(cadena, longitud)

Parámetros:

cadena: Expresión alfabética de referencia.

longitud: Posición hasta la que se desean extraer palabras.

Ejemplo: leftWords(“Esto es una prueba”, 10 ) = Esto es
len
Devuelve la longitud de una cadena.
Sintaxis:

len(cadena)

Parámetros:

cadena: Expresión alfabética de referencia.

Ejemplo: len(“V7″) = 2
mid
Extracta caracteres a partir de una posición determinada de una cadena.
Sintaxis:

mid(cadena, posicion, longitud)

Parámetros:

cadena: Expresión alfabética de referencia.

posición: Posición dentro de la cadena a partir de la cual se desea extraer los caracteres. La primera posición será la 0.

Longitud: Longitud total de la cadena a extraer.

Ejemplo: mid(“Velneo V7″, 7, 2 ) = V7
removeAccents
Devuelve la cadena pasada como parámetro sin tildes.
Sintaxis:

removeAccents(cadena)

Parámetros:

cadena: Expresión alfabética de referencia.

Ejemplo: removeAccents(“àéô”) = aeo
removeCharsAt
Elimina de una cadena los caracteres determinados por la longutid a partir una posición.
Sintaxis:

removeCharsAt(cadena, posición, longitud)

Parámetros:

cadena: Expresión alfabética de referencia.

posición: Posición a partir de la cual se desea borrar caracteres. La primera posición es 0.

longitud: Número de carecteres a borrar.

Ejemplo: removeCharsAt(“velneo v7″, 6, 2 ) = Velneo7
removeString
Elimina de una cadena todas las ocurrencias de una subcadena.
Sintaxis:

removeString(cadena, subcadena)

Parámetros:

cadena: Expresión alfabética de referencia.

subcadena: Expresión alfabética a quitar de la cadena. Distingue entre mayúsculas y minúsculas.

Ejemplo: removeString(“Aa”, “A” ) = a
replaceString
Sustituye, dentro de una cadena, todas las ocurrencias de una subcadena por otra subcadena.
Sintaxis:

replaceString(cadena, subcadenaPre, subcadenaPost)

Parámetros:

cadena: Expresión alfabética de referencia.

subcadenaPre: Expresión alfabética a buscar en la cadena.

subcadenaPost: Expresión alfabética a sustituir en la cadena por los caracteres de la subcadenaPre. Distingue entre mayúsculas y minúsculas.

Ejemplo: replaceString(“velneo v7″, “V” ) = Velneo V7
reverseString
Devuelve invertida la cadena pasada como parámtro.
Sintaxis:

reversetString(cadena)

Parámetros:

cadena: Expresión alfabética de referencia.

Ejemplo: reverseString(“abc” ) = cba
right
Extracta caracteres por la parte derecha de la cadena. El primer carácter tiene la posición 1.
Sintaxis:

right(cadena, longitud)

Parámetros:

cadena: Expresión alfabética de referencia.

longitud: Número de caracteres a extraer.

Ejemplo: right(“abc”, 1) = c
rightJustified
Devuelve una cadena, justificada a la derecha, de la longitud especificada, rellenando por la izquierda, si es necesario, con un carácter de relleno.
Sintaxis:

rightJustified(cadena, longitud, relleno)

Parámetros:

cadena: Expresión alfabética de referencia.

longitud: Longitud total de la cadena a generar.

relleno: Carácter de relleno. Por defecto será un espacio en blanco.

Ejemplo: rightJustified(“250 €”, 10, “0″) = 00000250 €
rightWords
Extrae desde la parte derecha de la cadena hasta una determinada posición, sin cortar palabras.
Sintaxis:

rightWords(cadena, longitud)

Parámetros:

cadena: Expresión alfabética de referencia.

longitud: Posición hasta la que se desean extraer palabras.

Ejemplo: rightWords(“Esto es una prueba”, 8 ) = prueba
stringSection
Devuelve una sección de una cadena delimitada por un separador en una posición dada.
Sintaxis:

stringSection(cadena, separador, pos, existeSepIni, existeSepFin)

Parámetros:

cadena: Expresión alfabética de referencia.

separador: Expresión alfabética correspondiente al carácter que se usa como separador dentro de la cadena de referencia.

pos: Posición del ítem a extraer de la cadena. La primera posición será la 0.

existeSepIni: Este parámetro será resuelto con un 1 si la cadena comienza con el carácter separador o un 0 en el caso contrario.

existeSepFin: Este parámetro será resuelto con un 1 si la cadena finaliza con el carácter separador o un 0 en el caso contrario.

Ejemplo: stringSection(“uno|dos|3″, “|”, 1, 0, 0) = dos
titleStyle
Convierte el primer carácter de cada palabra de una cadena en mayúscula y el resto en minúscula.
Sintaxis:

titleStyle(cadena)

Parámetros:

cadena: Expresión alfabética de referencia.

Ejemplo: titleStyle(“john doe”) = John Doe
toLower
Devuelve una cadena convertida a minúsculas.
Sintaxis:

toLower(cadena)

Parámetros:

cadena: Expresión alfabética de referencia.

Ejemplo: toLower(“ABCdef”) = abcdef
toUpper
Devuelve una cadena convertida a mayúsculas.
Sintaxis:

toUpper(cadena)

Parámetros:

cadena: Expresión alfabética de referencia.

Ejemplo: toUpper(“ABCdef”) = ABCDEF
trimmedString
Devuelve la cadena omitiendo espacios no sifnificativos al inicio y al final de la misma.
Sintaxis:

trimmedString(cadena)

Parámetros:

cadena: Expresión alfabética de referencia.

Ejemplo: trimmedString(” abc “) = “abc”
stringToHex
Devuelve la cadena pasada como parámetro en formato hexadecimal.
Sintaxis:

stringToHex(cadena)

Parámetros:

Cadena: Expresión de tipo fórmula con la cadena que se desea convertir en hexadecimal. Podemos usar el asistente para edición de fórmulas para su especificación.

Ejemplo: stringToHex(“124584″) = 1E6A8
Científicas
Conjunto de Funciones de fórmula que permiten la realización de cálculos matemáticos y lógicos.

binaryAND
Devuelve el resultado de la operacion binaria AND.
Sintaxis:

binaryAND(entero1, entero2)

Parámetros:

entero1: Número entero que se considerará en la operación.
entero2: Número entero que se considerará en la operación.

Ejemplo: binaryAND(1, 0) = 0
binaryAND(0, 1) = 0
binaryAND(0, 0) = 0
binaryAND(1, 1) = 1

binaryOR
Devuelve el resultado de la operacion binaria OR.
Sintaxis:

binaryOR(entero1, entero2)

Parámetros:

entero1: Número entero que se considerará en la operación.
entero2: Número entero que se considerará en la operación.

Ejemplo: binaryOR(1, 0) = 1
binaryOR(0, 1) = 1
binaryOR(0, 0) = 0
binaryOR(1, 1) = 1

binaryXOR
Devuelve el resultado de la operacion binaria XOR.
Sintaxis:

binaryXOR(entero1, entero2)

Parámetros:

entero1: Número entero que se considerará en la operación.
entero2: Número entero que se considerará en la operación.

Ejemplo: binaryOR(1, 0) = 1
binaryXOR(0, 1) = 1
binaryXOR(0, 0) = 0
binaryXOR(1, 1) = 0

exp
Devuelve el valor exponencial de x.
Sintaxis:

exp(x)

Parámetros:

x: Número cuyo valor exponencial será calculado. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc.
La función devuelve el valor exponencial del número pasado como parámetro.

Ejemplo: exp(0) =1
factorial
Devuelve el factorial de x.
Sintaxis:

factorial(x)

Parámetros:

x: Número cuyo cálculo factorial será devuelto. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: factorial(9) = 362880
log
Devuelve el logaritmo en base e de x.
Sintaxis:

log(x)

Parámetros:

x: Número cuyo cálculo logarítimico será devuelto. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: log(e) = 1
log10
Devuelve el logaritmo en base 10 de x.
Sintaxis:

log10(x)

Parámetros:

x: Número cuyo cálculo logarítimico será devuelto. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: log10(10) = 1
numberToStringBin
Convierte un número decimal en binario.
Sintaxis:

numberToStringBin(x)

Parámetros:

x: Número decimal que será convertido a binario. Este parámetro puede ser una cadena, una variable, un campo, el retorno de una función, etc.

Ejemplo: numberToStringBin(2) = “10″
numberToStringHex
Convierte un número decimal en hexadecimal.
Sintaxis:

numberToStringHex(x)

Parámetros:

x: Número decimal que será convertido a hexadecimal. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: numberToStringBin(26) = “1a”
pow
Devuelve la base elevada a la potencia.
Sintaxis:

pow(base, potencia)

Parámetros:

base: Número que será usado como base de la potencia. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc.
potencia: Número al que será elevada la base. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc.
Devuelve la base que hemos pasado como parámetro elevada a la parametrizada.

Ejemplo: pow(3,2) = 9
sqrt
Devuelve la raíz cuadrada de x.
Sintaxis:

sqrt(x)

Parámetros:

x: Número cuya raíz cuadrada será calculada. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc.
Devuelve la raíz cuadrada del número que pasamos como parámetro.

Ejemplo: sqrt(9) = 3
stringBinToNumber
Convierte un número binario en decimal.
Sintaxis:

stringBinToNumber(x)

Parámetros:

x: Cadena que contiene el número binario que queremos convertir. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc.
Devuelve un número decimal como resultado de convertir el número binario.

Ejemplo: stringBinToNumber(“10″) = 2
stringHexToNumber
Convierte un número hexadecimal en decimal.
Sintaxis:

numberToStringHex(x)

Parámetros:

x: Cadena que contiene el número hexadecimal que será convertido. Este parámetro puede ser una cadena, una variable, un campo, el retorno de una función, etc.
Devuelve un número decimal como resultado de convertir le número hexadecimal.

Ejemplo: stringHexToNumber(“1a”) = 26
Cliente-servidor
Conjunto de Funciones de fórmula orientadas a la comunicación y trabajo entre clientes y servidor.

getClientIP
Devuelve la IP de la estación cliente.
Sintaxis:

getClientIP()

Parámetros:

No requiere parámetros.

Ejemplo: getClientIP() = 192.168.0.0
getServerIP
Devuelve la IP del servidor.
Sintaxis:

getServerIP()

Parámetros:

No requiere parámetros.

Ejemplo: getServerIP() = 192.168.0.0
Color
Conjunto de Funciones de fórmula orientadas al manejo de colores.

getAlpha
Devuelve el valor del canal alfa de un color CMYKA o RGBA. El canal alfa es el que nos permite establecer el grado de transparencia de un color.
SINTAXIS:

getAlpha(color)

Parámetros:

color: Valor numérico de un color RGBA o CMYKA. Dicho valor deberá ser expresado en formato decimal.

El dato devuelto deberá ser un valor comprendido entre 0 (sin trasparencia) y 255.

Comentarios:
Dado que el parámetro ha de ser expresado en formato decimal y dado que los colores suelen ser codificados en formato hexadecimal, podremos utilizar la función de fórmulas stringHexToNumber para convertir el código hexadecimal de un color en un número decimal.
getBlack
Devuelve el componente K (negro) de un color CMYK o CMYKA.
SINTAXIS:

getBlack(color)

PARÁMETROS:

color: Valor numérico de un color CMYK o CMYKA. Dicho valor deberá ser expresado en formato decimal.

El dato devuelto deberá ser un valor comprendido entre 0 (ausencia de componente negro) y 255.

Comentarios:
Dado que el parámetro ha de ser expresado en formato decimal y dado que los colores suelen ser codificados en formato hexadecimal, podremos utilizar la función de fórmulas stringHexToNumber para convertir el código hexadecimal de un color en un número decimal.
getBlue
Devuelve el componente B (azul) de un color RGB o RGBA.
SINTAXIS:

getBlue(color)

PARÁMETROS:

color: Valor numérico de un color RGB o RGBA. Dicho valor deberá ser expresado en formato decimal.

El dato devuelto deberá ser un valor comprendido entre 0 (ausencia de componente azul) y 255.

color: Valor numérico de un color CMYK o CMYKA.

Comentarios:
Dado que el parámetro ha de ser expresado en formato decimal y dado que los colores suelen ser codificados en formato hexadecimal, podremos utilizar la función de fórmulas stringHexToNumber para convertir el código hexadecimal de un color en un número decimal.
getCyan
Devuelve el componente C (cián) de un color CMYK o CMYKA.
SINTAXIS:

getCyan(color)

PARÁMETROS:

color: Valor numérico de un color CMYK o CMYKA. Dicho valor deberá estar comprendido entre 0 y 1.

El dato devuelto deberá ser un valor comprendido entre 0 (ausencia de componente cián) y 255.
getGray
Devuelve el gris equivalente al color pasado como parámetro.
Sintaxis:

getGray(color)

Parámetros:

color: Valor numérico de un color RGB o CMYK. Dicho valor deberá ser expresado en formato decimal.

El dato devuelto deberá ser un valor comprendido entre 0 y 255.

Comentarios:
Dado que el parámetro ha de ser expresado en formato decimal y dado que los colores suelen ser codificados en formato hexadecimal, podremos utilizar la función de fórmulas stringHexToNumber para convertir el código hexadecimal de un color en un número decimal.
getGreen
Devuelve el componente G (verde) de un color RGB o RGBA.
SINTAXIS:

getGreen(color)

PARÁMETROS:

color: Valor numérico de un color RGB o RGBA. Dicho valor deberá ser expresado en formato decimal.

El dato devuelto deberá ser un valor comprendido entre 0 (ausencia de componente verde) y 255.

Comentarios:
Dado que el parámetro ha de ser expresado en formato decimal y dado que los colores suelen ser codificados en formato hexadecimal, podremos utilizar la función de fórmulas stringHexToNumber para convertir el código hexadecimal de un color en un número decimal.
getMagenta
Devuelve el componente M (magenta) de un color CMYK o CMYKA.
SINTAXIS:

getMagenta(color)

PARÁMETROS:

color: Valor numérico de un color CMYK o CMYKA. Dicho valor deberá ser expresado en formato decimal.

El dato devuelto deberá ser un valor comprendido entre 0 (ausencia de componente magenta) y 255.

Comentarios:
Dado que el parámetro ha de ser expresado en formato decimal y dado que los colores suelen ser codificados en formato hexadecimal, podremos utilizar la función de fórmulas stringHexToNumber para convertir el código hexadecimal de un color en un número decimal.
GetRed
Devuelve el componente R (rojo) de un color RGB o RGBA.
SINTAXIS:

getRed(color)

PARÁMETROS:

color: Valor numérico de un color RGB o RGBA. Dicho valor deberá ser expresado en formato decimal.

El dato devuelto deberá ser un valor comprendido entre 0 (ausencia de componente rojo) y 255.

Comentarios:
Dado que el parámetro ha de ser expresado en formato decimal y dado que los colores suelen ser codificados en formato hexadecimal, podremos utilizar la función de fórmulas stringHexToNumber para convertir el código hexadecimal de un color en un número decimal.
getYellow
Devuelve el componente Y (amarillo) de un color CMYK o CMYKA.
SINTAXIS:

getMagenta(color)

PARÁMETROS:

color: Valor numérico de un color CMYK o CMYKA. Dicho valor deberá ser expresado en formato decimal.

El dato devuelto deberá ser un valor comprendido entre 0 (ausencia de componente amarillo) y 255.

Comentarios:
Dado que el parámetro ha de ser expresado en formato decimal y dado que los colores suelen ser codificados en formato hexadecimal, podremos utilizar la función de fórmulas stringHexToNumber para convertir el código hexadecimal de un color en un número decimal.
setCMYK
Compone un color siguiendo el modelo CMYK.

CMYK es acrónimo de Cyan, Magenta, Yellow y Key (Black).
Sintaxis:

setCMYK(cyan, magenta, yellow, black)

Parámetros:

cyan: Expresión numérica con el valor del componente cián del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
magenta: Expresión numérica con el valor del componente magenta del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
yellow: Expresión numérica con el valor del componente amarillo del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
black: Expresión numérica con el valor del componente negro del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.

Internamente el resultado será guardado como un valor comprendido entre 0 y 1.
setCMYKA
Compone un color siguiendo el modelo CMYKA.

CMYKA es el acrónimo de Cyan, Magenta, Yellow, Key (Black) y Alpha.

Alpha es el canal de un color CMYKA que permite establecer un grado de transparencia al mismo.
Sintaxis:

setCMYKA(cyan, magenta, yellow, key, alpha)

Parámetros:

cyan: Expresión numérica con el valor del componente cián del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
magenta: Expresión numérica con el valor del componente magenta del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
yellow: Expresión numérica con el valor del componente amarillo del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
black: Expresión numérica con el valor del componente negro del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.

Alfa: Expresión numérica con el valor del canal alfa del color. El canal alfa nos permite definir el grado de transparencia de un color Será un número comprendido entre 0 y 255. El valor 0 indicará que el color será totalmente opaco.

Internamente el resultado será guardado como un valor comprendido entre 0 y 1.
setRGB
Compone un color siguiendo el modelo RGB.

RGB es el acrónimo de Red, Green, y Blue.
Sintaxis:

setRGB(red, green, blue)

Parámetros:

red: Expresión numérica con el valor del componente rojo del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
green: Expresión numérica con el valor del componente verde del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
blue: Expresión numérica con el valor del componente azul del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.

Internamente el resultado será guardado como un valor comprendido entre 0 y 1.
setRGBA
Compone un color siguiendo el modelo RGBA.

CMYKA es el acrónimo de Red, Green, Blue y Alpha.

Alpha es el canal de un color CMYKA que permite establecer un grado de transparencia al mismo.
Sintaxis:

setRGBA(red, green, blue, alpha)

Parámetros:

red: Expresión numérica con el valor del componente rojo del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
green: Expresión numérica con el valor del componente verde del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
blue: Expresión numérica con el valor del componente azul del color. Será un número comprendido entre 0 y 255. El valor 0 indicará ausencia de este componente.
Alfa: Expresión numérica con el valor del canal alfa del color. El canal alfa nos permite definir el grado de transparencia de un color Será un número comprendido entre 0 y 255. El valor 0 indicará que el color será totalmente opaco.

Internamente el resultado será guardado como un valor comprendido entre 0 y 1.
Funciones de códigos
Conjunto de Funciones de fórmula orientadas a la codificación de cadenas.

calcMD4
Devuelve la cadena pasada como parámetro codificada en MD4 y en formato hexadecimal.

MD4 es un algoritmo de resumen del mensaje que implementa una función criptográfica de hash para el uso en comprobaciones de integridad de mensajes.
Sintaxis:

calcMD4(cadena)

Parámetros:

cadena: Expresión fórmula con la cadena a codificar en MD4. Para facilitar la especificación de la misma podremos hacer uso del asistente para edición de fórmulas.
calcMD5
Devuelve la cadena pasada como parámetro codificada en MD5 y en formato hexadecimal.

MD5 es un algoritmo de reducción criptográfico.
Sintaxis:

calcMD5(cadena)

Parámetros:

cadena: Expresión fórmula con la cadena a codificar en MD5. Para facilitar la especificación de la misma podremos hacer uso del asistente para edición de fórmulas.
calcModude11Check
Devuelve una cadena de un carácter con el dígito de control que debemos añadir a la cadena pasada como parámetro para que sea un Módulo 11 válido; esto es devuelve el carácter de comprobación según el algoritmo del Modulo11.
Sintaxis:

calcModude11Check(cadena)

Parámetros:

cadena: Expresión fórmula con la cadena cuyo dígito de control queremos obtener. Para facilitar la especificación de la misma podremos hacer uso del asistente para edición de fórmulas.

Ejemplo: calcModude11Check(“261533″) = 2
calcSHA1
Devuelve la cadena pasada como parámetro codificada en SHA-1 y en formato hexadecimal.

SHA-1 es un algoritmo de “hash” seguro. Se trata de sistema de función “hash” criptográfica.
Sintaxis:

calcSHA1(cadena)

Parámetros:

cadena: Expresión fórmula con la cadena a codificar en SHA-1. Para facilitar la especificación de la misma podremos hacer uso del asistente para edición de fórmulas.
Directorios
Conjunto de Funciones de fórmula que permiten operar con sendas.

getPathBaseName
Extrae el nombre de fichero sin extensión de la senda.
Sintaxis:

getPathBaseName(senda)

Parámetros:

senda: Cadena que contiene la senda con que vamos a operar. Esta senda puede estar en cualquiera de los formatos de directorio que admita un sistema. Este parámetro puede ser una cadena, una variable, un campo, el retorno de una función, etc.
Devuelve el nombre del fichero que contiene la senda, quitando la extensión del mismo.

Ejemplo: getPathBaseName(“/senda/fichero.ext”) = “fichero”
Ejemplo: getPathBaseName(“c:/senda/fichero.ext”) = “fichero”
Ejemplo: getPathBaseName(“c:\\senda\\fichero.ext”) = “fichero”
getPathCompleteExt
Extrae la extensión completa de la senda desde el primer separador (“.”) si incluye varios.
Sintaxis:

getPathCompleteExt(senda)

Parámetros:

senda: Cadena que contiene la senda con que vamos a operar. Esta senda puede estar en cualquiera de los formatos de directorio que admita un sistema. Este parámetro puede ser una cadena, una variable, un campo, el retorno de una función, etc.
Devuelve la extensión del fichero que contiene la senda a partir del primer separador (“.”).

Ejemplo: getPathCompleteExt(“/senda/fichero.ext1.ext2″) = “.ext.ext2″
Ejemplo: getPathCompleteExt(“c:/senda/fichero.ext”) = “.ext”
Ejemplo: getPathCompleteExt(“c:\\senda\\fichero.ext”) = “.ext”
getPathDir
Extrae el directorio de la senda.
Sintaxis:

getPathDir(senda)

Parámetros:

senda: Cadena que contiene la senda con que vamos a operar. Esta senda puede estar en cualquiera de los formatos de directorio que admita un sistema. Este parámetro puede ser una cadena, una variable, un campo, el retorno de una función, etc.
Devuelve el directorio que contiene la senda.

Ejemplo: getPathDir(“/senda/fichero.ext1.ext2″) = “/senda”
Ejemplo: getPathDir(“c:/senda/fichero.ext”) = “c:/senda”
Ejemplo: getPathDir(“c:\\senda\\fichero.ext”) = “c:\\senda”
getPathExt
Extrae la extensión de la senda.
Sintaxis:

getPathExt(senda)

Parámetros:

senda: Cadena que contiene la senda con que vamos a operar. Esta senda puede estar en cualquiera de los formatos de directorio que admita un sistema. Este parámetro puede ser una cadena, una variable, un campo, el retorno de una función, etc.
Devuelve la extensión del fichero que contiene la senda.

Ejemplo: getPathExt(“/senda/fichero.ext”) = “ext”
Ejemplo: getPathExt(“c:/senda/fichero.ext”) = “ext”
Ejemplo: getPathExt(“c:\\senda\\fichero.ext”) = “ext”
getPathFileName
Extrae el nombre de fichero con extensión de la senda.
Sintaxis:

getPathFileName(senda)

Parámetros:

senda: Cadena que contiene la senda con que vamos a operar. Esta senda puede estar en cualquiera de los formatos de directorio que admita un sistema. Este parámetro puede ser una cadena, una variable, un campo, el retorno de una función, etc.
Devuelve el nombre y la extensión del fichero que contiene la senda.

Ejemplo: getPathFileName(“/senda/fichero.ext”) = “fichero.ext”
Ejemplo: getPathFileName(“c:/senda/fichero.ext”) = “fichero.ext”
Ejemplo: getPathFileName(“c:\\senda\\fichero.ext”) = “fichero.ext”
homePath
Devuelve la senda del directorio home.
Sintaxis:

homePath()

Parámetros: No tiene.

Devuelve la senda completa del directorio home del sistema del usuario.

Ejemplo: homePath() = “C:\Documents and Settings\Usuario”
Ejemplo: homePath() = “/home/user/”
rootPath
Devuelve la senda del directorio raíz.
Sintaxis:

rootPath()

Parámetros: No tiene.

Devuelve la senda completa del directorio home del sistema del usuario.

Ejemplo: rootPath() = “C:\”
Ejemplo: rootPath() = “/”.
setCurrentDir
Cambia el directorio por defecto de la aplicación. Devuelve true (1) si lo logró.
Sintaxis:

setCurrentDir(senda)

Parámetros:

senda: Cadena que contiene la senda con que vamos a operar. Esta senda puede estar en cualquiera de los formatos de directorio que admita un sistema. Este parámetro puede ser una cadena, una variable, un campo, el retorno de una función, etc.

Cambia el directorio en curso por el que suministramos como parámetro.

Debemos de tener cuidado al hacer uso de este comando ya que afecta a todos los procesos del cliente, y si se usa en el servidor, afectará a todos los procesos del servidor.

Ejemplo: setCurrentDir(“/senda”)
Ejemplo: setCurrentDir(“c:/senda/”)
tempPath
Devuelve la senda del directorio para archivos temporales (temp).
Sintaxis:

tempPath()

Parámetros: No tiene.

Devuelve la senda completa del directorio temporal del sistema del usuario.

Ejemplo: tempPath() = “C:\Documents and Settings\Usuario\Configuración local\Temp”
Ejemplo: tempPath() = “/home/user/tmp/”
Fechas
Conjunto de Funciones de fórmula que nos permiten operar con datos tipo fecha.

addDays
Devuelve la fecha incrementada los días.
Sintaxis:

addDays(fecha, dias)

Parámetros:

fecha: fecha a la que sumaremos los días. Esta fecha puede ser un literal, una variable, un campo, el retorno de una función, etc.

dias: Número de días que sumaremos a la fecha.

Devuelve la fecha incrementada el número de días que hayamos pasado como parámetro, teniendo en cuenta años bisiestos.

Ejemplo: addDays(“01/12/2012″, 11 ) = 12/12/2012
addMonths
Devuelve la fecha incrementada los meses.
Sintaxis:

addMonths(fecha, meses)

Parámetros:

fecha: fecha a la que sumaremos los días. Esta fecha puede ser un literal, una variable, un campo, el retorno de una función, etc.

meses: Número de meses que sumaremos a la fecha.

Devuelve la fecha incrementada el número de meses que hayamos pasado como parámetro.

Ejemplo: addMonths(“12/09/2012″, 3 ) = 12/12/2012
addYears
Devuelve la fecha incrementada los años.
Sintaxis:

addYears(fecha, años)

Parámetros:

fecha: fecha a la que sumaremos los días. Esta fecha puede ser un literal, una variable, un campo, el retorno de una función, etc.

años: Número de años que sumaremos a la fecha.

Devuelve la fecha incrementada el número de años que hayamos pasado como parámetro.

Ejemplo: addYears(“12/12/2001″, 11 ) = 12/12/2012
age
Devuelve la edad del nacido en la fecha.
Sintaxis:

age(fecha)

Parámetros:

fecha: fecha cuya diferencia con el día en curso queremos conocer. Esta fecha puede ser un literal, una variable, un campo, el retorno de una función, etc.

Devuelve el número de años entre la fecha en curso y la fecha que pasamos como parámetro.

Ejemplo: age(“12/12/2001″, 11 ) = 12/12/2012
currentDate
Devuelve la fecha actual.
Sintaxis:

currentDate()

Parámetros: No tiene.

Ejemplo: currentDate() = 04/12/2008
dateIsValid
Indica si la fecha es válida.
Sintaxis:

dateIsValid(fecha)

Parámetros:

fecha: Fecha qué queremos comprobar. Esta fecha puede ser un literal, una variable, un campo, el retorno de una función, etc.

La función retornará true (1) si la fecha es correcta y false (0) si no está conformada correctamente.

Tiene en cuenta el número de días del mes y si el año es bisiesto o no. Cualquier fecha antes del 2 de enero de 4713 A.D. se considerará incorrecta.

Ejemplo: dateIsValid(“10/10/2010″ ) = 1
Ejemplo: dateIsValid(“32/33/2010″ ) = 0
dateToString
Devuelve la fecha como una cadena según las indicaciones del formato.

Sintaxis:

dateToString(fecha, cadenaFormato)

Parámetros:

fecha: fecha de la que queremos generar una cadena. Esta fecha puede ser un literal, una variable, un campo, el retorno de una función, etc.

cadenaFormato: Cadena de formato que especifica como crear la cadena a partir de la fecha.

Formato:
Día: d (1-31) dd (01-31) ddd (Lun-Dom) dddd (Lunes-Domingo)
Mes: M (1-12) MM (01-12) MMM (Ene-Dic) MMMM (Enero-Diciembre)
Año: yy (00-99) yyyy (0000-9999)

El resto de caracteres en la cadena de formato serán tratados como texto. También los caracteres que estén entre comillas simples (‘) en la cadena de formato serán tratados como texto, lo que nos permite tratar los caracteres específicos de formato (d, dd, M, MM, etc.) como texto.

Ejemplo: dateToString(“01/12/2003″, “d’MM’MMcaryyyy” ) = “1MM12car2003″
Ejemplo: dateToString(“30/01/1900″, “M.d” ) = “1.30″
Ejemplo: dateToString(“10/01/2000″, “yyyyMMdd” ) = “20000110″
Ejemplo: dateToString(“10/01/2000″, “yyyyMd” ) = “20000110″
day
Devuelve el día de la fecha.
Sintaxis:

day(fecha)

Parámetros:

fecha: Fecha cuyo día queremos extraer. Esta fecha puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: day(“20/07/1969″) = 20
dayName
Devuelve el nombre del día de la semana que pasemos como parámetro (1 a 7). Si el parámetro abreviatura es true (1), devuelve la forma corta del nombre.
Sintaxis:

dayName(dia, abreviatura)

Parámetros:

dia: Día de la semana cuyo nombre queremos conocer en el idioma local del sistema.

abreviatura: Si el parámetro es true (1), devuelve la forma corta del nombre, si es false (0) devolverá el nombre completo.

Ejemplo: dayName(1,0) = “Lunes”
dayOfWeek
Devuelve el día de la semana (1 al 7) de la fecha.
Sintaxis:

dayOfWeek(fecha)

Parámetros:

fecha: Fecha de la que queremos conocer qué dia de la semana es comenzando a contar desde el lunes, del 1 al 7.

Ejemplo: daysOfWeek(“2008-11-20″) = 4
dayOfYear
Devuelve el día del año (1 al 366) de la fecha.
Sintaxis:

dayOfYear(fecha)

Parámetros:

fecha: Fecha de la que queremos conocer qué dia del año es comenzando a contar desde el 1 de enero, del 1 al 366.

Ejemplo: dayOfYear(“2008-02-10″) = 41
daysInMonth
Devuelve los días del mes (28 al 31) de la fecha.
Sintaxis:

daysInMonth(fecha)

Parámetros:

fecha: Fecha del mes del que queremos conocer cuántos días tiene: 28 ó 29, en función del mes y de si el año es bisiesto o no.

Ejemplo: daysInMonth(“2008-02-10″) = 28
daysInYear
Devuelve los días del año (365 ó 366) de la fecha.
Sintaxis:

daysInYear(fecha)

Parámetros:

fecha: Fecha del año del que queremos conocer cuántos días tiene: 365 ó 366, en función de si es bisiesto o no.

Ejemplo: daysInYear(“2008-02-10″) = 365
daysTo
Devuelve los días entre fechaDesde y fechaHasta.
Sintaxis:

daysTo(fechaDesde, fechaHasta)

Parámetros:

fechaDesde: Fecha inicial.

fechaHasta: Fecha final. El resultado será negativo si fechaHasta es menor que fechaDesde.

Ejemplo: daysTo(“2008-10-10″, “2008-10-20″ ) = 10
isLeapYear
Devuelve true (1) si el año que pasemos como parámetro es bisiesto y false (0) si no lo es.
Sintaxis:

isLeapYear(año)

Parámetros:

año: Año del que queremos saber si es bisiesto o no.

Devuelve 1 si el año que pasemos como parámetro es bisiesto y 0 si no lo es.

Ejemplo: isLeapYear(“2000″) = 0
month
Devuelve el mes de la fecha.
Sintaxis:

month(fecha)

Parámetros:

fecha: Fecha cuyo número de mes queremos conocer.

Devolverá el número de mes de la fecha.

Ejemplo: month(“2008-12-01″) = 12
monthName
Devuelve el nombre del mes que pasemos com parámetro.
Sintaxis:

monthName(mes, abreviatura)

Parámetros:

mes: Número del mes cuyo nombre queremos conocer.

abreviatura: Si el parámetro es 0, devolverá el nombre completo. Si el parámetro es 1, devolverá la forma corta del nombre.

El nombre será devuelto de acuerdo a la configuración de idioma del sistema en el que se solicita.

Ejemplo: monthName(1, 0) = Enero
Ejemplo: monthName(1, 1) = Ene
quarter
Devuelve el trimestre de la fecha.
Sintaxis:

quarter(fecha)

Parámetros:

fecha: Fecha de la que queremos conocer el trimestre al que pertenece.

Ejemplo: quarter( setDate( 2000, 1, 1 ) ) = 1
setDate
Crea una fecha.
Sintaxis:

setDate(año, mes, día)

Parámetros:

Año: Año de la fecha.

Mes: Mes de la fecha.

Día: Día de la fecha.

Si la fecha especificada no es válida, la función retornará una fecha nula, no devolverá nada. Cualquier fecha antes del 2 de enero de 4713 A.D. se considerará incorrecta.

Ejemplo: setDate(1976, 4, 15) = 15 de abril de 1976
stringToDate
Extrae la fecha de una cadena según las indicaciones del formato.
Sintaxis:

stringToDate(cadena, cadenaFormato)

Parámetros:

cadena: Cadena que contiene la fecha.

cadenaFormato: Cadena de formato que especifica como extraer la fecha de la cadena.

Formato:
Día: d (1-31) dd (01-31) ddd (Lun-Dom) dddd (Lunes-Domingo)
Mes: M (1-12) MM (01-12) MMM (Ene-Dic) MMMM (Enero-Diciembre)
Año: yy (00-99) yyyy (0000-9999)

El resto de caracteres en la cadena de formato serán tratados como texto. También los caracteres que estén entre comillas simples (‘) en la cadena de formato serán tratados como texto, lo que nos permite tratar los caracteres específicos de formato (d, dd, M, MM, etc.) como texto.

Si la cadena no se corresponde con el formato especificado la devolverá una fecha nula, no devolverá nada. Esto puede incluir casos en los que se espere ceros por la izquierda u otras incoherencias con el formato esperado.

Los valores que se tomarán por defecto para cualquier dato de la fecha no especificado en el formato son:

Año: 1900
Mes: 1
Día: 1

Ejemplo: stringToDate(“1MM12car2003″, “d’MM’MMcaryyyy” ) = 1 de diciembre de 2003
Ejemplo: stringToDate(“1.30″, “M.d” ) = 30 de enero de 1900
Ejemplo: stringToDate(“20000110″, “yyyyMMdd” ) = 10 de enero de 2000
Ejemplo: stringToDate(“20000110″, “yyyyMd” ) = 10 de enero de 2000

weekOfYear
Devuelve la semana del año (1 a 53) de la fecha.
Sintaxis:

year(fecha)

Parámetros:

fecha: Fecha cuyo número de semana queremos extraer. Esta fecha puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: weekOfYear(“14/11/2008″) = 46
year
Devuelve el año de la fecha.
Sintaxis:

year(fecha)

Parámetros:

fecha: Fecha cuyo año queremos extraer. Esta fecha puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: year(“20/07/1969″) = 1969
Horas
Conjunto de Funciones de fórmula orientadas al manejo de horas.

addMSecondsToHour
Devuelve la hora incrementada los milisegundos.
Sintaxis:

addMSecondsToHour(hora, milisegundos)

Parámetros:

hora: Hora a la que queremos sumar los milisegundos. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.
milisegundos: Milisegundos a sumar a la hora

Ejemplo: addMSecondsToHour( “13:25:05:121″, 10 ) = 13:25:05:131
addSecondsToHour
Devuelve la hora incrementada los segundos.
Sintaxis:

addSecondsToHour(hora, segundos)

Parámetros:

hora: Hora a la que queremos sumar los segundos. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.
milisegundos: Segundos a sumar a la hora

Ejemplo: addSecondsToHour( “13:25:05:121″, 10 ) = 13:25:15:121
currentTime
Devuelve la hora actual
Sintaxis:

currentTime()

Parámetros: No tiene.

Ejemplo: currentTime() = 17:08:01
hour
Devuelve las horas (0 a 23) de la hora
Sintaxis:

hour(hora)

Parámetros:

hora: Hora cuyo dato horas queremos extraer. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: hour(“20:19:08″) = 20
mSecond
Devuelve los milisegundos (0 a 999) de la hora.
Sintaxis:

mSecond(hora)

Parámetros:

hora: Hora cuyo dato milisegundos queremos extraer. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: mSecond( “20:19:08:111″ ) = 111
minute
Devuelve los minutos (0 a 59) de la hora
Sintaxis:

minute(hora)

Parámetros:

hora: Hora cuyo dato minutos queremos extraer. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: minute( “20:19:08:111″ ) = 19
second
Devuelve los segundos (0 a 59) de la hora.
Sintaxis:

second(hora)

Parámetros:

hora: Hora cuyo dato segundos queremos extraer. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: second( “20:19:08:111″ ) = 8
setTime
Crea una hora.
Sintaxis:

setTime(hora, minuto, segundo)

Parámetros:

hora: Dato hora con el que queremos componer la hora.
minuto: Dato minuto con el que queremos componer la hora.
segundo: Dato segundo con el que queremos componer la hora.

Ejemplo: setTime( “13″, “25″, “15″ ) = 13:25:15
stringToTime
Extrae la hora de una cadena según las indicaciones del formato.
Sintaxis:

stringToTime(cadena, cadenaFormato)

Parámetros:

cadena: Cadena que contiene la hora.

cadenaFormato: Cadena de formato que especifica como extraer la hora de la cadena.

Formato:
Horas: h (0-23, 1-12 AM/PM) hh (00-23, 01-12 AM/PM) H (0-23) HH (00-23)
Minutos: m (0-59) mm (00-59)
Segundos: s (0-59) ss (00-59) z (0-999) zzz (000-999)
Periodos: AP (AM/PM) ap (am/pm)

El resto de caracteres en la cadena de formato serán tratados como texto. También los caracteres que estén entre comillas simples (‘) en la cadena de formato serán tratados como texto, lo que nos permite tratar los caracteres específicos de formato (h, hh, H, HH, m, mm, etc.) como texto.

Si la cadena no se corresponde con el formato especificado la devolverá una hora nula, no devolverá nada. Esto puede incluir casos en los que se espere ceros por la izquierda u otras incoherencias con el formato esperado.
timeIsValid
Indica si la hora es válida (Si=1, No=0).
Sintaxis:

timeIsValidr(hora )

Parámetros:

hora: Hora que queremos comprobar. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: timeIsValidr( “13:25:05″ ) = 1
timeToString
Devuelve la hora como una cadena según las indicaciones del formato.
Sintaxis:

timeToString(hora, cadenaFormato)

Parámetros:

hora: Hora que queremos formatear.

cadenaFormato: Cadena de formato que especifica como devolver la cadena de la hora.

Formato:
Horas: h (0-23, 1-12 AM/PM) hh (00-23, 01-12 AM/PM) H (0-23) HH (00-23)
Minutos: m (0-59) mm (00-59)
Segundos: s (0-59) ss (00-59) z (0-999) zzz (000-999)
Periodos: AP (AM/PM) ap (am/pm)
Internet
Conjunto de Funciones de fórmula que nos permiten componer y extraer información de URL’s.

urlHost
Devuelve el dominio o IP de la url.
Sintaxis:

urlHost(url)

Parámetros:

url: Expresión alfabética de referencia que contendrá la url cuyo dominio se desea obtener.

Ejemplos:
urlHost(“http://127.0.0.1/Index.pag”) = 127.0.0.1
urlHost(“http://velneo.com/index.htm”) = velneo.com
urlMake
Compone una url según el formato siguiente:

esquema://usuario:contraseña@dominio:puerto/senda
Sintaxis:

urlMake(esquema, dominio, senda, puerto, usuario, contraseña)

Parámetros:

esquema: Esquema del protocolo de comunicaciones.

dominio: IP o dominio.

senda: Senda dentro del dominio.

puerto: Número de puerto de comunicación.

usuairo: Identificador del usuario.

contraseña: Contraseña del usuario.

Ejemplo: urlMake(“http”, “www.dominio.com”, “login.htm”, “82″, “mi_usuario”, “pwd”) = http://mi_usuario:pwd@www.dominio.com:82/login.htm
urlPassword
Extrae la contraseña de una url con el formato siguiente:

esquema://usuario:contraseña@dominio:puerto/senda
Sintaxis:

urlPassword( url )

Parámetros:

url: Expresión alfabética que contendrá la URL cuya contraseña queremos extraer.

Ejemplo: urlPassword(“http://usuario123:abc123@www.velneo.com:81/enter.htm” ) = abc123
urlPath
Devuelve la senda de la URL que se le pase como parámetro.
Sintaxis:

urlPath(url)

Parámetros:

url: Expresión alfabética de referencia que contendrá la url cuya senda se desea extraer.

Ejemplos:
urlPath(“http://velneo.com/floss/velneofloss/”) = /floss/velneofloss/
urlPort
Devuelve el puerto de la Url pasada como parámetro.
Sintaxis:

urlPort(url)

Parámetros:

url: Expresión alfabética de referencia que contendrá la Url cuyo puerto se desea obtener. No se especifica número de puerto alguno, la función devolverá -1.

Ejemplo: urlPort(“http://usuario123:abc123@www.velneo.com:81/enter.htm” ) = 81
urlScheme
Devuelve el esquema o el protocolo de la Url pasada como parámetro.
Sintaxis:

urlScheme(url)

Parámetros:

url: Expresión fórmula que contendrá la Url cuyo esquema queremos obtener.

Ejemplo: urlScheme(“vatp://v7cloud2.velneo.com:6000″ ) = vatp
urlUserName
Extrae el nombre de usuario de una url con el formato siguiente:

esquema://usuario:contraseña@dominio:puerto/senda
Sintaxis:

urlUserName(url)

Parámetros:

url: Expresión fórmula que contendrá la Url cuyo usuario deseamos extraer.

Ejemplo: urlUserName(“http://user123:abc123@www.velneo.com:81/enter.htm” ) = user123
Juegos de caracteres
Conjunto de Funciones de fórmula que trabajan con juegos de caracteres permitiéndonos conocer el juego de caracteres de las cadenas y obtener sus códigos y caracteres.

checkAlpha128Set
Verifica si todos los caracteres de la cadena pertenecen al juego de caracteres.
Sintaxis:

checkAlpha128Set(cadena)

Parámetros:

cadena: Cadena cuyos caracteres queremos comprobar si se encuentran en el juego de caracteres Alfa 128. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Retornará 1 si todos los caracteres de la cadena están en el juego de caracteres y 0 si no es así.

Ejemplo: checkAlpha128Set(“Prueba”, “€”) = 0
checkAlpha256Set
Verifica si todos los caracteres de la cadena pertenecen al juego de caracteres.
Sintaxis:

checkAlpha256Set(cadena)

Parámetros:

cadena: Cadena cuyos caracteres queremos comprobar si se encuentran en el juego de caracteres Alfa 256. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Retornará 1 si todos los caracteres de la cadena están en el juego de caracteres y 0 si no es así.

Ejemplo: checkAlpha256Set(“Prueba”, “€”) = 1
checkAlpha40Set
Verifica si todos los caracteres de la cadena pertenecen al juego de caracteres.
Sintaxis:

checkAlpha40Set(cadena)

Parámetros:

cadena: Cadena cuyos caracteres queremos comprobar si se encuentran en el juego de caracteres Alfa 40. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Retornará 1 si todos los caracteres de la cadena están en el juego de caracteres y 0 si no es así.

Ejemplo: checkAlpha40Set(“Prueba”, “a”) = 0
checkAlpha64Set
Verifica si todos los caracteres de la cadena pertenecen al juego de caracteres.
Sintaxis:

checkAlpha64Set(cadena)

Parámetros:

cadena: Cadena cuyos caracteres queremos comprobar si se encuentran en el juego de caracteres Alfa 64. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Retornará 1 si todos los caracteres de la cadena están en el juego de caracteres y 0 si no es así.

Ejemplo: checkAlpha64Set(“Prueba”, “€”) = 0
checkAlphaNumSet
Verifica si todos los caracteres de la cadena son dígitos numéricos (0-9) o caracteres alfabéticos (a-Z, A-Z, Ñ, Ç y tildes)
Sintaxis:

checkAlphaNumSet(cadena)

Parámetros:

cadena: Cadena cuyos caracteres queremos comprobar si está compuesta únicamente por caracteres alfabéticos o numéricos. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Retornará 1 si todos los caracteres de la cadena son alfabéticos o numéricos y 0 si no es así.

Ejemplo: checkAlphaNumSet(“abc1234″) = 1
checkAlphaSet
Verifica si todos los caracteres de la cadena son caracteres alfabéticos (a-Z, A-Z, Ñ, Ç y tildes).
Sintaxis:

checkAlphaSet(cadena)

Parámetros:

cadena: Cadena cuyos caracteres queremos comprobar si está compuesta únicamente por caracteres alfabéticos. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Retornará 1 si todos los caracteres de la cadena son alfabéticos y 0 si no es así.

Ejemplo: checkAlphaSet(“abc”) = 1
checkAsciiSet
Verifica si todos los caracteres de la cadena pertenecen al juego de caracteres.
Sintaxis:

checkAsciiSet(cadena)

Parámetros:

cadena: Cadena cuyos caracteres queremos comprobar si se encuentran en el juego de caracteres ASCII. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Retornará 1 si todos los caracteres de la cadena están en el juego de caracteres y 0 si no es así.
codec: Cadena que contiene el nombre del juego de caracteres ASCII en el que se encuentra la cadena que queremos comprobar.

Apple Roman
Nombre: macintosh
Alias: mac
Alias: csMacintosh

Big5
Alias: csBig5

Big5-HKSCS

EUC-JP
Alias: csEUCFixWidJapanese

EUC-KR
Alias: csEUCKR

GB18030-0
Nombre: GB18030

IBM 850
Nombre: IBM850
Alias: cp850
Alias: 850
Alias: csPC850Multilingual

IBM 866
Nombre: IBM866
Alias: cp866
Alias: 866
Alias: csIBM866

IBM 874
Nombre: IBM-Thai
Alias: csIBMThai

ISO 2022-JP
Nombre: ISO-2022-JP
Alias: csISO2022JP

ISO 8859-1 to 10
Nombre: ISO_8859-1
Alias: iso-ir-100
Alias: ISO_8859-1
Alias: ISO-8859-1 (preferred MIME name)
Alias: latin1
Alias: l1
Alias: IBM819
Alias: CP819
Alias: csISOLatin1

Nombre: ISO_8859-2
Alias: iso-ir-101
Alias: ISO_8859-2
Alias: ISO-8859-2 (preferred MIME name)
Alias: latin2
Alias: l2
Alias: csISOLatin2

Nombre: ISO_8859-3
Alias: iso-ir-109
Alias: ISO_8859-3
Alias: ISO-8859-3 (preferred MIME name)
Alias: latin3
Alias: l3
Alias: csISOLatin3

Nombre: ISO_8859-4
Alias: iso-ir-110
Alias: ISO_8859-4
Alias: ISO-8859-4 (preferred MIME name)
Alias: latin4
Alias: l4
Alias: csISOLatin4

Nombre: ISO_8859-5
Alias: iso-ir-144
Alias: ISO_8859-5
Alias: ISO-8859-5 (preferred MIME name)
Alias: cyrillic
Alias: csISOLatinCyrillic

Nombre: ISO_8859-6
Alias: iso-ir-127
Alias: ISO_8859-6
Alias: ISO-8859-6 (preferred MIME name)
Alias: ECMA-114
Alias: ASMO-708
Alias: arabic
Alias: csISOLatinArabic

Nombre: ISO_8859-7
Alias: iso-ir-126
Alias: ISO_8859-7
Alias: ISO-8859-7 (preferred MIME name)
Alias: ELOT_928
Alias: ECMA-118
Alias: greek
Alias: greek8
Alias: csISOLatinGreek

Nombre: ISO_8859-8
Alias: iso-ir-138
Alias: ISO_8859-8
Alias: ISO-8859-8 (preferred MIME name)
Alias: hebrew
Alias: csISOLatinHebrew

Nombre: ISO_8859-9
Alias: iso-ir-148
Alias: ISO_8859-9
Alias: ISO-8859-9 (preferred MIME name)
Alias: latin5
Alias: l5
Alias: csISOLatin5

Nombre: ISO-8859-10 (preferred MIME name)
Alias: iso-ir-157
Alias: l6
Alias: ISO_8859-10:1992
Alias: csISOLatin6
Alias: latin6

ISO 8859-13 to 16

Nombre: ISO-8859-13

Nombre: ISO-8859-14
Alias: iso-ir-199
Alias: ISO_8859-14:1998
Alias: ISO_8859-14
Alias: latin8
Alias: iso-celtic
Alias: l8

Nombre: ISO-8859-15
Alias: ISO_8859-15
Alias: Latin-9

Nombre: ISO-8859-16
Alias: iso-ir-226
Alias: ISO_8859-16:2001
Alias: ISO_8859-16
Alias: latin10
Alias: l10

Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml

JIS X 0201
Nombre: JIS_X0201
Alias: X0201
Alias: csHalfWidthKatakana

JIS X 0208
Nombre: Shift_JIS (preferred MIME name)
Alias: MS_Kanji
Alias: csShiftJIS

KOI8-R
Nombre: KOI8-R (preferred MIME name)
Alias: csKOI8R

KOI8-U

MuleLao-1

ROMAN8
Nombre: hp-roman8
Alias: roman8
Alias: r8
Alias: csHPRoman8

Shift-JIS
Nombre: Shift_JIS
Alias: MS_Kanji
Alias: csShiftJIS

TIS-620

TSCII
Alias: csTSCII

UTF-8

UTF-16

UTF-16BE

UTF-16LE

Windows-1250 to 1258

WINSAMI2

Ejemplo: checkAsciiSet(“€”, “IBM850″) = 0
checkLatin1Set
Verifica si todos los caracteres de la cadena pertenecen al juego de caracteres.
Sintaxis:

checkLatin1Set(cadena)

Parámetros:

cadena: Cadena cuyos caracteres queremos comprobar si se encuentran en el juego de caracteres Latin1. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Retornará 1 si todos los caracteres de la cadena están en el juego de caracteres y 0 si no es así.

Ejemplo: checkLatin1Set(“Prueba”, “€”) = 0
checkNumSet
Verifica si todos los caracteres de la cadena son dígitos numéricos (0-9).
Sintaxis:

checkNumSet(cadena)

Parámetros:

cadena: Cadena cuyos caracteres queremos comprobar si está compuesta únicamente por caracteres numéricos. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Retornará 1 si todos los caracteres de la cadena son numéricos y 0 si no es así.

Ejemplo: checkNumSet(“1234″) = 1
checkOwnSet
Verifica si todos los caracteres de la primera cadena pertenecen también a la segunda cadena.
Sintaxis:

checkOwnSet(cadena, charset)

Parámetros:

cadena: Cadena cuyos caracteres queremos comprobar si se encuentran en la segunda cadena. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
charset: Juego de caracteres propio sobre el que queremos realizar la comprobación. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Retornará 1 si todos los caracteres de la cadena están en el charset y 0 si no es así.

Ejemplo: checkOwnSet(“Prueba”, “abc”) = 0
getAlpha128Char
Devuelve el carácter del juego de caracteres correspondiente al código pasado como parámetro.
Sintaxis:

getAlpha128Char(codigo)

Parámetros:

codigo: Código cuyo carácter queremos conocer en el juego de caracteres Alfa 128. Este código puede ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: getAlpha128Char(97) = a
getAlpha128CharCode
Devuelve el código en el juego de caracteres correspondiente al caracter pasado como parámetro.
Sintaxis:

getAlpha128CharCode(caracter)

Parámetros:

caracter: Cadena de un único carácter cuyo código queremos conocer en el juego de caracteres Alfa 128. Si la cadena contiene más de un carácter, evaluará el primero de la cadena. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: getAlpha128CharCode(“a”) = 97
getAlpha256Char
Devuelve el carácter del juego de caracteres correspondiente al código pasado como parámetro.
Sintaxis:

getAlpha256Char(codigo)

Parámetros:

codigo: Código cuyo carácter queremos conocer en el juego de caracteres Alfa 256. Este código puede ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: getAlpha256Char(97) = a
getAlpha256CharCode
Devuelve el código en el juego de caracteres correspondiente al caracter pasado como parámetro.
Sintaxis:

getAlpha256CharCode(caracter)

Parámetros:

caracter: Cadena de un único carácter cuyo código queremos conocer en el juego de caracteres Alfa 256. Si la cadena contiene más de un carácter, evaluará el primero de la cadena. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: getAlpha256CharCode(“a”) = 97
getAlpha40Char
Devuelve el carácter del juego de caracteres correspondiente al código pasado como parámetro.
Sintaxis:

getAlpha40Char(codigo)

Parámetros:

codigo: Código cuyo carácter queremos conocer en el juego de caracteres Alfa 40. Este código puede ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: getAlpha40Char(97) = a
getAlpha40CharCode
Devuelve el código en el juego de caracteres correspondiente al caracter pasado como parámetro.
Sintaxis:

getAlpha40CharCode(caracter)

Parámetros:

caracter: Cadena de un único carácter cuyo código queremos conocer en el juego de caracteres Alfa 40. Si la cadena contiene más de un carácter, evaluará el primero de la cadena. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: getAlpha40CharCode(“a”) = 97
getAlpha64Char
Devuelve el caracter del juego de caracteres correspondiente al código pasado como parámetro.
Sintaxis:

getAlpha64Char(codigo)

Parámetros:

codigo: Código cuyo carácter queremos conocer en el juego de caracteres Alfa 64. Este código puede ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: getAlpha64Char(97) = a
getAlpha64CharCode
Devuelve el código en el juego de caracteres correspondiente al caracter pasado como parámetro.
Sintaxis:

getAlpha64CharCode(caracter)

Parámetros:

caracter: Cadena de un único carácter cuyo código queremos conocer en el juego de caracteres Alfa 64. Si la cadena contiene más de un carácter, evaluará el primero de la cadena. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: getAlpha40CharCode(“a”) = 97
getAsciiChar
Devuelve el caracter del juego de caracteres correspondiente al código pasado como parámetro.
Sintaxis:

getAsciiChar(codigo,codec)

Parámetros:

codigo: Código cuyo carácter queremos conocer en el juego de caracteres ASCII. Este código puede ser un número, una variable, un campo, el retorno de una función, etc.
codec: Cadena que contiene el nombre del juego de caracteres ASCII en el que se encuentra el carácter cuyo caracter queremos recuperar.

Apple Roman
Nombre: macintosh
Alias: mac
Alias: csMacintosh

Big5
Alias: csBig5

Big5-HKSCS

EUC-JP
Alias: csEUCFixWidJapanese

EUC-KR
Alias: csEUCKR

GB18030-0
Nombre: GB18030

IBM 850
Nombre: IBM850
Alias: cp850
Alias: 850
Alias: csPC850Multilingual

IBM 866
Nombre: IBM866
Alias: cp866
Alias: 866
Alias: csIBM866

IBM 874
Nombre: IBM-Thai
Alias: csIBMThai

ISO 2022-JP
Nombre: ISO-2022-JP
Alias: csISO2022JP

ISO 8859-1 to 10
Nombre: ISO_8859-1
Alias: iso-ir-100
Alias: ISO_8859-1
Alias: ISO-8859-1 (preferred MIME name)
Alias: latin1
Alias: l1
Alias: IBM819
Alias: CP819
Alias: csISOLatin1

Nombre: ISO_8859-2
Alias: iso-ir-101
Alias: ISO_8859-2
Alias: ISO-8859-2 (preferred MIME name)
Alias: latin2
Alias: l2
Alias: csISOLatin2

Nombre: ISO_8859-3
Alias: iso-ir-109
Alias: ISO_8859-3
Alias: ISO-8859-3 (preferred MIME name)
Alias: latin3
Alias: l3
Alias: csISOLatin3

Nombre: ISO_8859-4
Alias: iso-ir-110
Alias: ISO_8859-4
Alias: ISO-8859-4 (preferred MIME name)
Alias: latin4
Alias: l4
Alias: csISOLatin4

Nombre: ISO_8859-5
Alias: iso-ir-144
Alias: ISO_8859-5
Alias: ISO-8859-5 (preferred MIME name)
Alias: cyrillic
Alias: csISOLatinCyrillic

Nombre: ISO_8859-6
Alias: iso-ir-127
Alias: ISO_8859-6
Alias: ISO-8859-6 (preferred MIME name)
Alias: ECMA-114
Alias: ASMO-708
Alias: arabic
Alias: csISOLatinArabic

Nombre: ISO_8859-7
Alias: iso-ir-126
Alias: ISO_8859-7
Alias: ISO-8859-7 (preferred MIME name)
Alias: ELOT_928
Alias: ECMA-118
Alias: greek
Alias: greek8
Alias: csISOLatinGreek

Nombre: ISO_8859-8
Alias: iso-ir-138
Alias: ISO_8859-8
Alias: ISO-8859-8 (preferred MIME name)
Alias: hebrew
Alias: csISOLatinHebrew

Nombre: ISO_8859-9
Alias: iso-ir-148
Alias: ISO_8859-9
Alias: ISO-8859-9 (preferred MIME name)
Alias: latin5
Alias: l5
Alias: csISOLatin5

Nombre: ISO-8859-10 (preferred MIME name)
Alias: iso-ir-157
Alias: l6
Alias: ISO_8859-10:1992
Alias: csISOLatin6
Alias: latin6

ISO 8859-13 to 16

Nombre: ISO-8859-13

Nombre: ISO-8859-14
Alias: iso-ir-199
Alias: ISO_8859-14:1998
Alias: ISO_8859-14
Alias: latin8
Alias: iso-celtic
Alias: l8

Nombre: ISO-8859-15
Alias: ISO_8859-15
Alias: Latin-9

Nombre: ISO-8859-16
Alias: iso-ir-226
Alias: ISO_8859-16:2001
Alias: ISO_8859-16
Alias: latin10
Alias: l10

Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml

JIS X 0201
Nombre: JIS_X0201
Alias: X0201
Alias: csHalfWidthKatakana

JIS X 0208
Nombre: Shift_JIS (preferred MIME name)
Alias: MS_Kanji
Alias: csShiftJIS

KOI8-R
Nombre: KOI8-R (preferred MIME name)
Alias: csKOI8R

KOI8-U

MuleLao-1

ROMAN8
Nombre: hp-roman8
Alias: roman8
Alias: r8
Alias: csHPRoman8

Shift-JIS
Nombre: Shift_JIS
Alias: MS_Kanji
Alias: csShiftJIS

TIS-620

TSCII
Alias: csTSCII

UTF-8

UTF-16

UTF-16BE

UTF-16LE

Windows-1250 to 1258

WINSAMI2

Ejemplo: getAsciiChar(97, “ISO-8859-1″) = “a”
getAsciiCharCode
Devuelve el código en el juego de caracteres correspondiente al caracter pasado como parámetro.
Sintaxis:

getAsciiCharCode(caracter, codec)

Parámetros:

caracter: Cadena de un único carácter cuyo código queremos conocer en el juego de caracteres ASCII. Si la cadena contiene más de un carácter, evaluará el primero de la cadena. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
codec: Cadena que contiene el nombre del juego de caracteres en el que se encuentra el carácter cuyo código queremos conocer.

Apple Roman
Nombre: macintosh
Alias: mac
Alias: csMacintosh

Big5
Alias: csBig5

Big5-HKSCS

EUC-JP
Alias: csEUCFixWidJapanese

EUC-KR
Alias: csEUCKR

GB18030-0
Nombre: GB18030

IBM 850
Nombre: IBM850
Alias: cp850
Alias: 850
Alias: csPC850Multilingual

IBM 866
Nombre: IBM866
Alias: cp866
Alias: 866
Alias: csIBM866

IBM 874
Nombre: IBM-Thai
Alias: csIBMThai

ISO 2022-JP
Nombre: ISO-2022-JP
Alias: csISO2022JP

ISO 8859-1 to 10
Nombre: ISO_8859-1
Alias: iso-ir-100
Alias: ISO_8859-1
Alias: ISO-8859-1 (preferred MIME name)
Alias: latin1
Alias: l1
Alias: IBM819
Alias: CP819
Alias: csISOLatin1

Nombre: ISO_8859-2
Alias: iso-ir-101
Alias: ISO_8859-2
Alias: ISO-8859-2 (preferred MIME name)
Alias: latin2
Alias: l2
Alias: csISOLatin2

Nombre: ISO_8859-3
Alias: iso-ir-109
Alias: ISO_8859-3
Alias: ISO-8859-3 (preferred MIME name)
Alias: latin3
Alias: l3
Alias: csISOLatin3

Nombre: ISO_8859-4
Alias: iso-ir-110
Alias: ISO_8859-4
Alias: ISO-8859-4 (preferred MIME name)
Alias: latin4
Alias: l4
Alias: csISOLatin4

Nombre: ISO_8859-5
Alias: iso-ir-144
Alias: ISO_8859-5
Alias: ISO-8859-5 (preferred MIME name)
Alias: cyrillic
Alias: csISOLatinCyrillic

Nombre: ISO_8859-6
Alias: iso-ir-127
Alias: ISO_8859-6
Alias: ISO-8859-6 (preferred MIME name)
Alias: ECMA-114
Alias: ASMO-708
Alias: arabic
Alias: csISOLatinArabic

Nombre: ISO_8859-7
Alias: iso-ir-126
Alias: ISO_8859-7
Alias: ISO-8859-7 (preferred MIME name)
Alias: ELOT_928
Alias: ECMA-118
Alias: greek
Alias: greek8
Alias: csISOLatinGreek

Nombre: ISO_8859-8
Alias: iso-ir-138
Alias: ISO_8859-8
Alias: ISO-8859-8 (preferred MIME name)
Alias: hebrew
Alias: csISOLatinHebrew

Nombre: ISO_8859-9
Alias: iso-ir-148
Alias: ISO_8859-9
Alias: ISO-8859-9 (preferred MIME name)
Alias: latin5
Alias: l5
Alias: csISOLatin5

Nombre: ISO-8859-10 (preferred MIME name)
Alias: iso-ir-157
Alias: l6
Alias: ISO_8859-10:1992
Alias: csISOLatin6
Alias: latin6

ISO 8859-13 to 16

Nombre: ISO-8859-13

Nombre: ISO-8859-14
Alias: iso-ir-199
Alias: ISO_8859-14:1998
Alias: ISO_8859-14
Alias: latin8
Alias: iso-celtic
Alias: l8

Nombre: ISO-8859-15
Alias: ISO_8859-15
Alias: Latin-9

Nombre: ISO-8859-16
Alias: iso-ir-226
Alias: ISO_8859-16:2001
Alias: ISO_8859-16
Alias: latin10
Alias: l10

Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml

JIS X 0201
Nombre: JIS_X0201
Alias: X0201
Alias: csHalfWidthKatakana

JIS X 0208
Nombre: Shift_JIS (preferred MIME name)
Alias: MS_Kanji
Alias: csShiftJIS

KOI8-R
Nombre: KOI8-R (preferred MIME name)
Alias: csKOI8R

KOI8-U

MuleLao-1

ROMAN8
Nombre: hp-roman8
Alias: roman8
Alias: r8
Alias: csHPRoman8

Shift-JIS
Nombre: Shift_JIS
Alias: MS_Kanji
Alias: csShiftJIS

TIS-620

TSCII
Alias: csTSCII

UTF-8

UTF-16

UTF-16BE

UTF-16LE

Windows-1250 to 1258

WINSAMI2

Ejemplo: getAsciiCharCode(“a”, “ISO-8859-1″) = 97
getLatin1Char
Devuelve el caracter del juego de caracteres correspondiente al código pasado como parámetro.
Sintaxis:

getLatin1Char(codigo)

Parámetros:

codigo: Código cuyo carácter queremos conocer en el juego de caracteres Latin1. Este código puede ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: getLatin1Char(97) = a
getLatin1CharCode
Devuelve el código en el juego de caracteres correspondiente al caracter pasado como parámetro.
Sintaxis:

getLatin1CharCode(caracter)

Parámetros:

caracter: Cadena de un único carácter cuyo código queremos conocer en el juego de caracteres Latin1. Si la cadena contiene más de un carácter, evaluará el primero de la cadena. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: getLatin1CharCode(“a”) = 97
getUnicodeChar
Devuelve el caracter del juego de caracteres correspondiente al código pasado como parámetro.
Sintaxis:

getUnicodeChar(codigo)

Parámetros:

codigo: Código cuyo carácter queremos conocer en el juego de caracteres Unicode. Este código puede ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: getUnicodeChar(97) = a
getUnicodeCharCode
Devuelve el código en el juego de caracteres correspondiente al caracter pasado como parámetro.
Sintaxis:

getUnicodeCharCode(caracter)

Parámetros:

caracter: Cadena de un único carácter cuyo código queremos conocer en el juego de caracteres Unicode. Si la cadena contiene más de un carácter, evaluará el primero de la cadena. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.

Ejemplo: getUnicodeCharCode(“a”) = 97
stringToAlpha128
Devuelve la cadena pasada como parámetro en el juego de caracteres correspondiente.
Sintaxis:

stringToAlpha128(cadena)

Parámetros:

cadena: Cadena que queremos sea retornada en el conjunto de caracteres Alfa 128. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Los caracteres que no estén en el conjunto se representarán como un espacio en blanco. Si se encuentran al final de la cadena, se despreciarán.

Ejemplo: stringToAlpha256(“áéíóú()\/€ÁÉÍÓÚçÇñÑ” ) = áéíóú() / ÁÉÍÓÚçÇñÑ
stringToAlpha256
Devuelve la cadena pasada como parámetro en el juego de caracteres correspondiente.
Sintaxis:

stringToAlpha256(cadena)

Parámetros:

cadena: Cadena que queremos sea retornada en el conjunto de caracteres Alfa 256. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Los caracteres que no estén en el conjunto se representarán como un espacio en blanco. Si se encuentran al final de la cadena, se despreciarán.

Ejemplo: stringToAlpha256(“áéíóú()\/€ÁÉÍÓÚçÇñÑ” ) = áéíóú()\/€ÁÉÍÓÚçÇñÑ
stringToAlpha40
Devuelve la cadena pasada como parámetro en el juego de caracteres correspondiente.
Sintaxis:

stringToAscii(cadena)

Parámetros:

cadena: Cadena que queremos sea retornada en el conjunto de caracteres Alfa 64. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Los caracteres que no estén en el conjunto se representarán como un espacio en blanco. Si se encuentran al final de la cadena, se despreciarán.

Ejemplo: stringToAlpha64(“áéíóú()\/€ÁÉÍÓÚçÇñÑ” ) = AEIOU AEIOUÇÇÑÑ
stringToAlpha64
Devuelve la cadena pasada como parámetro en el juego de caracteres correspondiente.
Sintaxis:

stringToAlpha64(cadena)

Parámetros:

cadena: Cadena que queremos sea retornada en el conjunto de caracteres Alfa 64. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Los caracteres que no estén en el conjunto se representarán como un espacio en blanco. Si se encuentran al final de la cadena, se despreciarán.

Ejemplo: stringToAlpha64(“áéíóú()\/€ÁÉÍÓÚçÇñÑ” ) = AEIOU() / AEIOUÇÇÑÑ
stringToAscii
Devuelve la cadena pasada como parámetro en el juego de caracteres correspondiente.
Sintaxis:

stringToAscii(cadena)

Parámetros:

cadena: Cadena que queremos sea retornada en el conjunto de caracteres ASCII. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
codec: Cadena que contiene el nombre del juego de caracteres ASCII en el que se encuentra la cadena que queremos obtener.

Apple Roman
Nombre: macintosh
Alias: mac
Alias: csMacintosh

Big5
Alias: csBig5

Big5-HKSCS

EUC-JP
Alias: csEUCFixWidJapanese

EUC-KR
Alias: csEUCKR

GB18030-0
Nombre: GB18030

IBM 850
Nombre: IBM850
Alias: cp850
Alias: 850
Alias: csPC850Multilingual

IBM 866
Nombre: IBM866
Alias: cp866
Alias: 866
Alias: csIBM866

IBM 874
Nombre: IBM-Thai
Alias: csIBMThai

ISO 2022-JP
Nombre: ISO-2022-JP
Alias: csISO2022JP

ISO 8859-1 to 10
Nombre: ISO_8859-1
Alias: iso-ir-100
Alias: ISO_8859-1
Alias: ISO-8859-1 (preferred MIME name)
Alias: latin1
Alias: l1
Alias: IBM819
Alias: CP819
Alias: csISOLatin1

Nombre: ISO_8859-2
Alias: iso-ir-101
Alias: ISO_8859-2
Alias: ISO-8859-2 (preferred MIME name)
Alias: latin2
Alias: l2
Alias: csISOLatin2

Nombre: ISO_8859-3
Alias: iso-ir-109
Alias: ISO_8859-3
Alias: ISO-8859-3 (preferred MIME name)
Alias: latin3
Alias: l3
Alias: csISOLatin3

Nombre: ISO_8859-4
Alias: iso-ir-110
Alias: ISO_8859-4
Alias: ISO-8859-4 (preferred MIME name)
Alias: latin4
Alias: l4
Alias: csISOLatin4

Nombre: ISO_8859-5
Alias: iso-ir-144
Alias: ISO_8859-5
Alias: ISO-8859-5 (preferred MIME name)
Alias: cyrillic
Alias: csISOLatinCyrillic

Nombre: ISO_8859-6
Alias: iso-ir-127
Alias: ISO_8859-6
Alias: ISO-8859-6 (preferred MIME name)
Alias: ECMA-114
Alias: ASMO-708
Alias: arabic
Alias: csISOLatinArabic

Nombre: ISO_8859-7
Alias: iso-ir-126
Alias: ISO_8859-7
Alias: ISO-8859-7 (preferred MIME name)
Alias: ELOT_928
Alias: ECMA-118
Alias: greek
Alias: greek8
Alias: csISOLatinGreek

Nombre: ISO_8859-8
Alias: iso-ir-138
Alias: ISO_8859-8
Alias: ISO-8859-8 (preferred MIME name)
Alias: hebrew
Alias: csISOLatinHebrew

Nombre: ISO_8859-9
Alias: iso-ir-148
Alias: ISO_8859-9
Alias: ISO-8859-9 (preferred MIME name)
Alias: latin5
Alias: l5
Alias: csISOLatin5

Nombre: ISO-8859-10 (preferred MIME name)
Alias: iso-ir-157
Alias: l6
Alias: ISO_8859-10:1992
Alias: csISOLatin6
Alias: latin6

ISO 8859-13 to 16

Nombre: ISO-8859-13

Nombre: ISO-8859-14
Alias: iso-ir-199
Alias: ISO_8859-14:1998
Alias: ISO_8859-14
Alias: latin8
Alias: iso-celtic
Alias: l8

Nombre: ISO-8859-15
Alias: ISO_8859-15
Alias: Latin-9

Nombre: ISO-8859-16
Alias: iso-ir-226
Alias: ISO_8859-16:2001
Alias: ISO_8859-16
Alias: latin10
Alias: l10

Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml

JIS X 0201
Nombre: JIS_X0201
Alias: X0201
Alias: csHalfWidthKatakana

JIS X 0208
Nombre: Shift_JIS (preferred MIME name)
Alias: MS_Kanji
Alias: csShiftJIS

KOI8-R
Nombre: KOI8-R (preferred MIME name)
Alias: csKOI8R

KOI8-U

MuleLao-1

ROMAN8
Nombre: hp-roman8
Alias: roman8
Alias: r8
Alias: csHPRoman8

Shift-JIS
Nombre: Shift_JIS
Alias: MS_Kanji
Alias: csShiftJIS

TIS-620

TSCII
Alias: csTSCII

UTF-8

UTF-16

UTF-16BE

UTF-16LE

Windows-1250 to 1258

WINSAMI2

Ejemplo: stringToAscii(“áéíóú()\/€ÁÉÍÓÚçÇñÑ”, “IBM850″ ) = áéíóú()\/ ÁÉÍÓÚçÇñÑ
stringToLatin1
Devuelve la cadena pasada como parámetro en el juego de caracteres correspondiente.
Sintaxis:

stringToLatin1(cadena)

Parámetros:

cadena: Cadena que queremos sea retornada en el conjunto de caracteres Latin1. Esta cadena puede ser un literal, una variable, un campo, el retorno de una función, etc.
Los caracteres que no estén en el conjunto se representarán como un espacio en blanco. Si se encuentran al final de la cadena, se despreciarán.

Ejemplo: stringToLatin1(“áéíóú()\/€ÁÉÍÓÚçÇñÑ” ) = áéíóú()\/ ÁÉÍÓÚçÇñÑ
Numéricas
Conjunto de Funciones de fórmula que nos permiten operar con números.

abs
Devuelve el valor absoluto de x
Sintaxis:

abs(x)

Parámetros:

x: Número cuyo valor absolutol será calculado. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc.
La función devuelve el valor absoluto del número pasado como parámetro.

Ejemplo: abs(-357) = 357
bound
Ajusta el dato a los límites mínimo y máximo.
Sintaxis:

bound(min, dato, max)

Parámetros:

min: Dato númerico, líminte inicial del rango.
min: Número cuyo valor será calculado entre los limites.
min: Dato númerico, líminte inicial del rango.
Estos parámetros pueden ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: bound(0, 357, 100 ) =100
cut
Recorta el valor de x
Sintaxis:

cut( x, decimales)

Parámetros:

x: Número cuyo valor será redondeado.
decimales: Dato númerico, posición del decimal a redondear.
Estos parámetros pueden ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: cut(3′3055, 3 ) = 3′305
max
Devuelve el mayor de los dos
Sintaxis:

max(dato1, dato2)

Parámetros:

dato1: Dato númerico que se considerará en la operación.
dato2: Dato númerico que se considerará en la operación.
Estos parámetros pueden ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: max( 7, 3 ) = 7
min
Devuelve el menor de los dos
Sintaxis:

min(dato1, dato2)

Parámetros:

dato1: Dato númerico que se considerará en la operación.
dato2: Dato númerico que se considerará en la operación.
Estos parámetros pueden ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: min( 7, 3 ) = 3
net
Devuelve el neto del importe, es decir el importe menos el porcentaje
Sintaxis:

net(importe, porcentaje)

Parámetros:

importe: Dato númerico al que se va a quitar el porcentaje.
porcentaje: Porcentaje que restaremos al importe. Este dato debe estar comprendido entre 0 y 100
Estos parámetros pueden ser un número, una variable, un campo, el retorno de una función, etc.

Ejemplo: net( 100, 30 ) = 70
numberToString
Devuelve un numero como cadena según el formato y la precisión.
Sintaxis:

numberToString(numero, formato, precision)

Parámetros:

numero: Número a partir del que queremos generar una cadena. Este número puede ser un literal, una variable, un campo, el retorno de una función, etc.
formato: Cadena de formato que especifica como crear la cadena a partir del número.
precision: Cadena de formato que especifica como crear la cadena a partir del número.

Convierte un numero en una cadena según el formato y la precisión que especifiquemos.

f ([-]9.9)
e ([-]9.9e[+|-]999)
E ([-]9.9E[+|-]999)
g (Formato más conciso entre e ó f)
G (Formato más conciso entre E ó f)

La precisión es el número de decimales significativos después de la coma.

Ejemplo: numberToString(0.111111, “f”, 2 ) = 0.11
Ejemplo: numberToString(0.111111, “e”, 2 ) = 1.11e-1
Ejemplo: numberToString(0.111111, “E”, 2 ) = 1.11E-1
Ejemplo: numberToString(0.111111, “g”, 2 ) = 0.11

percentage
Devuelve el porcentaje del importe.
Sintaxis:

percentage(importe, porcentaje)

Parámetros:

importe: Dato de tipo numérico con el importe cuyo porcentaje se desea obtener.
porcentaje: Dato de tipo numérico con el porcentaje.

Ejemplo: percentaje(100, 25 ) = 25
random
Genera un número entero aleatorio.
Sintaxis:

random()

Parámetros: No tiene.

Genera un número entero aleatorio

Ejemplo: random() = 123
round
Redondea el valor de x.
Sintaxis:

round(x, decimales)

Parámetros:

x: Dato numérico a redondear.
decimales: Posición del decimal a redondear.

Ejemplos:
round(“12.7822″, “0″ ) = 13
round(“12.7822″, “1″ ) = 12.8
round(“12.7822″, “2″ ) = 12.78
stringToNumber
Devuelve el valor numérico de la cadena.
Sintaxis:

stringToNumber(cadena)

Parámetros:

numero: Cadena de la que queremos extraer el un número. Este número puede ser un literal, una variable, un campo, el retorno de una función, etc.

Extrae un numero de una cadena.

Ejemplo: stringToNumber(“0.11″) = 0.11
Sistema
Conjunto de Funciones de fórmula que devuelven valores de configuración del sistema.

getSysCountry
Devuelve el nombre del páis del sistema.
Sintaxis:

getSysCountry()

Parámetros:
No tiene.

Ejemplo: gesSysCountry() = Spanish
getSysCountryCode
Devuelve el código del páis del sistema en formato ISO 3166.
Sintaxis:

getSysCountryCode()

Parámetros: No tiene.

Retorna una cadena que contiene el código del país del sistema en mayúsculas según el estándar ISO 3166.

Ejemplo: getSysCountryCode() = “ES”
getSysDateFormat
Devuelve el formato de la fecha del sistema
Sintaxis:

getSysDateFormat(formatoLargo)

Parámetros:
formatoLargo: Tiene dos valores posibles, 0 devolverá el formato corto de la fecha y 1 devolverá el formato largo de la misma.

Ejemplos:
getSysDateFormat(0) = dd/MM/yyyy
getSysDateFormat(1) = dddd, dd’ de ‘MMMM’ de ‘yyyy
getSysDecimalPoint
Devuelve el símbolo que define la coma decimal del sistema.
Sintaxis:

getSysDecimalPoint()

Parámetros: No tiene.

Retorna una cadena conteniendo el símbolo que define la coma decimal configurada en el sistema.

Ejemplo: getSysDecimalPoint() = “.”
getSysExponential
Devuelve el símbolo que define el exponente del sistema.
Sintaxis:

getSysExponential()

Parámetros:
No tiene.

Ejemplo: getSysExponential() = e
getSysGroupSeparator
Devuelve el separador de grupos de dígitos del sistema.
Sintaxis:

getSysDecimalPoint()

Parámetros: No tiene.

Retorna una cadena conteniendo el símbolo que define el separador de grupos de dígitos configurado en el sistema.

Ejemplo: getSysDecimalPoint() = “,”
getSysLanguage
Devuelve el idioma del sistema.
Sintaxis:

getSysLanguage()

Parámetros:
No tiene.

Ejemplo: getSysLanguage() = Spanish
getSysLanguageCode
Devuelve el código del idioma del sistema en formato ISO 639.
Sintaxis:

getSysLanguageCode()

Parámetros: No tiene.

Retorna una cadena conteniendo el código del idioma del sistema configurado en el sistema, en minúsculas y en el estándar ISO 639.

Ejemplo: getSysLanguageCode() = “es”
getSysMachineName
Devuelve el nombre de la máquina.
Sintaxis:

getSysMachineName()

Parámetros:
No tiene parámetros.
getSysNegativeSign
Devuelve el símbolo que define el signo negativo del sistema.
Sintaxis:

getSysNegativeSign()

Parámetros: No tiene.

Retorna una cadena conteniendo el símbolo que define el signo negativo configurado en el sistema.

Ejemplo: getSysNegativeSign() = “-”
getSysPercentSign
Devuelve el símbolo que define el signo de porcentaje del sistema.
Sintaxis:

getSysPercentSign()

Parámetros:
No tiene.

Ejemplo: getSysPercentSign() = %
getSysTimeFormat
Devuelve el formato de la hora del sistema.
Sintaxis:

getSysTimeFormat( formatoLargo )

Parámetros:

formatoLargo: Devuelve el formato de la hora del sistema en formato largo si definimos este parámetro como true (1) o en formato corto si lo definimos como false (0).

Retorna una cadena conteniendo el formato de hora configurado en el sistema, en formato corto o largo según configuremos el parámetro.

El formato corto/largo dependerá del idioma del sistema; por ejemplo, en el caso del español, por ejemplo, el formato es el mismo; es decir, hay un único formato.

Ejemplo: getSysTimeFormat(0) = “hh:mm:ss”
getSysTimeZone
Devuelve la zona horaria como la diferencia de horas con respecto al tiempo universal (UTC).
Sintaxis:

getSysTimeZone()

Parámetros:
No tiene.

Ejemplo: En España, getSysTimeZone() = 1.
getSysZeroDigit
Devuelve el símbolo que define el dígito 0 del sistema.
Sintaxis:

getSysZeroDigit()

Parámetros: No tiene.

Retorna una cadena conteniendo el símbolo que define el dígito 0 configurado en el sistema.

Ejemplo: getSysZeroDigit() = “0″
Tiempo
Conjunto de Funciones de fórmula que nos permiten operar con datos tipo tiempo.

dateTimeIsValid
Devuelve true (1) si el tiempo es válido y false (0) si es incorrecto.
Sintaxis:

dateTimeIsValid(tiempo)

Parámetros:

tiempo: Dato tiempo que queremos comprobar que sea correcta.

Devuelve si el dato tiempo que pasamos como parámetro son una fecha y una hora válidas.

Ejemplo: dateTimeIsValid(“33/44/2009 39:32:32″ ) = 0
addDaysToDateTime
Devuelve el tiempo incrementado los días.
Sintaxis:

addDaysToDateTime(tiempo, dias)

Parámetros:
tiempo: Dato de tipo tiempo.
dias: Número de días a incrementar.

Ejemplo: addDaysToDateTime(“20/01/2009 12:20:54″, 10) = 30/01/2009 12:20:54
addMSecondsToDateTime
Devuelve el tiempo incrementado los milisegundos.addMSecondsToDateTime(tiempo, milisegundos)
Sintaxis:

addMSecondsToDateTime(tiempo, milisegundos)

Parámetros:

tiempo: Dato tiempo al que queremos sumar los milisegundos pasados como parámetro.
milisegundos: Milisegundos que queremos sumar al dato tiempo pasado como parámetro.

Ejemplo: addMSecondsToDateTime(“12/02/2009 12:12:12.000″, 999 ) = “12/02/2009 12:12:12.999″
addMonthsToDateTime
Devuelve el tiempo incrementado los meses.
Sintaxis:

addMonthsToDateTime(tiempo, meses)

Parámetros:
tiempo: Dato de tipo tiempo.
meses: Número de meses a incrementar.

Ejemplo: addMonthsToDateTime(“20/01/2009 12:20:54″, 12) = 20/01/2010 12:20:54
addSecondsToDateTime
Devuelve el tiempo incrementado los segundos.
Sintaxis:

addSecondsToDateTime(tiempo, dias)

Parámetros:
tiempo: Dato de tipo tiempo.
dias: Número de segundos a incrementar.

Incrementa al dato de tipo tiempo los segundos que pasamos como parámetro.

Ejemplo: addSecondsToDateTime(“20/01/2009 12:20:54″, 10) = 20/01/2009 12:21:04
addYearsToDateTime
Devuelve el tiempo incrementado los años.
Sintaxis:

addYearsToDateTime(tiempo, meses)

Parámetros:
tiempo: Dato de tipo tiempo.
años: Número de años a incrementar.

Ejemplo: addYearsToDateTime(“20/01/2009 12:20:54″, 1) = 20/01/2010 12:20:54
currentDateTime
Devuelve el tiempo actual.
Sintaxis:

currentDateTime()

Parámetros: No tiene.

Devuelve un dato tiempo con la fecha y hora del instante en que se evalúa.

Ejemplo: currentDateTime() = 20/01/2009 16:30:30.123
currentUTCDateTime
Devuelve el tiempo actual en tiempo universal (UTC)
Sintaxis:

currentUTCDateTime()

Parámetros:
No tiene.

Ejemplo: currentUTCDateTime() = 20/01/2009 11:35:07
dateTimeToDate
Extrae la fecha de un tiempo.
Sintaxis:

dateTimeToDate(tiempo)

Parámetros:
Tiempo: Dato de tipo tiempo.

Ejemplo: dateTimeToDate(“20/01/2009 12:20:54″) = 20/01/2010
dateTimeToLocale
Devuelve el tiempo local según la zona horaria que se pasa como parámetro en forma de diferencia de horas con respecto al tiempo universal (UTC).
Sintaxis:

dateTimeToLocale(tiempo, zonaHoraria)

Parámetros:

tiempo: Dato tiempo en tiempo universal (UTC) que vamos a calcular para el tiempo local en función de la zona horaria que pasamos como parámetro.
zonaHoriaria: Zona horaria expresada como un número que indica la diferencia en horas correspondiente con respecto al tiempo universal (UTC).

Ejemplo: dateTimeToLocale(“20/01/2009 16:30:30.123″, -1 ) = 20/01/2009 17:30:30.123
dateTimeToString
Devuelve el tiempo como una cadena según las indicaciones del formato.
Sintaxis:

dateTimeToString(fechaHora, cadenaFormato)

Parámetros:

fechaHora: Fecha y hora que queremos formatear.

cadenaFormato: Cadena de formato que especifica como devolver la cadena con la fecha y la hora.

Formato:
Día: d (1-31) dd (01-31) ddd (Lun-Dom) dddd (Lunes-Domingo)
Mes: M (1-12) MM (01-12) MMM (Ene-Dic) MMMM (Enero-Diciembre)
Año: yy (00-99) yyyy (0000-9999)

Horas: h (0-23, 1-12 AM/PM) hh (00-23, 01-12 AM/PM) H (0-23) HH (00-23)
Minutos: m (0-59) mm (00-59)
Segundos: s (0-59) ss (00-59) z (0-999) zzz (000-999)
Periodos: AP (AM/PM) ap (am/pm)
dateTimeToTime
Extrae la hora de un tiempo.
Sintaxis:

dateTimeToTime(tiempo)

Parámetros:
Tiempo: Dato de tipo tiempo.

Ejemplo: dateTimeToTime(“20/01/2009 12:20:54″) = 12:20:54
dateTimeToUTC
Devuelve el tiempo en tiempo universal (UTC) según la zona horaria que se pasa como parámetro en forma de diferencia de horas con respecto al tiempo universal.
dateTimeToUTC(tiempo, zonaHoraria)

Sintaxis:

dateTimeToUTC(tiempo, zonaHoraria)

Parámetros:

tiempo: Dato tiempo local que queremos calcular en tiempo universal (UTC) en función de la zona horaria que pasamos como parámetro.
zonaHoriaria: Zona horaria expresada como un número que indica la diferencia en horas correspondiente con respecto al tiempo universal (UTC).

Ejemplo: dateTimeToUTC(“20/01/2009 16:30:30.123″, 1 ) = 20/01/2009 17:30:30.123
mSecondsTo
Devuelve los milisegundos entre dos tiempos (negativo si es dataTimeHasa es menor que dataTimeDesde).
Sintaxis:

mSecondsTo(dateTimeDesde, dateTimeHasta)

Parámetros:

dataTimeDesde: Dato inicial de tipo tiempo.
dataTimeHasta: Dato final de tipo tiempo.

Ejemplos:
mSecondsTo(“20/01/2009 17:13:00:00″, “20/01/2009 17:13:01:00″ ) = 1000
mSecondsTo(“20/01/2009 17:13:01:00″, “20/01/2009 17:13:00:00″ ) = -1000
secondsTo
Devuelve los segundos entre dos tiempos (negativo si dateTimeHasta es menor que dateTimeDesde).
Sintaxis:

secondsTo(dateTimeDesde, dateTimeHasta)

Parámetros:

dateTimeDesde: Dato tiempo inicial.
dateTimeHasta: Dato tiempo final.

Devuelve los segundos entre dos datos tipo tiempo que indicamos como parámetro. Si el segundo parámetro es menor que el primero, el resultado será negativo.

Ejemplo: secondsTo(“20/01/2009 16:30:30.123″, “20/01/2009 16:30:40.123″ ) = 10
setDateTime
Crea tiempo.
Sintaxis:

setDateTime(fecha, hora)

Parámetros:
fecha: Dato de tipo fecha.
hora: Dato de tipo hora.

Ejemplo:
fecha = 20/01/2009
hora = 17:21:52
idFunction(fecha, hora ) = 20/01/2009 17:21:52
stringToDateTime
Extrae el tiempo de una cadena según las indicaciones del formato
Sintaxis:

stringToDateTime(cadena, cadenaFormato)

Parámetros:

cadena: Cadena que contiene la fecha y hora.

cadenaFormato: Cadena de formato que especifica como extraer la fecha y hora de la cadena.

Formato:
Horas: h (0-23, 1-12 AM/PM) hh (00-23, 01-12 AM/PM) H (0-23) HH (00-23)
Minutos: m (0-59) mm (00-59)
Segundos: s (0-59) ss (00-59) z (0-999) zzz (000-999)
Periodos: AP (AM/PM) ap (am/pm)

Día: d (1-31) dd (01-31) ddd (Lun-Dom) dddd (Lunes-Domingo)
Mes: M (1-12) MM (01-12) MMM (Ene-Dic) MMMM (Enero-Diciembre)
Año: yy (00-99) yyyy (0000-9999)

El resto de caracteres en la cadena de formato serán tratados como texto. También los caracteres que estén entre comillas simples (‘) en la cadena de formato serán tratados como texto, lo que nos permite tratar los caracteres específicos de formato (h, hh, H, HH, m, mm, etc.) como texto.

Si la cadena no se corresponde con el formato especificado la devolverá una hora nula, no devolverá nada. Esto puede incluir casos en los que se espere ceros por la izquierda u otras incoherencias con el formato esperado.
Trigonométricas
Conjunto de Funciones de fórmula que permiten realizar operaciones matemáticas trigonométricas.

acos
Devuelve el arcocoseno de x (ángulo en radianes).
Sintaxis:

acos(x)

Parámetros:

x: Ángulo expresado en radianes cuyo arcocoseno queremos calcular.

Ejemplo: acos(-1) = 3,141592
asin
Devuelve el arcoseno de x (ángulo en radianes).
Sintaxis:

asin(x)

Parámetros:

x: Expresión de tipo numérico; tendrá que tratarse de un valor comprendido entre 0 y 1.

Ejemplos:
asin(1) = 1.5708
asin(1.01) = nan (Indica que el parámetro no es válido pues excede del rango permitido).
atan
Devuelve el arcotangente de x (ángulo en radianes).
Sintaxis:

atan(x)

Parámetros:

x: Ángulo expresado en radianes cuyo arcotangente queremos calcular.

Ejemplo: atan(0) = 3,141592
cos
Devuelve el coseno de x (ángulo en radianes).
Sintaxis:

cos(x)

Parámetros:

x: Expresión de tipo numérico.

Ejemplo: cos(3.141592) = -1
cosh
Devuelve el coseno hiperbólico de x (ángulo en radianes).
Sintaxis:

cosh(x)

Parámetros:

x: Ángulo expresado en radianes cuyo coseno hiperbólico queremos calcular.

Ejemplo: cosh(3,141592) = 11,59195327552152062775175205256
sin
Devuelve el seno de x (ángulo en radianes).
Sintaxis:

sin(x)

Parámetros:
x: Expresión de tipo numérico.

Ejemplo: sin(1) = 0.841471
sinh
Devuelve el seno hiperbólico de x (ángulo en radianes).
Sintaxis:

sinh(x)

Parámetros:
x: Expresión de tipo numérico.

Ejemplo: sinh(1) = 1.1752
tan
Devuelve la tangente de x (ángulo en radianes).
Sintaxis:

tan(x)

Parámetros:
x: Expresión de tipo numérico.

Ejemplo: tan(1) = 1.54308
tanh
Devuelve la tangente hiperbólica de x (ángulo en radianes).
Sintaxis:

tanh(x)

Parámetros:
x: Expresión de tipo numérico.

Ejemplo: tanh(1) = 0.761594
Funciones de proceso
Para activar/desactivar la lista de funciones de proceso del asistente para la creación de fórmulas pulsaremos el botón del editor de fórmulas.

En esta pestaña encontraremos las funciones funciones de proceso declaradas tanto en proyecto en curso con en los proyectos.

Las funciones de proceso son objetos contenedores de instrucciones definibles por el programador. Para ejecutar una funcón no tendremos más que incluirla dentro de una fórmula.

Para ello haremos doble clic sobre la función deseada y ésta será insertada en la fórmula en curso. La sintaxis es la siguiente:

fun:IDENTIFICADOR_FUNCION@nombre_proyecto.ext([Parámetro1, Parámetro2, Parámetro3...])

Donde:

fun:: Prefijo que indica que se trata de una función de proceso.
IDENTIFICADOR_FUNCION: Mostrará el identificador de la función.
@: Indica que a continuación se declararán los datos del poyecto.
nombre_proyecto: Nombre del proyecto al que pertenece la caja.
.ext: Tipo de proyecto. .dat indica proyecto de datos y .app indica proyecto de aplicación.
([Parámetro1, Parámetro2, Parámetro3...]): Parámetros de la función, si los tiene. En caso de no tenerlos se incluirán solamente los paréntesis: ().

Ejemplo:

Si en la función se han declarado parámetros, éstos serán identificados al final de la misma entre paréntesis. En ese caso habrá que sustituir esos parámetros por los datos que queramos pasar a la función:

Si la función retonra algo, este retorno será atrapado en el objeto o sub-objeto desde el que sea llamada. Por ejemplo, si la llamada a la función la hacemos en un comando de instrucción de proceso Set, la variable inicializada en el mismo recogerá dicho retorno. Si la función la llamamos dentro del contenido inicial de un campo, el retorno de la función será el contenido que se le asigne al campo.
Campos
Para visualizar/ocultar la lista de campos disponibles en el asistente de fórmulas pulsar el botón .

En una fórmula es posible usar campos de una tabla o de cualquier tabla enlazada con la misma.

Para que esto sea posible la fórmula ha de estar siendo usada en un punto de la aplicación desde la que se tenga acceso a una tabla, por ejemplo, en un contenido inicial de un campo, en una línea de instrucción de un proceso cuyo origen sea una ficha o una lista de registros de una tabla, etc.
Para insertar un campo en una fórmula hacer doble clic sobre el mismo en la lista de campos. Una vez hecho esto, en la posición en la que está el cursor será insertado el campo seleccionado. Este siempre irá precedido del símbolo #.

Ejemplo: #NAME

También podremos escibir directamente en el editor de fórmulas el identificador del campo deseado.
Constantes
Para activar/desactivar la lista de constantes del asistente para la creación de fórmulas pulsaremos el botón del editor de fórmulas.

Si el botón está inactivo querrá decir que no se han declarado constantes en la caja de aplicación en curso ni en sus cajas heredadas.
Para insertar una constante en la fórmula haremos doble clic sobre su identificador en la ventana correspondiente del asistente.

En la fórmula la sintaxis de una constante es: ~id_caja.vca@ID_CONSTANTE


Variables globales
Para activar/desactivar la lista de variables globales del asistente para la creación de fórmulas pulsaremos el botón del editor de fórmulas.

Si el botón está inactivo querrá decir que no se han declarado variables globales en los proyectos de datos heredados.
Para insertar una variable en la fórmula haremos doble clic sobre su identificador en la ventana correspondiente del asistente.

En la fórmula la sintaxis de una constante es: ~id_proyecto.vcd@ID_VARIABLE

Si la variable es de tipo array para leer una posición del mismo tendremos que añadir a su identificador el número de la posición a leer entre corchetes. La primera posición de un array es la 0:

~id_proyecto.vcd@ID_VARIABLE[3]
Variables locales
En las fórmulas es posible usar variables locales.
Para visualizar/ocultar la lista de variables locales disponibles en el asistente de fórmulas pulsar el botón . Si el botón está inactivo querrá decir que no hay variables locales al objeto donde se está definiendo la fórmula.

Para insertar una variable en una fórmula hacer doble clic sobre la misma en la lista de variables locales del editor. Una vez hecho esto, en la posición en la que está el cursor será insertada la variable seleccionada.

El texto identificador de una variable local será formateado en el editor de la siguiente manera:

También podremos escibir directamente en el editor de fórmulas el identificador de la variable local deseada.

Si la variable es de tipo array para leer una posición del mismo tendremos que añadir a su identificador el número de la posición a leer entre corchetes. La primera posición de un array es la 0:

ID_VARIABLE[3]
Variables del sistema
Se trata de una variable de tipo local predefinida en el sistema.

Para activar/desactivar la lista de variables del sistema del asistente para la creación de fórmulas pulsaremos el botón del editor de fórmulas.
Las variables del sistema existentes son:

sysListSize: Devuelve el número de elementos de una lista.
Ejemplo: Para comprobar en un proceso si una lista que se ha cargado tiene o no registros usaremos la condición If(sysListSize > 0). Si es mayor que 0 quiere decir que tiene algún registro, si no, no.

sysListPos: Devuelve el elemento en curso de una lista. Podrá ser usada para leer la posición de un registro concreto dentro de una lista tras un comando de instrucción de proceso que implique selección de un registro dentro de una lista, como puede ser Seleccionar ficha por posición, o de eventos de objetos, como por ejemplo, Interfaz: Procesar control.

sysPageCurrent: De uso exclusivo en informes. Devuelve el número de la página en curso de un informe.
sysPageLast: De uso exclusivo en informes. Devuelve el número de la última página de un informe.
Ejemplo: Si en un informe queremos imprimir en el pie de cada página “Página x de n”, podremos hacerlo usando ambas variables. La fórmula sería: “Página ” + sysPageCurrent + ” de ” + sysPageLast.
sysUserName: Devuelve el nombre del usuarios actual, es decir, el nombre del usuario que está ejecutando la aplicación.

Para insertar una variable del sistema en la fórmula haremos doble clic sobre su identificador en la ventana correspondiente del asistente.

En la fórmula la constante se escribirá igual que aparece en la lista de constantes:

Verificador de fórmulas
Se trata de una utilidad del asistente para edición de fórmulas que permite verificar si la sintaxis de una fórmula es correcta.
Para verificar la sintaxis de una fórmula pulsaremos el botón . Si la fórmula contiene algún error de sintaxis, éste será mostrado en la parte inferior izquierda de la ventana, tal y como se muestra en la captura de pantalla siguiente:

Remarcar que los errores que detecta son errores de sintaxis, no errores lógicos.

Al pulsar este comando también se mostrará, bajo el propio botón, un tooltip con el resultado de la fórmula establecida:


Conversión automática de datos
Cuando pasamos datos de un tipo a datos de otro tipo, el sistema realiza una conversión automática de los mismos.
Así tenemos:

Dato numérico en una cadena de texto
Cuando en una expresión de texto utilizamos un dato numérico, éste se toma con el signo y con los decimales. Por ejemplo, el número -26.125,55 al incluirlo en una fórmula de texto se convertirá a -26125.55.

Cuando en una fórmula intervienen datos numéricos y el operador +, la operación a realizar (suma o concatenación) dependerá del primero de los valores especificados. Si es un número, se tomará como una suma, si es una cadena, como una concatenación.
Por ejemplo, si en un campo o variable de tipo alfabético se escribe la fórmula: 1+1, puesto que el primer dato es numérico, se tomará como una suma, por lo que se devolverá 2. Si lo que queremos es concatenar ambas cifras, para indicar que se trata de una concatenación basta con que al principio de la expresión se escriba “” con lo que la fórmula sería “”+1+1, lo que devolvería 11.

En ambos casos el resultado es una cadena de texto, aunque en el primer caso se devuelve como cadena la suma de ambas cifras y en el segundo la concatenación de las mismas.

Fecha en una cadena de texto
Cuando en una cadena de texto incluimos un dato de tipo fecha, lo devuelve en formato de día-nombre del mes abreviado-año completo.
Por ejemplo 12/12/1998, este es incluido en la cadena de texto como 12-Dic-1998.

Hora en una cadena de texto
Cuando se pasa un dato de tipo hora a una cadena de texto, se convierte automáticamente en formato dd:mm:ss.
Ejemplo: 12:15:33.

Hora en numérico
Al pasar un dato de tipo hora a un campo o variable numérico, éste último convierte la hora en segundos.
Así por ejemplo: 10:44:01 = 38641
Secuencias de escape en cadenas de caracteres
Para introducir en el interior de una cadena de caracteres algunos caracteres especiales imposibles de representar mediante texto, utilizamos lo que comúnmente se denominan secuencias de escape.
Todas ellas comienzan con una barra invertida (\) seguida de otro carácter. En tiempo de ejecución, las secuencias de escape se sustituyen por los caracteres adecuados. Estas son las secuencias de escape aceptadas:

\a: Campana.
\b: Retroceso. Produce el mismo efecto que pulsar la tecla de Retroceso destructivo.
\c: Comilla. Provoca la introducción de una comilla.
\f: Salto de página. Provoca el salto de una página.
\n: Nueva línea. Provoca el salto a la línea siguiente.
\r: Retorno de carro. Provoca el retroceso al comienzo de la línea.
\t: Tabulador. Produce el mismo efecto que pulsar la tecla del Tabulador.
\v: Tabulador Vertical.
\\: Barra invertida.

Las secuencias de escape \r y \n pueden ser utlizadas en textos estáticos multilíneas (menús, formularios, etc.).

Amazon Web Services