PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE


Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Límite inferior y límite superior de un elemento clave de Texto o Clave Compuesta
  • Filtro y navegación filtrada
  • Condición de selección
  • Habilitar/Deshabilitar un filtro
  • Filtro en una clave compuesta
  • Archivos de datos que no están en formato HFSQL
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Define y habilita un filtro en un archivo de datos, vista o consulta.
Después de su ejecución, los casos más comunes son los siguientes:
  • no se puede crear el filtro: Filtro HF devuelve un string vacío. HError devuelve el identificador del error.
  • se crea el filtro: la función Filtro HF devuelve la clave de búsqueda adecuada que se utilizará para navegar por el archivo de datos, la vista o la consulta.
Versiones 15 y posteriores
Android Esta función ahora está disponible para aplicaciones Android.
Nueva funcionalidad versión 15
Android Esta función ahora está disponible para aplicaciones Android.
Android Esta función ahora está disponible para aplicaciones Android.
Versiones 17 y posteriores
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Nueva funcionalidad versión 17
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Versiones 18 y posteriores
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Nueva funcionalidad versión 18
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Versiones 21 y posteriores
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Nueva funcionalidad versión 21
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Observación: A partir de la versión 19, HFSQL es el nuevo nombre de HyperFileSQL.
Ejemplo
// Simple filter with condition:
// Find the customers of a city
 
SearchKey is string
mycity is string
 
mycity = "MONTPELLIER"
SearchKey = HFilter(Customer, "CITY='" + mycity + "'")
HReadFirst(Customer, SearchKey)
WHILE HOut() = False
// Process the record
...
HReadNext(Customer, SearchKey)
END
// Cancels the filter
HDeactivateFilter(Customer)
// Filter performed with a bounded search key and a condition:
// the search key is fixed
 
