Selecionar registros com quantidade > 0
Moderador: Moderadores
- Ricardo Sales Ribeiro
- Usuário Nível 3

- Mensagens: 279
- Registrado em: 13 Jul 2004 18:06
- Localização: Fortaleza-Ceara
Selecionar registros com quantidade > 0
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
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
Re: Selecionar registros com quantidade > 0
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
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.
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")
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

- Mensagens: 331
- Registrado em: 06 Jul 2004 18:08
- Localização: CACHOEIRA DO SUL-RS
Re: Selecionar registros com quantidade > 0
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
Re: Selecionar registros com quantidade > 0
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.
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}
{POG - Programação Orientada a Gambiarra}
Re: Selecionar registros com quantidade > 0
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.
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

- Mensagens: 331
- Registrado em: 06 Jul 2004 18:08
- Localização: CACHOEIRA DO SUL-RS
Re: Selecionar registros com quantidade > 0
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
Um abraço
- Ricardo Sales Ribeiro
- Usuário Nível 3

- Mensagens: 279
- Registrado em: 13 Jul 2004 18:06
- Localização: Fortaleza-Ceara
Re: Selecionar registros com quantidade > 0
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!
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!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Selecionar registros com quantidade > 0
Tá certo ! É o que ia falar... se essa exibição é quase frequente, compensa manter mais um índice.só q vou deixar permanente, ou seja qdo for acionada essa função de exibir, aí o indice já estar pronto
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.
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.

