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
|
case 1 : sv1200(argc, argv); break; // Stampa Statistiche
|
||||||
default: sv1100(argc, argv); break; // Stampa Schede
|
default: sv1100(argc, argv); break; // Stampa Schede
|
||||||
}
|
}
|
||||||
exit(0);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -71,6 +71,21 @@
|
|||||||
|
|
||||||
#define FORMWIDTH 150
|
#define FORMWIDTH 150
|
||||||
#define DEFAULT_OUTFILE "outstat0"
|
#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
|
// TPeriodo
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -891,27 +906,21 @@ void TStampa_stat::set_descr(int& row)
|
|||||||
r << " ";
|
r << " ";
|
||||||
|
|
||||||
r << strec.get(SVS_CODICE).mid(lencode);
|
r << strec.get(SVS_CODICE).mid(lencode);
|
||||||
descr = strec.get(SVS_DESCR);
|
descr = safe_string(strec.get(SVS_DESCR));
|
||||||
if (descr.full())
|
if (descr.full())
|
||||||
{
|
r << "@23g" << descr.get(0);
|
||||||
TString80 ragsoc = descr.get(0);
|
|
||||||
ragsoc.strip("%#$");
|
|
||||||
r << "@23g" << ragsoc;
|
|
||||||
}
|
|
||||||
set_row_atpos('R',++row,(const char *)r,_indent[level]);
|
set_row_atpos('R',++row,(const char *)r,_indent[level]);
|
||||||
|
|
||||||
// Seconda riga eventuale...
|
// Seconda riga eventuale...
|
||||||
const int items = descr.items();
|
const int items = descr.items();
|
||||||
if (items > 1)
|
if (items > 1)
|
||||||
{
|
{
|
||||||
r = "";
|
r = descr.get(1);
|
||||||
r << descr.get(1);
|
|
||||||
// Sfrutta al massimo la seconda riga, mettendo anche il terzo elemento
|
// Sfrutta al massimo la seconda riga, mettendo anche il terzo elemento
|
||||||
// e cmq trimmando al 25o carattere
|
// 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);
|
r << ' ' << descr.get(2);
|
||||||
if (r.len() > MAX_DESC_LEN)
|
|
||||||
r.cut(MAX_DESC_LEN);
|
r.cut(MAX_DESC_LEN);
|
||||||
}
|
}
|
||||||
r.insert("@23g");
|
r.insert("@23g");
|
||||||
@ -1262,7 +1271,7 @@ int TStampa_stat::handle_levchange(int row, const int level)
|
|||||||
_wrk_row.insert(FR("@bTotale "), 0);
|
_wrk_row.insert(FR("@bTotale "), 0);
|
||||||
|
|
||||||
_wrk_row << ' ' << rec_grp1.get(SVS_CODICE).mid(lencode);
|
_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!
|
//_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);
|
row = set_rows_colonne(row, rec_grp1);
|
||||||
@ -1938,7 +1947,7 @@ void TStampa_stat::genera_file(const char *outfn)
|
|||||||
const int periofin = _stats.date2period(datafin);
|
const int periofin = _stats.date2period(datafin);
|
||||||
|
|
||||||
TProgind statusbar(period2long(datafin.year(), periofin,_stats.frequency())-start_status,
|
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();
|
_svcache->zap();
|
||||||
|
@ -26,17 +26,12 @@ void TRWrecord_cache::discard(const TString & vittima)
|
|||||||
file().curr()=rec;
|
file().curr()=rec;
|
||||||
if (fl == 'D')
|
if (fl == 'D')
|
||||||
{
|
{
|
||||||
err=file().rewrite();
|
err=file().rewrite_write();
|
||||||
if (err!=NOERR)
|
|
||||||
err=file().write();
|
|
||||||
if (err!=NOERR)
|
if (err!=NOERR)
|
||||||
error_box(TR("Errore nella riscrittura della cache"));
|
error_box(TR("Errore nella riscrittura della cache"));
|
||||||
} else {
|
} else {
|
||||||
err=file().write();
|
err=file().write_rewrite();
|
||||||
if (err!=NOERR)
|
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);
|
_flags.remove(vittima);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user