Fórmulas y funciones
Utilización de las fórmulas
Una fórmula de hoja de cálculo es una expresión que calcula el valor de una celda.
Entrada de las fórmulas
Para introducir una fórmula en un área 4D View Pro:
- Seleccione la celda en la que introducirá la fórmula o función.
- Introduzca = (el signo igual).
- Escriba la fórmula y presione la tecla Intro.
Al escribir una fórmula, puede utilizar diferentes atajos:
- haga clic en una celda para introducir su referencia en la fórmula:
- escriba la primera letra de una función a ingresar. Aparece un menú contextual en el que se listan las funciones y referencias disponibles, permitiéndole seleccionar los elementos deseados:
También puede crear fórmulas con nombre que pueden ser llamadas a través de su nombre. Para hacerlo, ingresa estas fórmulas utilizando el comando VP ADD FORMULA NAME.
Operadores y operandos
Todas las fórmulas tienen operandos y operadores:
- Operadores: ver Valores y operadores abajo.
- Los Operandos incluyen varias categorías:
- valores (se soportan 5 tipos de datos)
- referencias a otras celdas (relativas, absolutas, mixtas o por nombre)
- funciones estándar de hoja de cálculo
- Funciones 4D basadas en fórmulas 4D y que ofrecen acceso a variables, campos, métodos, comandos o expresiones 4D.
Valores y operadores
4D View Pro soporta cinco tipos de datos. Para cada tipo de datos, se soportan valores literales y de operadores específicos.
Tipos de datos | Valores | Operadores |
---|---|---|
Number | 1.2 1.2 E3 1.2E-3 10.3x | - (suma) - (resta) * (multiplicación) / (división) ^ (exponente, el número de veces que hay que multiplicar un número por sí mismo) % (porcentaje -- dividir el número antes del operador por cien) |
Fecha | 10/24/2017 | * (fecha + número de días -> fecha) + (fecha + hora -> fecha + hora del día) - (fecha - número de días -> fecha) - (fecha - fecha -> número de días entre ambas) |
Hora | 10:12:10 | Operadores de duración: + (suma) - (resta) * (duración * número -> duración) / (duración / número -> duración) |
String | 'Sophie' o "Sophie" | & (concatenación) |
Boolean | TRUE o FALSE | - |
Operadores de comparación
Los siguientes operadores pueden utilizarse con dos operandos del mismo tipo:
Operador | Comparación |
---|---|
= | igual a |
<> | es diferente de |
> | mayor que |
< | menor que |
> = | mayor o igual que |
<= | menor o igual que |
Presedencia de los operadores
Lista de los operadores de la mas a menos importante:
Operador | Descripción |
---|---|
() | Paréntesis (para agrupar) |
- | Negativo |
* | Más |
% | Porcentaje |
^ | Exponente |
- y / | Multiplicar y dividar |
* y - | Añadir y restar |
& | Concatenar |
= > < >= <= <> | Comparar |
Referencias de celdas
Las fórmulas a menudo se refieren a otras celdas por medio de direcciones de celdas. Puede copiar estas fórmulas a otras celdas. Por ejemplo, la siguiente fórmula, introducida en la celda C8, suma los valores de las dos celdas superiores y muestra el resultado.
= C6 + C7
Esta fórmula se refiere a las celdas C6 y C7. Es decir, 4D View Pro tiene instrucciones de referirse a estas otras celdas para los valores a utilizar en la fórmula.
Cuando copie o mueva estas fórmulas a nuevas ubicaciones, cada dirección de celda en esa fórmula cambiará o permanecerá igual, dependiendo de cómo se escriba.
- Una referencia que cambia se denomina referencia relativa, y se refiere a una celda según lo lejos que esté a la izquierda/derecha y arriba/abajo de la celda con la fórmula.
- Una referencia que siempre apunta a una celda particular se denomina referencia absoluta.
- También puede crear una referencia mixta que apunte siempre a una línea o columna fija.
Notación de las referencias
Si sólo utiliza coordenadas de celda, por ejemplo, C5
, 4D View Pro interpreta la referencia como relativa. Puede hacer que la referencia sea absoluta poniendo un signo de dólar delante de la letra y el número, como en $C$5
.
Puede combinar las referencias absolutas y relativas insertando un signo de dólar delante de la letra o el número solo, por ejemplo, $C5
o C$5
. Una referencia mixta permite especificar la fila o la columna como absolutas, permitiendo al mismo tiempo que la otra parte de la dirección se refiera a ella de forma relativa.
Una forma cómoda, rápida y precisa de especificar una referencia absoluta es nombrar la celda y utilizar ese nombre en lugar de la dirección de la celda. Una referencia a una celda nombrada es siempre absoluta. You can create or modify named cells or named cell ranges using the VP ADD RANGE NAME
command.
La siguiente tabla muestra el efecto de las diferentes notaciones:
Ejemplo | Tipo de referencia | Descripción |
---|---|---|
C5 | Relativo | La referencia es a la ubicación relativa de la celda C5, dependiendo de la ubicación de la celda en la que se utiliza la referencia por primera vez |
$C$5 | Absoluto | La referencia es absoluta. Siempre se referirá a la celda C5 sin importar dónde se utilice. |
$C5 | Mixed | La referencia es siempre a la columna C, pero la referencia de línea es relativa a la ubicación de la celda en la que se utiliza la referencia por primera vez. |
C$5 | Mixed | La referencia es siempre la línea 5, pero la referencia de la columna es relativa a la ubicación de la celda en la que se utiliza la referencia por primera vez |
Nombre de la celda | Absoluto | La referencia es absoluta. Siempre se referirá a la celda o rango nombrado sin importar donde se use la referencia. |
Funciones integradas
Las funciones de hoja de cálculo son fórmulas predefinidas utilizadas para calcular los valores de las celdas. Al teclear la primera letra de la función a introducir, aparece un menú emergente con las funciones y referencias disponibles, que permite seleccionar los elementos deseados:
Ver Lista extendida de funciones SpreadJS para más detalles y ejemplos.
Funciones 4D
4D View Pro le permite definir y llamar funciones personalizadas 4D, que ejecutan fórmulas 4D. El uso de las funciones personalizadas 4D extiende las posibilidades de sus documentos 4D View Pro y permite interacciones avanzadas con la base de datos 4D.
Las funciones personalizadas 4D permiten acceder, desde sus fórmulas 4D View Pro, a:
- variables proceso 4D,
- campos,
- métodos proyecto,
- comandos del lenguaje 4D,
- o cualquier expresión válida de 4D.
Las funciones personalizadas de 4D pueden recibir parámetros del área 4D View Pro y devolver valores.
Todas las funciones se declaran con el comando VP SET CUSTOM FUNCTIONS
. Ejemplos:
$o:=New object
//Name of the function in 4D View Pro: "DRIVERS_LICENCE"
$o.DRIVERS_LICENCE:=New object
//process variable
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicence)
//table field
$o.DRIVERS_LICENCE.formula:=Formula([Users]DriverLicence)
//project method
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicenceState)
//4D command
$o.DRIVERS_LICENCE:=Formula(Choose(DriverLicence; "Obtained"; "Failed"))
//4D expression and parameter
$o.DRIVERS_LICENCE.formula:=Formula(ds.Users.get($1).DriverLicence)
$o.DRIVERS_LICENCE.parameters:=New collection
$o.DRIVERS_LICENCE.parameters.push(New object("name"; "ID"; "type"; Is longint))
Ver también 4D View Pro: Utilice fórmulas 4D en su hoja de cálculo (entrada de blog)
Ejemplo con Hello World
Queremos imprimir "Hola Mundo" en una celda del área 4D View Pro utilizando un método proyecto 4D:
- Cree un método proyecto "myMethod" con el siguiente código:
#DECLARE->$hw :Text
$hw:="Hello World"
- Ejecute el siguiente código antes de abrir cualquier formulario que contenga un área 4D View Pro:
Case of
:(Form event code=On Load)
var $o : Object
$o:=New object
// Definir la función "vpHello" a partir del método "myMethod"
$o.vpHello:=New object
$o.vpHello.formula:=Formula(myMethod)
VP SET CUSTOM FUNCTIONS("ViewProArea";$o)
End case
-
Edite el contenido de una celda en un área 4D View Pro y escriba:
"myMethod" es entonces llamado por 4D y la la celda se muestra:
Parámetros
Los parámetros se pueden pasar a las funciones 4D que llaman a los métodos proyecto utilizando la siguiente sintaxis:
=METHODNAME(param1,param2,...,paramN)
Estos parámetros se reciben en methodName en $1, $2...$N.
Tenga en cuenta que los ( ) son obligatorios, incluso si no se pasan parámetros:
=METHODWITHOUTNAME()
You can declare the name, type, and number of parameters through the parameters collection of the function you declared using the VP SET CUSTOM FUNCTIONS command. Opcionalmente, puede controlar el número de parámetros pasados por el usuario a través de las propiedades minParams y maxParams.
For more information on supported incoming parameter types, please refer to the VP SET CUSTOM FUNCTIONS command description.
Si no se declaran parámetros, los valores se pueden pasar secuencialmente a los métodos (se recibirán en $1, $2...) y su tipo se convertirá automáticamente.
Los parámetros Fecha y Objeto se tratan de la siguiente manera:
- Las fechas en jstype se pasarán como objeto en código 4D con dos propiedades:
Propiedad | Tipo | Descripción |
---|---|---|
value | Fecha | Valor fecha |
time | Real | Hora en segundos |
- Los objetos se pasarán como object con una propiedad
.value
que contiene el parámetro:
Propiedad | Tipo | Descripción |
---|---|---|
value | Object | Parámetro Objeto |
Valores devueltos
Los métodos proyecto 4D también pueden devolver valores en la fórmula de la celda 4D View Pro a través de $0. Los siguientes tipos de datos son soportados para los parámetros devueltos:
-
texto (convertido a cadena en 4D View Pro)
-
real/entero largo (convertido a número en 4D View Pro)
-
fecha (convertido a tipo JS Date en 4D View Pro - hora, minuto, seg = 0)
-
hora (convertido a tipo JS Date en 4D View Pro - fecha en fecha base, es decir, 30/12/1899)
-
booleano (convertido a booleano en 4D View Pro)
-
imagen (jpg,png,gif,bmp,svg otros tipos convertidos a png) crea un URI (data:image/png;base64,xxxx) y luego se usa como fondo en 4D View Pro en la celda donde se ejecuta la fórmula
-
objeto con las dos propiedades siguientes (que permiten pasar una fecha y una hora):
Propiedad Tipo Descripción value Fecha Valor fecha time Real Hora en segundos
Si el método 4D no devuelve nada, se devuelve automáticamente una cadena vacía.
Se devuelve un error en la celda 4D View Pro si:
- el método 4D devuelve otro tipo distinto de los mencionados anteriormente,
- se ha producido un error durante la ejecución del método 4D (cuando el usuario presiona el botón "abortar").
Ejemplo
var $o : Object
$o.BIRTH_INFORMATION:=New object
$o.BIRTH_INFORMATION.formula:=Formula(BirthInformation)
$o.BIRTH_INFORMATION.parameters:=New collection
$o.BIRTH_INFORMATION.parameters.push(New object("name";"First name";"type";Is text))
$o.BIRTH_INFORMATION.parameters.push(New object("name";"Birthday";"type";Is date))
$o.BIRTH_INFORMATION.parameters.push(New object("name";"Time of birth";"type";Is time))
$o.BIRTH_INFORMATION.summary:="Returns a formatted string from given information"
VP SET CUSTOM FUNCTIONS("ViewProArea"; $o)
Compatibilidad
Existen soluciones alternativas para declarar campos o métodos como funciones en sus áreas 4D View Pro. Estas soluciones se mantienen por razones de compatibilidad y pueden utilizarse en casos concretos. Sin embargo, se recomienda utilizar el comando VP SET CUSTOM FUNCTIONS
.
Referenciación de campos mediante la estructura virtual
4D View Pro permite referenciar campos 4D utilizando la estructura virtual de la base de datos, es decir, declarada a través de los comandos SET TABLE TITLES
y/o SET FIELD TITLES
con el parámetro *. Esta solución alternativa podría ser útil si su aplicación ya depende de una estructura virtual (de lo contrario, se recomienda utilizar VP SET CUSTOM FUNCTIONS
).
ATENCIÓN: no puede utilizar la estructura virtual y
VP SET CUSTOM FUNCTIONS
simultáneamente. En cuanto se llama aVP SET CUSTOM FUNCTIONS
, las funciones basadas en los comandosSET TABLE TITLES
ySET FIELD TITLES
son ignoradas en el área 4D View Pro.
Requisitos
- El campo debe pertenecer a la estructura virtual de la base de datos, es decir, debe declararse a través de los comandos
SET TABLE TITLES
y/oSET FIELD TITLES
con el parámetro * (ver el ejemplo), - Los nombres de las tablas y los campos deben cumplir la norma ECMA (ver ECMA Script standard),
- El tipo de campo debe ser soportado por 4D View Pro (ver arriba).
Se devuelve un error en la celda 4D View Pro si la fórmula llama a un campo que no es compatible.
Llamar a un campo virtual en una fórmula
Para insertar una referencia a un campo virtual en una fórmula, introduzca el campo con la siguiente sintaxis:
TABLENAME_FIELDNAME()
Por ejemplo, si declaró el campo "Name" de la tabla "People" en la estructura virtual, puede llamar las siguientes funciones:
=PEOPLE_NAME()
=LEN(PEOPLE_NAME())
Si un campo tiene el mismo nombre que un método 4D, tiene prioridad sobre el método.
Ejemplo
Queremos imprimir el nombre de una persona en una celda del área 4D View Pro utilizando un campo virtual 4D:
- Crear una tabla "Employee" con un campo "L_Name":
-
Ejecuta el siguiente código para inicializar una estructura virtual:
ARRAY TEXT($tableTitles;1)
ARRAY LONGINT($tableNum;1)
$tableTitles{1}:="Emp"
$tableNum{1}:=2
SET TABLE TITLES($tableTitles;$tableNum;*)
ARRAY TEXT($fieldTitles;1)
ARRAY LONGINT($fieldNum;1)
$fieldTitles{1}:="Name"
$fieldNum{1}:=2 //apellido
SET FIELD TITLES([Employee];$fieldTitles;$fieldNum;*) -
Edite el contenido de una celda en el área 4D View Pro e introduzca "=e":
- Seleccione EMP_NAME (utilice la tecla Tab) e introduzca el cierre).
- Valide el campo para mostrar el nombre del empleado actual:
La tabla [Employee] debe tener un registro actual.
Declarar los métodos autorizados
Puede llamar directamente a los métodos del proyecto 4D desde sus fórmulas 4D View Pro. Por razones de seguridad, debe declarar explícitamente los métodos que pueden ser llamados por el usuario con el método VP SET ALLOWED METHODS.
Requisitos
Para ser llamado en una fórmula 4D View Pro, un método proyecto debe ser:
- Permitido: se declaró explícitamente mediante el comando VP SET ALLOWED METHODS.
- Ejecutable: pertenece al proyecto local o a un componente cargado con la opción "Compartido por los componentes y el proyecto local" activada (ver Compartir los métodos proyecto).
- No está en conflicto con una función de hoja de cálculo 4D View Pro existente: si llama a un método proyecto con el mismo nombre que una función integrada 4D View Pro, se llama a la función.
If neither the VP SET CUSTOM FUNCTIONS nor the VP SET ALLOWED METHODS command has been executed during the session, 4D View Pro custom functions rely on allowed methods defined by 4D's generic
SET ALLOWED METHODS
command. En este caso, los nombres de los métodos proyecto deben cumplir la gramática de identificadores de JavaScript (ver ECMA Script standard). La opción de filtrado global de la caja de diálogo Parámetros (ver Acceso a los datos) se ignora en todos los casos.