diff --git a/at/at3400.cpp b/at/at3400.cpp index dd2020d55..14e9a1520 100755 --- a/at/at3400.cpp +++ b/at/at3400.cpp @@ -487,10 +487,8 @@ void TRiepilogoDonazioni::stampa_sezione(TString16 codsez, TString16 codsot) printer().print(row); printer().print(row); printer().print(row); - //printer().skip(4); rigastampa = "RIEPILOGO PRIME DONAZIONI"; - rigastampa.center_just(); - row.put(rigastampa); + rigastampa.center_just(80); row.reset(); row.put(rigastampa); printer().print(row); @@ -561,6 +559,88 @@ void TRiepilogoDonazioni::stampa_sezione(TString16 codsez, TString16 codsot) rigastampa.overwrite((const char*)valore, pos+4); row.put((const char*) rigastampa); printer().print(row); + + // riepilogo non prime donazione + rigatotali.azzera_valori(); + row.reset(); + printer().print(row); + printer().print(row); + printer().print(row); + printer().print(row); + rigastampa = "RIEPILOGO DONAZIONI NON PRIME"; + rigastampa.center_just(80); + row.reset(); + row.put(rigastampa); + printer().print(row); + rigastampa = ""; + rigastampa.fill('-'); + row.reset(); + row.put(rigastampa); + printer().print(row); + row.reset(); + printer().print(row); + anno = _dataini.year(); + while (anno<=_datafin.year()) + { + if (anno == _dataini.year()) + meseini = _dataini.month(); + else + meseini = 1; + if (anno == _datafin.year()) + mesefin = _datafin.month(); + else + mesefin = 12; + for (int mese=meseini;mese<=mesefin;mese++) + { + TRiga& rigapri = (TRiga&)_righe_prime[data2row(anno,mese)]; + TRiga& riga = (TRiga&)_righe[data2row(anno,mese)]; + row.reset(); + rigastampa = ""; + rigastampa.format("%s %4d", (const char*)int2month(mese), anno); + totalemese = ZERO; + int pos = 21; + for (int i=0;i<_colonne->items();i++) + { + real differenza = riga[i]-rigapri[i]; + rigatotali.aggiorna_valore(i,differenza); + totalemese+=differenza; + valore = ""; + valore.format("%8d",differenza.integer()); + rigastampa.overwrite((const char*)valore, pos); + pos = pos+10; + } + valore = ""; + valore.format("%8d",totalemese.integer()); + rigastampa.overwrite((const char*)valore, pos+4); + row.put((const char*) rigastampa); + printer().print(row); + } + anno++; + } + // stampa totali per sezione + rigastampa = ""; + rigastampa.fill('-'); + row.reset(); + row.put(rigastampa); + printer().print(row); + row.reset(); + rigastampa = ""; + rigastampa = "Totale periodo"; + totalemese = ZERO; + pos = 21; + for (i=0;i<_colonne->items();i++) + { + totalemese+=rigatotali[i]; + valore = ""; + valore.format("%8d",rigatotali[i].integer()); + rigastampa.overwrite((const char*)valore, pos); + pos = pos+10; + } + valore = ""; + valore.format("%8d",totalemese.integer()); + rigastampa.overwrite((const char*)valore, pos+4); + row.put((const char*) rigastampa); + printer().print(row); } printer().formfeed(); }