Bom dia,
Fiz a seguinte pesquisa so que o cursor na cai na pesquisa desejada
Function BTN_Pesquisar_Prestador()
Local cBuscar
cBuscar := upper(allTrim(inputbox('Digite a sua pesquisa:','Pesquisar')))
// Posiciona Indices
OrdSetFocus('Prest2')
Prestador->(DbGoTop())
If .not. empty(cBuscar)
If Prestador->(DbSeek(cBuscar))
Frm_Prestador.Grid_Prestador.Setfocus
Frm_Prestador.Grid_Prestador.value := Prestador->(recno())
Else
MsgExclamation('Prestador não encontrado !!!','Mensagem')
Endif
Endif
Return(nil)
observei que quando coloco por exemplo : AUREA ele posiciona certo no registro mais o cursor cai muito a cima do nome 'AUREA'
agradeço desde ja a ajuda
Grato Marco Maciel
Colocar cursor em uma Busca utilizando GRID
Moderador: Moderadores
-
mmaciel11
- Usuário Nível 2

- Mensagens: 69
- Registrado em: 23 Mar 2006 11:16
- Localização: sao luis
- Contato:
Colocar cursor em uma Busca utilizando GRID
HBMake v1.55 - xHarbour Make
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Colocar cursor em uma Busca utilizando GRID
É Minigui ?
Tentou inverte ex:
Tentou inverte ex:
Código: Selecionar todos
Function BTN_Pesquisar_Prestador()
Local cBuscar
cBuscar := upper(allTrim(inputbox('Digite a sua pesquisa:','Pesquisar')))
// Posiciona Indices
OrdSetFocus('Prest2')
Prestador->(DbGoTop())
If .not. empty(cBuscar)
If Prestador->(DbSeek(cBuscar))
Frm_Prestador.Grid_Prestador.value := Prestador->(recno())
Frm_Prestador.Grid_Prestador.Setfocus
// se existe alguma maneira de dar um refresh no GRID de aqui.
Else
MsgExclamation('Prestador não encontrado !!!','Mensagem')
Endif
Endif
Return(nil)Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
mmaciel11
- Usuário Nível 2

- Mensagens: 69
- Registrado em: 23 Mar 2006 11:16
- Localização: sao luis
- Contato:
Re: Colocar cursor em uma Busca utilizando GRID
amigao ok
testei mais nao deu certo !!!
testei mais nao deu certo !!!
HBMake v1.55 - xHarbour Make
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
Re: Colocar cursor em uma Busca utilizando GRID
Parece que você está usando a minigui. Certo?
Então postou no forum errado.
Mas tudo bem, que nunca fez isso que atire a terceira pedra.
Bem, o erro acontece porque o arquivo está indexado e o recno() do registro não indica a sua posição no índice, mas a sua posição no banco de dados.
Experimente colocar no lugar do recno() a função que retorna o número referente a ordem do registro no índice. Acho que é ordkeyno().
Boa sorte.
MarceloG
Ou, acho mais rápido, use isso abaixo.
PROCEDURE PESQ_USUARIO()
/*
Func/Proc: PESQ_USUARIO
Objetivo.: Pesquisar nome do usuario
*/
LOCAL cPesquisa, i
// Curto circuito
IF USUARIO.GRD1.ITEMCOUNT <= 1 // Use 1 ou ou número de linhas visíveis do grid
RETURN
ENDIF
cPesquisa := ALLTRIM(USUARIO.TXT1.VALUE) // ou seu INPUTBOX
FOR i := 1 TO USUARIO.GRD1.ITEMCOUNT
IF SUBSTR(USUARIO.GRD1.ITEM(i)[Nº DA COLUNA],1,LEN(cPesquisa)) == cPesquisa
USUARIO.GRD1.VALUE := i
EXIT
ENDIF
NEXT i
ENDIF
RETURN
Ps: esse esquema usa um textbox para pesquisa letra a letra. Adapte para o seu usando inputbox.
Então postou no forum errado.
Mas tudo bem, que nunca fez isso que atire a terceira pedra.
Bem, o erro acontece porque o arquivo está indexado e o recno() do registro não indica a sua posição no índice, mas a sua posição no banco de dados.
Experimente colocar no lugar do recno() a função que retorna o número referente a ordem do registro no índice. Acho que é ordkeyno().
Boa sorte.
MarceloG
Ou, acho mais rápido, use isso abaixo.
PROCEDURE PESQ_USUARIO()
/*
Func/Proc: PESQ_USUARIO
Objetivo.: Pesquisar nome do usuario
*/
LOCAL cPesquisa, i
// Curto circuito
IF USUARIO.GRD1.ITEMCOUNT <= 1 // Use 1 ou ou número de linhas visíveis do grid
RETURN
ENDIF
cPesquisa := ALLTRIM(USUARIO.TXT1.VALUE) // ou seu INPUTBOX
FOR i := 1 TO USUARIO.GRD1.ITEMCOUNT
IF SUBSTR(USUARIO.GRD1.ITEM(i)[Nº DA COLUNA],1,LEN(cPesquisa)) == cPesquisa
USUARIO.GRD1.VALUE := i
EXIT
ENDIF
NEXT i
ENDIF
RETURN
Ps: esse esquema usa um textbox para pesquisa letra a letra. Adapte para o seu usando inputbox.
Água mole em pedra dura tanto bate que até espirra!