Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Stampa Idonei: aggiunta possibilita' di selezionare: chi ha tutte le id., chi ha esclusivamente le id. indicate o chi ha almeno una delle id. indicate, messo totale parziale e finale git-svn-id: svn://10.65.10.50/trunk@9225 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
eac2ab700d
commit
070a402b89
140
at/at2500.cpp
140
at/at2500.cpp
@ -41,7 +41,7 @@ class TStampaIdonei : public TPrintapp
|
|||||||
TDate _data_stampa;
|
TDate _data_stampa;
|
||||||
ts _tipostampa;
|
ts _tipostampa;
|
||||||
TString16 _codsez, _codsot;
|
TString16 _codsez, _codsot;
|
||||||
int _etlarghezza, _etcolonne;
|
int _etlarghezza, _etcolonne, _stampa, _numidon, _contatore, _totale;
|
||||||
|
|
||||||
static bool filter_func_idonei(const TRelation* rel);
|
static bool filter_func_idonei(const TRelation* rel);
|
||||||
|
|
||||||
@ -57,6 +57,8 @@ public:
|
|||||||
void crea_intestazione();
|
void crea_intestazione();
|
||||||
void filtra_sezioni();
|
void filtra_sezioni();
|
||||||
void header_sezione(const TString16 codsez, const TString16 codsot);
|
void header_sezione(const TString16 codsez, const TString16 codsot);
|
||||||
|
void footer_sezione();
|
||||||
|
void fine_stampa();
|
||||||
TMask& app_mask() { return *_msk; }
|
TMask& app_mask() { return *_msk; }
|
||||||
TStampaIdonei() : _data_stampa(TODAY), _cognome_nome("",25) {}
|
TStampaIdonei() : _data_stampa(TODAY), _cognome_nome("",25) {}
|
||||||
};
|
};
|
||||||
@ -67,6 +69,39 @@ TCursor* TEti_idonei_form::cursor() const { return app().current_cursor(); }
|
|||||||
|
|
||||||
TRelation* TEti_idonei_form::relation() const { return cursor()->relation(); }
|
TRelation* TEti_idonei_form::relation() const { return cursor()->relation(); }
|
||||||
|
|
||||||
|
void TStampaIdonei::fine_stampa()
|
||||||
|
{
|
||||||
|
// stampa totale soggetti a fine stampa
|
||||||
|
if (_tipostampa==elenco)
|
||||||
|
{
|
||||||
|
reset_footer();
|
||||||
|
TString sep(80);
|
||||||
|
sep.fill('-');
|
||||||
|
set_footer(2, (const char *) sep);
|
||||||
|
if (_totale > 0 && _totale != _contatore)
|
||||||
|
{
|
||||||
|
set_footer(3,"TOTALE SOGGETTI STAMPATI %d", _totale);
|
||||||
|
printer().formfeed();
|
||||||
|
}
|
||||||
|
reset_footer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TStampaIdonei::footer_sezione()
|
||||||
|
{
|
||||||
|
// stampa totale soggetti appartenenti alla sezione
|
||||||
|
if (_tipostampa==elenco)
|
||||||
|
{
|
||||||
|
reset_footer();
|
||||||
|
TString sep(80);
|
||||||
|
sep.fill('-');
|
||||||
|
set_footer(2, (const char *) sep);
|
||||||
|
set_footer(3,"TOTALE SOGGETTI STAMPATI %d", _contatore);
|
||||||
|
printer().formfeed();
|
||||||
|
reset_footer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TStampaIdonei::filtra_sezioni()
|
void TStampaIdonei::filtra_sezioni()
|
||||||
{
|
{
|
||||||
const TString16 sezini = _msk->get(F_SEZINI);
|
const TString16 sezini = _msk->get(F_SEZINI);
|
||||||
@ -158,27 +193,43 @@ bool TStampaIdonei::filter_func_idonei(const TRelation * rel)
|
|||||||
{
|
{
|
||||||
TAssoc_array idoneita;
|
TAssoc_array idoneita;
|
||||||
TString16 idonsog = sog.get(SOG_IDON1);
|
TString16 idonsog = sog.get(SOG_IDON1);
|
||||||
if (idonsog.not_empty() && idonsog.ok())
|
if (idonsog.not_empty())
|
||||||
idoneita.add((const char*) idonsog);
|
idoneita.add((const char*) idonsog);
|
||||||
idonsog = sog.get(SOG_IDON2);
|
idonsog = sog.get(SOG_IDON2);
|
||||||
if (idonsog.not_empty() && idonsog.ok())
|
if (idonsog.not_empty())
|
||||||
idoneita.add((const char*) idonsog);
|
idoneita.add((const char*) idonsog);
|
||||||
idonsog = sog.get(SOG_IDON3);
|
idonsog = sog.get(SOG_IDON3);
|
||||||
if (idonsog.not_empty() && idonsog.ok())
|
if (idonsog.not_empty())
|
||||||
idoneita.add((const char*) idonsog);
|
idoneita.add((const char*) idonsog);
|
||||||
idonsog = sog.get(SOG_IDON4);
|
idonsog = sog.get(SOG_IDON4);
|
||||||
if (idonsog.not_empty() && idonsog.ok())
|
if (idonsog.not_empty())
|
||||||
idoneita.add((const char*) idonsog);
|
idoneita.add((const char*) idonsog);
|
||||||
if (idoneita.items() != 0)
|
if (idoneita.items() != 0)
|
||||||
{
|
{
|
||||||
if (app()._idon1.not_empty() && app()._idon1.ok())
|
if (app()._stampa < 2)
|
||||||
filtrato = idoneita.is_key((const char*) app()._idon1);
|
{
|
||||||
if (app()._idon2.not_empty() && app()._idon2.ok())
|
if (app()._idon1.not_empty())
|
||||||
filtrato = filtrato && idoneita.is_key((const char*) app()._idon2);
|
filtrato = idoneita.is_key((const char*) app()._idon1);
|
||||||
if (app()._idon3.not_empty() && app()._idon3.ok())
|
if (app()._idon2.not_empty())
|
||||||
filtrato = filtrato && idoneita.is_key((const char*) app()._idon3);
|
filtrato = filtrato && idoneita.is_key((const char*) app()._idon2);
|
||||||
if (app()._idon4.not_empty() && app()._idon4.ok())
|
if (app()._idon3.not_empty())
|
||||||
filtrato = filtrato && idoneita.is_key((const char*) app()._idon4);
|
filtrato = filtrato && idoneita.is_key((const char*) app()._idon3);
|
||||||
|
if (app()._idon4.not_empty())
|
||||||
|
filtrato = filtrato && idoneita.is_key((const char*) app()._idon4);
|
||||||
|
if (app()._stampa == 1)
|
||||||
|
filtrato = (filtrato && (app()._numidon == idoneita.items()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (app()._idon1.not_empty())
|
||||||
|
filtrato = idoneita.is_key((const char*) app()._idon1);
|
||||||
|
if (app()._idon2.not_empty())
|
||||||
|
filtrato = filtrato || idoneita.is_key((const char*) app()._idon2);
|
||||||
|
if (app()._idon3.not_empty())
|
||||||
|
filtrato = filtrato || idoneita.is_key((const char*) app()._idon3);
|
||||||
|
if (app()._idon4.not_empty())
|
||||||
|
filtrato = filtrato || idoneita.is_key((const char*) app()._idon4);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (!(app()._idon1.empty() && app()._idon2.empty() && app()._idon3.empty() && app()._idon4.empty()))
|
if (!(app()._idon1.empty() && app()._idon2.empty() && app()._idon3.empty() && app()._idon4.empty()))
|
||||||
@ -202,7 +253,8 @@ bool TStampaIdonei::preprocess_page(int file, int counter)
|
|||||||
if ((_codsez!=codsez)||(_codsot!=codsot))
|
if ((_codsez!=codsez)||(_codsot!=codsot))
|
||||||
{
|
{
|
||||||
if (_codsez != "**")
|
if (_codsez != "**")
|
||||||
printer().formfeed();
|
footer_sezione();
|
||||||
|
_contatore = 0;
|
||||||
_codsez = codsez;
|
_codsez = codsez;
|
||||||
_codsot = codsot;
|
_codsot = codsot;
|
||||||
header_sezione(codsez, codsot);
|
header_sezione(codsez, codsot);
|
||||||
@ -211,15 +263,20 @@ bool TStampaIdonei::preprocess_page(int file, int counter)
|
|||||||
if (_tipostampa==etichette)
|
if (_tipostampa==etichette)
|
||||||
if (printer().rows_left() < _form_eti->get_body().height())
|
if (printer().rows_left() < _form_eti->get_body().height())
|
||||||
printer().formfeed();
|
printer().formfeed();
|
||||||
|
_contatore++;
|
||||||
|
_totale++;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
print_action TStampaIdonei::postprocess_print(int file, int counter)
|
print_action TStampaIdonei::postprocess_print(int file, int counter)
|
||||||
{
|
{
|
||||||
printer().formfeed();
|
if (_contatore > 0)
|
||||||
|
footer_sezione();
|
||||||
|
fine_stampa();
|
||||||
return NEXT_PAGE;
|
return NEXT_PAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TStampaIdonei::header_sezione(const TString16 codsez, const TString16 codsot)
|
void TStampaIdonei::header_sezione(const TString16 codsez, const TString16 codsot)
|
||||||
{
|
{
|
||||||
const TString80 densez = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSEZ);
|
const TString80 densez = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSEZ);
|
||||||
@ -231,7 +288,7 @@ void TStampaIdonei::header_sezione(const TString16 codsez, const TString16 codso
|
|||||||
intestazione << codsot;
|
intestazione << codsot;
|
||||||
intestazione << " ";
|
intestazione << " ";
|
||||||
intestazione << densez;
|
intestazione << densez;
|
||||||
if ((densot.ok())&& (densot.not_empty()))
|
if (densot.not_empty())
|
||||||
{
|
{
|
||||||
intestazione << "/";
|
intestazione << "/";
|
||||||
intestazione << densot;
|
intestazione << densot;
|
||||||
@ -255,6 +312,8 @@ bool TStampaIdonei::set_print(int m)
|
|||||||
_tipostampa = elenco;
|
_tipostampa = elenco;
|
||||||
_codsez = "**";
|
_codsez = "**";
|
||||||
_codsot = "**";
|
_codsot = "**";
|
||||||
|
_contatore = 0;
|
||||||
|
_totale = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case F_ETICHETTE:
|
case F_ETICHETTE:
|
||||||
@ -269,7 +328,7 @@ bool TStampaIdonei::set_print(int m)
|
|||||||
filtra_sezioni();
|
filtra_sezioni();
|
||||||
// filtro per tipo idoneità
|
// filtro per tipo idoneità
|
||||||
_tipoidon = _msk->get(F_TIPO);
|
_tipoidon = _msk->get(F_TIPO);
|
||||||
if (_tipoidon.not_empty() && _tipoidon.ok())
|
if (_tipoidon.not_empty())
|
||||||
current_cursor()->setfilter(format("STATO == \"%s\"",(const char*)_tipoidon));
|
current_cursor()->setfilter(format("STATO == \"%s\"",(const char*)_tipoidon));
|
||||||
else
|
else
|
||||||
current_cursor()->setfilter("(TCS->S6 == \"I\") || (TCS->S6 == \"F\")", TRUE);
|
current_cursor()->setfilter("(TCS->S6 == \"I\") || (TCS->S6 == \"F\")", TRUE);
|
||||||
@ -281,23 +340,33 @@ bool TStampaIdonei::set_print(int m)
|
|||||||
const TString16 catqua = _msk->get(F_CAT4);
|
const TString16 catqua = _msk->get(F_CAT4);
|
||||||
const TString16 catqui = _msk->get(F_CAT5);
|
const TString16 catqui = _msk->get(F_CAT5);
|
||||||
const TString16 catses = _msk->get(F_CAT6);
|
const TString16 catses = _msk->get(F_CAT6);
|
||||||
if (catpri.not_empty() && catpri.ok())
|
if (catpri.not_empty())
|
||||||
_categorie.add((const char*) catpri);
|
_categorie.add((const char*) catpri);
|
||||||
if (catsec.not_empty() && catsec.ok())
|
if (catsec.not_empty())
|
||||||
_categorie.add((const char*) catsec);
|
_categorie.add((const char*) catsec);
|
||||||
if (catter.not_empty() && catter.ok())
|
if (catter.not_empty())
|
||||||
_categorie.add((const char*) catter);
|
_categorie.add((const char*) catter);
|
||||||
if (catqua.not_empty() && catqua.ok())
|
if (catqua.not_empty())
|
||||||
_categorie.add((const char*) catqua);
|
_categorie.add((const char*) catqua);
|
||||||
if (catqui.not_empty() && catqui.ok())
|
if (catqui.not_empty())
|
||||||
_categorie.add((const char*) catqui);
|
_categorie.add((const char*) catqui);
|
||||||
if (catses.not_empty() && catses.ok())
|
if (catses.not_empty())
|
||||||
_categorie.add((const char*) catses);
|
_categorie.add((const char*) catses);
|
||||||
// filtro per idoneita
|
// filtro per idoneita
|
||||||
_idon1 = _msk->get(F_IDON1);
|
_idon1 = _msk->get(F_IDON1);
|
||||||
_idon2 = _msk->get(F_IDON2);
|
_idon2 = _msk->get(F_IDON2);
|
||||||
_idon3 = _msk->get(F_IDON3);
|
_idon3 = _msk->get(F_IDON3);
|
||||||
_idon4 = _msk->get(F_IDON4);
|
_idon4 = _msk->get(F_IDON4);
|
||||||
|
_stampa = _msk->get_int(F_STAMPA);
|
||||||
|
_numidon = 0;
|
||||||
|
if (_idon1.not_empty())
|
||||||
|
_numidon++;
|
||||||
|
if (_idon2.not_empty())
|
||||||
|
_numidon++;
|
||||||
|
if (_idon3.not_empty())
|
||||||
|
_numidon++;
|
||||||
|
if (_idon4.not_empty())
|
||||||
|
_numidon++;
|
||||||
current_cursor()->set_filterfunction(filter_func_idonei);
|
current_cursor()->set_filterfunction(filter_func_idonei);
|
||||||
reset_print();
|
reset_print();
|
||||||
crea_intestazione();
|
crea_intestazione();
|
||||||
@ -314,7 +383,7 @@ void TStampaIdonei::crea_intestazione()
|
|||||||
{
|
{
|
||||||
TString sep(80);
|
TString sep(80);
|
||||||
sep = "ELENCO IDONEI";
|
sep = "ELENCO IDONEI";
|
||||||
if ((_tipoidon.ok()) && (_tipoidon.not_empty()))
|
if (_tipoidon.not_empty())
|
||||||
{
|
{
|
||||||
sep << ": tipo ";
|
sep << ": tipo ";
|
||||||
sep << _tipoidon;
|
sep << _tipoidon;
|
||||||
@ -322,25 +391,37 @@ void TStampaIdonei::crea_intestazione()
|
|||||||
sep << " ";
|
sep << " ";
|
||||||
sep << dtipo;
|
sep << dtipo;
|
||||||
}
|
}
|
||||||
if ((_idon1.ok()) && (_idon1.not_empty()))
|
if (_idon1.not_empty())
|
||||||
{
|
{
|
||||||
sep << " per ";
|
sep << " per ";
|
||||||
sep << _idon1;
|
sep << _idon1;
|
||||||
}
|
}
|
||||||
if ((_idon2.ok()) && (_idon2.not_empty()))
|
if (_idon2.not_empty())
|
||||||
{
|
{
|
||||||
sep << " ";
|
sep << " ";
|
||||||
sep << _idon2;
|
sep << _idon2;
|
||||||
}
|
}
|
||||||
if ((_idon3.ok()) && (_idon3.not_empty()))
|
if (_idon3.not_empty())
|
||||||
{
|
{
|
||||||
sep << " ";
|
sep << " ";
|
||||||
sep << _idon3;
|
sep << _idon3;
|
||||||
}
|
}
|
||||||
if ((_idon4.ok()) && (_idon4.not_empty()))
|
if (_idon4.not_empty())
|
||||||
{
|
{
|
||||||
sep << " ";
|
sep << " ";
|
||||||
sep << _idon4;
|
sep << _idon4;
|
||||||
|
}
|
||||||
|
switch (_stampa)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
sep << " - Tutte queste idon.";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
sep << " - Esclusivamente queste idon.";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
sep << " - Almeno una idon.";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
sep.center_just();
|
sep.center_just();
|
||||||
set_header(2, "@0g%s", (const char*) sep);
|
set_header(2, "@0g%s", (const char*) sep);
|
||||||
@ -355,6 +436,7 @@ void TStampaIdonei::crea_intestazione()
|
|||||||
set_header(4,"@0gCodice@9gC.@12gCognome e nome@38gNato il@49gData stato@60gIdon.@66g SI@70gUltima don.");
|
set_header(4,"@0gCodice@9gC.@12gCognome e nome@38gNato il@49gData stato@60gIdon.@66g SI@70gUltima don.");
|
||||||
set_header(5,"@0gTessera@38gGruppo Rh@49g Stato@66g AF");
|
set_header(5,"@0gTessera@38gGruppo Rh@49g Stato@66g AF");
|
||||||
set_header(6,"@0g--------@9g--@12g-------------------------@38g----------@49g----------@60g-- --@66g---@70g----------");
|
set_header(6,"@0g--------@9g--@12g-------------------------@38g----------@49g----------@60g-- --@66g---@70g----------");
|
||||||
|
printer().footerlen(3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,7 +265,7 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 77 5
|
GROUPBOX DLG_NULL 77 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 "Tipo/Esito e tipi idoneita'"
|
PROMPT 1 10 "Tipo/Esito e tipi idoneita'"
|
||||||
END
|
END
|
||||||
@ -375,5 +375,14 @@ BEGIN
|
|||||||
PROMPT 52 13 ""
|
PROMPT 52 13 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
LISTBOX F_STAMPA 33
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 14 "Stampa soggetti che hanno "
|
||||||
|
ITEM "0|Tutte le idon. indicate"
|
||||||
|
ITEM "1|Esclusivamente le idon. indicate"
|
||||||
|
ITEM "2|Almeno una delle idon. indicate"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
Loading…
x
Reference in New Issue
Block a user