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.
  • Búsqueda genérica/búsqueda por coincidencia de datos de salida
  • Búsqueda realizada sobre un elemento clave o sobre un elemento no clave
  • Realizar una búsqueda en una clave compuesta
  • Buscar en un array artículo
  • Buscar y filtrar
  • Navegar por los registros correspondientes a una condición
  • Búsqueda por coincidencia exacta en Access
  • cerraduras
  • Optimización de las operaciones de navegación
  • Acceso Nativo XML
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
Posiciones en el primer registro de un elemento archivo de datos cuyo valor para un elemento específico es estrictamente igual a un valor buscado (búsqueda por coincidencia exacta). Se lee el registro y se actualizan las variables HFSQL correspondientes.
En la mayoría de los casos, HReadSeekFirst se utiliza para posicionarse en el para archivo de datos realizar un bucle de búsqueda entre los registros correspondientes a una condición.. HReadNext se utiliza para leer el siguiente registro correspondiente a la condición.
Pueden ocurrir varios casos después de llamar a la función HReadSeekFirst:
  • se encontró un registro correspondiente a la afecciónbloqueado (si es necesario) y cargado en la memoria: HFound beneficios True.
  • si no existe ningún registro correspondiente a la afección pero si se encuentra un registro con un valor mayor: se lee el registro, se HOut devuelve False y HFound regresa False.
  • la archivo de datos está vacía: no se realiza ninguna lectura, HOut devuelve True y HFound regresa False.
  • la función intenta bloquear un registro que ya está bloqueado en modo de sólo lectura: no se realiza ninguna lectura, HErrorLock devuelve True y HOut regresa True.
    señalar: An gestión automática de los errores de bloqueo y de los conflictos de modificación se realiza por defecto (excepto en el código de procedimientos almacenados). Esta gestión asistida de errores puede ser personalizada o desactivada en cualquier momento mediante HOnError.
HReadSeekFirst puede utilizarse con los archivos de datos, vistas HFSQL o consultas.
Nota: la búsqueda puede ser cancelada por HCancelSeek.
Windows MobileJavaPHP Caso especial: gestión de esclusas:
  • Windows Mobile En MóvilLa gestión de los bloqueos se realiza en los archivos de datos HFSQL Client/Server y en los archivos de datos tratados por el acceso nativo.. Un registro HFSQL Mobile no puede ser bloqueado. De hecho, el sistema operativo de Pocket PC no permite bloquear los registros.
  • PHP En PHPla gestión de bloqueos no está disponible.
  • Java En Javadurante un acceso por parte de JDBC, la gestión de bloqueos no está disponible para las bases de datos a las que accede JDBC.
Versiones 15 y posteriores
WINDEV MobileAndroid Esta función ahora está disponible para aplicaciones Android.
Nueva funcionalidad versión 15
WINDEV MobileAndroid Esta función ahora está disponible para aplicaciones Android.
WINDEV MobileAndroid 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.
señalar: A partir de la versión 19, HFSQL es el nuevo nombre de HyperFileSQL.
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.
Ejemplo
// Find the first record for which
// the CUSTOMER name is MOORE
HReadSeekFirst(CUSTOMER, NAME, "MOORE")
IF HFound(CUSTOMER) = False THEN
Error("Customer not found")
RETURN
ELSE
// Continue the process on the customer named MOORE
END
Sintaxis
<Result> = HReadSeekFirst(<File name> , <Item name> , <Valor buscado> [, <Opciones>])
<Result>: Boolean
  • True si se ha encontrado el registro (corresponde al valor devuelto porHFound).
  • False si se produce un problema. Este problema puede ser causado por:
    • un problema de posicionamiento (vacío archivo de datos, ....): HFound beneficios False y HError devuelve 0.
    • un error: HError devuelve un número entero distinto de 0. HErrorInfo devuelve más detalles.
<File name>: Character string (with or without quotes)
Nombre de la vista HFSQL archivo de datos, o consulta utilizada.
<Item name>: Character string (with or without quotes)
Nombre del artículo sobre el que se realizará la búsqueda. Este elemento puede ser o no una clave de búsqueda.
Hyper File 5.5 La búsqueda sólo puede realizarse en un elemento clave.
<Valor buscado>: Type corresponding to the value
Valor del artículo buscado.
<Opciones>: Optional constant (or combination of constants)
Se utiliza para configurar:
  • el bloqueo de teclas aplicado al registro buscado
  • el tipo de búsqueda realizada.
