Newsgroup: it.comp.appl.access
Titolo: Ciclo dettaglio righi per fatturazione elettronica e altri dubbi

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


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
 
 


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à...
 


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
 
 
 
 
 
 


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


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
