Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ciclo dettaglio righi per fatturazione elettronica e altri dubbi

72 views
Skip to first unread message

Lo

unread,
Nov 28, 2018, 12:04:53 PM11/28/18
to
Buonasera a tutti,
chiedo venia ma non riesco a ciclare i righi del dettaglio nelle fatture elettroniche
Io ho creato questa routine per creare xml:

Public Sub GeneraFatturaElettronica()
Dim riga(100) As String

riga(1) = "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>"
riga(2) = "<ns3:FatturaElettronica versione=""FPA12"" xmlns:ns2"
riga(3) = "=""http://www.w3.org/2000/09/xmldsig#"" xmlns:ns3"
riga(4) = "=""http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"">"
'riga(5) = ""
riga(5) = "<FatturaElettronicaHeader>"
'ecc.....

Dim NomeFile As String
NomeFile = Forms![FATTURA]![TxtIdFatturaXml]

Open "E:\" + NomeFile & ".xml" For Output As #1

Dim I
For I = 1 To 85
Print #1, riga(I)
Next I

'dal rigo 86 al 97 dovrebbe mettere i dettagli della fattura
Dim H
For H = 86 To 97
Print #1, riga(H)
Next H

Close #1
MsgBox " fattura xml generata"

End sub


Come devo modificare Dim H perchè mi veda tutti i righi presenti nella maschera e non solo l'ultimo?

In più come mai, quando apro il file xml da browser vedo solo il risultato dei righi e cioè (IT 079452XXXX 9999) e non lo vedo come segue?

-<FatturaElettronicaHeader>
-<DatiTrasmissione>
-<IdTrasmittente>
<IdPaese>IT</IdPaese>
<IdCodice>079452XXXX</IdCodice>
</IdTrasmittente>
<ProgressivoInvio>99999</ProgressivoInvio>


Grazie infinite a chi sarà così gentile e disponibile da erudire la mia ignoranza...

BFS

unread,
Nov 28, 2018, 12:35:00 PM11/28/18
to
scusa ma come fai a sapere che la tua fattura elettronica sarà sempre
lunga 100 righe? Fai solo fatture a un solo cliente e con sempre un
numero fisso di righe?

ad ogni modo dovresti postare come popoli l'array dalla posizione 86 a
95 se vuoi che capiamo come mai non sti stampa nulla su

For H = 86 To 97
> Print #1, riga(H)
> Next H

ciao
BFS




---
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com

Lo

unread,
Nov 28, 2018, 12:52:49 PM11/28/18
to
Questi sono i righi che dovrei ciclare:

riga(86) = "<DatiBeniServizi>"
riga(87) = "<DettaglioLinee>"
riga(88) = "<NumeroLinea>" & Forms![FATTURA]![SubDescrittiviFattura]![Linea] & "</NumeroLinea>"
riga(89) = "<Descrizione>" & Forms![FATTURA]![SubDescrittiviFattura]![Descrizione] & "</Descrizione>"
riga(90) = "<Quantita>" & Forms![FATTURA]![SubDescrittiviFattura]![Quantita] & "</Quantita>"
riga(91) = "<PrezzoUnitario>" & Trim(Str(Forms![FATTURA]![SubDescrittiviFattura]![Importo])) & IIf(InStr(Str(Forms![FATTURA]![SubDescrittiviFattura]![Importo]), ".") = 0, ".00", "") & "</PrezzoUnitario>"
riga(92) = "<PrezzoTotale>" & Trim(Str(Forms![FATTURA]![SubDescrittiviFattura]![Tot])) & IIf(InStr(Str(Forms![FATTURA]![SubDescrittiviFattura]![Tot]), ".") = 0, ".00", "") & "</PrezzoTotale>"
riga(93) = "<AliquotaIVA>" & Trim(Str(Forms![FATTURA]![SubDescrittiviFattura]![DesCmbIva])) & IIf(InStr(Str(Forms![FATTURA]![SubDescrittiviFattura]![DesCmbIva]), ".") = 0, ".00", "") & "</AliquotaIVA>"
riga(94) = "<Natura>" & Forms![FATTURA]![SubDescrittiviFattura]![CodiceIva] & "</Natura>"
riga(95) = "</DettaglioLinee>"
riga(96) = "</DatiBeniServizi>"


in effetti non so se saranno 100 o di più... infatti era uno dei mille dubbi che ho nel preparare queste cose... Sono asina in xml e anche in access purtroppo...

Grazie per la tua disponibilità...

BFS

unread,
Nov 28, 2018, 2:10:34 PM11/28/18
to
non vorrei demoralizzarti ma non ci siamo proprio...le poche righe che
hai postato oltre ad essere concettualmente errate ti scriverebbero pure
dati errati nel xml

esempio:
"<Natura>" & Forms![FATTURA]![SubDescrittiviFattura]![CodiceIva] &
"</Natura>"

o hai tutte righe con aliquota zero oppure andresti a scrivere il tag
natura anche quando il valore è nullo e questo causa lo scarto del file.

il modo corretto per riportare le righe fattura è aprire un recordset
con tutte le righe della fattura in oggetto, e tramite un while not eof
ciclarlo una riga alla volta e scriverla nel xml, usando i tag che
veramente servono.

per quanto riguarda la testata, non può essere una sequenza fissa di
righe perche in base al cliente devi valorizzare o meno alcuni tag.
Hai dato un occhio alla rappresentazione tabellare del file xml?

dovresti partire da quello e per tutti i blocchi che vedi che prevedono
più ripetizioni devi usare i recordset per ciclarli.
E inconcempibile stabilire un numero fisso di righe per xml...ci sono
troppi casi da gestire. (ddt in fattura, documenti collegati, fatture
cointestate, sconti, ritenute, casse previdenziali etc etc)

non so se stai facendo il programma per te stessa o per qualcuno, ma se
sai poco di access e di xml lascerei fare a qualcuno di competente.
stiamo parlando di fatture con relativi adempimenti fiscali (e sanzioni
in caso di errori) non di fare un programma per la biblioteca di casa

ciao
BFS






lorena...@gmail.com

unread,
Nov 28, 2018, 2:20:20 PM11/28/18
to
Non capisco l'esempio che dici relativamente a CodiceIva, per ogni riga io vado a impostare il codice N1 N2 N3... Ecc. a seconda dell'Iva usata nel rigo, se il rigo è solo descrittivo il campo sarà vuoto... Non va bene così?
Ho predisposto i righi in base alla rappresentazione tabellare inserendo ciò che mi serve nelle fatture che faccio io... Potresti darmi qualche dritta in più... anche se mi hai ovviamente agitato molto... ma spererei di farcela...
Anzichè Dim riga(100) quindi cosa dovrei usare?
Grazie

BFS

unread,
Nov 29, 2018, 1:48:30 AM11/29/18
to
nel caso la riga abbia iva 22 non va impostato nessun N e nel tuo file,
in base al codice che hai scritto ti troveresti con un tag
<Natura></Natura> senza scritto nulla e questo provocherebbe lo scarto
del file

per il discorso dim riga
io ti consiglio di usare i recordset per caricarti i dati della tabella
fattura e delle rispettive righe della tabella righe fattura

vedi qui
http://forum.masterdrive.it/access-79/access-leggere-scrivere-dati-nelle-tabelle-tramite-vba-dao-13176/


si tratta poi di ciclare il recordset delle righe fattura ed ad ogni
riga aggiungi nel xml la riga con i dati obbligatori e valorizzati
0 new messages