hLockReadWriteBloqueo de lectura/escritura: el registro actualmente leído no puede ser leído o modificado por otra aplicación.
El bloqueo de teclas se ignora si se utiliza una consulta.
OLE DB Bloquear en sólo escritura. Modo de funcionamiento equivalente a la constante hLockWrite.
PHP Esta constante no está disponible.
Java Acceso por JDBC: Esta constante no está disponible.
hLockWriteBloqueo en modo de escritura: el registro actualmente leído puede ser leído por otra aplicación, pero no puede ser modificado por otra aplicación.
El bloqueo de teclas se ignora si se utiliza una consulta.
PHP Esta constante no está disponible.
Java Acceso por JDBC: Esta constante no está disponible.
hLockNoSin bloqueo (incluso si se Cerradura HStartLock ha llamado): el registro puede ser leído o modificado por otra aplicación durante la lectura.
PHP Esta constante no está disponible.
Java Acceso por JDBC: Esta constante no está disponible.
Versiones 17 y posteriores
Sólo hForward
Nueva funcionalidad versión 17
Sólo hForward
Sólo hForward
Conectores Nativos Constante que sólo se puede utilizar con los Accesos Nativos.
Se utiliza para acelerar la búsqueda de datos durante una búsqueda simple que no utiliza las siguientes funciones:
  • Leyendo el registro anterior.
  • Modificar un registro.
  • Posición de almacenamiento.
Si se utiliza una de estas características, el resultado puede diferir del esperado.
Esta constante se puede utilizar, por ejemplo, durante una navegación utilizada para llenar una memoriatabla.
hGenéricoBúsqueda genérica (ver las Notas)
Por defecto se realiza una búsqueda por coincidencia exacta (constante no especificada).
hLimitParsingLa navegación se detendrá tan pronto como se encuentre el último valor buscado o si ningún valor corresponde a la búsqueda..
El registro actual corresponderá a este último registro encontrado.
HFound volverá False y HOut regresará True.
Esta constante se utiliza para optimizar la velocidad en modo Cliente/Servidor y en las bases de datos externas (a las que se accede a través de OLE DB o a través de Accesos Nativos).
hKeepFilterEl filtro implementado por HFilter se tendrá en cuenta, incluso si la clave de búsqueda no está optimizada para el filtro.. Recordatorio: HFilter devuelve la clave de búsqueda optimizada para el filtro.
Atención: en este caso, puede producirse un rendimiento deficiente en archivos de datos de gran tamaño.
Hyper File 5.5 Esta variable no se puede utilizar.
Por defecto, la navegación realizada después de HReadSeekFirst ignora el filtro.
hNoRefresh
OLE DBConectores Nativos HReadSeekFirst no actualización el contenido tabla o la consulta de. La consulta no se ejecuta de nuevo si es posible. Se guardan todas las posiciones guardadas.
Windows Mobile La gestión de los bloqueos se realiza en los archivos de datos HFSQL Client/Server y en los archivos de datos gestionados por el acceso nativo.. Un registro HFSQL Mobile no puede ser bloqueado. De hecho, el sistema operativo de Pocket PC no permite bloquear registros.
PHP La gestión de los bloqueos no está disponible.
Java Acceso por JDBC: La gestión de bloqueos no está disponible para las bases de datos a las que accede JDBC.
OLE DBConectores Nativos Las opciones de bloqueo no tendrán efecto si los bloqueos no son soportados por el proveedor OLE DB o por Native Access.
OLE DB El bloqueo de teclas especificado por HReadSeekFirst permanecerá efectivo durante las llamadas a HReadPrevious y HReadNext desde
Para modificar el bloqueo de teclas, debe utilizar:
Observaciones

Búsqueda genérica/búsqueda por coincidencia de datos de salida

  • Búsqueda genérica (principalmente en las posiciones de la cadena de caracteres): Busca todos los registros que empiezan con el valor especificado.
    Por ejemplo:: Cuando se realiza una búsqueda genérica en "Martin" (para el elemento NAME), todos los registros cuyo elemento Name comienza por "Martin" corresponderán a la búsqueda. Por lo tanto, el registro que contiene "Martinez" corresponderá a la búsqueda (HFound devuelve True).
    señalar: Para la compatibilidad con WINDEV 5.5, la búsqueda genérica de una cadena vacía ("") es equivalente al uso de la función HReadFirst.
  • Búsqueda de coincidencia de fecha exacta : Busca todos los registros que coinciden exactamente con el valor especificado..
    Por ejemplo:: Cuando se realiza una búsqueda de coincidencia exacta en "Smith" (para el elemento NAME), se HFound devuelve True para los registros cuyo elemento coincida exactamente con "Smith".
  • Ejemplos de búsquedas realizadas en el archivo CLIENTE ordenado por nombre:
