Cómo utilizar las funciones Mínimo / Máximo, Techo arriba / Techo abajo (redondo) y scripts Ruby
Veamos cómo funcionan las funciones, usando la tabla de productos como ejemplo.
Esta tabla contiene las siguientes columnas:
Marca y modelo;
Imagen;
Precio para junio, julio y agosto.
La tarea es mostrar el precio más bajo para los tres meses.
El primer paso es agregar el campo Fórmula al formulario.
Seleccione "Función" en la primera lista desplegable:
Seleccione "Mínimo" en la segunda lista desplegable:
A continuación, debe seleccionar los campos para comparar. En este caso, se trata de tres campos de precios.
Y haga clic en el botón "Crear".
Ahora ha aparecido en nuestra tabla el campo "Precio más bajo", que compara los tres valores del registro y muestra el mínimo de ellos:
La función "Máximo" funciona exactamente al revés.
Considere las funciones "Ceil up" y "Ceil down". Aquí hay una mesa con los clientes y sus pedidos.
La tarea consiste en redondear el valor de la columna "Importe a pagar".
Cree un nuevo campo de Fórmula y seleccione la función "Techo arriba" (o "Techo abajo");
A continuación, debe seleccionar el campo requerido de la lista desplegable y especificar el significado.
Como resultado, obtenemos una columna con una cantidad redondeada:
Los scripts le permiten realizar operaciones lógicas y aritméticas.
Usaremos la tabla "Ventas de verano" como ejemplo. Esta tabla contiene una columna con los gerentes, la duración de su trabajo y la suma de las ventas del verano.
Creemos un nuevo campo Fórmula, seleccione la opción Función y el elemento Script (Ruby) en la siguiente lista.
Puede utilizar nombres de campo HTML como operandos.
Haga clic en el enlace debajo del campo de función "Cómo insertar datos de registro":
Aparecerá una lista de campos disponibles. Seleccione un campo de la lista y copie el nombre HTML:
Además, puede cambiar el nombre del campo HTML aquí mismo. Basta con introducir un nuevo nombre y hacer clic en el botón "Actualizar":
Están disponibles los siguientes operadores aritméticos:
(+) suma
(-) resta
(*) multiplicación
(/) división
(>) verdadero, si el operando izquierdo es mayor que el derecho
(<) verdadero, si el operando izquierdo es menor que el derecho
(%) división de módulo
(==) verdadero, si los valores de los dos operandos son iguales.
Operadores condicionales:
(if) se usa para probar si una condición es verdadera. Los valores de condición false y nil son falsos, mientras que todos los demás serán verdaderos.
(elsif) usar para condiciones adicionales.
(||) usando para probar múltiples condiciones.
Regresemos, por ejemplo. La tarea es calcular la bonificación para los gerentes.
Suponga que la tasa de bonificación depende de varios factores. El primero es la experiencia laboral en la empresa.
Creemos el siguiente script:
if work_months> 12
300
Es decir, si un empleado ha trabajado en la empresa durante más de 12 meses, recibirá una bonificación de 300 $.
Creemos otra condición. Si el gerente realizó más de 7000 ventas, recibirá 150 $ + 25%.
El guión debería verse así:
elsif ventas > 7000
(150 * 0,25) +150
En todos los demás casos, el bono será de 150 $
else
150
Es necesario especificar fin, para que el script funcione correctamente.
Ahora podemos calcular la bonificación para cada gerente:
Métodos y operadores disponibles: to_f, to_i, to_s, round, floor, ceil, ceiling_up, ceiling_down, include ?, if, elsif, else, end.
Para verificar si el campo contiene un valor específico, también puede usar el elemento [ ].
Ejemplo de uso:
if 'suministros' ['stock']
true
else
false
end
Además de los operadores aritméticos, puede usar raíces y funciones trigonométricas, logarítmicas y trascendentales básicas. Las funciones deben escribirse de la siguiente manera: Math::function(Field_name). Por ejemplo, Math::acos(Field_csIfon). Lista detallada de funciones matemáticas:
Funciones trigonométricas
(::cos) Devuelve el coseno del argumento dado.
(::sin) Devuelve el seno del argumento dado.
(::tan) Devuelve la tangente del argumento dado.
Funciones trigonométricas inversas
(::acos) Devuelve el arcocoseno del argumento dado.
(::asin) Devuelve el arco seno del argumento dado.
(::atan) Devuelve el arco tangente del argumento dado.
(::atan2) Devuelve la tangente arg de dos argumentos dados.
Funciones trigonométricas hiperbólicas
(::cosh) Devuelve el coseno hiperbólico del argumento dado.
(::sinh) Devuelve el seno hiperbólico del argumento dado.
(::tanh) Devuelve la tangente hiperbólica del argumento dado.
Funciones trigonométricas hiperbólicas inversas
(::acosh) Devuelve el coseno hiperbólico inverso del argumento dado.
(::asinh) Devuelve el seno hiperbólico inverso del argumento dado.
(::atanh) Devuelve la tangente hiperbólica inversa del argumento dado.
Exponenciación y funciones logarítmicas
(::exp) Devuelve el valor de un valor dado elevado a una potencia dada.
(::log) Devuelve el logaritmo de un valor dado en una base dada.
(::log10) Devuelve el logaritmo en base 10 del argumento dado.
(::log2) Devuelve el logaritmo en base 2 del argumento dado.
Funciones de fracción y exponente
(::frexp) Devuelve la fracción y el exponente del argumento dado.
(::ldexp) Devuelve el valor de una fracción y un exponente determinados.
Funciones raíz
(::cbrt) Devuelve la raíz cúbica del argumento dado.
(::sqrt) Devuelve la raíz cuadrada del argumento dado.
Funciones de error
(::erf) Devuelve el valor de la función de error de Gauss para el argumento dado.
(::erfc) Devuelve el valor de la función de error complementaria para el argumento dado.
Funciones gamma
(::gamma) Devuelve el valor de la función gamma para el argumento dado.
(::lgamma) Devuelve el valor de la función gamma logarítmica para el argumento dado.
Función hipotenusa
(::hypot) Devuelve sqrt(a**2 + b**2) para a y b dados.
Además, puede usar dos variables: a y b
Aquí hay algunos ejemplos de cómo simplificar su trabajo usando funciones.
Tenemos una tabla de candidatos a puestos de trabajo:
La tarea consiste en dividir a los candidatos en tres grupos: un candidato adecuado, un candidato de reserva y un candidato inadecuado.
Podemos usar el formulario de búsqueda, pero luego tendremos que usar todos los criterios:
Un campo Fórmula con una función viene al rescate. Creemos una nueva fórmula de "Selección".
Tenemos que dividir a los candidatos en tres grupos condicionales.
Si el candidato tiene:
- Edad menor de 45 años;
- Educación más alta;
- Experiencia laboral de más de 5 años;
- Una recomendación de un empleador anterior, entonces dicho candidato recibe el estado "Adecuado".
Para el grupo "Reserva", un candidato necesita menos de 50 años, educación superior o terciaria y más de 5 años de experiencia laboral.
Todos los demás candidatos reciben el estado "Inadecuado"
Escribamos el siguiente código para la función:
if edad <45 && "educación" == "Superior" && exp> 5 && "recomendar" == "Sí"
"Apropiado"
elsif edad <50 && "educación" == "Superior" || "Terciario" && exp> 5
"Reserva"
else
"Inadecuado"
end
Tenga en cuenta: los valores numéricos (incluidos los nombres de campo html) no se citan. Las comillas se utilizan solo para valores de cadena.
Como puede ver en la siguiente captura de pantalla, a cada candidato se le asignó un estado según los criterios:
Es mucho más fácil buscar en un solo campo en lugar de en varios criterios:
Lo mismo con el formato condicional en una tabla:
Usamos el campo "Selección" para formatear registros en la tabla:
Es mucho más conveniente generar un informe después de buscar o agrupar por un campo:
Que contiene todos los candidatos por criterios seleccionados:
No se olvide de las acciones condicionales y el campo Acción.
Por ejemplo, cree un botón con la acción "Enviar correo electrónico", que está disponible en el registro solo con los candidatos "Aptos".
Puede ver un ejemplo de cómo crear un botón de acción en este enlace.
Un campo de función se puede utilizar como criterio en Reglas de campo.
Como ejemplo, habilite el campo "Selección" en el formulario:
A continuación, creemos un nuevo campo "Agregar a la cola" (botón de opción) con una opción de dos valores:
Crea una regla.
Si el campo "Selección" consiste en "Reservar", muestra el campo "Agregar a la cola":
Así es como se ve en el formulario:
Las funciones permitirán no solo una gestión de datos más eficiente, sino también cálculos más complejos.
Por ejemplo, considere una tabla de definición de ganancias:
La tarea consiste en calcular el beneficio total.
La fórmula tiene este aspecto: beneficio total = ingresos - coste total
Si realizamos dicho cálculo utilizando fórmulas estándar, tendríamos que dividir el cálculo en varias fórmulas (calcular por separado los ingresos y el costo total).
Con las funciones de Ruby, puede hacer este cálculo en un campo:
(precio_venta * cantidad) - (costo_compra * cantidad)
Beneficio total en la tabla:
Tenga en cuenta: para un cálculo correcto, debe utilizar el tipo de campo "Decimal".
Contando días entre fechas
Por ejemplo, usaremos una tabla con contratos.
Tarea: muestra cuántos días finalizará el contrato.
Cree el siguiente script:
exp_date.mjd - DateTime.now
Donde:
exp_date: nombre del campo html.
Método .mjd: convierte la fecha al formato de calendario juliano.
DateTime.now: objeto cuyo valor es la fecha y hora local actual.
Como resultado, obtenemos una columna con el número de días hasta el final del contrato.