Página 3 de 3
Gerar XML - NFE.PRG
Enviado: 04 Jun 2017 19:31
por JoséQuintas
No caso da classe de XML, eu zero tudo no New()
Me chamou a atenção uma coisa no seu fonte, ::hHash
Nem sei como se zera uma variável do tipo hash......
Gerar XML - NFE.PRG
Enviado: 08 Jun 2017 20:38
por lugab
Boa noite, Quintas, boa noite a todos..
Quintas, eu fui na sua "página incial" abaixo e vasculhei tudo
https://github.com/JoseQuintas/sefazclass
Mas não encontrei a Função XmlToNota()
Código: Selecionar todos
cXml := MemoRead( "arquivo.xml" )
oNota := XmlToNota( cXml )
? oNota:Emitente:Cnpj
? oNota:Emitente:Nome
? oNota:Emitente:Endereco
Será que eu fui na página errada ou o nome da função ta errada ?
Obrigado..
Gerar XML - NFE.PRG
Enviado: 08 Jun 2017 20:58
por JoséQuintas
Desculpe, errei o nome.
XmlToDoc()
Tá na classe de XML: ze_SpedXmlClass.prg
https://github.com/JoseQuintas/sefazcla ... lClass.prg
É que ela não atende somente nota, também MDFE, CTE, Carta de Correção, Cancelamento....
Mas de forma mais limitada para CTE e MDFE.
Gerar XML - NFE.PRG
Enviado: 08 Jun 2017 22:45
por lugab
Valeu, Quintas.. Vou procurar e compilar pra ver..
Enquanto isso, estou com um problema e preciso de ajuda.
Não sei como fazer a função AT() avançar para o próximo <xprod> de forma que
sempre fico exibindo o primeiro PRODUTO de um XML que possui mais onze produtos.
Alguém sabe o que falta fazer para que o AT() posicione o ponteiro nos próximos <xprod> ??
Código: Selecionar todos
L=12
XmlProdutos = XmlNode(XmlNota,"det")
For i=1 to 99
if L>21
Msg(24,12,"tecle algo p/prosseguir",.F.)
@ 12,02 clea to 21,79
L=12
endif
TbNome = XmlNode(Xmlprodutos,"xProd")
TbNcm = XmlNode(Xmlprodutos,"NCM")
TbCfop = XmlNode(Xmlprodutos,"CFOP")
TbQuaent=XmlNode(Xmlprodutos,"qCom")
TbValent=XmlNode(Xmlprodutos,"vUnCom")
TbValTot=XmlNode(Xmlprodutos,"vProd")
@ l,00 say strzero(i,2)
@ l,03 say TbNcm
@ L,17 say substr(Tbnome,1,16)
@ L,34 say val(Tbquaent) pict "@e 999,999"
@ L,42 say val(Tbvalent) pict "@e 99999.99"
@ L,53 say val(TbIcms) pict "@e 99999.99"
@ L,62 say val(Tbipi) pict "@e 99999.99"
@ L,71 say val(TbValtot) pict "@e 99999.99"
L=L+1
Next I
Msg(24,32,"Fim de exibicao",.F.)
retu
*------------------------------
Function XmlNode(mXml,mNode)
*-------------------------------
Local mTexto := "", mInicio := 0, mFim := 0
mInicio := AT("<" + mNode + ">",mXml)+ (len(mNode)+2)
mFim := AT("</" + mNode + ">", mXml)
If mInicio != 0 .And. mFim != 0
mTexto := Substr(mXml,mInicio,mFim-mInicio)
Endif
Return mTexto
01 04031000 DANONE GREGO ORI 2 5,19 0,00
02 04031000 DANONE GREGO ORI 2 5,19 0,00
03 04031000 DANONE GREGO ORI 2 5,19 0,00
04 04031000 DANONE GREGO ORI 2 5,19 0,00
05 04031000 DANONE GREGO ORI 2 5,19 0,00
06 04031000 DANONE GREGO ORI 2 5,19 0,00
07 04031000 DANONE GREGO ORI 2 5,19 0,00
08 04031000 DANONE GREGO ORI 2 5,19 0,00
09 04031000 DANONE GREGO ORI 2 5,19 0,00
10 04031000 DANONE GREGO ORI 2 5,19 0,00
Gerar XML - NFE.PRG
Enviado: 09 Jun 2017 00:11
por JoséQuintas
Ou usa hb_At(), que tem parâmetro pra indicar o início da pesquisa, ou pode ir cortando o produto do XML.
Gerar XML - NFE.PRG
Enviado: 14 Jun 2017 23:06
por lugab
Oi, Quintas, desculpe a demora na resposta, eu tava em viagem...
Eu optei pela sua sugestão de ir cortando a parte já usada e sim, funcionou perfeito...
Muito obrigado mais uma vez...
Gerar XML - NFE.PRG
Enviado: 15 Jun 2017 02:43
por JoséQuintas
Pois é... foi o que passei num link anterior.
Veja o link aberto, se não foi o que você fez.
O "</Prod" nessa função é o "</" + cNode, onde vai passar pra função o "Prod", que vai ficar na variável cNode.
Gerar XML - NFE.PRG
Enviado: 15 Jun 2017 14:52
por lugab
Valeu Quintas,
Eu até baixei isso aí, mas não compilou, faltou um monte de coisas.
Postagens omitindo quais Lib e .Ch são necessários acrescentar, fazem a gente terminar desistindo.
Eu preferi seguir aquele exemplo feijão-com-arroz do início e desenvolver "eu mesmo" o resto em cima dele.
Um abraço
Gerar XML - NFE.PRG
Enviado: 15 Jun 2017 21:34
por JoséQuintas
Esse é um arquivo do projeto sefazclass.
Na página inicial baixa o projeto inteiro, incluindo exemplo e hbp.
https://github.com/JoseQuintas/sefazclass
Gerar XML - NFE.PRG
Enviado: 19 Jun 2017 00:47
por lugab
Ok, Quintas, já peguei as funções faltantes.
Compilei e deu tudo certo..
Muito obrigado, mestre !!!