Arquivo de Log

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
marbio
Usuário Nível 3
Usuário Nível 3
Mensagens: 206
Registrado em: 29 Jul 2004 16:26

Arquivo de Log

Mensagem por marbio »

Boa Noite,

Tem como criar arquivo de log, no clipper, ja com o programa feito, estou com um problema o cliente teima que o programa na esta gravando os dados, eu queria mostra isso no log que e o funcionaria esta fazendo.


Em outro setores rotinas do programa nunca deu problema como esse!!!


desde ja agradeco sua atencao.

t+

:*
Sempre há uma solucao para os nossos problema clipper.....
Avatar do usuário
marbio
Usuário Nível 3
Usuário Nível 3
Mensagens: 206
Registrado em: 29 Jul 2004 16:26

Mensagem por marbio »

Ola galera...........


vamos la set tiver solucao vomos ajudar o proximo, nao tiver solucao nao deixe o posto em branco, postar alguma coisa e melhor que ficar em branco.


desde ja agradeco
Sempre há uma solucao para os nossos problema clipper.....
Avatar do usuário
Vander
Usuário Nível 3
Usuário Nível 3
Mensagens: 214
Registrado em: 23 Jul 2004 01:43
Localização: João Monlevade - MG

Mensagem por Vander »

Amigo Marbio

Eu tenho alguns sistemas que gravam todas as poerações realizadas na parte financeira que é apenas um DBF e funciona perfeitamente , porém com o sistema pronto e sem alterar os PRG não sei se é possíel.

Vander
Avatar do usuário
C Leonam
Usuário Nível 1
Usuário Nível 1
Mensagens: 32
Registrado em: 22 Nov 2005 17:40
Localização: Maceió

Rotinas do GAS

Mensagem por C Leonam »

Não sei se ajuda, mas acho que vale a pena dar uma olhada.

Essa rotina faz parte de um aplicativo gerado pelo GAS.

Código: Selecionar todos

PROC VE_LOG()  // ve relatorio gravado em disco
PRIV cod_sos, cur_sor
IF nivelop<3          // se usuario nao autorizado,
   RETU               // cai fora..
ENDI
cur_sor=SETCURSOR(3)     // salva cursor/acende
SAVE SCREEN              // salva tela
cod_sos=1
BROWSE_REL(arq_log,2,3,MAXROW()-2,78,.t.)   // mostra o arquivo de log
REST SCREEN                                 // restaura a tela
SETCURSOR(cur_sor)                          // restabelece o cursor
RETU

PROC POE_NO_LOG(tp_mov)  // coloca informacoes no log
LOCAL i, estr_:={}, nc, j, x, db_:=sistema[op_sis,O_ARQUI,O_NOME]         // nome do dbf
t=FILEATTRIB(arq_log)                             // testa se existe/verif atributos
IF t=-1                                           // arquivo nao existe
   area_=FCREATE(arq_log,1)                       // tenta criar o arquivo
ELSE                                              // atributo errado
   RWRITE(arq_log)                                // torna o arquivo R/W
   area_=FOPEN(arq_log,1)                         // abre o arquivo
ENDI
IF area_>0                                        // arquivo aberto beleza.
   buff=PADR(db_,8)+" » "                         // comeca o log com o nome do dbf
   buff+=PADR(usuario,15)+" » "                   // nome do usuario
   IF tp_mov=INCLUI                               // esta incluindo/alterando
      IF op_menu=INCLUSAO                         // e' inclusao
         buff+="INCLUSAO         "                // coloca no log
      ELSE
         buff+="DEPOIS ALTERACAO "                // modificou o dbf
      ENDI
   ELSEIF tp_mov=EXCLUI                           // excluindo registro
      buff+="EXCLUSAO         "
   ELSEIF tp_mov=FORM_INVERSA                     // formula inversa e feita
      buff+="ANTES ALTERACAO  "                   // antes da alteracao
   ELSEIF tp_mov=RECUPERA
      buff+="RECUPERACAO      "                   // recuperando reg excluido
   ELSEIF tp_mov=FORM_DIRETA
      buff+="DEPOIS ALTERACAO "                   // modificou o dbf
   ENDI
   buff+=DTOC(DATE())+" "+TIME()                  // coloca data e hora no log
   nc=EVAL(&("{||"+db_+"->(FCOU())}"))            // numero de campos do arquivo
   estr_=&db_.->(DBSTRUCT())                      // pega estrutura do dbf
   FOR i=1 TO nc                                  // coloca todos os campos no log
      IF db_==ALIAS()
         msg=&db_.->(FIEL(i))                      // campo do arquivo
      ELSE
         msg=db_+"->"+&db_.->(FIEL(i))
      ENDI
      x=TRANS(&msg.,sistema[op_sis,O_CAMPO,i,O_MASC])
      j=IF(LEN(x)>LEN(sistema[op_sis,O_CAMPO,i,O_TITU]),LEN(x),LEN(sistema[op_sis,O_CAMPO,i,O_TITU]))
      IF estr_[i,2] = "C" .OR. estr_[i,2] = "D"     // caracter e data alinha a esquerda
         buff+=" » "+PADR(TRANS(&msg.,sistema[op_sis,O_CAMPO,i,O_MASC]),j+2)
      ELSE                                          // campo numerico alinha a direita
         buff+=" » "+PADL(TRANS(&msg.,sistema[op_sis,O_CAMPO,i,O_MASC]),j+2)
      ENDI
   NEXT
   buff=EMBARALHA(buff)                           // encripta os dados
   buff+=CHR(13)+CHR(10)                          // forca quebra de linha
   FSEEK(area_,0,2)                               // vai para o final do arquivo
   j=FWRITE(area_,buff,LEN(buff))                 // grava o log
   FCLOSE(area_)                                  // fecha o log
   SETRHS(arq_log)                                // coloca atrigutos rhs
ENDI
RETU

:xau
Clp52e, Blinker 5.1
Responder