Gerar XML - NFE.PRG

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar XML - NFE.PRG

Mensagem 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......
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Gerar XML - NFE.PRG

Mensagem 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..
lugab
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar XML - NFE.PRG

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Gerar XML - NFE.PRG

Mensagem 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
lugab
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar XML - NFE.PRG

Mensagem 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.

Código: Selecionar todos

Xml := Substr( Xml, At( "</Prod", Xml ) + 7 )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Gerar XML - NFE.PRG

Mensagem 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...
lugab
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar XML - NFE.PRG

Mensagem por JoséQuintas »

Pois é... foi o que passei num link anterior.
Veja o link aberto, se não foi o que você fez.
retiranode.png
O "</Prod" nessa função é o "</" + cNode, onde vai passar pra função o "Prod", que vai ficar na variável cNode.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Gerar XML - NFE.PRG

Mensagem 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
lugab
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar XML - NFE.PRG

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Gerar XML - NFE.PRG

Mensagem por lugab »

Ok, Quintas, já peguei as funções faltantes.

Compilei e deu tudo certo..

Muito obrigado, mestre !!!
lugab
Responder