Index

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

Index

Mensagem por PITERGALDIANO »

Boa tarde pessoal

o que estou fazendo de errado

Index On fluxo->TIPOCAD + Str(fluxo->CODIGO,6) + Str(fluxo->CONVENIO,6) + fluxo->TIPOMOV + Str(fluxo->LOJA,6) + fluxo->NUMDOC + fluxo->SERIE + Dtos(fluxo->DATAEMIS) + Dtos(fluxo->DATAENTRA) + Dtos(fluxo->DATAVENC) + Dtos(fluxo->DATALIQ) + Str(fluxo->VALORTOT,6) + Str(fluxo->VALORPARC,6) + Str(fluxo->VALORLIQ,6) Tag fluind2 To fluxo Eval BarProgress("FLUXO","FLUIND2") Every 50

quando mando indexar com a linha acima, acontece o erro
Internal Error 1255

Porquê?

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 »

Sinceramente o motivo do erro eu não sei, mas me intriga é porque você precisa de um indice tão complexo ?

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 »

o que eu preciso é o seguinte:

Tenho uma tela onde informo os filtros:

Código:
Pagamento ou recebimento:
data de emissão:
data de vencimento:
valor:

preciso selecionar estes dados em um DBF e mostrar o registro na tela, sendo que se um dos campos não forem informados, não deve fazer parte da seleção!

Como devo proceder?

Obrigado
Piter Galdiano
Programador Clipper
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

- Crie um índice que permita vc pesquisar o arquivo. De preferência, uma chave que identifique um único registro por vez.
- A chave que vc esta montando não vai ajudar a montar sua pesquisa.
- Vc pode trabalhar com arquivo temporário ou um array.
- O array tem a desvantagem de depender de espaço de memória.
- O temporário tem a desvantagem de necessitar de mais trabalho de disco e nontagem dos dados. Eu prefiro este, pois nunca sei quantos registros a pesquisa do usuário vai gerar.

Após o usuário entrar com os dados para seleção:
Crie uma estrutura igual ao arquivo original para um arquivo temporário.
Abra o temporário em uma nova área de trabalho.
Indexe o temporário pela mesma chave de pesquisa do arquivo principal.
Faça um loop para correr o arquivo.
Dentro desse loop, vc verifica se o registro atual atende o filtro do usuário.
O que atender, vc copia para o temporário.
Abra um browse do temporário para o usuário.
Toda alteração que o usuário fizer no temporário, pesquise e execute no principal.
Após o usuário fechar o browse, feche e apague o temporário.

(Algumas vezes, eu mudo a estrutura do temporário para conter o número do registro no principal. Assim eu posiciono no registro com o dogoto()).

Boa sorte. Espero ter ajudado.
"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}
PITERGALDIANO
Usuário Nível 2
Usuário Nível 2
Mensagens: 91
Registrado em: 28 Nov 2003 08:48

Mensagem por PITERGALDIANO »

Obrigado pela colaboração de todos, consegui fazer o filtro utilizando o dbf temporário!

Valeu
Piter Galdiano
Programador Clipper
Responder