Corretta stampa descrizioni contenenti simboli di stampa (#$&@)
git-svn-id: svn://10.65.10.50/branches/R_10_00@22697 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f303d5be71
commit
4a5ecc1955
@ -10,6 +10,5 @@ int main(int argc, char** argv)
|
||||
case 1 : sv1200(argc, argv); break; // Stampa Statistiche
|
||||
default: sv1100(argc, argv); break; // Stampa Schede
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
||||
|
@ -71,6 +71,21 @@
|
||||
|
||||
#define FORMWIDTH 150
|
||||
#define DEFAULT_OUTFILE "outstat0"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Utility
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
const char* safe_string(const TString& str)
|
||||
{
|
||||
TString256 tmp = str;
|
||||
tmp.strip("@#$%");
|
||||
tmp.replace('&', 'e');
|
||||
if (tmp != str)
|
||||
return get_tmp_string() = tmp;
|
||||
return str;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TPeriodo
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -891,31 +906,25 @@ void TStampa_stat::set_descr(int& row)
|
||||
r << " ";
|
||||
|
||||
r << strec.get(SVS_CODICE).mid(lencode);
|
||||
descr = strec.get(SVS_DESCR);
|
||||
descr = safe_string(strec.get(SVS_DESCR));
|
||||
if (descr.full())
|
||||
{
|
||||
TString80 ragsoc = descr.get(0);
|
||||
ragsoc.strip("%#$");
|
||||
r << "@23g" << ragsoc;
|
||||
}
|
||||
r << "@23g" << descr.get(0);
|
||||
set_row_atpos('R',++row,(const char *)r,_indent[level]);
|
||||
|
||||
// Seconda riga eventuale...
|
||||
const int items = descr.items();
|
||||
if (items > 1)
|
||||
{
|
||||
r = "";
|
||||
r << descr.get(1);
|
||||
r = descr.get(1);
|
||||
// Sfrutta al massimo la seconda riga, mettendo anche il terzo elemento
|
||||
// e cmq trimmando al 25o carattere
|
||||
if (items > 2)
|
||||
if (items > 2) // Guy: come può succedere visto che TParagraph_string descr("", MAX_DESC_LEN)
|
||||
{
|
||||
r << " " << descr.get(2);
|
||||
if (r.len() > MAX_DESC_LEN)
|
||||
r.cut(MAX_DESC_LEN);
|
||||
r << ' ' << descr.get(2);
|
||||
r.cut(MAX_DESC_LEN);
|
||||
}
|
||||
r.insert("@23g");
|
||||
set_row_atpos('R',++row,(const char *)r,_indent[level]);
|
||||
set_row_atpos('R',++row, (const char*)r,_indent[level]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1262,9 +1271,9 @@ int TStampa_stat::handle_levchange(int row, const int level)
|
||||
_wrk_row.insert(FR("@bTotale "), 0);
|
||||
|
||||
_wrk_row << ' ' << rec_grp1.get(SVS_CODICE).mid(lencode);
|
||||
_wrk_row << ' ' << rec_grp1.get(SVS_DESCR).left(23);
|
||||
_wrk_row << ' ' << safe_string(rec_grp1.get(SVS_DESCR).left(23));
|
||||
//_wrk_row.cut(LARG_COLCODICE); there are also @ chars!
|
||||
set_row_atpos('R',++row,(const char *)_wrk_row,_indent[_last_lev_grp]);
|
||||
set_row_atpos('R',++row,(const char*)_wrk_row,_indent[_last_lev_grp]);
|
||||
row = set_rows_colonne(row, rec_grp1);
|
||||
if (printmask().get_bool(F_STRAFFRONTO ))
|
||||
{
|
||||
@ -1938,7 +1947,7 @@ void TStampa_stat::genera_file(const char *outfn)
|
||||
const int periofin = _stats.date2period(datafin);
|
||||
|
||||
TProgind statusbar(period2long(datafin.year(), periofin,_stats.frequency())-start_status,
|
||||
TR("Creazione del file di output"), FALSE, TRUE, 60);
|
||||
TR("Creazione del file di output"), FALSE, TRUE);
|
||||
|
||||
|
||||
_svcache->zap();
|
||||
|
@ -26,18 +26,13 @@ void TRWrecord_cache::discard(const TString & vittima)
|
||||
file().curr()=rec;
|
||||
if (fl == 'D')
|
||||
{
|
||||
err=file().rewrite();
|
||||
if (err!=NOERR)
|
||||
err=file().write();
|
||||
err=file().rewrite_write();
|
||||
if (err!=NOERR)
|
||||
error_box(TR("Errore nella riscrittura della cache"));
|
||||
} else {
|
||||
err=file().write();
|
||||
err=file().write_rewrite();
|
||||
if (err!=NOERR)
|
||||
if (err == _isreinsert)
|
||||
file().rewrite();
|
||||
else
|
||||
error_box(TR("Errore nella scrittura della cache"));
|
||||
error_box(TR("Errore nella scrittura della cache"));
|
||||
}
|
||||
_flags.remove(vittima);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user