Página 1 de 1
set filter
Enviado: 10 Fev 2005 18:52
por Alessandro
Caros Colegas,
Existe algum set filter mais rápido no xHarbour com Minigui?
Pois estou usando o set filter normalmente e estou achando lendo, utilizo NTX.
Qual seria a melhor solução? usar CDX?
Enviado: 10 Fev 2005 20:44
por Antonio
Ola Alessandro,
Voce pode tentar o CDX, existem afirmações a cerca de um ganho de aproximadamente 30% em relação ao NTX.
Voce pode ainda utilizar-se de uma outra técnica de filtragem...
WHILE FOR <CONDIÇÃO>....
Enviado: 11 Fev 2005 09:41
por Alessandro
Olá Francisco...
Como poderia utilizar o While For na seguinte condição;
No browse faço o filtro conforme é alterado o valor de um text-box,
Por exemplo eu filtro os produtos de um determinado fornecedor, dessa forma:
Function UpDate009()
Select Produtos
Produtos->(DbSetOrder(1))
Produtos->(dbSeek(Form_009.Txt_CodFor.Value))
set filter to Produtos->CGC_FORN == Form_009.Txt_CodFor.Value
go top
Form_009.Brow_009.Value := Recno()
return
Se puder ma ajudar, agradeço.
Enviado: 11 Fev 2005 10:20
por Antonio
É Antonio Alessandro!
Bom dia!
Select Produtos
Produtos->(dbSeek(Form_009.Txt_CodFor.Value))
While for Produtos->CGC_FORN == Form_009.Txt_CodFor.Value .and. !eof()
end
go top
Form_009.Brow_009.Value := Recno()
return
Enviado: 11 Fev 2005 11:56
por Alessandro
Antonio
Dá erro no código, o que pode ser?
Se coloco a comparação entre parenteses ele interperta o FOR como se fosse uma função, se não ele não reconhece o alias.
Outra coisa, deu certo sobre o AUTOEXEC.NT
Valeu
Enviado: 11 Fev 2005 13:42
por Antonio
Ola Alessandro,
Queira me desculpar...
Na realidade a sugestão é que voce construa um indice temporario, somente com o filtro desejado, entende?
If file("indice.cdx")
Erase Indice.cdx
INDEX ON Produtos->CGC_FORN TAG 1 WHILE Produtos->CGC_FORN == Form_009.Txt_CodFor.Value .and. !eof() TO "Indice.CDX"
go top
Form_009.Brow_009.Value := Recno()
Observe que utilizo o RDDCDX
Assim voce cria um indice somente com o conteudo filtrado.
Quanto ao autoexec.nt, baixei o MIcrosoft AntiSpyWare, rodei e foram detectadas 69 praguinhas....
Parece estar tudo bem agora.
Obrigado.
Enviado: 16 Fev 2005 00:16
por vagucs
Antonio escreveu:É Antonio Alessandro!
Bom dia!
Select Produtos
Produtos->(dbSeek(Form_009.Txt_CodFor.Value))
While for Produtos->CGC_FORN == Form_009.Txt_CodFor.Value .and. !eof()
end
go top
Form_009.Brow_009.Value := Recno()
return
Use esta opção do antonio para jogar as informações para um listbox ou mesmo um data grid ou banco de dados temporario e depois atualize no servidor os dados.