Selecionar registros com quantidade > 0

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Ricardo Sales Ribeiro
Usuário Nível 3
Usuário Nível 3
Mensagens: 279
Registrado em: 13 Jul 2004 18:06
Localização: Fortaleza-Ceara

Selecionar registros com quantidade > 0

Mensagem por Ricardo Sales Ribeiro »

Boa Noite amigos

Estou com um problema, e gostaria da ajuda de vcs. é o seguinte:

Tenho uma aplicação q mostra no video lançamentos. cujo campo tipo é igual a 1,2 e 3, e tem quantidade ok.
Então, preciso mostrar para o cliente apenas os registros não zerados do tipo 1 e 3, os do tipo 2 podem ser mostrado zerados.
Não queria usar a função Set Filter to porque qdo o arquivo estiver muito gde, vai demorar para fazer o processo e mostrar.
Não sei como fazer, e gostaria da ajuda dos amigos.

Gde abraço
Ricardo Sales
Fortaleza-Ce
lodara53@yahoo.com.br
lodara53@hotmail.com
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Re: Selecionar registros com quantidade > 0

Mensagem por ANDRIL »

Voce pode criar um arquivo de indice temporario para esta tarefa, assim evita o uso de SET FILTER TO. Supondo que voce usara o resultado em um DbEdit() ou TBrowse().

Segue o codigo

Código: Selecionar todos

*--abre o seu dbf
USE meudbf SHARED

*-cria o arquivo de indice temporario apenas para esta tarefa
INDEX ON tipo TO meuidx.ntx FOR tipo=1.AND.qtd>0 .OR. tipo=3.AND.qtd>0 . OR. tipo=2
GO TOP
DbEdit()

*-fecha os arquivos caso seja necessario no seu codigo
CLOSE

*- apaga o indice temporario
Ferase("meuidx.ntx")
Uma vez tendo o arquivo de indice voce podera gerar um relatorio em txt tambem, atraves de uma rotina de impressao.

Espero que te ajude a clariar as idéias.

Abraços.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

Re: Selecionar registros com quantidade > 0

Mensagem por pena »

o problema na sugestão acima, é que se apagar o arquivo temporário, irá ficar lento tb a rotina, pq tera que criar o indice a cada vez que acessar a rotina
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Selecionar registros com quantidade > 0

Mensagem por gvc »

Vc pode criar um arquivo de indice como o [ANDRIL] postou, mas deixando-o permanente.
Como vc não deu maiores informações, estou entendendo que todos os registros do seu aquivo que atendam ao filtro que vc apresentou devem aparecer para o usuário.
Isso tb resolve o problema de atualização por outra estação de trabalho.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Re: Selecionar registros com quantidade > 0

Mensagem por ANDRIL »

Pena, esta solução é simplesmente uma forma nativa, visto que não sabemos se utiliza outra biblioteca de indices como SIX, por exemplo, onde tem funções mais elaboradas para filtros.

Visto ter que criar o indice todas as vezes que for rodar a rotina, voce tem razao, porem o uso do filtro usando INDEX mesmo em ambiente de rede tem velocidade superior ao SET FILTER TO, e mais, ao exibir o resultado no DbEdit() por exemplo, não fica lento na paginação ao contrário o que o ocorre no FILTER.

Abraços.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

Re: Selecionar registros com quantidade > 0

Mensagem por pena »

Correto Andril, eu particularmente nunca uso o set filter, é muito mais lento do que criar um indice, ainda mais na rede, como vc disse, acho que nada que alguns testes de performance para decidir qual caminho tomar.

Um abraço
Avatar do usuário
Ricardo Sales Ribeiro
Usuário Nível 3
Usuário Nível 3
Mensagens: 279
Registrado em: 13 Jul 2004 18:06
Localização: Fortaleza-Ceara

Re: Selecionar registros com quantidade > 0

Mensagem por Ricardo Sales Ribeiro »

Olá Galera

Obrigado pelas ajudas, vou sim fzer meus testes aqui, acho q vai dar certo, criando o indice temporario para esse fim, só q vou deixar permanente, ou seja qdo for acionada essa função de exibir, aí o indice já estar pronto.
Vai fazer parte dos outros indices q utilizo para outras funções.

Valeu
Obrigado!
Ricardo Sales
Fortaleza-Ce
lodara53@yahoo.com.br
lodara53@hotmail.com
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Selecionar registros com quantidade > 0

Mensagem por Pablo César »

só q vou deixar permanente, ou seja qdo for acionada essa função de exibir, aí o indice já estar pronto
Tá certo ! É o que ia falar... se essa exibição é quase frequente, compensa manter mais um índice.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder