Página 1 de 1
Filtro em Browsedb
Enviado: 15 Mai 2008 17:35
por ademilson
Boa Tarde pessoal...
É o seguinte, tenho um browsedb de um determinado arquivo, por exemplo, um arquivo de produtos, e quero que nao aparece alguns registros no browse, por exemplo, os produtos inativos, cujo há uma marcação de um flag, se esta inativo ou não. Como eu poderir proceder isso ?
abs,
Enviado: 15 Mai 2008 17:40
por Maligno
Não uso o Browse do Clipper, acho que um SET FILTER resolveria o problema. Ou, se ficar muito lento, um índice com uma chave especialmente preparada.
Re: Filtro em Browsedb
Enviado: 16 Mai 2008 16:51
por Alcir
SET FILTER vai demorar muito para filtrar, o correto seria vc usar um indexado, e procurar no DBSEEK(chave), bem mais rapido.
Sele 1
dbseek(chave)
index on chave to tmp1 while chave = xnumero
set color to w+/gr+,n/w
DECLARE VETOR_CAMPOS[3]
VETOR_CAMPOS[2] = 'CAMPO2'
VETOR_CAMPOS[3] = 'CAMPO1'
VETOR_CAMPOS[1] = 'CHAVE'
declare titulo[3]
titulo[1] = 'Numero'
titulo[2] = 'Exame'
titulo[3] = 'Marca'
@23,3say '[ESC] Sair' color'n/w'
DBEDIT(13,22,22,55,VETOR_CAMPOS,"edita45",,titulo,chr(196)+chr(194)+chr(196))
So um pequeno exemplo.
Abraços
Enviado: 16 Mai 2008 18:46
por Maligno
Alcir escreveu:SET FILTER vai demorar muito para filtrar
Essa é realmente a crença comum, mas há casos em que, mesmo com um volume grande de dados, o SET FILTER voa. Com um índice apropriado e uma chave bem montada, pode-se montar um escopo (isso virtualmente diminui o volume) e configurar o SET FILTER. Faço isso direto e a velocidade é excelente. Em alguns casos, o retorno é instantâneo.