Página 1 de 1

Pesquisa Incremental - AJUDA

Enviado: 11 Dez 2006 10:56
por negrao
Pessoal , é o seguinte.
Estou querendo montar uma pesquisa que conforme vai digitando vai fazendo a busca. No clipper tradicional faco isso tranquilo, mas no FIVEWIN encontrei dificuldade.

Abaixo esta um modelo de como estou montando a pesquisa, o que nao estou entendendo é pq minha pesquisa so comeca a fazer a Busca apartir da 2º letra.
O que estou fazendo de errado....OBRIGADO POR QUALQUER AJUDA
OBS..: Estou aprendendo, portanto nao manjo muito


#include "FiveWin.ch"
#include "INKEY.ch"

/************************************/
FUNCTION TESTE()
LOCAL ODLG , OLBX , CBUSCA , OGET
DEFAULT cBusca := space(50)

REQUEST DBFCDX
RddSetDefault("DBFCDX")

SELECT("MOE")
MOE->(DBSETORDER(2)) //=> ordem de nome
MOE->(DBGOTOP())

DEFINE DIALOG oDlg TITLE "Buscar" FROM 01,01 TO 30,50
@ 00,01 SAY "Nome:" OF oDlg
@ 01,01 GET oGet VAR cBusca PICTURE "@!" OF oDlg ;
ON CHANGE( oLbx:Refresh(), Buscar( nKey, oGet ) )

@ 02,01 LISTBOX oLbx FIELDS moe->NOME HEADERS "Nome" SIZE 180,180 OF oDlg

ACTIVATE DIALOG oDlg
RETURN

/************************************/
FUNCTION BUSCAR(NKEY,OGET)
local cFras

IF (NKEY >= 032 .OR. NKEY <= 126)
CFRAS := UPPER(ALLTRIM(OGET:CTITLE))
SEEK CFRAS
ELSEIF NKEY == 08
CFRAS := SUBSTR( CFRAS, 01, LEN(CFRAS)-1)
SEEK CFRAS
ENDIF
RETURN NIL

Enviado: 11 Dez 2006 17:22
por rochinha
Amiguinho

Eu uso este método em minhas BROWSEs

Código: Selecionar todos

   @  -1, -1 SAY oPsqSay VAR oLbxP1:cBuffer OF oChildWnd
   @ 0,0 LISTBOX oLbxP1 FIELDS "" HEADERS "" ...
...      
       // -> Para o suporte do controle PsqSay da linha 150
      oLbxP1:bSeek         := {|| oLbxP1:DBFSeek(.t.)  }
      oLbxP1:bUpdateBuffer := {|| oPsqSay:Refresh(), oLbxP1:SetFocus() }
O controle SAY pode ficar escondindo ou ser apresentado em algum local de sua tela aceitando inclusive quando se deleta alguma letra buscar o restante.