Jump to content
Fivewin Brasil

gravar xml da NF-e em uma tabela


marcioe

Recommended Posts

amigos 

 

estou usando a classe+flex docs para fazer a NF-e, e está funcionando BLZ

 

porem estou com uma nova situação que é a seguinte.

 

a empresa quer emitir as notas em seu deposito fechado que fica fora da sede da empresa.  (fazemos acesso remoto)

 

porem a classe do gilmer gera os XML das notas em uma pasta especifica C:\.....\REMESSA\PROTOCOLO

 

E e as vezes uma nota foi gerada na matriz, e o cara quer emitir ela na filial e vice versa.

 

 

Então estava pensando em gravar (importar o XML gerado C:\.....\REMESSA\PROTOCOLO do pc do usuario em uma TABELA (MYSQL) CAMPO LONGBLOB ou similar  pois dai o xml não ficará fixo na marquina que gerou.

 

quando for imprimir por exemplo eu leio o que está na tabela e emito de novo.

 

 

Alguem tem alguma coisa parecida .

Link to comment
Share on other sites

Posso não ter entendido direito, mas veja como eu faço.

 

Todos os XMLs eu gravo uma cópia em DBF mesmo, campo MEMO. Desta forma posso imprimir a partir de qualquer computador na rede apenas lendo o campo MEMO e salvando como XML numa pasta temporária em qualquer computador. Creio que com MySQL também funciona, mas ainda não tentei. Uso o UNIDANFE para imprimir os DANFEs.

 

Ainda não uso a classe do Gilmer, mas a ídéia funciona para qualquer XML.

Link to comment
Share on other sites

Segue como eu faço:

   // Criação do banco de dados de CARTAS DE CORREÇÃO
   aStr := {}
   AADD(aStr,{"NFE_NR", "N", 0010, 0}) // Número da NF-e
   AADD(aStr,{"CCHAVE", "C", 0050, 0}) // Chave de acesso
   AADD(aStr,{"TXTXML", "M",    1, 0}) // Conteúdo do XML
   cDbfInfo += CheckDbf(aStr, "NFE__XML.DBF")
   AADD(aInvali, {"NFE__XML.DBF", {"NFE_NR", "CCHAVE"}})
   IF ! FILE("NFE__XML.DBF") ; DBCREATE("NFE__XML.DBF",aStr) ; ENDIF
   IF ! FILE("NFE__XML.CDX")
      USE NFE__XML NEW
      PACK
      MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
         BuildIndex( oMeter, oText, oDlg, @lEnd, "NFE__XML->NFE_NR", "NFEXMLNR" ) },;
         "Classificando XMLs: Ãndice 1/1...", "Espere um momento!" )
      CLOSE NFE__XML
   ENDIF

 

Função que uso para salvar o XML em DBF (Campo MEMO)

STATIC FUNCTION NFeSaveXML(Nfe_Nro, Nfe_Chv, Nfe_Xml)
   LOCAL n_Area := SELECT()
   USE NFE__XML SHARED NEW
   OrdListClear()
   OrdListAdd("NFE__XML", "NFEXMLNR")
   l_Save := .F.
   IF ! NFE__XML->(DBSEEK(Nfe_Nro))
      NFE__XML->(DBAPPEND())
      l_Save := .T.
   ELSE
      IF NFE__XML->(RLOCK())
         l_Save := .T.
      ENDIF
   ENDIF
   IF l_Save
      REPLACE NFE__XML->NFE_NR WITH Nfe_Nro // Número da NFE
      REPLACE NFE__XML->CCHAVE WITH Nfe_Chv // Chave de acesso
      REPLACE NFE__XML->TXTXML WITH MEMOREAD(Nfe_Xml) // Arquivo XML (Caminho completo)
   ENDIF
   CLOSE NFE__XML
   SELECT(n_Area)
RETURN NIL

 

Como você pode notar, uso RDD DBFCDX.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...