Compartir a través de


Función VALUEIN de ER

La función VALUEIN determina si la entrada especificada coincide con algún valor de un elemento específico de la lista especificada. Devuelve un Booleano valor de TRUE si la entrada especificada coincide con el resultado de ejecutar la expresión especificada para al menos un registro de la lista especificada. De lo contrario, la expresión devuelve un valor Booleano de FALSE.

Sintaxis

VALUEIN (input, list, list item expression)

Argumentos

input: Campo

La ruta válida de un elemento de un origen de datos del tipo Lista de registros. El valor de este elemento se conciliará.

list: Lista de registros

La ruta válida de un origen de datos del tipo de datos Lista de registros.

list item expression: Booleano

Un expresión condicional válida que señala o contiene un único campo de la lista especificada que se debe usar para la asignación.

Valores de retorno

Booleano

El valor Booleano resultante.

Notas de uso

En general, la función VALUEIN se convierte a un conjunto de condiciones OR. Si la lista de condiciones O es grande y se puede exceder la longitud total máxima de una declaración SQL, considere usar la función VALUEINLARGE.

(input = list.item1.value) OR (input = list.item2.value) OR …

En algunos casos, se puede traducir a una instrucción de la base de datos SQL mediante el uso del operador EXISTS JOIN.

Nota

El valor que devuelve la función VALUEIN devuelve se usa de manera diferente, dependiendo de si esta función se utiliza para especificar los criterios de selección para la función FILTER o la función WHERE.

Ejemplo 1

En su modelo de asignación, define el origen de datos Lista del tipo Campo calculado. Este origen de datos contiene la expresión SPLIT ("a,b,c", ",").

Cuando se llama a un origen de datos, si se ha configurado como la expresión VALUEIN ("B", List, List.Value), devuelve TRUE. En este caso, la función VALUEIN se traduce al conjunto de condiciones siguiente: (("B" = "a") or ("B" = "b") or ("B" = "c")), donde ("B" = "b") es igual a TRUE.

Cuando se llama a un origen de datos, si se ha configurado como la expresión VALUEIN ("B", List, LEFT(List.Value, 0)), devuelve FALSE. En este caso, la función VALUEIN se traduce a la condición siguiente: ("B" = ""), que no es igual a TRUE.

El límite superior del número de caracteres en el texto de esta condición es 32 768 caracteres. Por lo tanto, no es necesario crear orígenes de datos que puedan superar este límite en el tiempo de ejecución. Si se supera el límite, la aplicación dejará de ejecutarse, y se generará una excepción. Por ejemplo, esta situación puede producirse si el origen de datos se configura como WHERE (List1, VALUEIN (List1.ID, List2, List2.ID), y las listas List1 y List2 contienen un gran número de registros.

En algunos casos, la función VALUEIN se convierte en una instrucción de una base de datos mediante el operador EXISTS JOIN. Este comportamiento aparece cuando se utiliza la función FILTER y se cumplen las siguientes condiciones:

  • La opción PEDIR CONSULTA se desactiva para el origen de datos de la función VALUEIN que se refiere a la lista de registros. No se aplicarán condiciones adicionales a este origen de datos en el tiempo de ejecución.
  • No se configuran expresiones anidadas para el origen de datos de la función VALUEIN que se refiere a la lista de registros.
  • Un elemento de lista de la función VALUEIN hace referencia a un campo del origen de datos especificado, no una expresión o un método.

Considere usar esta opción en lugar de la función WHERE que se describe anteriormente en este ejemplo.

Ejemplo 2

Defina los siguientes orígenes de datos en la asignación de su modelo:

  • El origen de datos En del tipo Registros de la tabla. Este origen de datos se refiere a la tabla Intrastat.
  • El origen de datos Puerto del tipo Registros de la tabla. Este origen de datos se refiere a la tabla IntrastatPort.

Cuando se llama a un origen de datos que está configurado como la expresión FILTER (In, VALUEIN(In.Port, Port, Port.PortId), la instrucción SQL siguiente se genera para devolver registros filtrados de la tabla Intrastat.

select … from Intrastat
exists join TableId from IntrastatPort
where IntrastatPort.PortId = Intrastat.Port

Para los campos dataAreaId , la instrucción SQL final se genera usando el operador IN.

Ejemplo 3

Defina los siguientes orígenes de datos en la asignación de su modelo:

  • Agregue el origen de datos Le al tipo de datos Campo calculado. Este origen de datos contiene la expresión SPLIT ("DEMF,GBSI,USMF", ",").
  • El origen de datos En del tipo Registros de la tabla. Esta fuente de datos se refiere a la tabla Intrastat, y la opción Entre empresas está desactivada para ello.

Cuando se llama a un origen de datos que se configuró como la expresión FILTER (In, VALUEIN (In.dataAreaId, Le, Le.Value), la instrucción SQL final contiene la siguiente condición.

Intrastat.dataAreaId IN ('DEMF', 'GBSI', 'USMF')

Recursos adicionales

Funciones lógicas

Funciones VALUEINLARGE