Valor buscadoOpcionesHReadSeekFirst posiciones en el registro.HFound beneficiosHOut beneficiosExplicaciones
De los cuales1TrueFalseDe los cuales existen.
Aún no archivo de datos se ha llegado al final.
Davo1FalseFalseDavo no existe. Posición en el primer valor mayor (Davon).
Aún no archivo de datos se ha llegado al final.
DavihGenérico8TrueFalseDavi no existe pero la búsqueda es genérica y Davies se encuentra (entre otros).
Aún no archivo de datos se ha llegado al final.
DaviEl registro no se encontró (no se mueve, el registro actual no cambia).FalseFalseDavi no existe.
Aún no archivo de datos se ha llegado al final.
NorbertEl registro no se encontró (no se mueve, el registro actual no cambia).FalseTrueNorbert no existe.
Posición en el primer valor mayor (este valor no existe): el fin del archivo de datos mundo ha sido alcanzado.
Ver el Hyper File 5.5 y 7: ¿Cómo gestionar los caracteres de espacio en las búsquedas?tabla para más detalles

Búsqueda realizada sobre un elemento clave o sobre un elemento no clave

La búsqueda se puede realizar en un elemento clave o no clave.
Si la búsqueda se realiza en un elemento clave:
  • la búsqueda es rápida y el resultado está ordenado.
  • si se continúa con la búsqueda con HReadNext,, los siguientes registros corresponderán a los valores superiores o iguales al valor buscado. En este caso, HOut debe comprobarse después de cada operación de lectura para saber si se archivo de datos ha alcanzado el final de la misma.
Si la búsqueda se realiza en un elemento no clave:
  • el elemento seleccionado aparecerá en rojo en el editor de código y se mostrará una advertencia en la ventana de diálogo "Panel"Errores de compilación.
    Nota: El completado automático propone sólo los puntos clave.
  • si la navegación continúa en HReadNext,, los siguientes registros corresponderán a los valores iguales al valor buscado.

Realizar una búsqueda en una clave compuesta

Se pueden utilizar varios métodos para realizar una búsqueda en una clave compuesta:
1. Utilizando una lista de valores .
La siguiente sintaxis se utiliza para realizar una búsqueda en una clave compuesta:
HReadSeekFirst(<File Name>, <Name of Composite Key>,
[<Search Value of First Element of Composite Key>,
<Search Value of Second Element of Composite Key>, ...])
Ejemplo:
// Find the record
HReadSeekFirst(CUSTOMER, LASTNAME_FIRSTNAME, ["MOORE", "Vince"])
2. Usando HBuildKeyValue
Ejemplo:
bufSoughtVal is Buffer = HBuildKeyValue(CUSTOMER, LASTNAME_FIRSTNAME, sLastName, sFirstName)
HSeekFirst(CUSTOMER, LASTNAME_FIRSTNAME, bufSoughtVal)
WHILE HFound(CUSTOMER)
HDelete(CUSTOMER)
HNext(CUSTOMER, LASTNAME_FIRSTNAME)
END
3. Uso de HConvert
Para construir el valor de la clave compuesta sin usar HBuildKeyValue, debe:
  • rellenar los componentes de texto en su tamaño completo con Charact(0).
  • convertir los componentes numéricos con HConvert.
Ejemplo:
MyCompositeKey = Complète(Customer.CustomerLastName, Dimension(Customer.LastName), Charact(0)) + ...
Complète(Customer.FirstName, Dimension(Customer.FirstName), Charact(0))
Hyper File 5.5 Para realizar búsquedas genéricas en una clave compuesta, todos los componentes de la clave compuesta deben ser componentes de texto. De lo contrario, se realiza una búsqueda por coincidencia exacta.

Buscar en un array artículo

La búsqueda se realiza en el primer array elemento (elemento cuyo número índice es 1). Para realizar una búsqueda sobre los otros array elementos, utilice los filtros o consultas.

Buscar y filtrar

Si un filtro está habilitado (HFilter), la búsqueda sólo tiene en cuenta el filtro si la clave utilizada es idéntica.
Para tener en cuenta este filtro en el resto de la navegación (incluso si la tecla de búsqueda no está optimizada para el filtro), utilice la tecla hKeepFilter constante.
Hyper File 5.5 Si se activa un filtro, la búsqueda lo ignora.

