Olá amigos, estou tentando criar um script que exporte os dados de uma consulta para um XML.
O porém é que campos nulos devem ser omitidos.
Por exemplo se um registro contém o CPF da pessoa, mas não o endereço, então o XML deve omitar a tag endereço ( ).
Eu vi várias maneiras de criar isso, mas nenhuma que considerasse isso.
Outra coisa era o nome do arquivo, eu queria que o Nome do arquivo fosse uma composição do Número do Registro mais a série mais a data
Tipo assim 0000001-ABCDF-14-01-2016.xml
Bom estou quebrando a cabeça mas não consegui ainda.
O que estou fazendo é um programa para gerenciar um estacionamento e tem que emitir RPS a cada cliente.
Para essa emissão preciso gerar o XML. Depois tem um programa de terceiro que envia e retorna a mensagem com o sucesso ou erro e cópia o arquivo para uma outra pasta de acordo com o resultado.
Queria saber se é possível o Access ler essa outra pasta "Esperando o arquivo entrar" para marcar um status tipo, enviado ou erro, de acordo com a resposta.
Um exemplo que encontrei e que me parece o melhor foi esse:
O problema aqui é que ele coloca as tags dos campos nulos e isso já pesquisei e vai dar erro no envio da RPS.
Aguardo a ajuda de vocês!
Obrigado mais uma vez.
O porém é que campos nulos devem ser omitidos.
Por exemplo se um registro contém o CPF da pessoa, mas não o endereço, então o XML deve omitar a tag endereço (
Eu vi várias maneiras de criar isso, mas nenhuma que considerasse isso.
Outra coisa era o nome do arquivo, eu queria que o Nome do arquivo fosse uma composição do Número do Registro mais a série mais a data
Tipo assim 0000001-ABCDF-14-01-2016.xml
Bom estou quebrando a cabeça mas não consegui ainda.
O que estou fazendo é um programa para gerenciar um estacionamento e tem que emitir RPS a cada cliente.
Para essa emissão preciso gerar o XML. Depois tem um programa de terceiro que envia e retorna a mensagem com o sucesso ou erro e cópia o arquivo para uma outra pasta de acordo com o resultado.
Queria saber se é possível o Access ler essa outra pasta "Esperando o arquivo entrar" para marcar um status tipo, enviado ou erro, de acordo com a resposta.
Um exemplo que encontrei e que me parece o melhor foi esse:
- Código:
Public Function Export()
Dim bd As Database
Dim tabela As Recordset 2000
Dim f As Integer
Set bd = CurrentDb
Set tabela = bd.OpenRecordset("nome_da_tabela_para_exportar")
' utilizado FreeFile para fornecer um número de arquivo livre, que não esteja sendo usado
f = FreeFile
' abre o arquivo para gravacao
Open "caminho_completo_do_arquivo.xml"
For Output As #f
' o inicio de um arquivo XML possui o plural dos registros do arquivo
Print #f, "<?xml version='1.0' encoding='iso-8859-1'?>"
Print #f, "<LOTE>"
Print #f, "<REGISTROS>" tabela.MoveFirst
' faz o loop percorrendo todos os registros do inicio ao fim da tabela
Do While Not tabela.EOF
' escreve uma tab XML para indicar que estamos no comeco de um novo registro
Print #f, "<REGISTRO>"
Print #f, "<TAG1>" & tabela!campo_da_tabela & "</TAG1>"
Print #f, "<TAG2>" & tabela!campo_2 & "</TAG2>"
Print #f, "<TAG3>" & tabela!campo_3 & "</TAG3>" . . .
Print #f, "<TAGn>" & tabela!campo_n & "</TAGn>"
' fecha a tag para este registro
Print #f, "</REGISTRO>"
' vai para o proximo registro da tabela tabela.
MoveNext Loop
' encerra o arquivo xml
Print #f, "</REGISTROS>"
Print #f, "</LOTE>"
' fecha o arquivo
Close #f
End Function
O problema aqui é que ele coloca as tags dos campos nulos e isso já pesquisei e vai dar erro no envio da RPS.
Aguardo a ajuda de vocês!
Obrigado mais uma vez.
Última edição por mrjoneskod em 23/3/2016, 13:37, editado 1 vez(es)