Stampa fatture passive da xml

di il
34 risposte

Stampa fatture passive da xml

Ciao,
ho ultimato la procedura di stampa delle fatture passive in xml (vb6)

Se ho potuto completarla devo ringraziare ettore56 per l'invio dell'esempio.
Purtroppo obtorto collo devo dare ragione a ANDWORK .
Tutti pronti ad attaccarsi alle mammelle ma nessuno che porta il fieno.


per chi vuole l'eseguibile è gratis

34 Risposte

  • Re: Stampa fatture passive da xml

    dario46 ha scritto:


    Ciao,
    ho ultimato la procedura di stampa delle fatture passive in xml (vb6)...
    Ciao Dario.
    Ottimo lavoro. I miei complimenti.
  • Re: Stampa fatture passive da xml

    ettore56 ha scritto:


    dario46 ha scritto:


    Ciao,
    ho ultimato la procedura di stampa delle fatture passive in xml (vb6)...
    Ciao Dario.
    Ottimo lavoro. I miei complimenti.
    Grazie
    questa è la penultima versione
    nell'ultima al posto dello stato liquidazione, prima dei dati fattura, ho messo un riquadro ed all'interno ci scrivo la causale

    Grazie ancora per il tuo esempio.
  • Re: Stampa fatture passive da xml

    dario46 ha scritto:


    Ciao,
    ho ultimato la procedura di stampa delle fatture passive in xml (vb6)

    Se ho potuto completarla devo ringraziare ettore56 per l'invio dell'esempio.
    Purtroppo obtorto collo devo dare ragione a ANDWORK .
    Tutti pronti ad attaccarsi alle mammelle ma nessuno che porta il fieno.
    per chi vuole l'eseguibile è gratis
    Ciao dario46. Se c'e' allegato un PDF riesci anche ad estrarlo ?
    Io ho un codice vb6 (non tutto mio) ti interessa ? Ti darei il link/codice a quel che ho trovato e le prove che ho fatto per tirare fuori il pdf allegato. Parte del codice mio e parte trovato, con il link a dove per giusta riconoscenza a chi ha sviluppato la classe base di conversione base64.
  • Re: Stampa fatture passive da xml

    nid69ita ha scritto:


    dario46 ha scritto:


    Ciao,
    ho ultimato la procedura di stampa delle fatture passive in xml (vb6)

    Se ho potuto completarla devo ringraziare ettore56 per l'invio dell'esempio.
    Purtroppo obtorto collo devo dare ragione a ANDWORK .
    Tutti pronti ad attaccarsi alle mammelle ma nessuno che porta il fieno.
    per chi vuole l'eseguibile è gratis
    Ciao dario46. Se c'e' allegato un PDF riesci anche ad estrarlo ?
    Io ho un codice vb6 (non tutto mio) ti interessa ? Ti darei il link/codice a quel che ho trovato e le prove che ho fatto per tirare fuori il pdf allegato. Parte del codice mio e parte trovato, con il link a dove per giusta riconoscenza a chi ha sviluppato la classe base di conversione base64.
    Ho già preparato un eseguibile per
    - estrae pdf da file firmato (P7M)
    - Estrae PDF da file in BASE64 (allegato a Fatt.Elettr) il file deve avere estensione TXT
    - Estrae PDF direttamente da XML

    Cmq grazie x l'offerta.
  • Re: Stampa fatture passive da xml

    @dario46
    riesci a tenere conto di "tutte" le possibili fatture che possono arrivare ? Le casistiche mi sembrano molte. es. Fatture con bolli virtuali, fatture con ritenute, etc.
  • Re: Stampa fatture passive da xml

    nid69ita ha scritto:


    @dario46
    riesci a tenere conto di "tutte" le possibili fatture che possono arrivare ? Le casistiche mi sembrano molte. es. Fatture con bolli virtuali, fatture con ritenute, etc.
    se guardi l'esempio allegato trovi quasi tutto e l'ho inviato unicamente per la visione del layout e perchè avevo chiesto ad ettore56 i suoi suggerimenti.
    Tieni presente che il bollo virtuale è lato fornitore . a chi riceve la fattura importa solo che sia addebitato o meno su una riga articolo
    Come avevo indicato quando ho postato il foglio pdf, grazie ad Ettore56 che mi ha mandato un esempio "quasi" completo e che ho integrato con casistiche mancanti , ho previsto un'ampia gamma di casi di fatture ricevute dai miei clienti che ovviamente non ho postate tutte per mancanza di tempo e spazio

    Mi manca solo la stampa su più pagine, in fase di test, con l'indicazione del numero.
    E' altrattando immaginabile che essendo versione beta nel corso dei mesi verrà aggiornata
  • Re: Stampa fatture passive da xml

    dario46 ha scritto:


    nid69ita ha scritto:


    dario46 ha scritto:


    Ciao,
    ho ultimato la procedura di stampa delle fatture passive in xml (vb6)

    Se ho potuto completarla devo ringraziare ettore56 per l'invio dell'esempio.
    Purtroppo obtorto collo devo dare ragione a ANDWORK .
    Tutti pronti ad attaccarsi alle mammelle ma nessuno che porta il fieno.
    per chi vuole l'eseguibile è gratis
    Ciao dario46. Se c'e' allegato un PDF riesci anche ad estrarlo ?
    Io ho un codice vb6 (non tutto mio) ti interessa ? Ti darei il link/codice a quel che ho trovato e le prove che ho fatto per tirare fuori il pdf allegato. Parte del codice mio e parte trovato, con il link a dove per giusta riconoscenza a chi ha sviluppato la classe base di conversione base64.
    Ho già preparato un eseguibile per
    - estrae pdf da file firmato (P7M)
    - Estrae PDF da file in BASE64 (allegato a Fatt.Elettr) il file deve avere estensione TXT
    - Estrae PDF direttamente da XML

    Cmq grazie x l'offerta.
    Sono interessato ad estrarre e/o ad inserire doc. in PDF nella FE ho capito che hai un link utile con codice VB6 da te implementato sono interessato a conoscerlo, Grazie
  • Re: Stampa fatture passive da xml

    nicola.montemaggi ha scritto:


    dario46 ha scritto:


    nid69ita ha scritto:



    Ciao dario46. Se c'e' allegato un PDF riesci anche ad estrarlo ?
    Io ho un codice vb6 (non tutto mio) ti interessa ? Ti darei il link/codice a quel che ho trovato e le prove che ho fatto per tirare fuori il pdf allegato. Parte del codice mio e parte trovato, con il link a dove per giusta riconoscenza a chi ha sviluppato la classe base di conversione base64.
    Ho già preparato un eseguibile per
    - estrae pdf da file firmato (P7M)
    - Estrae PDF da file in BASE64 (allegato a Fatt.Elettr) il file deve avere estensione TXT
    - Estrae PDF direttamente da XML

    Cmq grazie x l'offerta.
    Sono interessato ad estrarre e/o ad inserire doc. in PDF nella FE ho capito che hai un link utile con codice VB6 da te implementato sono interessato a conoscerlo, Grazie
    Ovviamente devi prima convertirlo in base 64.
    Come già indicato in precedenza uso libreria Chilkat
    se ti interessa di posto la parte di sorgente
  • Re: Stampa fatture passive da xml

    Molto leggibile il tuo fincato di stampa.
    Hai creato un xsl specifico per la conversione?
  • Re: Stampa fatture passive da xml

    dario46 ha scritto:


    nicola.montemaggi ha scritto:


    dario46 ha scritto:




    Ho già preparato un eseguibile per
    - estrae pdf da file firmato (P7M)
    - Estrae PDF da file in BASE64 (allegato a Fatt.Elettr) il file deve avere estensione TXT
    - Estrae PDF direttamente da XML

    Cmq grazie x l'offerta.
    Sono interessato ad estrarre e/o ad inserire doc. in PDF nella FE ho capito che hai un link utile con codice VB6 da te implementato sono interessato a conoscerlo, Grazie
    Ovviamente devi prima convertirlo in base 64.
    Come già indicato in precedenza uso libreria Chilkat
    se ti interessa di posto la parte di sorgente
    si grazie mi sarebbe sicuramente utile, ho anch'io scaricato e registrato la dll di Chilkat, quindi ho aggiunto ai Riferimenti Chilkat ActiveX v9.5.0 ed infine ho provato ad eseguire una delle funzioni che mi proponeva nell'esempio, questa è la funzione che ho creduto di costruire prendendo spunto dall' esempio proposto da Chilkat :

    Public Function EncodeGif(Xfile, Action)
    Dim bd As New ChilkatBinData
    Dim success As Long
    Dim xml As New ChilkatXml
    Dim gifBase64 As String
    Dim X As String
    Select Case Action
    Case 0
    ' Ho creato un'immagine GIF extra-small per questo esempio .
    success = bd.LoadFile(Xfile)
    If (success <> 1) Then
    Debug.Print "Failed to load GIF image file."
    Exit Function
    End If
    ' Mostra i byte GIF come base64:
    Debug.Print bd.GetEncoded("base64")
    ' Questo GIF particolare in base64 è questo:
    ' R0lGODlhBQAFAMQAAAAAAP////z8/PHx8evr6+jo6OHh4d7e3sPDw8LCwpqamo2NjWxsbGRkZFpaWk1NTUtLS0hISCwsLCQkJP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABQALAAAAAAFAAUAAAUTYCAYQUBAU1lI0TIgztE8jFImIQA7
    Case 1
    ' Iniziamo con una stringa XML:
    X = "<abc><def>R0lGODlhBQAFAMQAAAAAAP////z8/PHx8evr6+jo6OHh4d7e3sPDw8LCwpqamo2NjWxsbGRkZFpaWk1NTUtLS0hISCwsLCQkJP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABQALAAAAAAFAAUAAAUTYCAYQUBAU1lI0TIgztE8jFImIQA7</def></abc>"
    success = xml.loadXML(X)
    Case 2
    ' Ottieni la stringa base64:
    gifBase64 = xml.GetChildContent("def")
    Debug.Print gifBase64
    Case 3
    ' Carica bd con i byte decodificati base64.
    success = bd.Clear()
    success = bd.AppendEncoded(gifBase64, "base64")
    Case 4
    ' Salva come GIF file.
    success = bd.WriteFile(Xfile)
    End Select
    End Function

    ma ho avuto in risposta che "il componente ActiveX non può creare l'oggetto, e qui sono rimasto bloccato.
    Poi siccome sono nuovo del forum mi spiegherai, se vorrai, dove trovo il tuo codice sorgente.
  • Re: Stampa fatture passive da xml

    nicola.montemaggi ha scritto:


    dario46 ha scritto:


    nicola.montemaggi ha scritto:




    Sono interessato ad estrarre e/o ad inserire doc. in PDF nella FE ho capito che hai un link utile con codice VB6 da te implementato sono interessato a conoscerlo, Grazie
    Ovviamente devi prima convertirlo in base 64.
    Come già indicato in precedenza uso libreria Chilkat
    se ti interessa di posto la parte di sorgente
    si grazie mi sarebbe sicuramente utile, ho anch'io scaricato e registrato la dll di Chilkat, quindi ho aggiunto ai Riferimenti Chilkat ActiveX v9.5.0 ed infine ho provato ad eseguire una delle funzioni che mi proponeva nell'esempio, questa è la funzione che ho creduto di costruire prendendo spunto dall' esempio proposto da Chilkat :

    Public Function EncodeGif(Xfile, Action)
    Dim bd As New ChilkatBinData
    Dim success As Long
    Dim xml As New ChilkatXml
    Dim gifBase64 As String
    Dim X As String
    Select Case Action
    Case 0
    ' Ho creato un'immagine GIF extra-small per questo esempio .
    success = bd.LoadFile(Xfile)
    If (success <> 1) Then
    Debug.Print "Failed to load GIF image file."
    Exit Function
    End If
    ' Mostra i byte GIF come base64:
    Debug.Print bd.GetEncoded("base64")
    ' Questo GIF particolare in base64 è questo:
    ' R0lGODlhBQAFAMQAAAAAAP////z8/PHx8evr6+jo6OHh4d7e3sPDw8LCwpqamo2NjWxsbGRkZFpaWk1NTUtLS0hISCwsLCQkJP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABQALAAAAAAFAAUAAAUTYCAYQUBAU1lI0TIgztE8jFImIQA7
    Case 1
    ' Iniziamo con una stringa XML:
    X = "<abc><def>R0lGODlhBQAFAMQAAAAAAP////z8/PHx8evr6+jo6OHh4d7e3sPDw8LCwpqamo2NjWxsbGRkZFpaWk1NTUtLS0hISCwsLCQkJP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABQALAAAAAAFAAUAAAUTYCAYQUBAU1lI0TIgztE8jFImIQA7</def></abc>"
    success = xml.loadXML(X)
    Case 2
    ' Ottieni la stringa base64:
    gifBase64 = xml.GetChildContent("def")
    Debug.Print gifBase64
    Case 3
    ' Carica bd con i byte decodificati base64.
    success = bd.Clear()
    success = bd.AppendEncoded(gifBase64, "base64")
    Case 4
    ' Salva come GIF file.
    success = bd.WriteFile(Xfile)
    End Select
    End Function

    ma ho avuto in risposta che "il componente ActiveX non può creare l'oggetto, e qui sono rimasto bloccato.
    Poi siccome sono nuovo del forum mi spiegherai, se vorrai, dove trovo il tuo codice sorgente.
    il riferimento del codice vb6 era per la parte di estrazione da p7m

    Per la stampa delle fatture ho costruito delle tabelle del tipo
    Private Sub definisci_campi()
    Cedenteprestatore(1) = "<CedentePrestatore>"  'non gestisco le righe che hanno valore riga=0 perchè sono sottonodi
    Cedenteprestatore(2) = "<DatiAnagrafici>"
    Cedenteprestatore(3) = "<IdFiscaleIVA>"
    Cedenteprestatore(4) = "<IdPaese>"
    Cedenteprestatore(5) = "<IdCodice>"
    Cedenteprestatore(6) = "</IdFiscaleIVA>"
    Cedenteprestatore(7) = "<CodiceFiscale>"
    Cedenteprestatore(8) = "<Anagrafica>"
    Cedenteprestatore(9) = "<Denominazione>"
    Cedenteprestatore(10) = "</Anagrafica>"
    Cedenteprestatore(11) = "<AlboProfessionale>"
    Cedenteprestatore(12) = "<ProvinciaAlbo>"
    Cedenteprestatore(13) = "<NumeroIscrizioneAlbo>"
    Cedenteprestatore(14) = "<DataIscrizioneAlbo>"
    Cedenteprestatore(15) = "<RegimeFiscale>"
    Cedenteprestatore(16) = "</DatiAnagrafici>"
    Cedenteprestatore(17) = "<Sede>"
    Cedenteprestatore(18) = "<Indirizzo>"
    Cedenteprestatore(19) = "<NumeroCivico>"
    Cedenteprestatore(20) = "<CAP>"
    Cedenteprestatore(21) = "<Comune>"
    Cedenteprestatore(22) = "<Provincia>"
    Cedenteprestatore(23) = "<Nazione>"
    Cedenteprestatore(24) = "</Sede>"
    Cedenteprestatore(25) = "<StabileOrganizzazione>"
    Cedenteprestatore(26) = "<Indirizzo>"
    Cedenteprestatore(27) = "<NumeroCivico>"
    Cedenteprestatore(28) = "<CAP>"
    Cedenteprestatore(29) = "<Comune>"
    Cedenteprestatore(30) = "<Provincia>"
    Cedenteprestatore(31) = "<Nazione>"
    Cedenteprestatore(32) = "</StabileOrganizzazione>"
    Cedenteprestatore(33) = "<IscrizioneREA>"
    Cedenteprestatore(34) = "<Ufficio>"
    Cedenteprestatore(35) = "<NumeroREA>"
    Cedenteprestatore(36) = "<StatoLiquidazione>"
    Cedenteprestatore(37) = "</IscrizioneREA>"
    Cedenteprestatore(38) = "<Contatti>"
    Cedenteprestatore(39) = "<Telefono>"
    Cedenteprestatore(40) = "<Fax>"
    Cedenteprestatore(41) = "<Email>"
    Cedenteprestatore(42) = "</Contatti>"
    Cedenteprestatore(43) = "</CedentePrestatore>"
       
    '   preparo le coordinate dove inserire i valori
    ' Y
    riga_Cedenteprestatore(1) = 0 ' "<CedentePrestatore>"
    riga_Cedenteprestatore(2) = 0 '"<DatiAnagrafici>"
    riga_Cedenteprestatore(3) = 0 '"<IdFiscaleIVA>"
    riga_Cedenteprestatore(4) = 27  '" <IdPaese>"
    riga_Cedenteprestatore(5) = 27 '"<IdCodice>"    'valore partita iva sulla stessa riga
    riga_Cedenteprestatore(6) = 0 '"</IdFiscaleIVA>"
    riga_Cedenteprestatore(7) = 27 ' "<CodiceFiscale>" cf  con descrizione che precede
    riga_Cedenteprestatore(8) = 0 ' "<Anagrafica>"
    riga_Cedenteprestatore(9) = 10 '"<Denominazione>"
    riga_Cedenteprestatore(10) = 0  '"</Anagrafica>"
    riga_Cedenteprestatore(11) = 35  '"<AlboProfessionale>"
    riga_Cedenteprestatore(12) = 38  '"<ProvinciaAlbo>" con descrizione preced
    riga_Cedenteprestatore(13) = 38 '"<NumeroIscrizioneAlbo>"  stessa riga con descrizione preced
    riga_Cedenteprestatore(14) = 38  '"<DataIscrizioneAlbo>"
    riga_Cedenteprestatore(15) = 22  '"<RegimeFiscale>" con descr
    riga_Cedenteprestatore(16) = 0  '"</DatiAnagrafici>"
    riga_Cedenteprestatore(17) = 0  '"<Sede>"
    riga_Cedenteprestatore(18) = 14  '"<Indirizzo>"
    riga_Cedenteprestatore(19) = 14  '"<NumeroCivico>" stessa riga
    riga_Cedenteprestatore(20) = 18  '"<CAP>"
    riga_Cedenteprestatore(21) = 18  '"<Comune>" sr=stessa riga
    riga_Cedenteprestatore(22) = 18  '"<Provincia>" sr
    riga_Cedenteprestatore(23) = 18  '"<Nazione>" sr
    riga_Cedenteprestatore(24) = 0  '"</Sede>"
    riga_Cedenteprestatore(25) = 0  '"<StabileOrganizzazione>"
    riga_Cedenteprestatore(26) = 45  '"<Indirizzo>"
    riga_Cedenteprestatore(27) = 45  '"<NumeroCivico>"
    riga_Cedenteprestatore(28) = 48  '"<CAP>"
    riga_Cedenteprestatore(29) = 48  '"<Comune>"
    riga_Cedenteprestatore(30) = 48 '"<Provincia>"
    riga_Cedenteprestatore(31) = 48  '"<Nazione>"
    riga_Cedenteprestatore(32) = 0  '"</StabileOrganizzazione>"
    riga_Cedenteprestatore(33) = 0  '"<IscrizioneREA>"
    riga_Cedenteprestatore(34) = 282  '"<Ufficio>"
    riga_Cedenteprestatore(35) = 282  '"<NumeroREA>"
    riga_Cedenteprestatore(36) = 0  '"<StatoLiquidazione>"
    riga_Cedenteprestatore(37) = 0  '"</IscrizioneREA>"
    riga_Cedenteprestatore(38) = 0  '"<Contatti>"
    riga_Cedenteprestatore(39) = 282  '"<Telefono>"
    riga_Cedenteprestatore(40) = 282  '"<Fax>"
    riga_Cedenteprestatore(41) = 282  '"<Email>"
    riga_Cedenteprestatore(42) = 0  '"</Contatti>"
    riga_Cedenteprestatore(43) = 0  '"</CedentePrestatore>"
       
       
       
       ' preparo le colonne
       'X
    col_Cedenteprestatore(1) = 0 ' "<CedentePrestatore>"
    col_Cedenteprestatore(2) = 0 '"<DatiAnagrafici>"
    col_Cedenteprestatore(3) = 0 '"<IdFiscaleIVA>"
    col_Cedenteprestatore(4) = 5  '" <IdPaese>"
    col_Cedenteprestatore(5) = 5 '"<IdCodice>"    'valore partita iva sulla stessa riga
    col_Cedenteprestatore(6) = 0 '"</IdFiscaleIVA>"
    col_Cedenteprestatore(7) = 5 ' "<CodiceFiscale>" cf   con descrizione che precede
    col_Cedenteprestatore(8) = 0 ' "<Anagrafica>"
    col_Cedenteprestatore(9) = 5  '"<Denominazione>"
    col_Cedenteprestatore(10) = 0  '"</Anagrafica>"
    col_Cedenteprestatore(11) = 5 '"<AlboProfessionale>"
    col_Cedenteprestatore(12) = 5 '"<ProvinciaAlbo>" con descrizione preced
    col_Cedenteprestatore(13) = 5  '"<NumeroIscrizione"  stessa riga con descrizione preced
    col_Cedenteprestatore(14) = 5  '"<DataIscrizioneAlbo>"
    col_Cedenteprestatore(15) = 5  '"<RegimeFiscale>" con descr
    col_Cedenteprestatore(16) = 0  '"</DatiAnagrafici>"
    col_Cedenteprestatore(17) = 0  '"<Sede>"
    col_Cedenteprestatore(18) = 5  '"<Indirizzo>"
    col_Cedenteprestatore(19) = 5  '"<NumeroCivico>" stessa riga
    col_Cedenteprestatore(20) = 5  '"<CAP>"
    col_Cedenteprestatore(21) = 5  '"<Comune>" sr=stessa riga
    col_Cedenteprestatore(22) = 5  '"<Provincia>" sr
    col_Cedenteprestatore(23) = 5  '"<Nazione>" sr
    col_Cedenteprestatore(24) = 0  '"</Sede>"
    col_Cedenteprestatore(25) = 0  '"<StabileOrganizzazione>"
    col_Cedenteprestatore(26) = 5  '"<Indirizzo>"
    col_Cedenteprestatore(27) = 5 '"<NumeroCivico>"
    col_Cedenteprestatore(28) = 5  '"<CAP>"
    col_Cedenteprestatore(29) = 5  '"<Comune>"
    col_Cedenteprestatore(30) = 5  '"<Provincia>"
    col_Cedenteprestatore(31) = 5  '"<Nazione>"
    col_Cedenteprestatore(32) = 0  '"</StabileOrganizzazione>"
    col_Cedenteprestatore(33) = 5  '"<IscrizioneREA>"
    col_Cedenteprestatore(34) = 5  '"<Ufficio>"
    col_Cedenteprestatore(35) = 5  '"<NumeroREA>"
    col_Cedenteprestatore(36) = 5  '"<StatoLiquidazione>"
    col_Cedenteprestatore(37) = 0  '"</IscrizioneREA>"
    col_Cedenteprestatore(38) = 75  '"<Contatti>"
    col_Cedenteprestatore(39) = 75  '"<Telefono>"
    col_Cedenteprestatore(40) = 75  '"<Fax>"
    col_Cedenteprestatore(41) = 75  '"<Email>"
    col_Cedenteprestatore(42) = 0  '"</Contatti>"
    col_Cedenteprestatore(43) = 0  '"</CedentePrestatore>"
       
    
    dove ho mappato il tag e la relativa riga/colonna dove stamparlo ed anche il tipo di carattere (l'esempio è per la parte cedenteprestatore)
    così come per le altre zone fatture.
    Poi faccio la scansione (cedenteprestatore) dei campi indicati all'interno dell'xml e, se li trovo(cursore dove sono+colonna relativa+riga relativa), compilo la fattura con le coordinate x y dei campi
    Come già ho avuto modo di affermare nei post precedenti, l'unico che si è prestato a fornirmi file xml esempio di fatture passive è stato Ettore (che ringrazio ancora) e, visto l'impegno in ordine di ore (quello intelettuale non è significativo per un lavoro del genere) nelle mie premesse avevo specificato che ci sarebbe stato scambio di risorse. tu dai un esempio a me ed io ti giro il programma.
  • Re: Stampa fatture passive da xml

    dario46 ha scritto:


    .....

    Come già ho avuto modo di affermare nei post precedenti, l'unico che si è prestato a fornirmi file xml esempio di fatture passive è stato Ettore (che ringrazio ancora) e, visto l'impegno in ordine di ore (quello intellettuale non è significativo per un lavoro del genere) nelle mie premesse avevo specificato che ci sarebbe stato scambio di risorse. tu dai un esempio a me ed io ti giro il programma.
    buongiorno , sono nuovo della "zona" , e ci sono capitato cercando un modo di gestire le fatture elettroniche passive (in maniera decente ) .
    il programmino che stai scrivendo mi sembra utile allo scopo , MA di programmazione ne capisco ben poco ....
    però se ti bastano alcuni xml dei miei fornitori te li posso passare (in privato).

    [ in rete ho anche trovato dei convertitori xml2cvs in java e simili ... e un parser ... ma come dicevo prima non sono programmatore e non so usarli ( ammesso che funzionino )]

    se interessa recupero i link e passo gli xml , dimmi solo dove .
  • Re: Stampa fatture passive da xml

    dario46 ha scritto:


    nicola.montemaggi ha scritto:


    dario46 ha scritto:



    Io ho usato la seguente procedura, che mi serve anche per importare in prima nota, estrapolando dapprima i dati univoci dal file xml e memorizzandoli in una tabella temporanea (io ho utilizzato, per mia praticità, una form):
    1) Recupero il numero delle righe della fattura ricevuta
    Set Righe = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiBeniServizi/DettaglioLinee/NumeroLinea")
        For Each NumeroLinea In Righe
            'Incremento contatore
            Contatore = Contatore + 1
        Next
    Successivamente recupero i dati di riepilogo
     'NomeFile
        [Forms]!PN_ImpFE_XML_1![NomeFile] = File
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        
        'Allegati
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/Allegati/NomeAttachment")
        For Each Nome In nodo
            Testo = Nome.Text
            If Not IsNull(Testo) Then
            Allegati = "1"
                [Forms]!PN_ImpFE_XML_1![Allegato] = True
                DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
                DoCmd.Save
            Else
                Allegati = "0"
            End If
        Next
        
        'IdPaeseTrasmittente
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/DatiTrasmissione/IdTrasmittente/IdPaese")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![IdPaeseTrasmittente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'IdCodiceTrasmittente
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/DatiTrasmissione/IdTrasmittente/IdCodice")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![IdCodiceTrasmittente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
    
        'ProgressivoInvio
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/DatiTrasmissione/ProgressivoInvio")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![ProgressivoInvio] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'FormatoTrasmissione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/DatiTrasmissione/FormatoTrasmissione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![FormatoTrasmissione] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CodiceDestinatario
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/DatiTrasmissione/CodiceDestinatario")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![ProgressivoInvio] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'ContattiTrasmittente - Telefono
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/DatiTrasmissione/ContattiTrasmittente/Telefono")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TelefonoTrasmittente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'ContattiTrasmittente - Email
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/DatiTrasmissione/ContattiTrasmittente/Email")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![EmailTrasmittente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'PECDestinatario
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/DatiTrasmissione/PECDestinatario")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![PecDestinatario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - IdPaese
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/IdFiscaleIVA/IdPaese")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![IdPaeseCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - IdCodice
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/IdFiscaleIVA/IdCodice")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![IdCodiceCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - CodiceFiscale
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/CodiceFiscale")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CodiceFiscaleCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Denominazione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/Anagrafica/Denominazione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![DenominazioneCedente] = Testo
            A = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Nome
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/Anagrafica/Nome")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![NomeCedente] = Testo
            A = A & " " & Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Cognome
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/Anagrafica/Cognome")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CognomeCedente] = Testo
            A = A & " " & Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Titolo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/Anagrafica/Titolo")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TitoloCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - CodEORI
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/Anagrafica/CodEORI")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CodEORICedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - AlboProfessionale
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/AlboProfessionale")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![AlboProfessionaleCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - ProvinciaAlbo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/ProvinciaAlbo")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![ProvinciaAlboCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - NumeroIscrizioneAlbo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/NumeroIscrizioneAlbo")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![NumeroIscrizioneAlboCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - DataIscrizioneAlbo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/DataIscrizioneAlbo")
        For Each Nome In nodo
            Testo = Nome.Text
            Testo = Format(Testo, "dd-mm-yyyy")
            [Forms]!PN_ImpFE_XML_1![DataIscrizioneAlboCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - RegimeFiscale
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici/RegimeFiscale")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RegimeFiscaleCedente] = Testo
            If Testo = "RF01" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Ordinario"
            End If
            If Testo = "RF02" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Contribuenti minimi (art.1, c.96-117, L. 244/07)"
            End If
            If Testo = "RF03" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Nuove iniziative produttive (art.13, L. 388/00)"
            End If
            If Testo = "RF04" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Agricoltura e attivit? connesse e pesca (artt.34 e 34-bis, DPR 633/72)"
            End If
            If Testo = "RF05" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Vendita sali e tabacchi (art.74, c.1, DPR. 633/72)"
            End If
            If Testo = "RF06" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Commercio fiammiferi (art.74, c.1, DPR 633/72)"
            End If
            If Testo = "RF07" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Editoria (art.74, c.1, DPR 633/72)"
            End If
            If Testo = "RF08" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Gestione servizi telefonia pubblica (art.74, c.1, DPR 633/72)"
            End If
            If Testo = "RF09" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Rivendita documenti di trasporto pubblico e di sosta (art.74, c.1, DPR 633/72)"
            End If
            If Testo = "RF10" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Intrattenimenti, giochi e altre attivit? di cui alla tariffa allegata al DPR 640/72 (art.74, c.6, DPR 633/72)"
            End If
            If Testo = "RF11" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Agenzie viaggi e turismo (art.74-ter, DPR 633/72)"
            End If
            If Testo = "RF12" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Agriturismo (art.5, c.2, L. 413/91)"
            End If
            If Testo = "RF13" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Vendite a domicilio (art.25-bis, c.6, DPR 600/73)"
            End If
            If Testo = "RF14" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Rivendita beni usati, oggetti d?arte, d?antiquariato o da collezione (art.36, DL 41/95)"
            End If
            If Testo = "RF15" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Agenzie di vendite all?asta di oggetti d?arte, antiquariato o da collezione (art.40-bis, DL 41/95)"
            End If
            If Testo = "RF16" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "IVA per cassa P.A. (art.6, c.5, DPR 633/72)"
            End If
            If Testo = "RF17" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "IVA per cassa soggetti con vol. d?affari inferiore ad euro 200.000 (art.7, DL 185/2008)"
            End If
            If Testo = "RF18" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Altro"
            End If
            If Testo = "RF19" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneRegimeFiscaleCedente] = "Forfettario"
            End If
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Sede - Indirizzo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/Sede/Indirizzo")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![IndirizzoCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Sede - NumeroCivico
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/Sede/NumeroCivico")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![NumeroCivicoCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Sede - CAP
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/Sede/CAP")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CAPCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Sede - Comune
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/Sede/Comune")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![ComuneCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Sede - Provincia
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/Sede/Provincia")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![ProvinciaCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Sede - Nazione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/Sede/Nazione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![NazioneCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - StabileOrganizzazione - Indirizzo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/StabileOrganizzazione/Indirizzo")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_IndirizzoCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - StabileOrganizzazione - NumeroCivico
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/StabileOrganizzazione/NumeroCivico")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_NumeroCivicoCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - StabileOrganizzazione - CAP
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/StabileOrganizzazione/CAP")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_CAPCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - StabileOrganizzazione - Comune
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/StabileOrganizzazione/Comune")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_ComuneCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - StabileOrganizzazione - Provincia
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/StabileOrganizzazione/Provincia")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_ProvinciaCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - StabileOrganizzazione - Nazione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/StabileOrganizzazione/Nazione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_NazioneCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Iscrizione REA - Ufficio
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/IscrizioneREA/Ufficio")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![UfficioIscrizioneREACedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Iscrizione REA - NumeroREA
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/IscrizioneREA/NumeroREA")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![NumeroREACedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Iscrizione REA - CapitaleSociale
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/IscrizioneREA/CapitaleSociale")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CapitaleSocialeCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Iscrizione REA - SocioUnico
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/IscrizioneREA/SocioUnico")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SocioUnicoCedente] = Testo
            If Testo = "SM" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneSocioUnicoCedente] = "pi? soci"
            End If
            If Testo = "SU" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneSocioUnicoCedente] = "socio unico"
            End If
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Iscrizione REA - StatoLiquidazione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/IscrizioneREA/StatoLiquidazione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![StatoLiquidazioneCedente] = Testo
            If Testo = "LS" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneStatoLiquidazioneCedente] = "in liquidazione"
            End If
            If Testo = "LN" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneStatoLiquidazioneCedente] = "non in liquidazione"
            End If
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Contatti - Telefono
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/Contatti/Telefono")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TelefonoCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Contatti - Fax
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/Contatti/Fax")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![FaxCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - Contatti - Email
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CedentePrestatore/Contatti/Email")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![EmailCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - RappresentanteFiscale - IdPaese
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/RappresentanteFiscale/DatiAnagrafici/IdFiscaleIVA/IdPaese")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_IdPaeseCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - RappresentanteFiscale - IdCodice
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/RappresentanteFiscale/DatiAnagrafici/IdFiscaleIVA/IdCodice")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_IdCodiceCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - RappresentanteFiscale - CodiceFiscale
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/RappresentanteFiscale/DatiAnagrafici/CodiceFiscale")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_CodiceFiscaleCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - RappresentanteFiscale - Denominazione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/RappresentanteFiscale/DatiAnagrafici/Anagrafica/Denominazione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_DenominazioneCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - RappresentanteFiscale - Nome
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/RappresentanteFiscale/DatiAnagrafici/Anagrafica/Nome")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_NomeCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - RappresentanteFiscale - Cognome
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/RappresentanteFiscale/DatiAnagrafici/Anagrafica/Cognome")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_CognomeCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - RappresentanteFiscale - Titolo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/RappresentanteFiscale/DatiAnagrafici/Anagrafica/Titolo")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_TitoloCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CedentePrestatore - RappresentanteFiscale - CodEORI
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/RappresentanteFiscale/DatiAnagrafici/Anagrafica/CodEORI")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_CodEORICedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - IdPaese
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/DatiAnagrafici/IdFiscaleIVA/IdPaese")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![IdPaeseCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - IdCodice
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/DatiAnagrafici/IdFiscaleIVA/IdCodice")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![IdCodiceCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - CodiceFiscale
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/DatiAnagrafici/CodiceFiscale")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CodiceFiscaleCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - Denominazione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/DatiAnagrafici/Anagrafica/Denominazione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![DenominazioneCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - Nome
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/DatiAnagrafici/Anagrafica/Nome")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![NomeCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - Cognome
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/DatiAnagrafici/Anagrafica/Cognome")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CognomeCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - Titolo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/DatiAnagrafici/Anagrafica/Titolo")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TitoloCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - CodEORI
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/DatiAnagrafici/Anagrafica/CodEORI")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CodEORICessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - Indirizzo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/Sede/Indirizzo")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![IndirizzoCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - NumeroCivico
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/Sede/NumeroCivico")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![NumeroCivicoCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - CAP
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/Sede/CAP")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CAPCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - Comune
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/Sede/Comune")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![ComuneCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - Provincia
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/Sede/Provincia")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![ProvinciaCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - Nazione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/Sede/Nazione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![NazioneCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - StabileOrganizzazione - Indirizzo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/StabileOrganizzazione/Indirizzo")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_IndirizzoCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - StabileOrganizzazione - NumeroCivico
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/StabileOrganizzazione/NumeroCivico")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_NumeroCivicoCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - StabileOrganizzazione - CAP
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/StabileOrganizzazione/CAP")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_CAPCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - StabileOrganizzazione - Comune
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/StabileOrganizzazione/Comune")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_ComuneCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - StabileOrganizzazione - Provincia
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/StabileOrganizzazione/Provincia")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_ProvinciaCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - StabileOrganizzazione - Nazione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/StabileOrganizzazione/Nazione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SO_NazioneCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - RappresentanteFiscale - IdPaese
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/RappresentanteFiscale/IdFiscaleIVA/IdPaese")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_IdPaeseCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - RappresentanteFiscale - IdCodice
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/RappresentanteFiscale/IdFiscaleIVA/IdCodice")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_IdCodiceCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - RappresentanteFiscale - Denominazione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/RappresentanteFiscale/Denominazione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_DenominazioneCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - RappresentanteFiscale - Nome
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/RappresentanteFiscale/Nome")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_NomeCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'CessionarioCommittente - RappresentanteFiscale - Cognome
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/CessionarioCommittente/RappresentanteFiscale/Cognome")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![RF_CognomeCessionario] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'TerzoIntermediarioOSoggettoEmittente - IdPaese
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente/DatiAnagrafici/IdFiscaleIVA/IdPaese")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TISE_IdPaeseCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'TerzoIntermediarioOSoggettoEmittente - IdCodice
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente/DatiAnagrafici/IdFiscaleIVA/IdCodice")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TISE_IdCodiceCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'TerzoIntermediarioOSoggettoEmittente - CodiceFiscale
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente/DatiAnagrafici/CodiceFiscale")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TISE_CodiceFiscaleCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'TerzoIntermediarioOSoggettoEmittente - Denominazione
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente/DatiAnagrafici/Anagrafica/Denominazione")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TISE_DenominazioneCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'TerzoIntermediarioOSoggettoEmittente - Nome
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente/DatiAnagrafici/Anagrafica/Nome")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TISE_NomeCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'TerzoIntermediarioOSoggettoEmittente - Cognome
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente/DatiAnagrafici/Anagrafica/Cognome")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TISE_CognomeCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'TerzoIntermediarioOSoggettoEmittente - Titolo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente/DatiAnagrafici/Anagrafica/Titolo")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TISE_TitoloCedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'TerzoIntermediarioOSoggettoEmittente - CodEORI
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente/DatiAnagrafici/Anagrafica/CodEORI")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TISE_CodEORICedente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'SoggettoEmittente
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaHeader/SoggettoEmittente")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![SoggettoEmittente] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'TipoDocumento
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/TipoDocumento")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TipoDocumento] = Testo
            If Testo = "TD01" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneTipoDocumento] = "Fattura"
            End If
            If Testo = "TD02" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneTipoDocumento] = "Acconto/Anticipo su Fattura"
            End If
            If Testo = "TD03" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneTipoDocumento] = "Acconto/Anticipo su Parcella"
            End If
            If Testo = "TD04" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneTipoDocumento] = "Nota di Credito"
            End If
            If Testo = "TD05" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneTipoDocumento] = "Nota di Debito"
            End If
            If Testo = "TD06" Then
                [Forms]!PN_ImpFE_XML_1![DescrizioneTipoDocumento] = "Parcella"
            End If
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'Divisa
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/Divisa")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![Divisa] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DataDocumento
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/Data")
        For Each Nome In nodo
            Testo = Nome.Text
            Testo = Format(Testo, "dd-mm-yyyy")
            [Forms]!PN_ImpFE_XML_1![DATA] = Testo
            C = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'NumeroDocumento
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/Numero")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![Numero] = Testo
            B = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
         'DatiRitenuta - TipoRitenuta
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/DatiRitenuta/TipoRitenuta")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![TipoRitenuta] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DatiRitenuta - ImportoRitenuta
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/DatiRitenuta/ImportoRitenuta")
        For Each Nome In nodo
            Testo = Nome.Text
             Testo = Replace(Testo, ".", ",")
            [Forms]!PN_ImpFE_XML_1![ImportoRitenuta] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DatiRitenuta - AliquotaRitenuta
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/DatiRitenuta/AliquotaRitenuta")
        For Each Nome In nodo
            Testo = Nome.Text
             Testo = Replace(Testo, ".", ",")
            [Forms]!PN_ImpFE_XML_1![AliquotaRitenuta] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DatiRitenuta - CausalePagamento
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/DatiRitenuta/CausalePagamento")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CausalePagamentoRitenuta] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DatiBollo - BolloVirtuale
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/DatiBollo/BolloVirtuale")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![BolloVirtuale] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DatiBollo - ImportoBollo
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/DatiBollo/ImportoBollo")
        For Each Nome In nodo
            Testo = Nome.Text
            Testo = Replace(Testo, ".", ",")
            [Forms]!PN_ImpFE_XML_1![BolloVirtuale] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DatiGeneraliDocumento - ImportoTotaleDocumento
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/ImportoTotaleDocumento")
        For Each Nome In nodo
            Testo = Nome.Text
            Testo = Replace(Testo, ".", ",")
            [Forms]!PN_ImpFE_XML_1![ImportoTotaleDocumento] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DatiGeneraliDocumento - Arrotondamento
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/Arrotondamento")
        For Each Nome In nodo
            Testo = Nome.Text
            Testo = Replace(Testo, ".", ",")
            [Forms]!PN_ImpFE_XML_1![Arrotondamento] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DatiGeneraliDocumento - Causale
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/Causale")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![CausaleDocumento] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DatiGeneraliDocumento - Art73
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento/Art73")
        For Each Nome In nodo
            Testo = Nome.Text
            [Forms]!PN_ImpFE_XML_1![Art73] = Testo
            DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
            DoCmd.Save
        Next
        
        'DatiPagamento - CondizioniPagamento
        Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiPagamento/CondizioniPagamento")
            For Each Nome In nodo
                Testo = Nome.Text
                [Forms]!PN_ImpFE_XML_1![CondizioniPagamento] = Testo
                If Testo = "TP01" Then
                    [Forms]!PN_ImpFE_XML_1![DescrizioneCondizioniPagamento] = "pagamento a rate"
                End If
                If Testo = "TP02" Then
                    [Forms]!PN_ImpFE_XML_1![DescrizioneCondizioniPagamento] = "pagamento completo"
                End If
                If Testo = "TP03" Then
                    [Forms]!PN_ImpFE_XML_1![DescrizioneCondizioniPagamento] = "anticipo"
                End If
                DoCmd.SelectObject acForm, "PN_ImpFE_XML_1", False
                DoCmd.Save
            Next
            
        'ASW - Altri dati gestionali
        Dim BB As Integer
        Dim CC As Integer
            Set nodo = obj.documentElement.selectNodes("FatturaElettronicaBody/DatiBeniServizi/DettaglioLinee/AltriDatiGestionali")
            For Each Nome In nodo
                Testo = Nome.Text
                If Left(Testo, 9) = "AswRelStd" Then
                    Testo = Right(Testo, 8)
                    Testo = Left(Testo, 7)
                    [Forms]!PN_ImpFE_XML_1![VersioneASW] = Testo
                End If
                If Left(Testo, 10) = "AswSwHouse" Then
                    BB = Len(Testo)
                    CC = BB - 11
                    Testo = Right(Testo, CC)
                    [Forms]!PN_ImpFE_XML_1![SwHouseASW] = Testo
                End If
                If Left(Testo, 10) = "AswTipoDoc" Then
                    Testo = Right(Testo, 6)
                    Testo = Left(Testo, 5)
                    [Forms]!PN_ImpFE_XML_1![TipoDocumentoASW] = Testo
                    [Forms]!frmAppoggio![Testo0] = Testo
                    DoCmd.OpenForm "PN_ImpostaTipoDocumento", acNormal, , , , acHidden
                    If Not IsNull(Forms!PN_ImpostaTipoDocumento!TipoDocumentoFE) Then
                        [Forms]!PN_ImpFE_XML_1![DescrizioneTipoDocumentoASW] = Forms!PN_ImpostaTipoDocumento!TipoDocumentoFE
                    End If
                    DoCmd.Close acForm, "PN_ImpostaTipoDocumento"
                End If
                If Left(Testo, 10) = "AswTipoPag" Then
                    Testo = Right(Testo, 5)
                    Testo = Left(Testo, 4)
                    [Forms]!PN_ImpFE_XML_1![TipoPagamentoAsw] = Testo
                    [Forms]!frmAppoggio![Testo0] = Testo
                    DoCmd.OpenForm "PN_ImpostaTipoPagamento", acNormal, , , , acHidden
                    If Not IsNull(Forms!PN_ImpostaTipoTapamento!TipoPagamentoFE) Then
                        [Forms]!PN_ImpFE_XML_1![DescrizioneTipoPagamentoASW] = Forms!PN_ImpostaTipoPagamento!TipoPagamentoFE
                    End If
                    DoCmd.Close acForm, "PN_ImpostaTipoPagamento"
                End If
                If Left(Testo, 10) = "AswMailDes" Then
                    BB = Len(Testo)
                    CC = BB - 11
                    Testo = Right(Testo, CC)
                    [Forms]!PN_ImpFE_XML_1![MailDestinatarioASW] = Testo
                End If
            Next
    Poi proseguo recuperando e memorizzando in altre tabelle temporanee, una per ogni elemento di quelli elencati, tutti gli altri dati che possono essere molteplici, quali:
    . Dati pagamento;
    . Dettaglio linee;
    . Altri dati gestionali; (qui potrei trovare campi interessanti per la contabilizzazione automatica dei costi, quali ContoContabile, CentroDiCosto, etc.)
    . Dati di riepilogo;
    . Allegati;
    . Dati Cassa Previdenziale.
  • Re: Stampa fatture passive da xml

    Wow, sei stato più brutale perfino di me.
Devi accedere o registrarti per scrivere nel forum
34 risposte