Clipper On Line • Ver Tópico - Arquivo TXT da Nota Fiscal Paulista
Mudar para estilo Clássico
Discussão sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (ECF, TEF, SINTEGRA, NF-e, ECD, EFD, etc.)
Postar uma resposta

Arquivo TXT da Nota Fiscal Paulista

22 Dez 2009 09:17

Pessoal, estou precisando de uma ajuda para criar um arquivo texto com dados da NF Paulista.

Eu peguei os dados das NFs dos arquivos .DBF e gravei em outro arquivo, acontece que não está dando certo na hora de montar o .TXT.

Eu já ví aqui no forum que o pessoal conseguiu chegar nesse arquivo mas não sei como. Portanto se alguem puder me ajudar, desde já o meu muito obrigado.

Re: Arquivo TXT da Nota Fiscal Paulista

22 Dez 2009 10:01

Bom Dia.
Você está usando a DLL do fabricante da ECF?

[]'s

Ana

Re: Arquivo TXT da Nota Fiscal Paulista

22 Dez 2009 12:44

Olá, não, eu uso um aplicativo desenvolvido em Clipper Summer 87 que gera os arquivos .DBF na hora da emissão das notas, aqui ainda não usamos o ECF.

É que desde 09/2009 precisamos informar tambem as notas mod 1.

Eu tentei pegar os dados do periodo e jogar num outro arquivo .DBF e depois usar o copy to arquivo.txt SDF ou DELIMITED with .

Mas nao estou conseguindo, talvez haja outra forma se se chegar no .TXT.

Re: Arquivo TXT da Nota Fiscal Paulista

22 Dez 2009 13:19

Ok, vamos ver se eu entendi o seu problema direito.
Você está com dificuldades para mandar o conteudo do arquivo .DBF para o arquivo .TXT?
Poste um trecho do código problemático.

Re: Arquivo TXT da Nota Fiscal Paulista

22 Dez 2009 14:26

anacatacombs escreveu:Poste um trecho do código problemático.

Exato !
E opte por montar arquivos texto, com as funções de baixo nível: fcreate, fwrite, etc ... Pois desta forma você terá mais controle sobre o que será gravado.

Re: Arquivo TXT da Nota Fiscal Paulista

22 Dez 2009 14:53

Eu até iria sugerir, mas nunca trabalhei com SUMMER 87 e não sei se existe compatibilidade com essas funções de manipulação de arquivos.

Re: Arquivo TXT da Nota Fiscal Paulista

22 Dez 2009 16:55

Ana, eu criei um arquivo .DBF para receber os dados das notas que serão usados para compor os tipos de registros da NF Paulista. Depois eu pensei em usar o copy to arquivo.txt. acontece que se su usar o delimiter with | (pipe) que esles pedem como separador ele coloca virgulas entre os campos. Se eu usar SDF os campos ficam com espaços em branco e acho que isso faz com que nao passe no validador.
Vou postar abaixo esse trecho do código:

Código:
    *******************************************************
    **  CONVERSAO PARA ARQUIVOS TIPO TXT (??? POSICOES)  **
    *******************************************************
    Close Databases
    Close Indexes
**********************
    ** REGISTRO 10  **
**********************
    If   Abre_local("ANFPTP10")
         If   Trava_arq()
*              Copy to \NEW\SP\NFPA\R10.TXT SDF
              Copy to \NEW\SP\NFPA\R10.TXT DELI
              UNLOCK
         Endif
    Endif

**********************
    ** REGISTRO 20  **
**********************
    If   Abre_local("ANFPTP20")
         If   Trava_arq()
*              Copy to \NEW\SP\NFPA\R20.TXT SDF
              Copy to \NEW\SP\NFPA\R20.TXT DELI
              UNLOCK
         Endif
    Endif
**********************
    ** REGISTRO 30  **
**********************
    If   Abre_local("ANFPTP30")
         If   Trava_arq()
*              Copy to \NEW\SP\NFPA\R30.TXT SDF
              Copy to \NEW\SP\NFPA\R30.TXT DELI
              UNLOCK
         Endif
    Endif

**********************
    ** REGISTRO 40  **
**********************
    If   Abre_local("ANFPTP40")
         If   Trava_arq()
*              Copy to \NEW\SP\NFPA\R40.TXT SDF
              Copy to \NEW\SP\NFPA\R40.TXT DELI
              UNLOCK
         Endif
    Endif

**********************
    ** REGISTRO 50  **
**********************
    If   Abre_local("ANFPTP50")
         If   Trava_arq()
