Filtro em Browsedb

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Filtro em Browsedb

Mensagem 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,
_____________________
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Alcir
Usuário Nível 1
Usuário Nível 1
Mensagens: 34
Registrado em: 17 Abr 2008 10:57
Localização: sao paulo

Re: Filtro em Browsedb

Mensagem 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
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder