Patch level : 1.7 at
Files correlati : at4.exe Ricompilazione Demo : [ ] Commento : sistemato stampa etichette e cartoline su A4 git-svn-id: svn://10.65.10.50/trunk@11644 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
816fe9fddf
commit
83d2e08e3e
@ -69,8 +69,10 @@ class TStampaScadenze : public TPrintapp
|
||||
TString16 _codsez, _codsot, _orario, _datacart;
|
||||
TString80 _invitoper, _data, _presso1, _presso2, _presso3, _presso4;
|
||||
TString80 _note, _intest1, _intest2, _intest3, _intest4;
|
||||
int _etlarghezza, _etcolonne;
|
||||
int _contatore, _totfinestampa;
|
||||
int _etlarghezza, _etcolonne, _etrighe, _etbordoini, _etbordofin, _netichette;
|
||||
int _caxpag, _cabordoini, _cabordofin, _ncartoline;
|
||||
|
||||
|
||||
static bool filter_func_scadenze(const TRelation* rel);
|
||||
|
||||
@ -218,14 +220,22 @@ void TStampaScadenze::set_page(int file, int cnt)
|
||||
switch (_tipostampa)
|
||||
{
|
||||
case etichette:
|
||||
{
|
||||
{
|
||||
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();
|
||||
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++)
|
||||
{
|
||||
TPrintrow& riga = corpo.row(i);
|
||||
@ -235,7 +245,7 @@ void TStampaScadenze::set_page(int file, int cnt)
|
||||
TString16 formato;
|
||||
formato << '@' << colonna << "g";
|
||||
riga1.insert(formato,0);
|
||||
set_row(i+1,riga1);
|
||||
set_row(nriga++,riga1);
|
||||
}
|
||||
if (r < _etcolonne)
|
||||
++(*current_cursor());
|
||||
@ -282,13 +292,23 @@ void TStampaScadenze::set_page(int file, int cnt)
|
||||
note.set(_note);
|
||||
}
|
||||
corpo.update();
|
||||
for (word i = 0; i < corpo.height(); i++)
|
||||
{
|
||||
TPrintrow& riga = corpo.row(i);
|
||||
set_row(i+1,riga);
|
||||
word primariga = 0;
|
||||
word ultimariga = corpo.height();
|
||||
if (_caxpag > 0)
|
||||
{
|
||||
if (_ncartoline % _caxpag == 0) // numero cartoline per pagina
|
||||
primariga = _cabordoini; // bordo iniziale
|
||||
if (_ncartoline % _caxpag == _caxpag-1) // numero cartoline per pagina - 1
|
||||
ultimariga -= _cabordofin; // bordo finale
|
||||
}
|
||||
int nriga = 1;
|
||||
for (word i = primariga; i < ultimariga; i++)
|
||||
{
|
||||
TPrintrow& riga = corpo.row(i);
|
||||
set_row(nriga++,riga);
|
||||
}
|
||||
force_setpage(TRUE); // serve perchè alla prossima etichetta rifaccia la setpage
|
||||
// altrimenti stampa sempre la stessa etichetta
|
||||
force_setpage(TRUE);
|
||||
_ncartoline++;
|
||||
}
|
||||
break;
|
||||
case elenco:
|
||||
@ -571,7 +591,7 @@ bool TStampaScadenze::preprocess_page(int file, int counter)
|
||||
recsog.put(SOG_NUMCONV, 0);
|
||||
current_cursor()->file().rewrite();
|
||||
}
|
||||
if (_tipostampa==etichette)
|
||||
if (_tipostampa==etichette && _etrighe == 0)
|
||||
if (printer().rows_left() < _form_eti->get_body().height())
|
||||
printer().formfeed();
|
||||
if (_tipostampa==personale)
|
||||
@ -732,6 +752,8 @@ bool TStampaScadenze::set_print(int m)
|
||||
// filtro per categorie e altro
|
||||
current_cursor()->set_filterfunction(filter_func_scadenze);
|
||||
_contatore = 0;
|
||||
_netichette = 0;
|
||||
_ncartoline = 0;
|
||||
_totfinestampa = 0;
|
||||
reset_print();
|
||||
printer().footerlen(0);
|
||||
@ -841,11 +863,21 @@ bool TStampaScadenze::user_create()
|
||||
add_cursor(new TCursor(_rel, "", 3));
|
||||
_msk = new TMask("at4100a");
|
||||
TConfig config(CONFIG_STUDIO);
|
||||
|
||||
TString16 etformato = config.get("EtFormato");
|
||||
_etlarghezza = config.get_int("EtLarghezza");
|
||||
_etcolonne = config.get_int("EtColonne");
|
||||
_etrighe = config.get_int("EtRighe");
|
||||
_etbordoini = config.get_int("EtBordoIni");
|
||||
_etbordofin = config.get_int("EtBordoFin");
|
||||
_form_eti = new TScadenze_form(etformato);
|
||||
_form_car = new TScadenze_form("ATCARTO1");
|
||||
|
||||
TString16 caformato = config.get("CaFormato");
|
||||
_form_car = new TScadenze_form(caformato);
|
||||
_caxpag = config.get_int("CaPerPag");
|
||||
_cabordoini = config.get_int("CaBordoIni");
|
||||
_cabordofin = config.get_int("CaBordoFin");
|
||||
|
||||
TString16 performato = config.get("ElencoFormato");
|
||||
_form_per = new TScadenze_form(performato);
|
||||
return TRUE;
|
||||
|
@ -44,7 +44,8 @@ class TStampaUrgenze : public TPrintapp
|
||||
TDate _data_stampa, _datalimite;
|
||||
ts _tipostampa;
|
||||
TString16 _codsez, _codsot;
|
||||
int _etlarghezza, _etcolonne;
|
||||
int _etlarghezza, _etcolonne, _etrighe, _etbordoini, _etbordofin, _netichette;
|
||||
|
||||
bool _unica;
|
||||
int _cur;
|
||||
int _contatore, _totale;
|
||||
@ -98,14 +99,22 @@ void TStampaUrgenze::set_page(int file, int cnt)
|
||||
switch (_tipostampa)
|
||||
{
|
||||
case etichette:
|
||||
{
|
||||
{
|
||||
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();
|
||||
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++)
|
||||
{
|
||||
TPrintrow& riga = corpo.row(i);
|
||||
@ -115,7 +124,7 @@ void TStampaUrgenze::set_page(int file, int cnt)
|
||||
TString16 formato;
|
||||
formato << '@' << colonna << "g";
|
||||
riga1.insert(formato,0);
|
||||
set_row(i+1,riga1);
|
||||
set_row(nriga++,riga1);
|
||||
}
|
||||
if (r < _etcolonne)
|
||||
++(*current_cursor());
|
||||
@ -276,7 +285,7 @@ bool TStampaUrgenze::preprocess_page(int file, int counter)
|
||||
if (printer().rows_left() < 2)
|
||||
printer().formfeed();
|
||||
}
|
||||
if (_tipostampa==etichette)
|
||||
if (_tipostampa==etichette && _etrighe == 0)
|
||||
if (printer().rows_left() < _form_eti->get_body().height())
|
||||
printer().formfeed();
|
||||
_contatore++;
|
||||
@ -417,6 +426,7 @@ bool TStampaUrgenze::set_print(int)
|
||||
_tipodon = _msk->get(F_TIPODON);
|
||||
_unica = _msk->get_bool(F_UNICA);
|
||||
_datalimite = _msk->get_date(F_DATALIMITE);
|
||||
_netichette = 0;
|
||||
// filtro per sezioni
|
||||
filtra_sezioni();
|
||||
if (_unica)
|
||||
@ -471,9 +481,13 @@ bool TStampaUrgenze::user_create()
|
||||
add_cursor(new TSorted_cursor(_rel,"","",3));
|
||||
_msk = new TMask("at4200a");
|
||||
TConfig config(CONFIG_STUDIO);
|
||||
|
||||
TString16 etformato = config.get("EtFormato");
|
||||
_etlarghezza = config.get_int("EtLarghezza");
|
||||
_etcolonne = config.get_int("EtColonne");
|
||||
_etrighe = config.get_int("EtRighe");
|
||||
_etbordoini = config.get_int("EtBordoIni");
|
||||
_etbordofin = config.get_int("EtBordoFin");
|
||||
_form_eti = new TUrgenze_form(etformato);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -56,6 +56,7 @@ class TStampaConvocazioni : public TPrintapp
|
||||
bool _definitiva;
|
||||
int _etlarghezza, _etcolonne;
|
||||
int _contatore, _totfinestampa;
|
||||
int _caxpag, _cabordoini, _cabordofin, _ncartoline;
|
||||
bool _provastampa;
|
||||
|
||||
protected:
|
||||
@ -202,7 +203,8 @@ void TStampaConvocazioni::set_page(int file, int cnt)
|
||||
datacart.set(_datacart);
|
||||
TForm_item& note = corpo.find_field(CAR_NOTE);
|
||||
note.set(_note);
|
||||
}
|
||||
}
|
||||
/*
|
||||
corpo.update();
|
||||
for (word i = 0; i < corpo.height(); i++)
|
||||
{
|
||||
@ -211,6 +213,25 @@ void TStampaConvocazioni::set_page(int file, int cnt)
|
||||
}
|
||||
force_setpage(TRUE); // serve perchè alla prossima etichetta rifaccia la setpage
|
||||
// altrimenti stampa sempre la stessa etichetta
|
||||
*/
|
||||
corpo.update();
|
||||
word primariga = 0;
|
||||
word ultimariga = corpo.height();
|
||||
if (_caxpag > 0)
|
||||
{
|
||||
if (_ncartoline % _caxpag == 0) // numero cartoline per pagina
|
||||
primariga = _cabordoini; // bordo iniziale
|
||||
if (_ncartoline % _caxpag == _caxpag-1) // numero cartoline per pagina - 1
|
||||
ultimariga -= _cabordofin; // bordo finale
|
||||
}
|
||||
int nriga = 1;
|
||||
for (word i = primariga; i < ultimariga; i++)
|
||||
{
|
||||
TPrintrow& riga = corpo.row(i);
|
||||
set_row(nriga++,riga);
|
||||
}
|
||||
force_setpage(TRUE);
|
||||
_ncartoline++;
|
||||
}
|
||||
break;
|
||||
case sms:
|
||||
@ -397,7 +418,11 @@ bool TStampaConvocazioni::preprocess_page(int file, int counter)
|
||||
if (_numconv > 4)
|
||||
{
|
||||
if (_tipostampa==cartoline || _tipostampa==etichette || _tipostampa==elencocon)
|
||||
{
|
||||
if (_tipostampa==cartoline)
|
||||
_ncartoline--;
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
_contatore++;
|
||||
@ -489,6 +514,7 @@ bool TStampaConvocazioni::set_print(int)
|
||||
_contatore = 0;
|
||||
_totfinestampa = 0;
|
||||
_provastampa = TRUE;
|
||||
_ncartoline = 0;
|
||||
reset_files();
|
||||
add_file(LF_SOGGETTI);
|
||||
_dataconv = _msk->get(F_DATACONV);
|
||||
@ -558,7 +584,12 @@ bool TStampaConvocazioni::user_create()
|
||||
_etlarghezza = config.get_int("EtLarghezza");
|
||||
_etcolonne = config.get_int("EtColonne");
|
||||
_form_eti = new TConv_form(etformato);
|
||||
_form_car = new TConv_form("ATCARTO1");
|
||||
|
||||
TString16 caformato = config.get("CaFormato");
|
||||
_form_car = new TConv_form(caformato);
|
||||
_caxpag = config.get_int("CaPerPag");
|
||||
_cabordoini = config.get_int("CaBordoIni");
|
||||
_cabordofin = config.get_int("CaBordoFin");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user