Navegar por los registros correspondientes a una condición

En la mayoría de los casos, HReadSeekFirst se utiliza para posicionarse en el archivo de datos para realizar un bucle de navegación entre los registros correspondientes a una condición. HReadNext y HReadPrevious se utilizan para leer los registros siguientes y anteriores correspondientes a la condición.
Para ignorar la búsqueda mientras se pasa al registro siguiente o anterior, utilice una de las siguientes funciones:
WINDEVWEBDEV - Código ServidorReportes y ConsultasAjaxCódigo de Usuario (UMC)OLE DBConectores Nativos

Búsqueda por coincidencia exacta en Access

Para realizar una búsqueda de coincidencia exacta en una base de datos ACCESS, le recomendamos que la utilice NoSpace si se encuentran caracteres en blanco al final del valor buscado.
WINDEVWEBDEV - Código ServidorReportes y ConsultasiPhone/iPadWindows MobileUniversal Windows 10 AppAjaxCódigo de Usuario (UMC)HFSQLHFSQL Client/ServerHyper File 5.5OLE DBConectores Nativos

cerraduras

Los bloqueos sólo se aplican cuando se encuentra un registro.
Por defecto (no se especifica ningún bloqueo de teclas en <Opciones>), el registro no está bloqueado.
Si se solicita un bloqueo (hLockWrite o hLockReadWrite ), el registro sólo se leerá si no está ya bloqueado.
No es necesario especificar un parámetro de bloqueo si archivo de datos está bloqueado por Cerradura HStartLock: el bloqueo especificado por Cerradura HStartLock se tiene en cuenta automáticamente. Para ignorar el bloqueo realizado por Cerradura HStartLock, utilice la tecla hLockNo constante.
Recordatorio: Un registro bloqueado puede desbloquearse mediante HUnlockRecNum.
OLE DBConectores Nativos Las opciones de bloqueo no tendrán efecto si los bloqueos no son soportados por el proveedor OLE DB o por Native Access.
WINDEVWEBDEV - Código ServidorReportes y ConsultasiPhone/iPadUniversal Windows 10 AppAjaxCódigo de Usuario (UMC)HFSQLHFSQL Client/ServerHyper File 5.5OLE DBConectores Nativos

Optimización de las operaciones de navegación

Para optimizar el tiempo de las primeras navegaciones realizadas en unaarchivo de datos, utilice HOptimize esta archivo de datos.
WINDEVWEBDEV - Código ServidorReportes y ConsultasCódigo de Usuario (UMC)Conectores Nativos

Acceso Nativo XML

El comportamiento de HReadSeekFirst depende de HActivateAutoFilter y HDeactivateAutoFilter.
HActivateAutoFilter está habilitado por defecto.
Por lo tanto, para leer el contenido del archivo XML, lea el contenido del archivo principal (el padre) y luego lea el contenido de los relacionado archivos (los hijos).
De forma predeterminada, al leer una carpeta, se aplica automáticamente un filtro a las relacionado carpetas para que sólo se lean los registros correspondientes a la carpeta principal.
Por ejemplo:
El correo electrónico de esta persona se puede recuperar cuando se navega por el archivo de la persona..
Para ello, todo lo que tiene que hacer es posicionarse en el archivo "Persona" y aplicar HReadSeekFirst al archivo "Email".
En este caso, el registro leído en el archivo "Correo electrónico" corresponderá al primer correo electrónico asociado con el registro actual en el archivo "Persona".
Si este mecanismo está desactivado (HDeactivateAutoFilter), el registro leído en el archivo "Email" corresponderá al primer registro encontrado en el archivo Email (y no al hijo del registro leído en el archivo "Person").
Componente : wd250hf.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
//EXEMPLO DE USO DE CHAVE COMPOSTA COM 2 CAMPOS
//EXEMPLO DE USO DE CHAVE COMPOSTA COM 2 CAMPOS

valorNovo is int = TABLEGRID_T027_GRUPOS_PERGUNTAS.COL_T027_ORDEM + 1

bufSearch is Buffer = HBuildKeyValue(T027_GRUPOS_PERGUNTAS,T027_CHAVECOMPOSTA, pgnIDQuestionario,gnIDGrupoPergunta)

IF HReadSeekFirst(T027_GRUPOS_PERGUNTAS,T027_CHAVECOMPOSTA,bufSearch) = True
IF HFound(T027_GRUPOS_PERGUNTAS) = True
T027_GRUPOS_PERGUNTAS.T027_ORDEM = valorNovo
HModify(T027_GRUPOS_PERGUNTAS)
END
END

