Olá Pessoal,
Mais uma vez preciso da ajuda de vocês..... Estou gerando o XML para atender a NFS-e, e já consegui gerar o XML e o mesmo ser validado no site da prefeitura. No entanto considerando que o arquivo gerado não pode ter mais de 50 registros, tive que fazer a quebra e gerar mais de um XML.
Estou tendo um problema sempre com o segundo XML que estou gerando. O primeiro XML o validador do site reconhece sem nenhum problema, mas o segundo esta retornando problema de estrutura, como se houvesse problema no layout do arquivo..
Acredito que seja algum detalhe que precise ser feito quando vou gerar esse segundo XML, mas ainda não descobri o que pode ser....
Estou gerando o XML da seguinte maneira :
Arquivo := "rps1.xml"
If (nHandle := Fcreate(Arquivo)) = - 1
.... Mensagem de erro
Else
Set Devi to Print
Set Printer to &Arquivo.
E no Final para :
Set Devi to screen
Fclose(nHandle)
.....
Esse processo se repete para a criação do segundo XML, e não sei por que ao gerar o segundo a estrutura de acordo com o validador não está correta.
Se alguém tiver alguma dica que possa me dar uma Luz, agradeço muito.....
Mais uma vez, obrigado...
Abraços,
Tadeu
Problema ao gerar mais de 1 XML
Moderador: Moderadores
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Problema ao gerar mais de 1 XML
Olá!
A primeira coisa que notei no código postado, é que você está misturando duas coisas:
você deve optar por gravar usando as funções de baixo nível (FCreate(), FOpen(), FWrite(), FClose()) ou por gravar usando o comando SET PRINTER TO (cArquivo), que já cria o arquivo cArquivo, e SET PRINTER TO que fecha cArquivo. Nunca os dois juntos.
No teu exemplo, o FCreate() está criando um arquivo e depois o SET PRINTER TO &Arquivo está criando outro arquivo com o mesmo nome.
Retire o FCreate() e ao término da geração de cada arquivo, feche o arquivo gerado com SET PRINTER TO.
A primeira coisa que notei no código postado, é que você está misturando duas coisas:
você deve optar por gravar usando as funções de baixo nível (FCreate(), FOpen(), FWrite(), FClose()) ou por gravar usando o comando SET PRINTER TO (cArquivo), que já cria o arquivo cArquivo, e SET PRINTER TO que fecha cArquivo. Nunca os dois juntos.
No teu exemplo, o FCreate() está criando um arquivo e depois o SET PRINTER TO &Arquivo está criando outro arquivo com o mesmo nome.
Retire o FCreate() e ao término da geração de cada arquivo, feche o arquivo gerado com SET PRINTER TO.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Problema ao gerar mais de 1 XML
A solução está em utilizar o FCREATE, FOPEN, FCLOSE, FWRITE (funções de baixo nível) como já disse o colega. Neste tópico aborda esse assunto e tem um exemplo para referência: https://pctoledo.org/forum/viewto ... 802#p52802 que espero que ajude.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Problema ao gerar mais de 1 XML
Olá pessoal,
Fiz as alterações, retirando o Fcreate(), mas o problema persiste.... O interessante é que o primeiro arquivo que a rotina está gerando está OK, quando faço a criação do segundo ai dá erro na estrutura do arquivo...
Rotina geração do XML : Estou anexando a rotina que gera o XML ( a ideia da rotina é gerar ate 4 XML caso eu tenha o numero de 200 registros para informar, ou seja, uma quebra de 50 por arquivos)...
Se voces puderem dar uma olhada e ver se existe algo mais que posso estar esquecendo eu agradeço...
Valeu mais uma vez pela ajuda...
Um grande abraço...
Tadeu
Fiz as alterações, retirando o Fcreate(), mas o problema persiste.... O interessante é que o primeiro arquivo que a rotina está gerando está OK, quando faço a criação do segundo ai dá erro na estrutura do arquivo...
Rotina geração do XML : Estou anexando a rotina que gera o XML ( a ideia da rotina é gerar ate 4 XML caso eu tenha o numero de 200 registros para informar, ou seja, uma quebra de 50 por arquivos)...
Se voces puderem dar uma olhada e ver se existe algo mais que posso estar esquecendo eu agradeço...
Valeu mais uma vez pela ajuda...
Um grande abraço...
Tadeu
