Se ti mostro un report con fpdf ti verr la pelle d’oca… ma non scoraggiarti, in vb6 ho fatto di peggio.
Almeno in clipper usavi la stampante ad aghi … . e se avevi dbsee4 facevi i miracoli…
dim row as DatabaseRecord
rsitem.movefirst
’ stampa il PDF
dim pdf as StampaRegistriIva
dim posy as Double
dim posx as double
dim oldposy as double
dim oldposx as double
’ P sta per Portrait
pdf = new StampaRegistriIva(“L”)
pdf.descrizionestampa = self.descrizionestampa
pdf.AliasNbPages()
pdf.SetEnconding(encodings.WindowsLatin1)
pdf.AddPage()
pdf.SetFont(“Courier”,“B”,8)
if txtregistro.testo <> “” then
else
pdf.Cell(10,5," “,1,0,“L”)
pdf.Cell(30,5,” “,1,0,“L”)
pdf.Cell(20,5,” “,1,0,“L”)
pdf.Cell(55,5,“Registro Iva”,1,0,“L”)
pdf.Cell(30,5,” “,1,0,“L”)
pdf.Cell(28,5,” “,1,0,“R”)
pdf.Cell(28,5,” “,1,0,“R”)
pdf.Cell(28,5,” “,1,0,“R”)
pdf.Cell(50,5,” ",1,0,“L”)
pdf.ln()
end if
pdf.Cell(10,5,“Riga”,1,0,“L”)
pdf.Cell(30,5,“N.Doc”,1,0,“L”)
pdf.Cell(20,5,“Data Doc…”,1,0,“L”)
pdf.Cell(55,5,“Ragione Sociale”,1,0,“L”)
pdf.Cell(30,5,“Tipo”,1,0,“L”)
pdf.Cell(28,5,“Totale Doc.”,1,0,“R”)
pdf.Cell(28,5,“Imponibile”,1,0,“R”)
pdf.Cell(28,5,“I.V.A.”,1,0,“R”)
pdf.Cell(50,5,“Codice Iva”,1,0,“L”)
pdf.ln()
dim descrcau as string
dim trovato as integer
descrcau = “”
while not rsitem.eof
row = new DatabaseRecord
row.Column(“codice”) = rsitem.field(“codiva”).StringValue.trim
row.Column(“descrizione”) = cercafield(“codice”,“descrizione”,“aliquoteiva”,rsitem.field(“codiva”).StringValue)
riga = riga + 1
pdf.SetFont("Courier","",7)
if txtregistro.testo = "" then
pdf.Cell(10,5," ",1,0,"L")
pdf.Cell(30,5," ",1,0,"L")
pdf.Cell(20,5," ",1,0,"L")
pdf.Cell(55,5,rsitem.field("codreg").StringValue + " " + cercafield("codice","descrizione","registri",rsitem.field("codreg").StringValue),1,0,"L")
pdf.Cell(30,5," ",1,0,"L")
pdf.Cell(28,5," ",1,0,"R")
pdf.Cell(28,5," ",1,0,"R")
pdf.Cell(28,5," ",1,0,"R")
pdf.Cell(50,5," ",1,0,"L")
pdf.ln()
end if
pdf.Cell(10,3.5,CStr(riga),"LR",0,"R")
pdf.Cell(30,3.5,rsitem.field("numrif").utfValue,"LR",0,"L")
if rsitem.field("datarif").StringValue.trim <> "" then
pdf.Cell(20,3.5,rsitem.field("datarif").DateValue.dataitalia,"LR",0,"L")
else
pdf.Cell(20,3.5," ","LR",0,"L")
end if
if rsitem.Field("codicecf").utfValue.Trim <> "" then
pdf.Cell(55,3.5,left(cercafield("codice","ragionesociale","clientifornitori",rsitem.Field("codicecf").utfValue),35),"LR",0,"L")
else
pdf.Cell(55,3.5,left(cercafield("codice","descrizione","conti",rsitem.Field("codconto").utfValue),35),"LR",0,"L")
end if
pdf.Cell(30,3.5,cercafield("codice","descrbreve","causali",rsitem.field("causale").utfValue),"LR",0,"L")
dim rdetraibile as Currency
dim rindetraibile as currency
dim rdetvalore as Double
dim rindetvalore as double
if rsitem.Field("saldo").CurrencyValue > 0 then
pdf.Cell(28,3.5,format(rsitem.Field("imponibile").CurrencyValue + rsitem.Field("saldo").CurrencyValue ,"#,###,###,###.00"),"LR",0,"R")
pdf.Cell(28,3.5,format(rsitem.Field("imponibile").CurrencyValue,"#,###,###,###.00"),"LR",0,"R")
pdf.Cell(28,3.5,format(rsitem.Field("saldo").CurrencyValue,"#,###,###,###.00"),"LR",0,"R")
row.CurrencyColumn("imponibile") = rsitem.Field("imponibile").CurrencyValue
row.CurrencyColumn("imposta") = rsitem.Field("saldo").CurrencyValue
rdetvalore = Cercafielddouble("codice","detraibile","aliquoteiva",rsitem.field("codiva").StringValue)
rindetvalore = Cercafielddouble("codice","indetraibile","aliquoteiva",rsitem.field("codiva").StringValue)
row.CurrencyColumn("detraibile") = rsitem.Field("saldo").CurrencyValue * rdetvalore / 100
row.CurrencyColumn("indetraibile") = rsitem.Field("saldo").CurrencyValue * rindetvalore / 100
if round(rdetvalore * 1000) = 0 AND round(rindetvalore * 1000) = 0 then
row.CurrencyColumn("nonimponibile") = rsitem.Field("imponibile").CurrencyValue
else
row.CurrencyColumn("nonimponibile") = 0.00
end if
else
dim rtotale as Currency
dim rsaldo as Currency
dim rimponibile as Currency
dim saldo as Currency
saldo = -rsitem.Field("saldo").CurrencyValue
rtotale = saldo + rsitem.Field("imponibile").CurrencyValue
rtotale = -rtotale
rimponibile = -rsitem.Field("imponibile").CurrencyValue
row.CurrencyColumn("imponibile") = rimponibile
row.CurrencyColumn("imposta") = rsaldo
rsaldo = rsitem.Field("saldo").CurrencyValue
row.CurrencyColumn("imponibile") = rimponibile
row.CurrencyColumn("imposta") = rsaldo
rdetvalore = Cercafielddouble("codice","detraibile","aliquoteiva",rsitem.field("codiva").StringValue)
rindetvalore = Cercafielddouble("codice","indetraibile","aliquoteiva",rsitem.field("codiva").StringValue)
row.CurrencyColumn("detraibile") = rsaldo * rdetvalore / 100
row.CurrencyColumn("indetraibile") = rsaldo * rindetvalore / 100
if round(rdetvalore * 1000) = 0 and round(rindetvalore * 1000) = 0 then
row.CurrencyColumn("nonimponibile") = rimponibile
else
row.CurrencyColumn("nonimponibile") = 0.00
end if
pdf.Cell(28,3.5,format(rtotale ,"#,###,###,###.00"),"LR",0,"R")
pdf.Cell(28,3.5,format(rimponibile,"#,###,###,###.00"),"LR",0,"R")
pdf.Cell(28,3.5,format(rsaldo,"#,###,###,###.00"),"LR",0,"R")
end if
pdf.Cell(50,3.5,rsitem.field("codiva").StringValue.trim + " " + left(cercafield("codice","descrizione","aliquoteiva",rsitem.field("codiva").StringValue),25) ,"LR",0,"L")
pdf.ln()
[/code]