Boa noite a todos!
Gostaria de saber se alguém tem um exemplo de como capturar um xml e passá-lo para um DBF para então apresentar os dados do DANFE ao usuário! A quem puder ajudar-me agradeço!
Att.
Como capturar um arquivo XML - Danfe?
Moderador: Moderadores
-
Dilson José
- Usuário Nível 1

- Mensagens: 24
- Registrado em: 06 Jun 2007 08:09
- Localização: www.pop.com.br
- Contato:
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Como capturar um arquivo XML - Danfe?
Amiguinho,
Não entendi quando voce diz: "recuperar"
Mas veja nesta postagem http://pctoledo.com.br/forum/viewtopic. ... tag#p66949
Agora se voce tem o .XML em mãos e deseja pegar seu conteúdo, terá de fazer uma varredura usando busca por trechos usando uma função parecida a apresentada abaixo:
Uso:
Não seria grande problema se o XML não contivesse sequencias como os itens de produtos que repetem TAGs.
Mas é um começo e voce conseguirá um resultado.
Não entendi quando voce diz: "recuperar"
Mas veja nesta postagem http://pctoledo.com.br/forum/viewtopic. ... tag#p66949
Agora se voce tem o .XML em mãos e deseja pegar seu conteúdo, terá de fazer uma varredura usando busca por trechos usando uma função parecida a apresentada abaixo:
Código: Selecionar todos
function getXMLValue( cXML, cTAG )
LOCAL nPosIni := At( [<]+cTag+[>], cXML ) + len( [<]+cTag+[>] )
LOCAL nPosFim := At( [</]+cTag+[>], cXML )
return substr( cXML, nPosIni, nPosFim-nPosIni )
Código: Selecionar todos
cXML = MemoRead( "nfe35123...123.xml" )
cEndereco := getXMLValue( cXML, "cEndereco" )Mas é um começo e voce conseguirá um resultado.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
paiva_dbdc
- Usuário Nível 3

- Mensagens: 342
- Registrado em: 12 Nov 2012 09:58
- Localização: uberlandia mg
Como capturar um arquivo XML - Danfe?
o Toya disponibilizou m exe que baixa o xml
ai vc importa para seus dbf
se nao conseguir avise que acho um tempo e posto o codigo
PAiva
ai vc importa para seus dbf
se nao conseguir avise que acho um tempo e posto o codigo
PAiva
Como capturar um arquivo XML - Danfe?
Paiva assim que puder poste para gente, tambem estou interessado.!
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Como capturar um arquivo XML - Danfe?
Bom dia...
Eu juntei informações aqui do site com as orientações do colegas e consegui criar uma rotina para importação do xml para o meu sistema.
Vou postar as rotinas e é só adaptar para seu programa.
Os xmls tem que estar em uma pasta especifica.
Funciona assim:
Primeiro é feito uma leitura dos xml´s da pasta e apresentado para o usuário fazer a escolha de qual xml quer importar. Se o xml já tiver sido importado é avisado para o usuário e cancela importação. Quando o usuario seleciona o xml o sistema abre o xml e pega o cnpj do fornecedor e o numero da nfe.
Daí é feita uma pesquisa se existe o fornecedor cadastrado. Se não encontrar é mostrado opção de cadastrar um novo fornecedor ou associar a um fornecedor já cadastrado.
Depois é exibido uma tela com os itens do xml. É feita uma pesquisa com o código de barras do item. Se for encontrado no cadastro de produtos o sistema associa automaticamente senão ele pesquisa novamente pelo fornecedor e o código original do item. Se não encontrar o usuário seleciona em qual grupo ele quer cadastrar o produto e o sistema efetua o cadastro do produto automaticamente conforme regras prédefinidas. O usuário pode tb associar o item a um produto cadastrado como mostra a tela abaixo Ao final da verificação dos itens o usuário pressiona F7 para processar a compra. É apresentada uma tela mostrando os valores totais da nota e pede a margem de lucro e o frete (se tiver o valor de frete na nota já é buscado automaticamente senão poderá ser definido). É claro que os dados que vão ser coletados do xml vai depender de sistema para sistema. Os meus clientes estão muito satisfeitos porque ao final imprimo um espelho da nota com codigo original + codigo gerado pelo sistema + descricao + valor e codigo de barras. Daí o usuário somente fará a conferência e outro usuário com poder de composição de preço de venda revisa, mas não precisa digitar nenhuma informação adicional, como código de barras, ncm e etc. Somente preços. O próximo passo agora é selecionar e coletar informações do sped fiscal e sped pis cofins... mas aí é outra história..
Como usa as funções fopen(),fseek(),fread() e fclose() ainda não tive problemas com tamanho de arquivo.. Lê certinho xml com mais de 64k. Inclusive já li aqui na loja xml com mais de 200 itens.
O arquivo compra.prg tem praticamente todas as funções. As que não está são funções específicas do meu sistema, que não vai impedir em nada sua compreensão.
Rubens
Eu juntei informações aqui do site com as orientações do colegas e consegui criar uma rotina para importação do xml para o meu sistema.
Vou postar as rotinas e é só adaptar para seu programa.
Os xmls tem que estar em uma pasta especifica.
Funciona assim:
Primeiro é feito uma leitura dos xml´s da pasta e apresentado para o usuário fazer a escolha de qual xml quer importar. Se o xml já tiver sido importado é avisado para o usuário e cancela importação. Quando o usuario seleciona o xml o sistema abre o xml e pega o cnpj do fornecedor e o numero da nfe.
Daí é feita uma pesquisa se existe o fornecedor cadastrado. Se não encontrar é mostrado opção de cadastrar um novo fornecedor ou associar a um fornecedor já cadastrado.
Depois é exibido uma tela com os itens do xml. É feita uma pesquisa com o código de barras do item. Se for encontrado no cadastro de produtos o sistema associa automaticamente senão ele pesquisa novamente pelo fornecedor e o código original do item. Se não encontrar o usuário seleciona em qual grupo ele quer cadastrar o produto e o sistema efetua o cadastro do produto automaticamente conforme regras prédefinidas. O usuário pode tb associar o item a um produto cadastrado como mostra a tela abaixo Ao final da verificação dos itens o usuário pressiona F7 para processar a compra. É apresentada uma tela mostrando os valores totais da nota e pede a margem de lucro e o frete (se tiver o valor de frete na nota já é buscado automaticamente senão poderá ser definido). É claro que os dados que vão ser coletados do xml vai depender de sistema para sistema. Os meus clientes estão muito satisfeitos porque ao final imprimo um espelho da nota com codigo original + codigo gerado pelo sistema + descricao + valor e codigo de barras. Daí o usuário somente fará a conferência e outro usuário com poder de composição de preço de venda revisa, mas não precisa digitar nenhuma informação adicional, como código de barras, ncm e etc. Somente preços. O próximo passo agora é selecionar e coletar informações do sped fiscal e sped pis cofins... mas aí é outra história..
Como usa as funções fopen(),fseek(),fread() e fclose() ainda não tive problemas com tamanho de arquivo.. Lê certinho xml com mais de 64k. Inclusive já li aqui na loja xml com mais de 200 itens.
O arquivo compra.prg tem praticamente todas as funções. As que não está são funções específicas do meu sistema, que não vai impedir em nada sua compreensão.
Rubens
- Anexos
-
COMPRA.PRG- (34.81 KiB) Baixado 369 vezes
"Eu e minha casa servimos ao Senhor e você
"