criar arquivo dbf automaticamente a cada ano

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

ghosntetrn
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 22 Out 2004 11:53

criar arquivo dbf automaticamente a cada ano

Mensagem por ghosntetrn »

Estou criando um sistema de cadastro, e queria saber como posso fazer para quando eu digitar somente um ano diferente, ele automaticamente crie um arquivo dbf com final 05 (exemplo: arquivo client04, ficaria: client05 e assim por diante, somente quando fosse digitado um ano diferente), com os outros campos existentes, e comece a inserir os dados nesse novo arquivo criado.
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Colega

Você pode usar +/- assim :

Código: Selecionar todos

@ 00,00 SAY "Digite o ano para processamento -> " GET ANO PICT "99"
READ
ARQUIVO="CLIENT"+STRZERO(ANO,2)+".DBF"
INDICE="CLIENT"+STRZERO(ANO,2)

IF .NOT. FILE(ARQUIVO)
   aStructure := {} 
   aAdd( aStructure, { "CODIGO"    , "N",   6, 0 } )
   aAdd( aStructure, { "NOME"      , "C",   50, 0 } )
   aAdd( aStructure, { "ENDERECO"  , "C",   50, 0 } )
   aAdd( aStructure, { "BAIRRO"    , "C",   30, 0 } )
   aAdd( aStructure, { "CIDADE"    , "C",   30, 0 } )
   dbCreate( ARQUIVO,aStructure)

   // aqui você criaria o novo arquivo de indice
   USE "&ARQUIVO"
   INDEX ON CODIGO TO "&INDICE"
ELSE
   USE "&ARQUIVO"
   SET INDEX TO "&INDICE"
ENDIF
Até logo.

Marcelo
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Mensagem por Hasse »

Olá amigos

Eu usaria (eu uso em vários programas) o comando COPY STRU TO, pois mesmo que a estrutura seja alterada não há necessidade de alterar também esta rotina de criação do novo DBF.

A rotina ficaria assim:

USE client04
COPY STRU TO client05

Hasse.
Responder