Página 2 de 2
Enviado: 18 Abr 2005 12:22
por Gelson
Olá, Toledo
Eu já tinha alterado, até coloquei que tinha dado tudo certinho, só que eu estava fazendo os testes com uma única conta (a minha)
lancei valores com o CT =01 em outra conta e tentei imprimir, só esta saindo a minha conta, vou pegar umas trinta conta e fazer alguns lançamentos e reindexar o banco pra ver, se da certo.
Enviado: 18 Abr 2005 13:32
por Gelson
Efetuei vários lançamentos em outras 05 contas (30020,30022,30023,30044 e 30045) só esta sendo impresso a 30300 que já havia lançamentos.
Reindexei os indices mas não deu certo.
Enviado: 18 Abr 2005 15:39
por Toledo
Gelson,
No seu fonte, as CONTAS maior que 30000, só serão impressas se o mtipo for igual a 3 ou 4, se CT for igual a 01 e se a DATA de lançamento estiver dentro do período informado (mdat_ini e mdatfim).
Se os lançamentos feitos nestas 5 contas (30020,30022,30023,30044 e 30045) não estiverem de acordo com os ítens acima, elas não serão impressas.
Lembre-se também que o arquivo de índice CONTADAT tem que estar atualizado com estes novos lançamentos.
Uma sugestão: Altere a maneira que você abre os arquivos de índices, procure fazer da seguinte maneira:
Exemplo:
Código: Selecionar todos
SELECT 1
USE MOVIM
IF !FILE("IMOVIM.NTX") .OR. !FILE("CONTADAT.NTX")
INDEX ON CONTA TO IMOVIM
INDEX ON CONTA+DTOS(DATA) TO CONTADAT
ENDIF
SET INDEX TO IMOVIM, CONTADAT
SET ORDER TO 2
Abrindo os arquivos desta maneira, fica fácil recriar os índices, basta deletar todos os arquivos NTX. Assim, se os arquivos de índices não forem encontrados (IF !FILE("IMOVIM.NTX")), serão criados novamente.
E com o comando SET ORDER TO, você poderá indicar qual dos arquivos de índices relacionados no SET INDEX TO você quer usar.
Abraços,
Enviado: 18 Abr 2005 16:43
por Gelson
Olá, Toledo
Maravilha, funcionou blz, mas deixe-me lhe fazer uma pergunta.
Qual comando devo usar para o sistema criar automaticamente todos os .ntx
toda vez que o sistema for aberto, assim evito ter de ficar deletando ?
muitissimo obrigado pela paciência.
E aproposito estive olhando várias perguntas postadas aqui e vi o quanto estou por fora do traçado, desconheço a maioria dos comando até minhas linhas são ruins, procurei por aspotilas no site e não achei, estou usando aquela de comando e funções no clipper5 que esta na net. Você pode me indicar onde encontro um material mais atual, mas que seje grátis...
Enviado: 22 Abr 2005 07:45
por Gelson
Olá, pessoal
Podem deixar, já encontrei um curso de clipper aqui no site, e quanto a rotina para indexar automaticamente os ntx podem deixar, vou estudar a apostila e eu mesmo farei.
Obrigado a todos.

)

)
Enviado: 22 Abr 2005 11:02
por Toledo
Gelson,
Sempre que você abrir um banco de dados (DBF) relacione
todos os arquivos de índices
criados para este banco de dados, principalmente quando você for incluir, modificar ou deletar algum registro.
Exemplo:
Código: Selecionar todos
SELECT 1
USE ARQDBF
IF !FILE("ARQNTX1.NTX") .OR. !FILE("ARQNTX2.NTX")
INDEX ON CAMPO1 TO ARQNTX1
INDEX ON CAMPO2 TO ARQNTX2
ENDIF
SET INDEX TO ARQNTX1, ARQNTX2
Fazendo isto, não existe necessidade de ficar criando os arquivos de índices toda vez que você entrar no seu programa.
Você deve criar os arquivos de índices novamente somente quando acontecer a corrupção de algum arquivo, por causa de uma queda de energia, problemas no HD, etc... Neste caso, crie uma opção dentro do programa para realizar esta tarefa, tipo: Reconstrói Índices.
Exemplo:
Código: Selecionar todos
PROC CRIAIND()
SELECT 1
USE ARQDBF1
INDEX ON CAMPO1 TO ARQNTX1
INDEX ON CAMPO2 TO ARQNTX2
SELECT 2
USE ARQDBF2
INDEX ON CAMPO1 TO ARQNTX3
SELECT 3
USE ARQDBF3
INDEX ON CAMPO1 TO ARQNTX4
INDEX ON CAMPO2 TO ARQNTX5
CLOSE ALL
RETU
Abraços,