SearchKey is string
// Filters the invoices found between 1/1/2005 and
// 12/31/2005, whose total is greater than 1500 Euros IOT
// with a discount whose type is passed in parameter (text item)
SearchKey = HFilter(Invoice, InvoiceDate, "20050101", "20051231", ...
StringBuild("TotalIOT>1500 AND DiscountType='%1'" + , ...
Replace(sDiscountType, "", "\")))
// The Replace function is used to prefix the quotes
// contained in sDiscountType with a backslash
IF SearchKey <> "" THEN
HReadFirst(Invoice, SearchKey)
WHILE HOut() = False
// Process the record: send a thank you letter
Send_Letter()
HReadNext(Invoice, SearchKey)
END
END
...
// Cancels the filter
HDeactivateFilter(Invoice)
Sintaxis

Filtro construido con una clave de búsqueda acotada y una condición Ocultar los detalles

<Result> = HFilter(<Archivo de datos> , <Search key> , <Lower bound> [, <Upper bound> [, <Condición de selección>]])
<Result>: Character string
Elemento de navegación. Corresponde a:
  • la clave de búsqueda del archivo de datos si el filtro está activado.
  • una cadena vacía ("") si no se puede establecer el filtro.
<Archivo de datos>: Character string (with or without quotes)
Nombre del archivo de datos, vista HFSQL o consulta utilizada.
<Search key>: Character string (with or without quotes)
Nombre del elemento clave utilizado para navegar por el archivo de datos, ver o consultar. Este elemento debe ser una clave de búsqueda de archivo, vista o consulta de datos. Los límites inferior y superior se aplicarán a este ítem.
<Lower bound>: Type of search item
Valor mínimo (inclusive) del elemento de búsqueda (si la clave de búsqueda se define con una búsqueda ascendente en el análisis). Los registros correspondientes a este valor mínimo se incluirán en el filtro. Para una búsqueda descendente (lo que significa que si la tecla de búsqueda se define con una búsqueda descendente en el análisis), es el valor máximo del elemento de búsqueda..
El tipo de este parámetro debe corresponder al tipo de elemento de búsqueda. Por ejemplo, si el elemento de búsqueda es una cadena, el límite inferior también debe ser una cadena.
<Upper bound>: Type of search item, optional parameter
Valor máximo (incluido) para el elemento de búsqueda (navegación ascendente). Los registros correspondientes a este valor máximo se incluirán en el filtro. El tipo de este parámetro debe corresponder al tipo de elemento de búsqueda. Por ejemplo, si el elemento de búsqueda es una cadena, el límite superior también debe ser una cadena.
Para una búsqueda descendente, es el valor mínimo del elemento de búsqueda.
Si no se especifica este parámetro, el límite superior corresponde al valor de <Límite inferior>.
<Condición de selección>: Optional character string (with quotes)
Condición de selección para crear el filtro (véase Notas). Esta condición de selección puede ser una cadena de caracteres Ansi o Unicode.

El filtro construido con una condición Ocultar los detalles

<Result> = HFilter(<Archivo de datos> , <Condición de selección>)
<Result>: Character string
Elemento 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
<Archivo de datos>: Character string (with or without quotes)
Nombre del archivo de datos, vista HFSQL o consulta utilizada.
<Condición de selección>: Character string (with quotes)
Condición de selección utilizada para crear el filtro (véanse las Notas). Esta condición de selección puede ser una cadena de caracteres Ansi o Unicode.
Observaciones

Límite inferior y límite superior de un elemento clave de Texto o Clave Compuesta

Si el límite inferior y el límite superior son iguales:
  • para realizar un filtro de búsqueda exacta en un valor, solo se debe indicar el valor en el parámetro "Límite mín".
    Por ejemplo, para seleccionar los clientes cuyo nombre corresponde a "Smith":
    HFilter(Customer, Name, "Smith")

    El cliente "Durán" no se seleccionará.
  • para implementar un filtro genérico sobre un valor, debe hacerlo:
    • completar el límite inferior con la constante hMinVal para darle el valor mínimo.
    • completar el límite superior con la constante hMaxVal para darle el valor máximo.
    Por ejemplo, para seleccionar los clientes cuyo apellido comienza con "Smith":
    HFilter(Customer, Name, "Smith" + hMinVal, "Smith" + hMaxVal)

    Se seleccionarán los clientes "Durá" y "Durán".
Observaciones:
  • La constante hMinVal es equivalente a Charact( 0).
  • La constante hMaxVal es equivalente a Charact( 255).

Filtro y navegación filtrada

Después de ejecutar la función Filtro HF, la navegación del archivo de datos debe realizarse en el elemento devuelto por la función Filtro HF. El filtro será ignorado si se utiliza otro elemento para navegar por 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 no hay otro Record que corresponda al filtro durante la navegación:
  • HOut devuelve True.
  • la actual Record corresponde a la última Record leída 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

Condición de selección

La sintaxis general de una condición tiene el siguiente formato:
"ApellidoCli>'Durá' y (CódigoPos=34 o CódigoPos=32)"
Los operadores soportados dependen del tipo de elementos utilizados en la condición:
<>DiferentesVálido para todos los tipos
>Superior aVálido para todos los tipos
>=Superior o igual aVálido para todos los tipos
<Inferior aVálido para todos los tipos
<=Inferior o igual aVálido para todos los tipos
=Estrictamente igual aVálido para todos los tipos
~=Casi igual a: ignora los caracteres de espacio a la derecha, los caracteres acentuados, los caracteres en minúsculas y mayúsculasVálido sólo para tipos de cadena
~~Igualdad muy flexible: no distingue entre caracteres en minúsculas y mayúsculas, ignora los caracteres de espacio encontrados antes y después de la cadena a probar, ignora los caracteres acentuados en minúsculas, ignora los caracteres de espacio y los caracteres de puntuación dentro de las cadenas.Válido sólo para tipos de cadena
]Contiene: tiene en cuenta los caracteres en minúsculas y mayúsculasVálido sólo para tipos de cadena
~]Contiene: ignora los caracteres en minúsculas y mayúsculasVálido sólo para tipos de cadena
]=Comienza por: tiene en cuenta los caracteres en minúsculas y mayúsculasVálido sólo para tipos de cadena
AndroidWidget Android JavaPHP Los operadores ~~ y ~= no deben utilizarse. Estos operadores no están permitidos.
Notas sobre la condición de selección :
  • Las cuerdas constantes deben estar encerradas en comillas simples.
  • Si el nombre de la posición contiene comillas simples, deben ser dobladas.
    Por ejemplo: ‘Elemento‘‘con‘‘comillas‘
  • Las comparaciones entre strings se realizan según los parámetros especificados para los índices.
  • Las notas binarias y las claves compuestas no pueden formar parte de una condición de selección..
    Para las claves compuestas, se recomienda utilizar la primera sintaxis. No se puede utilizar la siguiente sintaxis:
    HFilter(FILENAME, "COMPKEY~]'AAA' AND COMPKEY]='" + ...
    HBuildKeyValue(FILENAME, COMPKEY, 0) + "'")
  • Si una cadena de caracteres (constante o Variable ) contiene una comilla simple, la cita debe ir precedida de una barra invertida (\).
  • Para optimizar las operaciones de navegación, aplica HStatCalculate a el archivo de datos antes de crear el filtro. De hecho, el motor HFSQL analiza la condición de selección y utiliza estas estadísticas para definir los elementos más discriminantes que se utilizarán para optimizar la navegación realizada en el archivo de datos.
  • Esta condición de selección puede ser una cadena de caracteres Ansi o Unicode.

Habilitar/Deshabilitar un filtro

