AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Administrar bases de datos / HFSQL / Funciones HFSQL
  • automatic gestión de claves compuestas
  • Filtro e iteración filtrada:
  • Habilitar/Deshabilitar un filtro
  • Archivos de datos no HFSQL
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Define y habilita un filtro "Empezar con" en un archivo de datos, una vista o una consulta. El filtro "Empieza con" se utiliza para seleccionar todos los registros que empiezan con un determinado set de caracteres.
Después de su ejecución, los casos más comunes son los siguientes:
  • no se puede crear el filtro: HFilterStartsWith devuelve una cadena vacía (""). HError devuelve el identificador del error.
  • se crea el filtro: la función HFilterStartsWith devuelve la clave de búsqueda adecuada que se utilizará para navegar por el archivo de datos, la vista o la consulta.
Ejemplo
MyKey is string
// Selects all the customers living in a city whose name starts with "Mon"
MyKey = HFilterStartsWith(Customer, City, "Mon")
HReadFirst(Customer, MyKey)
WHILE NOT HOut()
Trace(Customer.CustomerName, Customer.City)
HReadNext(Customer, MyKey)
END
...
// Cancels the filter
HDeactivateFilter(Customer)
Sintaxis
<Result> = HFilterStartsWith(<Data file> , <Key item> , <Filter for key component 1> [, <Filter for key component 2> [... [, <Filter for key component N>]]])
<Result>: Cadena de caracteres
Campo de navegación. Corresponde a:
  • la clave de búsqueda del archivo de datos si el filtro está activado
  • una cadena vacía si el filtro no se puede implementar
<Data file>: Cadena de caracteres
Nombre del archivo de datos HFSQL, vista o consulta utilizada.
<Key item>: Cadena de caracteres
Nombre del elemento clave sobre el que se aplicará el filtro. Este elemento puede ser una llave simple (cadena) o una llave compuesta.
Atención: este parámetro sólo debe contener letras, caracteres subrayados o dígitos. De lo contrario, el nombre debe estar entre comillas.
<Filter for key component 1>: Tipo del primer componente de la clave de búsqueda
Valor buscado para el primer componente (el segundo, respectivamente) de la clave compuesta.
El tipo de este parámetro debe corresponderse con el tipo de componente del elemento clave sobre el que se define el filtro.
<Filter for key component 2>: Tipo del segundo componente de la clave de búsqueda
Valor buscado para el segundo componente de la clave compuesta.
El tipo de este parámetro debe corresponderse con el tipo de componente del elemento clave sobre el que se define el filtro.
<Filter for key component N>: Tipo del componente N de la clave de búsqueda
Valor buscado para el componente N de la clave compuesta.
El tipo de este parámetro debe corresponderse con el tipo de componente del elemento clave sobre el que se define el filtro.
Observaciones

automatic gestión de claves compuestas

La función HFilterStartsWith gestiona automáticamente los filtros tanto para las claves simples como compuestas.
Ejemplo 1: Uso de la función HFilterStartsWith con una clave simple:
Res = HFilterStartsWith(Customer, Name, "A")
// Select all the customers whose name starts with A
Ejemplo 2: Uso de la función HFilterStartsWith con una clave compuesta de dos elementos
// Example where LastNameFirstname is a key made of: LastName + FirstName
// Select all customers whose last name is SMITH
// and whose first name starts with a C
Res = HFilterStartsWith(Customer, LastNameFirstName, "SMITH", "C")
Este Line de código equivale a:
HFilter(Customer, LastNameFirstName, ...
HBuildKeyValue(Customer, LastNameFirstName, "SMITH", "C") + hMinVal, ...
HBuildKeyValue(Customer, LastNameFirstName, "SMITH", "C") + hMaxVal)
Ejemplo 3: Uso de la función HFilterStartsWith con una clave compuesta de tres elementos:
// Example with CUSTINV a key made of: CustomerNumber+Date+Time
// All the invoices of a customer (sorted by date)
Res = HFilterStartsWith(Invoice, CUSTINV, Customer.CustNum)
Este Line de código equivale a:
HFilter(Invoice, CustInv, ...
HBuildKeyValue(Invoice, CustInv, Customer.CustNum) + hMinVal, ...
HBuildKeyValue(invoice, CustInv, Customer.CustNum) + hMaxVal)
Ejemplo 4: Uso de la función HFilterStartsWith con una clave compuesta de tres elementos:
// Example with CUSTINV a key made of: CustomerNumber+Date+Time
// All the invoices of a customer for today (sorted by date)
Res = HFilterStartsWith(Invoice, CustInv, Customer.CustNum, Today())
Este Line de código equivale a:
HFilter(Invoice, CustInv, ...
HBuildKeyValue(Invoice, CustInv, Customer.CustNum, Today()) + hMinVal, ...
HBuildKeyValue(invoice, CustInv, Customer.CustNum, Today()) + hMaxVal)

Filtro e iteración filtrada:

Después de ejecutar la función HFilterStartsWith, la navegación del archivo de datos debe realizarse en el elemento devuelto por la función HFilterStartsWith. El filtro será ignorado si se utiliza otro elemento para recorrer el archivo de datos.
Cuando se define y habilita un filtro en un archivo de datos (vista o consulta), todos los registros leídos corresponden al filtro. Si ningún otro Record corresponde al filtro durante la iteración:
  • HOut devuelve True
  • el actual Record corresponde al último Record leído con el filtro.
Por ejemplo:
En un archivo de datos filtrado, después de la función:el actual Record es:
HReadFirstel primer archivo Record correspondiente al filtro.
HReadLastel último archivo Record correspondiente al filtro.
HReadNext (or HForward)el siguiente Record (o el siguiente N-ésimo Record) correspondiente al filtro.
HReadPrevious (o HBackward)el anterior Record (o el anterior N-ésimo Record) correspondiente al filtro.

Habilitar/Deshabilitar un filtro

  • HDeactivateFilter se utiliza para desactivar un filtro.
  • HActivateFilter se utiliza para volver a habilitar un filtro.
  • El filtro se borra cuando se cierra el archivo de datos (consulta o vista) (HClose por ejemplo).
  • Un único filtro puede existir en un momento dado en un archivo de datos (consulta o vista). Si la función HFilterStartsWith se utiliza varias veces, solo se tendrá en cuenta el último filtro: se borrarán los filtros anteriores. Del mismo modo, si se utilizan varios filtros (funciones HFilter*), sólo se tendrá en cuenta el último filtro.
WINDEVWEBDEV - Código ServidorReportes y ConsultasAndroidWidget Android Código de Usuario (UMC)AjaxProcedimientos almacenadosOLE DBConectores Nativos

Archivos de datos no HFSQL

Componente: wd290hf.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local