Página 2 de 2
duvida com OrdWildSeek
Enviado: 22 Ago 2017 10:32
por dbdc5554
crie um arq temporario grave os fernado e depois os at( fernado (sem ser os começando na 1 coluna
no prg de vendas localizo os produtos por uma ou varias partes do nome e gravo um tep e depois exibo em browser
base de 10.00 fica instantanea 1 segundo por ai
95.xxx acabei de testar uns 4 segundos
PAiva
duvida com OrdWildSeek
Enviado: 22 Ago 2017 11:13
por fladimir
eu nao... parei nao vi novamente
alguem conseguiu::>
duvida com OrdWildSeek
Enviado: 09 Fev 2018 09:33
por asimoes
Voltando ao assunto fiquei brincando com OrdWildSeek, rs
Código: Selecionar todos
lSeguinte := .F.
NOMES->( DbGoTop() ) //Tem que colocar o Go Top pra funcionar o OrdWildSeek
DO WHILE NOMES->( OrdWildSeek( "*FERNAND*", lSeguinte ) )
aAdd( aNomesAux, { NOMES->Nome, IF( Left( NOMES->Nome, 1) = "F", 0, 1 ) } )
lSeguinte := .T.
ENDDO
aSort( aNomesAux ,,, {|x,y| y[2] > x[2]} )
aNomes := {}
FOR EACH oElemento IN aNomesAux
aAdd( aNomes, oElemento[1] )
NEXT
aChoice(0,0,24,79, aNomes )
Fladimir,
Resulta:

- 2018-02-09 09_34_41-CDBF - DBF Viewer&Editor.png (6.46 KiB) Exibido 858 vezes
duvida com OrdWildSeek
Enviado: 09 Fev 2018 09:40
por asimoes
Uma melhorada:
Código: Selecionar todos
lSeguinte := .F.
aNomesAux := {}
NOMES->( DbGoTop() ) //Tem que colocar o Go Top pra funcionar o OrdWildSeek
cPesquisa := "FERNAND"
DO WHILE NOMES->( OrdWildSeek( "*" + cPesquisa + "*", lSeguinte ) )
aAdd( aNomesAux, { NOMES->Nome, IF( Left( NOMES->Nome, 1) = Left( cPesquisa, 1 ), 0, 1 ) } )
lSeguinte := .T.
ENDDO
aSort( aNomesAux ,,, {|x,y| y[2] > x[2]} )
aNomes := {}
FOR EACH oElemento IN aNomesAux
aAdd( aNomes, oElemento[1] )
NEXT
aChoice(0,0,24,79, aNomes )
duvida com OrdWildSeek
Enviado: 09 Fev 2018 09:58
por asimoes
Código: Selecionar todos
cPesquisa := "FERNAND"
DO WHILE NOMES->( OrdWildSeek( "*" + cPesquisa + "*", lSeguinte ) )
aAdd( aNomesAux, { NOMES->Nome, IF( SubStr( NOMES->Nome, RAT( " ", cPesquisa ) + 1 ) = cPesquisa, 0, 1 ) } )
lSeguinte := .T.
ENDDO
Dessa forma a principio não precisa criar nenhum temporário o próprio vetor com asort resolve
duvida com OrdWildSeek
Enviado: 09 Fev 2018 16:59
por asimoes
Outra modificação usando aEval
Código: Selecionar todos
lSeguinte := .F.
aNomesAux := {}
NOMES->( DbGoTop() ) //Tem que colocar o Go Top pra funcionar o OrdWildSeek
cPesquisa := "FERNAND"
DO WHILE NOMES->( OrdWildSeek( "*" + cPesquisa + "*", lSeguinte ) )
aAdd( aNomesAux, { NOMES->Nome, IF( SubStr( NOMES->Nome, RAT( " ", cPesquisa ) + 1 ) = cPesquisa, 0, 1 ) } )
lSeguinte := .T.
ENDDO
aSort( aNomesAux ,,, {|x,y| y[2] > x[2]} )
aNomes := {}
aEval( aNomesAux, {|x,y| aAdd( aNomes, x[1] ) } )
aChoice( 0, 0, 24, 79, aNomes )
duvida com OrdWildSeek
Enviado: 09 Fev 2018 18:25
por fladimir
Opa... q legal vou testar... Obrigado