Funciones del Diseñador de modelos
Puede utilizar las funciones del Diseñador de modelos de informe para calcular nuevos atributos. Por ejemplo, imagine que desea saber las ventas totales por pedido de venta. Esta cifra se compone del importe de venta más el impuesto pagado por el pedido. Con la función Add, puede sumar cada total de ventas al impuesto pagado por pedido de venta. En la lista siguiente se explican las funciones disponibles, sus requisitos y su comportamiento.
Funciones escalares
Las funciones escalares permiten realizar cálculos en un solo argumento para devolver un nuevo valor para un campo.
Nombre de función | Argumento | Tipo de datos | Cardinalidad | Descripción |
---|---|---|---|---|
Add |
Item1 |
Numeric |
1 |
Primer elemento para sumar. |
Item2 |
Numeric |
1 |
Segundo elemento para sumar. |
|
Return |
El tipo es Float si uno de los elementos es Float, Decimal si uno de los elementos es Decimal; de lo contrario, Integer. |
|||
Subtract |
Item1 |
Numeric |
1 |
Elemento del que se resta. |
Item2 |
Numeric |
1 |
Elemento para restar. |
|
Return |
El tipo es Float si uno de los elementos es Float, Decimal si uno de los elementos es Decimal; de lo contrario, Integer. |
|||
Multiply |
Item1 |
Numeric |
1 |
Primer elemento para multiplicar. |
Item2 |
Numeric |
1 |
Segundo elemento para multiplicar. |
|
Return |
El tipo es Float si uno de los elementos es Float, Decimal si uno de los elementos es Decimal; de lo contrario, Integer. |
|||
Divide |
Item1 |
Numeric |
1 |
Elemento para dividir. |
Item2 |
Numeric |
1 |
Elemento entre el que dividir. |
|
Return |
El tipo es Float si un elemento es Float; de lo contrario, Decimal. |
|||
Power |
Base |
Numeric |
1 |
Base para elevar a una potencia. |
Exponent |
Numeric |
1 |
Exponente. |
|
Return |
El tipo es Float si uno de los elementos es Float, Decimal si uno de los elementos es Decimal; de lo contrario, Integer. |
|||
Negate |
Item |
Numeric |
1 |
Elemento para negar. |
Return |
El tipo es el mismo del elemento. |
|||
Mod |
Item1 |
Integer |
1 |
Elemento para dividir. |
Item2 |
Integer |
1 |
Elemento entre el que dividir. |
|
Return |
Integer |
Resto de la división. |
||
Es igual a |
Item1 |
Boolean, DateTime, Integer, Decimal, Float, String o EntityKey |
1 |
Primer elemento para comparar. |
Item2 |
1 |
Segundo elemento para comparar. Item1 y Item2 deben tener el mismo tipo de datos. |
||
Return |
Boolean |
Indica si los elementos son iguales. |
||
NotEquals |
Item1 |
Boolean, DateTime, Integer, Decimal, Float, String o EntityKey |
1 |
Primer elemento para comparar. |
Item2 |
1 |
Segundo elemento para comparar. Item1 y Item2 deben tener el mismo tipo de datos. |
||
Return |
Boolean |
Indica si los elementos no son iguales. |
||
GreaterThan |
Item1 |
DateTime, Integer, Decimal, Float o String |
1 |
Primer elemento para comparar. |
Item2 |
1 |
Segundo elemento para comparar. Item1 y Item2 deben tener el mismo tipo de datos. |
||
Return |
Boolean |
Indica si el primer elemento es mayor que el segundo. |
||
GreaterThanOrEquals |
Item1 |
DateTime, Integer, Decimal, Float o String |
1 |
Primer elemento para comparar. |
Item2 |
1 |
Segundo elemento para comparar. Item1 y Item2 deben tener el mismo tipo de datos. |
||
Return |
Boolean |
Indica si el primer elemento es mayor o igual que el segundo. |
||
LessThan |
Item1 |
DateTime, Integer, Decimal, Float o String |
1 |
Primer elemento para comparar. |
Item2 |
1 |
Segundo elemento para comparar. Item1 y Item2 deben tener el mismo tipo de datos. |
||
Return |
Boolean |
Indica si el primer elemento es menor que el segundo. |
||
LessThanOrEquals |
Item1 |
DateTime, Integer, Decimal, Float o String |
1 |
Primer elemento para comparar. |
Item2 |
1 |
Segundo elemento para comparar. Item1 y Item2 deben tener el mismo tipo de datos. |
||
Return |
Boolean |
Indica si el primer elemento es menor o igual que el segundo. |
||
And |
Item1 |
Boolean |
1 |
Primera condición. |
Item2 |
Boolean |
1 |
Segunda condición. Si Item1 es false, Item2 no se evalúa. |
|
Return |
Boolean |
Si Item1 y Item2 son true, el valor devuelto es true. |
||
Or |
Item1 |
Boolean |
1 |
Primera condición. |
Item2 |
Boolean |
1 |
Segunda condición. Si Item1 es true, Item2 no se evalúa. |
|
Return |
Boolean |
Si Item1 o Item2 es true, el valor devuelto es true. |
||
Not |
Item |
Boolean |
1 |
Condición para negar. |
Return |
Boolean |
Si Item es false, el valor devuelto es true. |
||
Truncate |
Item |
Decimal o Float |
1 |
Elemento para truncar. |
Digits |
Integer |
1 |
Número de dígitos decimales en el que se debe truncar el elemento. Por ejemplo, especifique tres para truncar el elemento después del tercer dígito a la derecha del signo decimal. |
|
Return |
El tipo del valor devuelto es el mismo que el del elemento que se trunca. |
|||
Round |
Item |
Decimal o Float |
1 |
Elemento para redondear. |
Digits |
Integer |
1 |
Número de dígitos decimales a los que se debe redondear el elemento. Por ejemplo, especifique tres para redondear el elemento al tercer dígito a la derecha del signo decimal. |
|
Return |
El tipo del valor devuelto es el mismo que el del elemento que se redondea. |
|||
Integer |
Item |
Numeric o String |
1 |
Elemento para convertir. En el Generador de informes, Integer aparece en la ficha Función como INT. |
Return |
Integer |
Elemento convertido como Integer. Si el elemento es un valor numérico, se trunca. Tenga en cuenta que se utiliza la configuración regional invariable para convertir cadenas numéricas. El separador decimal es un punto. No se permite la coma utilizada para separar miles. |
||
Decimal |
Item |
Numeric o String |
1 |
Elemento para convertir. |
Return |
Decimal |
Elemento convertido como Decimal. |
||
Float |
Item |
Numeric o String |
1 |
Elemento para convertir. |
Return |
Float |
Elemento convertido como Float. |
||
String |
Item |
Numeric |
1 |
Elemento para convertir. En el Generador de informes, String aparece en la ficha Función como TEXT. |
Return |
String |
Elemento para convertir como String. |
||
Length |
String |
String |
1 |
Cadena utilizada para determinar la longitud. |
Return |
Integer |
Longitud de la cadena, especificada como número de caracteres de la cadena. |
||
Find |
String |
String |
1 |
Cadena en la que se busca la cadena. |
Substring |
String |
1 |
Subcadena para buscar. |
|
Return |
Integer |
Posición de la primera instancia de la subcadena dentro de la cadena. Si no se encuentra la subcadena, se devuelve 0. |
||
Substring |
String |
String |
1 |
Cadena de la que se extrae una subcadena. |
Start |
Integer |
1 |
Posición inicial dentro de la cadena (basada en 1). |
|
Length |
Integer |
1 |
Número de caracteres. |
|
Return |
String |
Subcadena extraída de la cadena que contiene los caracteres de Start a Start+Length. |
||
Left |
String |
String |
1 |
Cadena de la que se obtienen los caracteres situados más a la izquierda. |
Length |
Integer |
1 |
Número de caracteres. |
|
Return |
String |
Subcadena de la cadena que contiene los caracteres de 1 a Length. |
||
Right |
String |
String |
1 |
Cadena de la que se obtienen los caracteres situados más a la derecha. |
Length |
Integer |
1 |
Número de caracteres. |
|
Return |
String |
Subcadena de la cadena de Length(String)-Length+1 a Length(String). |
||
Concat |
String1 |
String |
1 |
Primera cadena para concatenar. |
String2 |
String |
1 |
Segunda cadena para concatenar. |
|
Return |
String |
Segunda cadena concatenada al final de la primera cadena. |
||
Lower |
String |
String |
1 |
Cadena para poner en minúsculas. |
Return |
String |
Cadena con todos los caracteres en mayúscula pasados a minúscula. |
||
Upper |
String |
String |
1 |
Cadena para poner en mayúsculas. |
Return |
String |
Cadena con todos los caracteres en minúscula pasados a mayúscula. |
||
LTrim |
String |
String |
1 |
Cadena de la que quitar los espacios iniciales. |
Return |
String |
Cadena con los espacios iniciales quitados. |
||
RTrim |
String |
String |
1 |
Cadena de la que quitar los espacios finales. |
Return |
String |
Cadena con los espacios finales quitados. |
||
Replace |
String |
String |
1 |
Cadena en la que reemplazar todas las instancias de una subcadena por otra. |
Find |
String |
1 |
Subcadena para buscar. |
|
Replace |
String |
1 |
Subcadena que reemplaza la cadena Find. |
|
Return |
String |
Cadena con todas las instancias de Find reemplazadas por Replace. |
||
Date |
Year |
Integer |
1 |
Año de la fecha. |
Month |
Integer |
1 |
Mes (1-12) de la fecha. |
|
Day |
Integer |
1 |
Día (1-31) de la fecha que debe ser un día válido del mes y año especificados. |
|
Return |
DateTime |
Una fecha y hora con el año, mes y día dados a la hora 00:00:00. |
||
DateTime |
Year |
Integer |
1 |
Año de la fecha. |
Month |
Integer |
1 |
Mes (1-12) de la fecha. |
|
Day |
Integer |
1 |
Día (1-31) de la fecha que debe ser un día válido del mes y año especificados. |
|
Hour |
Integer |
1 |
Hora (0-23) de la hora. |
|
Minute |
Integer |
1 |
Minuto (0-59) de la hora. |
|
Second |
Decimal |
1 |
Segundo (0-60) de la hora. |
|
Return |
DateTime |
Fecha y hora con el año, mes, día, hora, minuto y segundo especificados. |
||
Year |
DateTime |
DateTime |
1 |
Fecha de la que se extrae el año. |
Return |
Integer |
Año de la fecha y hora. |
||
Quarter |
DateTime |
DateTime |
1 |
Fecha de la que se extrae el trimestre. |
Return |
Integer |
Trimestre (1-4) de la fecha y hora. |
||
Month |
DateTime |
DateTime |
1 |
Fecha de la que se extrae el mes. |
Return |
Integer |
Mes (1-12) de la fecha y hora. |
||
Day |
DateTime |
DateTime |
1 |
Fecha de la que se extrae el día. |
Return |
Integer |
Día (1-31) de la fecha y hora. |
||
Hour |
DateTime |
DateTime |
1 |
Fecha de la que se extrae la hora. |
Return |
Integer |
Hora (0-23) de la fecha y hora. |
||
Minute |
DateTime |
DateTime |
1 |
Fecha de la que se extrae el minuto. |
Return |
Integer |
Minuto (0-59) de la fecha y hora. |
||
Second |
DateTime |
DateTime |
1 |
Fecha de la que se extrae el segundo. |
Return |
Integer |
Segundo (0-60) de la fecha y hora. |
||
DayofYear |
DateTime |
DateTime |
1 |
Fecha de la que se extrae el día del año. |
Return |
Integer |
Día del año (1-366) de la fecha y hora. |
||
Week |
DateTime |
DateTime |
1 |
Fecha de la que se extrae el día de la semana. |
Return |
Integer |
Semana (1-53) de la fecha y hora. El primer día de la semana se determina por el primer día de la semana predeterminado asociado con la referencia cultural del modelo semántico. |
||
DayofWeek |
DateTime |
DateTime |
1 |
Fecha de la que se extrae el día de la semana. |
Return |
Integer |
Día de la semana (1-7) de la fecha y hora. El valor comienza con lunes = 1 a domingo = 7. |
||
Date |
DateTime |
DateTime |
1 |
Fecha de la que se quita la hora. En el Generador de informes, esta función Date aparece en la ficha Función como DATEONLY. |
Return |
Integer |
Fecha y hora con la hora borrada (00:00:00). |
||
Now |
Return |
DateTime |
Fecha y hora actuales. Now es una función estática. |
|
Today |
Return |
DateTime |
Fecha y hora actuales con la hora borrada (00:00:00). Today es una función estática. |
|
DateDiff |
Interval |
String |
1 |
Unidades utilizadas para especificar la diferencia de fecha. Debe ser: Year, Quarter, Month, Day, Hour, Minute, Second o Week. Debe ser de tipo Literal. |
Start |
DateTime |
1 |
Fecha y hora iniciales. |
|
End |
DateTime |
1 |
Fecha y hora finales. |
|
Return |
Integer |
Diferencia entre la fecha y hora iniciales, y la fecha y hora finales en las mismas unidades especificadas en el intervalo. Si la fecha y hora iniciales es posterior a la fecha y hora finales, el resultado es negativo. |
||
DateAdd |
Interval |
String |
1 |
Unidades utilizadas para especificar la adición de fecha. Debe ser: Year, Quarter, Month, Day, Hour, Minute, Second o Week. Debe ser de tipo Literal. |
Number |
Integer |
1 |
Número de unidades de intervalo para agregar a la fecha y hora. |
|
DateTime |
DateTime |
1 |
Fecha y hora a la que agregar. |
|
Return |
DateTime |
Fecha y hora resultado de agregar el número especificado de unidades de intervalo a la fecha y hora originales. |
Funciones de agregado
Las funciones de agregado permiten realizar cálculos en varios conjuntos de valores o un solo valor, y devolver un valor para una expresión.
Nombre de función | Argumento | Tipo de datos | Cardinalidad | Descripción |
---|---|---|---|---|
Sum |
Items |
Numeric |
N |
Elementos para sumar. |
Return |
1 |
Suma de valores de todos los elementos. El valor devuelto tiene el mismo tipo de datos que los elementos. |
||
Avg |
Items |
Numeric |
N |
Elementos de los que obtener el promedio. En el Generador de informes, Avg aparece en la ficha Función como AVERAGE. |
Return |
1 |
Promedio de los valores no Null de los elementos. El tipo de datos es Decimal si los elementos son Decimal o Integer; de lo contrario, es Float. |
||
Max |
Items |
DateTime, Integer, Decimal, Float o String |
N |
Elementos ordenados para determinar el máximo. |
Return |
1 |
Máximo de los valores no Null de los elementos. El valor devuelto tiene el mismo tipo de datos que los elementos. |
||
Min |
Items |
DateTime, Integer, Decimal, Float o String |
N |
Elementos ordenados para determinar el mínimo. |
Return |
1 |
Mínimo de los valores no Null de los elementos. El valor devuelto tiene el mismo tipo de datos que los elementos. |
||
Count |
Items |
Cualquiera |
N |
Elementos para contar. |
Return |
Integer |
1 |
Recuento de los valores no Null de los elementos. |
|
CountDistinct |
Items |
Cualquiera |
N |
Elementos para contar. El tipo de datos de los elementos no puede ser EntityKey. |
Return |
Integer |
1 |
Recuento de los valores no Null distintivos de los elementos. |
|
StDev |
Items |
Numeric |
N |
Elementos utilizados para determinar la desviación estándar. |
Return |
Float |
1 |
Desviación estándar de los valores no Null de los elementos. |
|
StDevP |
Items |
Numeric |
N |
Elementos utilizados para determinar la desviación estándar de población. |
Return |
Float |
1 |
Desviación estándar de población de los valores no Null de los elementos. |
|
Var |
Items |
Numeric |
N |
Elementos utilizados para determinar la varianza. |
Return |
Float |
1 |
Varianza de los valores no Null de los elementos. |
|
VarP |
Items |
Numeric |
N |
Elementos utilizados para determinar la varianza de población. |
Return |
Float |
1 |
Llenado de varianza de población no Null de los elementos. |
Funciones informativas
Las funciones informativas permiten obtener información básica de los usuarios.
Nombre de función | Argumento | Tipo de datos | Cardinalidad | Descripción |
---|---|---|---|---|
GetUserID |
Return |
String |
1 |
Id. del usuario. GetUserID es una función estática. |
GetUserCulture |
Return |
Language |
1 |
Idioma o configuración regional del usuario. GetUserCulture es una función estática. |
Otras funciones
Además de las funciones mencionadas, se utilizan las siguientes funciones en el Lenguaje de definición de modelos semánticos.
Nombre de función | Argumento | Tipo de datos | Cardinalidad | Descripción |
---|---|---|---|---|
Filter |
Filter Items |
Cualquiera |
N |
Valores que se van a filtrar. Para filtrar elementos, utilice el cuadro de diálogo Filtro. |
Filter Condition |
Boolean |
1 |
Indica si se incluye la instancia correspondiente. |
|
Return |
N |
El valor devuelto tiene el mismo tipo de datos que los elementos que se filtran. |
||
In |
Item |
Boolean, DateTime, Integer, Decimal, Float, String o EntityKey |
1 |
Elemento del que se comprueba la pertenencia al conjunto. |
Set |
N |
Debe ser una expresión Literal sin ruta de acceso. El elemento y el conjunto deben tener el mismo tipo de datos. |
||
Return |
Boolean |
1 |
Indica si el elemento está en el conjunto. |
|
If |
Condition |
Boolean |
1 |
Condición que se prueba. |
TrueCase |
Cualquiera |
1 |
Valor para devolver si la condición es true. Si la condición es false, TrueCase no se evalúa. No puede tener el tipo de datos EntityKey. |
|
FalseCase |
Cualquiera |
1 |
Valor para devolver si la condición es false. FalseCase debe tener el mismo tipo de valor que TrueCase. Si la condición es true, FalseCase no se evalúa. |
|
Return |
1 |
El tipo debe ser el mismo de TrueCase. |
||
Switch |
Condition1 |
Boolean |
1 |
Condición que se prueba. Switch puede tener ninguno o más pares condición/valor adicionales: |
Value1 |
Cualquiera |
1 |
Valor para devolver si condition1 es true. |
|
Condition/N |
Boolean |
1 |
Condición que se prueba. No se evalúa si alguna condición anterior es true. |
|
Value/N |
Boolean |
1 |
Valor para devolver si Condition/N es true. Debe tener el mismo tipo de datos que Value1. No se evalúa si no se evalúa Condition/N o si Condition/N es false. |
|
Return |
Boolean |
1 |
El tipo es el mismo de Value1. Devuelve Null si todas las condiciones son false. |
|
Evaluate |
Expression |
Cualquiera |
N |
Expresión para evaluar. Esta función se utiliza para controlar el contexto de entidad en el que se evalúa una expresión. Por ejemplo, la siguiente expresión obtiene el promedio de los precios de cada producto distintivo que pidió el cliente: Avg([customer->order->product]Price). La siguiente expresión obtiene el promedio de los precios (obtenidos de la entidad del producto) de cada pedido que realizó el cliente: Avg([customer->order]Evaluate([order->product]Price)). Hay varios puntos en una ruta de acceso donde la ubicación de evaluación puede controlar la distinción de un agregado y se puede utilizar Evaluate varias veces de forma independiente. El siguiente es un ejemplo de varios usos independientes de Evaluate en un modelo donde cada producto puede ser producido por varios fabricantes: Average([customer->order]Evaluate([order->product]Evaluate([product->manufacturer->city]population))) |
Return |
N |
El tipo es el mismo de la expresión. |
||
Aggregate |
Expression |
Cualquiera |
N |
Expresión de agregado para evaluar. Esta función se utiliza para controlar el contexto de entidad en el que se evalúa una agregación. Por ejemplo, considere un atributo TotalSales definido en una entidad Order. La expresión para mostrar las ventas totales en el contexto de un pedido es simple: TotalSales. La expresión para calcular las ventas totales en el contexto de un cliente debe ser: Aggregate([customer->order]TotalSales). El argumento de la expresión debe contener una expresión no delimitada o una o varias funciones de paso a través anidadas (que deben tomar cualquier tipo de datos), donde el argumento de paso a través más interno tiene un ExpressionNode no delimitado. Por ejemplo, Aggregate([customer->order]Filter([order->product]Sum(UnitPrice),=(Shipped, "True")). |
Return |
1 |
El tipo es el mismo de la expresión. |
Vea también
Conceptos
Propiedades de los objetos del Diseñador de modelos
Propiedades de consulta del Diseñador de modelos
Tipos de datos del Diseñador de modelos
Usar funciones (Generador de informes)