Filtrando dados

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

PITERGALDIANO
Usuário Nível 2
Usuário Nível 2
Mensagens: 91
Registrado em: 28 Nov 2003 08:48

Filtrando dados

Mensagem por PITERGALDIANO »

Bom dia para todos

Pessoal estou precisando saber como faço para filtrar os dados em um DBF para emitir um relatório.

Este relatório vai ser emitido em rede, portando dois ou mais usuários podem emitir o mesmo simultaneamente

qual a melhor maneiro de fazer isso?

Ouvi dizer já sobre indexar somente os dados necessários para o relatório....
isso funciona? como proceder?


Obrigado

Piter Galdiano
Piter Galdiano
Programador Clipper
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Piter

Para criar um indice filtrado use as cláusulas FOR e WHILE do comando INDEX, você deverá usar uma das duas ou ambas, depende de como você irá querer o filtro.

Essas cláusulas estão presentes nas versões 5.2 e 5.3 do Clipper.

Se você utiliza a Six2 ou a Six3 terá ainda mais e melhores opção para filtragem, porém para filtragens simples o INDEX funciona perfeitamente.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
PITERGALDIANO
Usuário Nível 2
Usuário Nível 2
Mensagens: 91
Registrado em: 28 Nov 2003 08:48

Mensagem por PITERGALDIANO »

Uso DBFCDX

vou usar o index mesmo

alguém pode me dar um exemplo de como filtrar?

obrigado
Piter Galdiano
Programador Clipper
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Lá vai...

INDEX ON NOMEPROD FOR PRECO>=100.00 .AND. PRECO<=500.00

Neste caso seria criado um indice com todos os produtos com preco maior ou igual a 100,00 e menor ou igual a 500,00 , ordenados por NOME DO PRODUTO

INDEX ON CODIGO FOR NOMEPROD>="A" .AND. NOMEPROD<"B"

Neste caso seria gerado um indice com todos os produto começados com a letra A, ordenados por CODIGO

INDEX ON ESTOQUE FOR NOMEPROD>="A" .AND. NOMEPROD<"B"

Neste caso seria gerado um indice com todos os produto começados com a letra A, ordenados por QUANTIDADE EM ESTOQUE

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Mensagem por marcos.gurupi »

Caro, sempre tive problemas para filtrar dados no inicio (bem no inicio) usei o set filter, mas como vc sabe ele n eh confiavel e deveria ser banido do clipper, depois comecei a utilizar indices temporarios, no inicio parecia q havia solucionado tudo, mas como eu abro todos os arquivos no inicio isso estava causando problemas nos indices principais do sistema, soh consegui solucionar criando uma funcao q criava arq. dbf temporarios e depois eu poderia fazer o q quizer com esses arq. tipo criar indices ou editar neles. Ok! Entaum resumindo se vc abrir todos os arq. no inicio n eh confiavel criar indices temporarios. Valeu!!

Marcos Roberto.
Responder