Función FINDMULTI( )

Devuelve un valor lógico que indica si una cadena de un conjunto de una o más cadenas especificadas está presente en un campo en particular o en algún lugar de un registro completo.

Sintaxis

FINDMULTI({buscar_en | RECORD}; cadena_1 <;...n>)

Parámetros

Nombre Tipo Descripción
buscar_en | RECORD

carácter

El campo o la variable donde se realiza la búsqueda.

Especifique la palabra clave RECORD para buscar en todo el registro, incluidas las partes no definidas del registro.

También puede especificar una lista de campos concatenando los nombres de los campos:

Campo_1+Campo_2+Campo_3
cadena_1 <;...n>

carácter

Búsqueda de una o más cadenas de caracteres. Separe las diferentes cadenas de búsqueda con punto y coma:

FINDMULTI(RECORD; "Joa"; "Jim"; "Joh")

La búsqueda no distingue mayúsculas y minúsculas.

Salida

Lógico. Devuelve T (verdadero) si se encuentra alguno de los valores de la cadena especificada y F (falso) en caso contrario.

Ejemplos

Ejemplos básicos

Buscar en un registro completo

Devuelve T para todos los registros que contienen "New York" o "Chicago" en cualquier campo, entre límites de campos y en cualquier parte no definida del registro. De lo contrario, devuelve F:

FINDMULTI(RECORD; "New York"; "Chicago")

Buscar en un solo campo

Devuelve T para todos los registros que contienen "New York" o "Chicago" en el campo Ciudad. De lo contrario, devuelve F:

FINDMULTI(Ciudad; "New York"; "Chicago")

Devuelve T para todos los registros que contienen la cadena "Ne" o "Chi" en el campo Ciudad. De lo contrario, devuelve F:

FINDMULTI(Ciudad; "Ne"; "Chi")

Devuelve T para todos los registros que contienen "New York" o "Chicago" precedida de uno o más espacios en el campo Ciudad. De lo contrario, devuelve F:

FINDMULTI(Ciudad; "New York"; "Chicago")

Devuelve T para todos los registros que tienen un valor en el campo Descripción que contiene o coincide con cualquiera de los valores de las variables v_término_búsqueda. De lo contrario, devuelve F:

FINDMULTI(Description; v_término_búsqueda_1; v_término_búsqueda_2, v_término_búsqueda_3)

Buscar en varios campos

Devuelve T para todos los registros que contienen la cadena "New York" o "Chicago" en el campo Ciudad o el campo Ciudad_2. De lo contrario, devuelve F:

FINDMULTI(Ciudad+Ciudad_2; "New York"; "Chicago")

Devuelve T para todos los registros que contienen la cadena "New York" o "Chicago" en el campo Ciudad o el campo Ciudad_2. De lo contrario, devuelve F:

FINDMULTI(Ciudad; "New York"; "Chicago") OR FINDMULTI(Ciudad_2; "New York"; "Chicago")

Combinación con otras funciones

Devuelve T para todos los registros que tienen un valor en el campo Apellido_1 que coincide con el valor recortado de los campos Apellido_2 o Apellido_3 o que lo contiene. De lo contrario, devuelve F:

FINDMULTI(Apellido; ALLTRIM(Apellido_2), ALLTRIM(Apellido_3))

Observaciones

Cuándo usar FINDMULTI( )

Utilice la función FINDMULTI( ) para comprobar la presencia de cualquiera de las cadenas especificadas en uno, dos o más campos, o en un registro completo.

Cómo funciona la coincidencia

El valor de la cadena puede tener una coincidencia exacta o puede estar incluido dentro de una cadena más larga. Los espacios al principio no afectan la búsqueda, a menos que se incluyan uno o más espacios iniciales en el valor de la cadena.

Buscar en un registro completo

Si especifica RECORD en lugar de un campo buscar_en, se busca en todo el registro, incluida cualquier parte no definida del registro. Los límites del campo se ignoran cuando se realiza una búsqueda en todo el registro y los espacios al final de los campos se consideran como caracteres.

Nota

Cuando realice la búsqueda en un registro completo, se busca en el registro físico. No se realizan búsquedas en los campos calculados ni en los campos relacionados.

Buscar en un subconjunto de campos

Puede concatenar dos o más campos en el parámetro buscar_en si desea buscar en un subconjunto de campos de una tabla. Por ejemplo, para buscar la cadena "New York" o "Chicago" tanto en el campo Ciudad como en el campo Ciudad_2:

FINDMULTI(Ciudad+Ciudad_2; "New York"; "Chicago")

Los campos concatenados se tratan como un único campo que incluye los espacios al principio y al final de los campos individuales, a menos que utilice la función ALLTRIM( ) para quitar los espacios.

También puede generar una expresión que busque en cada campo de manera individual:

FINDMULTI(Ciudad; "New York"; "Chicago") OR FINDMULTI(Ciudad_2; "New York"; "Chicago")

Si un valor cadena incluye un espacio al principio, los resultados de la búsqueda de estos dos enfoques pueden diferir.

Comparaciones exactas de caracteres con distinción entre mayúsculas y minúsculas

La función FINDMULTI( ) no distingue mayúsculas y minúsculas, y encuentra tanto caracteres ASCII como EBCDIC. La función no se ve afectada por la opción Comparaciones de caracteres exactos (SET EXACT ON/OFF).

Buscar en un campo calculado

Para buscar en un campo calculado, debe especificar el nombre del campo en buscar_en. Por ejemplo, si Ciudad_proveedor es un campo calculado que aísla la ciudad en una dirección:

FINDMULTI(Ciudad_proveedor; "New York"; "Chicago")

Buscar en un campo relacionado

Para buscar en un campo relacionado, debe especificar el nombre calificado completo del campo (es decir, tabla.nombre campo) en el valor buscar_en:

FINDMULTI(Proveedor.Ciudad_proveedor; "New York"; "Chicago")

Buscar datos numéricos o de fechahora

Es posible usar la función FINDMULTI( ) para buscar datos numéricos o de fechahora a nivel del registro, cuando se especifica RECORD. No se admite la especificación de un campo buscar_en para búsquedas numéricas o de fechahora.

Los valores de la cadena numérica o de fechahora deben estar encerrados entre comillas y deben coincidir de forma exacta con el formato de los datos de origen en lugar de con el formato de la vista.

No se admite el uso de la función FINDMULTI( ) para buscar datos numéricos o de fechahora en campos calculados o relacionados.

Nota

No se recomienda usar la función FINDMULTI( ) para buscar datos numéricos o de fechahora porque puede resultar difícil hacerlo con éxito.

Guía de creación de scripts de ACL 14.1