Erro ao gerar arquivo TXT para EmpregadorWeb

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

locio
Usuário Nível 2
Usuário Nível 2
Mensagens: 98
Registrado em: 27 Out 2006 14:21

Erro ao gerar arquivo TXT para EmpregadorWeb

Mensagem por locio »

Pessoal,

Boa tarde

Estou precisando do auxilio de vcs pois estou gerando um TXT basico para o Empregador Web, novo sistema do Ministerio do Trabalho para emitir Seguro desemprego e o sistema deles entende que o carater que eu encerro o arquivo não é o que eles esperam. Fiz algumas tentativas mais nenhuma deu certo.

Abaixo o algoritmo que estou usando que inclusive uso em alguns programas como Sefip, Caged etc e dá certo:

Código: Selecionar todos

        ARQUIVO = ALLTRIM(UNIDADE) + ARQUIVO
        arquivo = ALLTRIM(arquivo) + '.SD' 


        SELE FPSD

        set alternate to &arquivo


        WHILE   !EOF()

                set console off
                set alternate on

                ?? regtxt + chr(13) + chr(10)

                set  alternate off
                set  console on

                SELE FPSD
                SKIP

        ENDDO

        set alternate to

        fDelEof (arquivo)

        return

       
Function fDelEof(mFile)
   Local nHandle := 0 
   nHandle = fOpen(mFile,2) 
   fSeek(nHandle,-1,2) 
   Fwrite(nHandle,"") 
   fClose(nHandle) 
   Return NIL 

Se alguem puder me ajudar

obg

Locio
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Erro ao gerar arquivo TXT para EmpregadorWeb

Mensagem por ANDRIL »

locio escreveu:sistema deles entende que o carater que eu encerro o arquivo não é o que eles esperam
E qual é esse caracter?

Anexe o arquivo txt para ver como esta sendo gerado.

Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Erro ao gerar arquivo TXT para EmpregadorWeb

Mensagem por Jairo Maia »

Olá locio,

Pelo exemplo que você postou você está encerrando seu arquivo com Chr( 13 ), que é a quebra de linha. Você postou sua dúvida na seção Legislação fiscal e tributária, e ela nada tem a ver com legislação fiscal e tributária. Não dá para saber se você está usando Clipper ou [x]Harbour. Além de como o colega Andril sugeriu, se você puder anexar um arquivo exemplo, informe se você usa Harbour, xHarbour ou Clipper para que possamos dar uma sugestão.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
locio
Usuário Nível 2
Usuário Nível 2
Mensagens: 98
Registrado em: 27 Out 2006 14:21

Erro ao gerar arquivo TXT para EmpregadorWeb

Mensagem por locio »

Jairo,

Inicialmente obrigado pelas observações. Inclusive porque as vezes nós fazemos algo sem saber exatamente o que está significando, esse foi o caso com relação ao erro, eu encerrava a linha Trailler pos 1 com2 = 99 com o ctl(13) que forçava a geração de mais uma linha que o programa validador refutava.

Com base na sua observação fiz alteração no algoritmo e consegui validar com sucesso.

Meu programa utiliza xharbour. Segue abaixo como ficou meu algoritmo.

Código: Selecionar todos


        ARQUIVO = ALLTRIM(UNIDADE) + ARQUIVO
        arquivo = ALLTRIM(arquivo) + '.SD' 

        SELE FPSD

        set alternate to &arquivo

        WHILE   !EOF()

                set console off
                set alternate on

                //  regtxt tem tamanho de 300
                //  substr(regtxt,1,2) = ´99´  --- indica que e o registro trailler
 
                if  substr(regtxt,1,2) = ´99´
                    ?? substr(regtxt,1,299) + ""
                else  
                    ?? regtxt + chr(13) + chr(10)
                endif 
 
                set  alternate off
                set  console on

                SELE FPSD
                SKIP

        ENDDO

        set alternate to

      //  retirei linha abaixo
     //   fDelEof (arquivo)

        return

       
Function fDelEof(mFile)
   Local nHandle := 0 
   nHandle = fOpen(mFile,2) 
   fSeek(nHandle,-1,2) 
   Fwrite(nHandle,"") 
   fClose(nHandle) 
   Return NIL 
Responder