TableDisplay(TABLEGRID_T027_GRUPOS_PERGUNTAS,taInit)
TableDisplay(TABLEGRID_T027_GRUPOS_PERGUNTAS,taReExecuteQuery)
BOLLER
17 07 2019
Vamos a cambiar el registro.
//Aula 1153 WinDev Curso ErpAmarildo 11 - Tabela Codigo de Alteração

//Nessa aula de hoje
//vamos fazer a alteração do registro.

//En esta clase de hoy
//Vamos a cambiar el registro.

//In this class today
//Let's do the registry change.

IF TableSelect(TABLE_QRY_RELACAO_EMPRESAS)=-1 THEN RETURN
_indice is int=TableSelect(TABLE_QRY_RELACAO_EMPRESAS)
HReadSeekFirst(empresa,empresaID,TABLE_QRY_RELACAO_EMPRESAS.COL_EmpresaID)
IF HFound(empresa) THEN
Open(WIN_Form_empresa)
END
TableDisplay(TABLE_QRY_RELACAO_EMPRESAS,taReExecuteQuery)
TableSelectPlus(TABLE_QRY_RELACAO_EMPRESAS,_indice)
De matos
18 05 2017
Example
// adds a row into the looper
//by Boller - nome das janelas = GPU_WindowPages
//------------------------------------------------
ok is boolean = HReadSeekFirst(GPU_WindowPages,GPU_WindowPages.Name,sElementName,hKeepFilter)
IF ok = True AND HFound(GPU_WindowPages) = False
GPU_WindowPages.Name = sElementName
HAdd(GPU_WindowPages)
END
//------------------------------------------------
BOLLER
24 04 2017
Como Pegar Saldo Anterior Caixa
1) Nessa aula de hoje, vou mostrar como
pegar o saldo incial do caixa.
2) Vamos ter um campo saldo inicial do caixa conta
3) vamos fazer uma query lendo os totais de entrada e saida
4) Vamos atualizar o saldo

//Qry_Saldo_caixa_Inicial
SELECT
SUM(caixa.valor_entradas) AS total_valor_entradas,
SUM(caixa.valor_saidas) AS total_valor_saidas
FROM
caixa
WHERE
caixa.id_empresa = {Parametro_empresa}
AND caixa.Caixa_contaID = {Parametro_contaID}
AND caixa.data_documento<{Parametro_data_inicial}

//
//Chama Rotina Saldo Caixa

saldo_caixa()

//Rotina Saldo Caixa

PROCEDURE saldo_caixa()

HReadSeekFirst(caixa_conta,caixa_contaID,gn_recebe_id_conta)
cy_saldo_inicial is currency=caixa_conta.saldo_inicial // Iniciar 100,00
qry_saldo_caixa_inicial.Parametro_contaID=gn_recebe_id_conta // 1
qry_saldo_caixa_inicial.Parametro_data_inicial=EDT_Data_Inicial // 10 01 2017
qry_saldo_caixa_inicial.Parametro_empresa=gnEmpresaCodigo // 1
HExecuteQuery(qry_saldo_caixa_inicial,hQueryDefault) // executando query
cy_saldo_entradas is currency=qry_saldo_caixa_inicial.total_valor_entradas
//vai somar todas entradas menores que a data inicial = 09 01 2017
cy_saldo_saidas is currency=qry_saldo_caixa_inicial.total_valor_saidas
//vai somar todas saidas menores que a data inicial = 09 01 2017
cy_saldo_inicial=cy_saldo_inicial+cy_saldo_entradas-cy_saldo_saidas
EDT_Saldo_Anterior=cy_saldo_inicial

http://windevdesenvolvimento.blogspot.com.br/2017/01/aula-1031-dicas-012-pegar-saldo.html

https://www.youtube.com/watch?v=xpqkboM8LFY
De matos
13 01 2017
Exemplo HreadSeekFirst - Ncm
PROCEDURE ncm_estado_ler()
HReadSeekFirst(ncm_estado,chave_Ncm_classificacao_Uf,[material.ncm_classificacao,cliente.endereco_uf])
IF HFound(ncm_estado) THEN
info("existe")
ELSE
info("nao Existe")
END

//Blog com Exemplo e video
http://windevdesenvolvimento.blogspot.com.br/2015/11/windev-curso-144-chavecomposta.html
De matos AMARILDO
23 01 2016