Patch level : 1.7 at

Files correlati     : at5.exe
Ricompilazione Demo : [ ]
Commento            : stampa scadenze per controllli adeguato alle etichette su piu' colonne


git-svn-id: svn://10.65.10.50/trunk@13812 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2006-02-23 14:24:00 +00:00
parent 7a9b8019a4
commit d48778bacd

View File

@ -55,7 +55,8 @@ class TScadenzeControlli : public TPrintapp
TString16 _lettini, _lettfin; TString16 _lettini, _lettfin;
TParagraph_string _cognome_nome, _rigastampa, _dencom; TParagraph_string _cognome_nome, _rigastampa, _dencom;
ts _tipostampa; ts _tipostampa;
int _etlarghezza, _etcolonne; int _etlarghezza, _etcolonne, _etrighe, _etbordoini, _etbordofin, _netichette;
static bool filter_func_scadenzectrl(const TRelation* rel); static bool filter_func_scadenzectrl(const TRelation* rel);
@ -196,7 +197,7 @@ bool TScadenzeControlli::preprocess_page(int file, int counter)
if (printer().rows_left() < 4) if (printer().rows_left() < 4)
printer().formfeed(); printer().formfeed();
} }
if (_tipostampa==etichette) if (_tipostampa==etichette && _etrighe == 0)
if (printer().rows_left() < _form_eti->get_body().height()) if (printer().rows_left() < _form_eti->get_body().height())
printer().formfeed(); printer().formfeed();
_contatore++; _contatore++;
@ -211,14 +212,35 @@ void TScadenzeControlli::set_page(int file, int cnt)
case etichette: case etichette:
{ {
TPrint_section& corpo = _form_eti->get_body(); TPrint_section& corpo = _form_eti->get_body();
for (int r=1;r<=_etcolonne;r++)
{
if (current_cursor()->pos()<current_cursor()->items())
{
_netichette++;
force_setpage(TRUE);
corpo.update(); corpo.update();
int nriga = 1;
if (_etrighe > 0)
{
int resto = _netichette % (_etrighe*_etcolonne);
if (resto > 0 && resto <= _etcolonne)
nriga = nriga+_etbordoini;
}
for (word i = 0; i < corpo.height(); i++) for (word i = 0; i < corpo.height(); i++)
{ {
TPrintrow& riga = corpo.row(i); TPrintrow& riga = corpo.row(i);
set_row(i+1,riga); TString256 riga1 = riga.row();
riga1.cut(_etlarghezza);
int colonna = ((r-1)*_etlarghezza);
TString16 formato;
formato << '@' << colonna << "g";
riga1.insert(formato,0);
set_row(nriga++,riga1);
}
if (r < _etcolonne)
++(*current_cursor());
}
} }
force_setpage(TRUE); // serve perchè alla prossima etichetta rifaccia la setpage
// altrimenti stampa sempre la stessa etichetta
} }
break; break;
case elenco: case elenco:
@ -339,6 +361,7 @@ bool TScadenzeControlli::set_print(int)
_lettfin.left(15); _lettfin.left(15);
_contatore = 0; _contatore = 0;
_totale = 0; _totale = 0;
_netichette = 0;
reset_files(); reset_files();
add_file(LF_SOGGETTI); add_file(LF_SOGGETTI);
filtra_sezioni(); filtra_sezioni();
@ -417,6 +440,9 @@ bool TScadenzeControlli::user_create()
TString16 etformato = config.get("EtFormato"); TString16 etformato = config.get("EtFormato");
_etlarghezza = config.get_int("EtLarghezza"); _etlarghezza = config.get_int("EtLarghezza");
_etcolonne = config.get_int("EtColonne"); _etcolonne = config.get_int("EtColonne");
_etrighe = config.get_int("EtRighe");
_etbordoini = config.get_int("EtBordoIni");
_etbordofin = config.get_int("EtBordoFin");
_form_eti = new TEti_scadenzectrl_form(etformato); _form_eti = new TEti_scadenzectrl_form(etformato);
return TRUE; return TRUE;