codice:
Function Testa()
pdf.AddPage()
'impostazione dati visibili nelle proprietà del documento una volta salvato
pdf.SetAuthor ng_nome ' autore, và nelle proprietà - ci andrebbe il nume della società che emette il documento
pdf.SetCreator "Gestionale" ' applicazione che ha generato il documento (Gestione fatture")
pdf.SetSubject "Fattura n° "& RSft("ftt_numero") & "/" & Mid(RSft("ftt_anno"), 3, 2) ' oggetto del documento
pdf.SetTitle "Fattura Cliente" ' titolo del documento
pdf.SetCreationDate Now() ' data creazione del documento (puoi inserire anche l'ora)
pdf.SetDisplayMode "real" ' modalità di apertura del documento (real = 100%)
'### logo mittente
pdf.Image PathLogoMittente,10,10,LarghezzaLogoMittente/3.5,AltezzaLogoMittente/3.5,"jpg"
'### imposto nuova X
pdf.SetX LarghezzaLogoMittente/3.5+19
'### chi emette la fattura
pdf.SetFont "Helvetica","B",12
pdf.Cell 50,5,ng_nome,0,1
pdf.SetFont "Helvetica","",10
'### via di chi emette la fattura
pdf.SetX LarghezzaLogoMittente/3.5+19
pdf.Cell 50,5,ng_via,0,1
'### citta di chi emette la fattura
pdf.SetX LarghezzaLogoMittente/3.5+19
pdf.Cell 50,5,ng_cap & " " & ng_citta & " " & ng_provincia,0,1
pdf.Ln(2)
'### telefono e fax di chi emette la fattura
pdf.SetX LarghezzaLogoMittente/3.5+19
pdf.Cell 50,5,"Tel. "& ng_telefono & " Fax " & ng_fax,0,1
'### P IVA e CF di chi emette la fattura
pdf.SetX LarghezzaLogoMittente/3.5+19
pdf.Cell 50,5,"P.IVA "& ng_piva & " C.F. " & ng_cf,0,1
pdf.SetY AltezzaLogoMittente/3.5+15
'recupero il valore di y
y=pdf.GetY()
'colore di sfondo dellE cellE
pdf.SetFillColor 193,210,254
'### Scontrino fiscale
pdf.SetXY 10,y
pdf.SetFont "Helvetica","B",10
pdf.MultiCell 40,5,"Scontrino fiscale N° ",0,"L"
pdf.SetXY 50,y
pdf.MultiCell 8,5,RSft("ftt_scontrino_num"),"LTRB","C",1
pdf.SetXY 60,y
pdf.MultiCell 9,5," del ",0,"L"
pdf.SetXY 75,y
pdf.MultiCell 25,5,StrToData(RSft("ftt_scontrino_data")),"LTRB","C",1
'### numero fattura
pdf.SetXY LarghezzaLogoMittente/3.5+19,y
pdf.MultiCell 20,5,"Fattura N° ",0,"L"
pdf.SetXY LarghezzaLogoMittente/3.5+39,y
pdf.SetFont "Helvetica","B",10
pdf.MultiCell 20,5,RSft("ftt_numero"),"LTRB","C",1
'### data fattura
pdf.SetXY LarghezzaLogoMittente/3.5+60,y
pdf.MultiCell 10,5,"del",0,"L"
pdf.SetXY LarghezzaLogoMittente/3.5+70,y
pdf.SetFont "Helvetica","B",10
pdf.MultiCell 25,5,StrToData(RSft("ftt_data")),"LTRB","C",1
'### numero pagina
pdf.SetXY LarghezzaLogoMittente/3.5+100,y
pdf.SetFont "Helvetica","B",8
pdf.MultiCell 25,5,"Pag. " & NumeroPagina,0,"L"
pdf.Ln(2)
y=pdf.GetY()
'### pagamento
pdf.SetXY 10,y
pdf.MultiCell 25,5,"Pagamento: ",0,"L"
pdf.SetXY 35,y
pdf.SetFont "Helvetica","B",10
pdf.MultiCell 0,5,ftt_pagata,0
pdf.Ln(2)
pdf.SetFont "Helvetica","B",7
pdf.SetX 10
pdf.Cell 30,4,"Destinatario:",0,0
pdf.SetX LarghezzaLogoMittente/3.5+19
pdf.Cell 30,4,"Destinazione:",0,1
'recupero il valore di y iniziale della multicella
y=pdf.GetY()
'### DESTINATARIO
pdf.SetFont "Helvetica","",10
pdf.SetXY 11,y
pdf.MultiCell 90,5,VediTestoPDF(ftt_cliente),"T"
'### DESTINAZIONE
pdf.SetXY LarghezzaLogoMittente/3.5+20,y
pdf.MultiCell 90,5,VediTestoPDF(ord_spedisci),"T"
pdf.SetX 11
'### PARTITA IVA - CF
pdf.SetFont "Helvetica","",9
pdf.MultiCell 90,8,ftt_piva_cliente,0
'se ci sono note pubbliche le stampo
ftt_note = RSft("ftt_note")
If VediTestoPDF(ftt_note) <> "" Then
'### stampo le note dell'ordine
pdf.SetFont "Helvetica","B",7
pdf.Cell 0,5, "Note fattura:",0,1,"L"
pdf.SetFont "Courier","",8
y=pdf.GetY()
pdf.SetXY 10,y
' verifico la lunghezza del testo delle note
If Len(VediTestoPDF(ftt_note)) > 111 Then
' memorizzo in una variabile il testo pulito e poi ciclo scomponendo la stringa
ftt_note = Replace(VediTestoPDF(ftt_note), VbCrLf, chr(10), 1, -1, 1)
' ciclo spezzando la stringa ogni 111 caratteri
Do While Len(ftt_note) > 0
Temp_ftt_note = Temp_ftt_note & Mid(ftt_note, 1, 111) & chr(10)
ftt_note = Mid(ftt_note, 112, Len(ftt_note))
Loop
pdf.MultiCell 190,4,Temp_ftt_note,"TR","L"
Else
pdf.MultiCell 190,5,Replace(VediTestoPDF(ftt_note), VbCrLf, chr(10), 1, -1, 1),"TR","L"
End If
End If ' If VediTesto(RSord("ord_note_pubbliche")) <> "" Then
'colore di sfondo della cella
pdf.SetFillColor 193,210,254
pdf.SetTextColor 0,0,0
pdf.SetFont "Arial","B",8
pdf.Cell 10,6,"Cod",1,0,"C",1
pdf.Cell 10,6,"Q.tà",1,0,"C",1
pdf.Cell 127,6,"Descrizione",1,0,"",1
pdf.Cell 17,6,"Importo",1,0,"C",1
pdf.SetFont "Arial","",7
pdf.Cell 8,6,"% IVA",1,0,"C",1
pdf.SetFont "Arial","B",8
pdf.Cell 18,6,"Imponibile",1,1,"C",1
pdf.SetFillColor 0,0,0
pdf.Cell 10,6,"","LR",0
pdf.Cell 10,6,"","R",0
pdf.Cell 127,6,"","R",0
pdf.Cell 17,6,"","R",0
pdf.Cell 8,6,"","R",0
pdf.Cell 18,6,"","R",1
'imposto carattere proporzionale
pdf.SetFont "Courier","",8
y=pdf.GetY()
pdf.SetY y-5
End Function
Function Corpo()
'INIZIO LOOP RIGHE FATTURA
Do While Not RSriga.EOF
' ### SEGNO #######
If RSriga("fttr_segno") = 0 Then
Segno = ""
pdf.SetTextColor 0,0,0
Else
Segno = "- "
pdf.SetTextColor 255,0,0
End If
'codice
If RSriga("fttr_id_prodotto") > 0 Then
If Len(RSriga("fttr_id_prodotto")) < 5 Then
pdf.Cell 10,6,String(5 - Len(RSriga("fttr_id_prodotto")), chr(160)) & RSriga("fttr_id_prodotto"),"L",0
Else
pdf.Cell 10,6,RSriga("fttr_id_prodotto"),"L",0
End If
Else
pdf.Cell 10,6,"","L",0
End If
'quantità
If RSriga("fttr_qtt") > 0 AND VediTesto(RSriga("fttr_dsc")) <> "SCONTO" AND VediTesto(RSriga("fttr_dsc")) <> "SPESE SPEDIZIONE" Then
pdf.Cell 10,6,String(5 - Len(FormatNumber(RSriga("fttr_qtt"), 0)), chr(160)) & FormatNumber(RSriga("fttr_qtt"), 0),"L",0
Else
pdf.Cell 10,6,"","L",0
End If
'x e y recupero la posizione iniziale della multicella
x=pdf.GetX()
y=pdf.GetY()
w = 127
'descrizione
If Len(VediTestoPDF(RSriga("fttr_dsc"))) > 73 Then
pdf.MultiCell w,6,Mid(VediTestoPDF(RSriga("fttr_dsc")), 1, 70) & "...","LR","J"
Else
pdf.MultiCell w,6,VediTestoPDF(RSriga("fttr_dsc")),"LR","J"
End If
'y2 recupero la posizione finale della multicella
y2=pdf.GetY()
'stampo una serie di righe vuote solo con il bordo sinistro sotto a n° SOLO SE USATA MULTICELLA
If y+6 < y2 Then
For ix = y To y2-6 Step 6
pdf.SetXY x-15,ix
pdf.Cell 15,6,"","L",0
Next
End If
'stampo una serie di righe vuote solo con i bordi fino alla fine della scritta nella multicella (y2-6 [-6 perchè è l'altezza della linea])
If y+6 < y2 Then
For ix = y To y2-6 Step 6
pdf.SetXY x+w,ix
pdf.Cell 17,6,"","R",0
pdf.Cell 8,6,"","R",0
pdf.Cell 18,6,"","R",1
Next
End If
'imposto la posizione finale della multicella (-6 per tornare allineato all'ultima riga della multicella
pdf.SetXY x+w,y2-6
'Importo
If RSriga("fttr_imp") <> 0 Then
pdf.Cell 17,6,String(9 - Len(FormatNumber(VisualizzaPrezzo(RSriga("fttr_imp")), 2,,,-1) & Segno), chr(160)) & Segno & FormatNumber(VisualizzaPrezzo(RSriga("fttr_imp")), 2,,,-1),"R",0
Else
pdf.Cell 1,6,"(","L",0
pdf.SetTextColor 255,0,0
pdf.Cell 1,6,"*","",0
pdf.SetTextColor 0,0,0
pdf.Cell 1,6,")","",0
pdf.Cell 14,6,"0","R",0,"R"
Asterisco = "S"
End If
'% IVA
If RSriga("fttr_imp") <> 0 Then
pdf.Cell 8,6," " & PercIvaVendita,"R",0
Else
pdf.Cell 8,6," 0","R",0
End If
'imponibile
If RSriga("fttr_imp_tt") <> 0 Then
pdf.Cell 18,6,String(9 - Len(FormatNumber(VisualizzaPrezzo(RSriga("fttr_imp_tt")), 2,,,-1) & Segno), chr(160)) & Segno & FormatNumber(VisualizzaPrezzo(RSriga("fttr_imp_tt")), 2,,,-1),"R",1
Else
pdf.Cell 18,6,String(8, chr(160)) & "0","R",1
End If
'dimonuisco di 1 il numero delle righe
NumeroRigheFattura = NumeroRigheFattura - 1
'verifico se fare il saltopagina
y=pdf.GetY()
If (y > 230 AND NumeroRigheFattura > 0 AND Asterisco = "") OR _
(y > 224 AND NumeroRigheFattura > 0 AND Asterisco = "S") Then
NumeroPagina = NumeroPagina + 1
SaltoPagina()
Testa()
End If
RSriga.MoveNext
Loop
Totali Asterisco
End Function
Function SaltoPagina()
'se non ci sono più righe da stampare riempio con celle che creano solo i bordi:
y=pdf.GetY() ' recupero il valore di Y corrente
For ix = y To 230.00125 Step 6
pdf.Cell 10,6,"","LR",0
pdf.Cell 10,6,"","LR",0
pdf.Cell 127,6,"","R",0
pdf.Cell 17,6,"","R",0
pdf.Cell 8,6,"","R",0
pdf.Cell 18,6,"","R",1
Next
pdf.SetTextColor 0,0,0
y=pdf.GetY()
pdf.SetFont "Courier","B",10
pdf.Cell 190,20,"Segue a pagina "&NumeroPagina&" ","LTRB",0,"R"
pdf.SetY y+25
pdf.SetFont "Arial","",8
pdf.MultiCell 191,4,ng_nome & " " & ng_via & " " & ng_cap & " " & ng_citta & " " & ng_provincia & " - Telefono " & ng_telefono & " - FAX " & ng_fax,0,"C"
pdf.MultiCell 191,4,"P.IVA " & ng_piva & " - C.F. " & ng_cf & " - REA " & ng_rea & " " & ng_mail & " - " & ng_URL,0,"C"
y=pdf.GetY()
pdf.SetY y+3
pdf.SetFont "Arial","",6
pdf.MultiCell 191,3,"Ai sensi del D.Lgs. 196/2003 Vi informiamo che i Vs. dati saranno utilizzati esclusivamente per i fini connessi ai rapporti commerciali tra di noi in essere.",0,"C"
pdf.MultiCell 191,3,"Vi preghiamo controllare i Vs. dati anagrafici, la P.IVA ed il Codice Fiscale. Non ci riteniamo responsabili di eventuali errori.",0,"C"
y=pdf.GetY()
pdf.SetY y+10
pdf.SetTextColor 0,0,255
pdf.MultiCell 191,3,"Fattura Cliente",0,"R"
pdf.SetTextColor 0,0,0
End Function
spero ti possa essere utile.