HDeactivateFilter se utiliza para desactivar un filtro.
HActivateFilter se utiliza para volver a activar 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 Filtro HF se utiliza varias veces, solo se tendrá en cuenta el último filtro: se borrarán los filtros anteriores.
WINDEVWEBDEV - Código ServidoriPhone/iPadUniversal Windows 10 AppWindows MobileJavaPHPAjaxCódigo de Usuario (UMC)HFSQLHFSQL Client/ServerProcedimientos almacenados

Filtro en una clave compuesta

Se pueden utilizar varios métodos para implementar un filtro en una clave compuesta:
  • Método 1: Utilizar una lista de valores en la función Filtro HF.
  • Método 2: Utilizando la sentencia FOR EACH.
  • Método 3: Usando HBuildKeyValue.
  • Método 4: Uso de la función HConvertX (método conservado por motivos de compatibilidad con WINDEV 5.5)
Vea Claves compuestas y filtros para más detalles.
Ejemplo de utilización del método 1: Utilizando una lista de valores .
El valor de la clave compuesta en la que se debe realizar el filtro se puede generar directamente en la función Filtro HF con la siguiente sintaxis:
HFilter(<File name>, <Name of composite key>,
[<List of values for the lower bound of composite key>],
[<List of values for the upper bound of composite Key>])
Ejemplo: Buscar todos los registros del archivo CLIENTE cuyos apellidos y nombres están comprendidos entre "Arias" y "Barrera" y "Pablo" y "Teresa".
HFilter(Customer, LastNameFirstName, ["AA", "Philomene"], ["Barnaby", "Tartuffe"])
En este ejemplo, "AA","Zorro" es devuelto por el filtro mientras que "Philomene","Zorro" no lo es.
Ejemplo: Buscar todos los registros en el archivo de Tareas cuyas tareas se incluyen entre el 15/03/2011 00:00 y el 25/03/2011 00:00.
HFilter(Tasks, TaskStarDateTaskStartTime, [20110315,0000], [20110325,0000])
WINDEVWEBDEV - Código ServidorReportes y ConsultasAndroidWidget Android Windows MobileJavaPHPAjaxCódigo de Usuario (UMC)Procedimientos almacenadosOLE DBConectores Nativos

Archivos de datos que no están en formato HFSQL

Componente : wd250hf.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Tablegrid com Hfilter
Quando você precisar forçar a leitura do Hfilter em uma tablegrid ou Looper, use o comando:

Tabledisplay(NomeTableGrid,Tainit)

Pois normalmente o Hfilter é colocado em CODE Init e assim faz o reload da filtragem dos dados a serem apresentados na GRID. O comando Tabledisplay(NomeTableGrid,Tainit) equivale a um refresh na grid.

Qualquer dúvida entre em contato.
BOLLER
23 12 2019
HFILTER DICA
O filetoarray se não tiver antes dele um hfilter coloca no array a tabela inteira e se colocar o hfilter, traz só o registro. exemplos:

//assim vai trazer só o registro atual
HFilter(RADFileA,RADFileA.IDRADFileA,gnID)
FileToArray(garr_RADFileA_Depois,RADFileA,RADFileA.IDRADFileA)

//vai trazer todos os registros
FileToArray(garr_RADFileA_Depois,RADFileA,RADFileA.IDRADFileA)

DICA:
Voce pode atribuir uma Classe de um arquivo a um array assim:

garr_RADFileA_Antes is array of CMRADFileA
garr_RADFileA_Depois is array of CMRADFileA
BOLLER
24 02 2019
 CADASTRO DE USUARIOS
VAMOS CONTINUAR CURSO ERP, COM CADASTRO DE USUARIOS


HFilter(usuario,Usuario_grupoID,usuario_grupo.usuario_grupoID)

// COM HFILTER ESTAMOS FILTRANDO OS USUARIOS SOMENTE DE 1 GRUPO
// WITH HFILTER WE ARE FILTERING USERS ONLY FROM 1 GROUP
// CON HFILTER ESTAMOS FILTRANDO LOS USUARIOS SOLAMENTE DE 1 GRUPO


TableDisplay(TABLE_usuario,taInit)

// ESTAMOS ATUALIZANDO A TABELA
// WE ARE UPDATING THE TABLE
// ESTAMOS ACTUALIZANDO LA TABLA


// BLOG COM VIDE E EXEMPLO

http://windevdesenvolvimento.blogspot.com.br/2017/07/aula-1200-windev-curso-erp-040-usuarios.html

https://www.youtube.com/watch?v=0-5SQfPfhXk

De matos
08 07 2017
Exemplo hfilter
hfilter(cliente,cliente.id_empresa_cliente,edT_cliente_inicial + hMinVal,edt_cliente_final + hMaxVal)
tabledisplay(table_cliente,taStart)
HdeactivaterFilter(cliente)

// Blog Com video e exemplo

http://windevdesenvolvimento.blogspot.com.br/2016/11/aula-968-windev-tabela-035-hfilter.html

https://www.youtube.com/watch?v=ED9un1QMK-U

De matos
04 12 2016