*              Copy to \NEW\SP\NFPA\R50.TXT SDF
              Copy to \NEW\SP\NFPA\R50.TXT DELI
              UNLOCK
         Endif
    Endif

**********************
    ** REGISTRO 60  **
**********************
    If   Abre_local("ANFPTP60")
         If   Trava_arq()
*              Copy to \NEW\SP\NFPA\R60.TXT SDF
              Copy to \NEW\SP\NFPA\R60.TXT DELI
              UNLOCK
         Endif
    Endif

**********************
    ** REGISTRO 90  **
**********************
    If   Abre_local("ANFPTP90")
         If   Trava_arq()
*              Copy to \NEW\SP\NFPA\R90.TXT SDF
              Copy to \NEW\SP\NFPA\R90.TXT DELI with
              UNLOCK
         Endif
    Endif
***********************************************************

********************************
    **  MONTA O ARQUIVO NFPA  **
********************************
    If   Abre_local("NFPA")
         If   Trava_arq()
              Zap
              Append from D:\NEW\SP\NFPA\R10.TXT SDF
              Append from D:\NEW\SP\NFPA\R20.TXT SDF
              Append from D:\NEW\SP\NFPA\R30.TXT SDF
              Append from D:\NEW\SP\NFPA\R40.TXT SDF
              Append from D:\NEW\SP\NFPA\R50.TXT SDF
*              Append from D:\NEW\SP\NFPA\R60.TXT SDF
              Append from D:\NEW\SP\NFPA\R90.TXT SDF

              ******************************************************
              **  DEFINICAO DO NOME DO ARQUIVO PREVENDO SEMPRE    **
              **  PERIODO DE MES FECHADO FORMATO "MM" E ANO "AA"  **
              ******************************************************
              Mmes = substr(Dtj(Mdatini),7,2)
              Mano = substr(Dtj(Mdatini),3,2)
              Marq = "NFPA" + Mmes + Mano + ".TXT"
              Copy to D:\NEW\SP\NFPA\&Marq SDF
*              Copy to  d:\testesin\SP\NFPA\&Marq SDF
         Endif
    Endif
Editado pela última vez por Toledo em 04 Jun 2010 19:20, num total de 1 vezes
Razão: Mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: Clique aqui

Re: Arquivo TXT da Nota Fiscal Paulista

22 Dez 2009 17:11

É muito mais fácil você montar o TXT na marra, do que usar o COPY TO ... SDF
Pode usar até as rotinas de SET PRINTER que já resolve, de uma procurada aqui no fórum que já vi colegas postarem as rotinas de geração das NFP.

Re: Arquivo TXT da Nota Fiscal Paulista

22 Dez 2009 17:14

Como disse alí em cima, não sei se vai funcionar, pois nunca trabalhei com SUMMER, e também não rodei a rotina para ver se deu erro em algum lugar..
mas seria algo parecido com..

Código:
If Abre_local("ANFPTP20")
    If Trava_arq()
        nHandle := FCREATE("\NEW\SP\NFPA\R20.TXT")
        GO TOP
        DO WHILE !EOF()
              FWRITE(nHandle,Var_Arquivo+CHR(13)+CHR(10))
              * var_arquivo = Variavel do seu banco de dados ou a linha
              * ja formatada para Nota Fiscal Paulista
              SKIP
        ENDDO
        FcLOSE(nHandle)
   ENDIF
   UNLOCK
Endif


Acho que vai dar certo..

Re: Arquivo TXT da Nota Fiscal Paulista

22 Dez 2009 20:56

Ana, valeu muito a dica, ja testei e funcionou certinho.
Vou mudar o programa pra montar as linhas e assim gerar o arquivo.txt que preciso.
Agradeço à você e ao pessoal que respondeu ao tópico.

[].

Julio.

Re: Arquivo TXT da Nota Fiscal Paulista

29 Dez 2009 18:07

Como o Julio não explicou depois se já montou o arquivo .TXT com os dados das NF, aqui vai umas dicas:
- não deixe nehum campo com acentos, cedilhas, etc.
- siga a portaria CAT 13 detidamente
- cada registro termina com chr(13) + chr(10) = "carriage return" + "line feed"
- o arquivo termina com chr(26)
- a quantidade de separadores (chr(124) chamado de "pipe") deve ser em número de campos que cada registro tem, menos 1.
assim: se o registro 20 (notas fiscais) tiver 15 campos, devem existir 14 "pipes", antes do término do registro
- o maior problema está em conjugar as NF com os seus ítens, dada às diversas tributações, CFOPs, etc.
Postar uma resposta