criando relatorio de pesquisa

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Gelson
Usuário Nível 3
Usuário Nível 3
Mensagens: 170
Registrado em: 16 Abr 2005 17:04

Mensagem 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.
Gelson
Usuário Nível 3
Usuário Nível 3
Mensagens: 170
Registrado em: 16 Abr 2005 17:04

Mensagem 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.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Gelson
Usuário Nível 3
Usuário Nível 3
Mensagens: 170
Registrado em: 16 Abr 2005 17:04

Mensagem 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...
Gelson
Usuário Nível 3
Usuário Nível 3
Mensagens: 170
Registrado em: 16 Abr 2005 17:04

Mensagem 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. :)) :))
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder