Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunta la gestione da mese a mese nelle 2 stampe; eliminata la possibilita' di fare da commessa a commessa (e/o cdc) in quanto cagata assurda, mentre si e' mantenuta la da-a nelle risorse git-svn-id: svn://10.65.10.50/branches/R_10_00@22266 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
e777a89daf
commit
65e0251976
100
ci/ci1300.cpp
100
ci/ci1300.cpp
@ -47,7 +47,7 @@ class TRil_ore_ris_mask : public TAutomask
|
|||||||
protected:
|
protected:
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
void elabora_risorsa(const TString& curr_risorsa, TReport& rep) const;
|
void elabora_risorsa(const TString& curr_risorsa, const int curr_mese, TReport& rep) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void elabora() const;
|
void elabora() const;
|
||||||
@ -65,12 +65,12 @@ bool TRil_ore_ris_mask::on_field_event(TOperable_field& o, TField_event e, long
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TRil_ore_ris_mask::elabora_risorsa(const TString& curr_risorsa, TReport& rep) const
|
void TRil_ore_ris_mask::elabora_risorsa(const TString& curr_risorsa, const int curr_mese, TReport& rep) const
|
||||||
{
|
{
|
||||||
const int tipo_ordinamento = get_int(F_ORDINAMENTO);
|
const int tipo_ordinamento = get_int(F_ORDINAMENTO);
|
||||||
const char tipo_stampa = get(F_TIPOSTAMPA)[0];
|
const char tipo_stampa = get(F_TIPOSTAMPA)[0];
|
||||||
const int anno = get_int(F_ANNO);
|
const int anno = get_int(F_ANNO);
|
||||||
const int mese = tipo_stampa == 'M' ? get_int(F_MESE) : 0;
|
const int mese = tipo_stampa == 'M' ? curr_mese : 0;
|
||||||
|
|
||||||
//date del periodo
|
//date del periodo
|
||||||
TDate inizio_periodo, fine_periodo;
|
TDate inizio_periodo, fine_periodo;
|
||||||
@ -189,6 +189,9 @@ void TRil_ore_ris_mask::elabora_risorsa(const TString& curr_risorsa, TReport& re
|
|||||||
rep.set_recordset(recset);
|
rep.set_recordset(recset);
|
||||||
//tenta la mask2report per far apparire sul report i campi di selezione della maschera
|
//tenta la mask2report per far apparire sul report i campi di selezione della maschera
|
||||||
rep.mask2report(*this);
|
rep.mask2report(*this);
|
||||||
|
TString4 code;
|
||||||
|
code.format("%02d", curr_mese);
|
||||||
|
recset->set_var("#MESE", code, true);
|
||||||
//finita l'elaborazione che ha riempito l'assoc_array, asegna il medesimo ad un..
|
//finita l'elaborazione che ha riempito l'assoc_array, asegna il medesimo ad un..
|
||||||
//..csv_recordset e poi sbatte quest'ultimo (ordinato) nel report
|
//..csv_recordset e poi sbatte quest'ultimo (ordinato) nel report
|
||||||
//Il tutto nel magico metodo che segue!
|
//Il tutto nel magico metodo che segue!
|
||||||
@ -202,60 +205,71 @@ void TRil_ore_ris_mask::elabora_risorsa(const TString& curr_risorsa, TReport& re
|
|||||||
//metodo di alto livello per filtrare su ris/att e chiamare i metodi di livello inferiore per elaborare la singola ris/att
|
//metodo di alto livello per filtrare su ris/att e chiamare i metodi di livello inferiore per elaborare la singola ris/att
|
||||||
void TRil_ore_ris_mask::elabora() const
|
void TRil_ore_ris_mask::elabora() const
|
||||||
{
|
{
|
||||||
|
//book di stampa
|
||||||
TReport_book book;
|
TReport_book book;
|
||||||
|
|
||||||
//stampa mensile o annuale?
|
//stampa mensile o annuale?
|
||||||
const char tipostampa = get(F_TIPOSTAMPA)[0];
|
const char tipostampa = get(F_TIPOSTAMPA)[0];
|
||||||
TRil_ore_ris_report rep(tipostampa);
|
TRil_ore_ris_report rep(tipostampa);
|
||||||
|
|
||||||
|
int da_mese = 1;
|
||||||
|
int a_mese = 1;
|
||||||
if (tipostampa == 'M')
|
if (tipostampa == 'M')
|
||||||
format_report_month(get_int(F_ANNO), get_int(F_MESE), rep);
|
|
||||||
|
|
||||||
//query sulla tabella interessata (risorse o attrezzature)
|
|
||||||
TString16 da_ris_att, a_ris_att;
|
|
||||||
TString query_ris_att;
|
|
||||||
TString msg;
|
|
||||||
const char tiporisorsa = get(F_RISOATT)[0];
|
|
||||||
|
|
||||||
if (tiporisorsa == 'R')
|
|
||||||
{
|
{
|
||||||
da_ris_att = get(F_DA_CODRIS);
|
da_mese = get_int(F_DA_MESE);
|
||||||
a_ris_att = get(F_A_CODRIS);
|
a_mese = get_int(F_A_MESE);
|
||||||
query_ris_att << "USE RSS";
|
|
||||||
msg << "Scansione risorse...";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
da_ris_att = get(F_DA_CODATT);
|
|
||||||
a_ris_att = get(F_A_CODATT);
|
|
||||||
query_ris_att << "USE ATR";
|
|
||||||
"Scansione attrezzature...";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
query_ris_att << "\nFROM CODTAB=#DACODICE";
|
//giro su tutti i mesi; se stampa annuale o mese unico -> un giro solo
|
||||||
query_ris_att << "\nTO CODTAB=#ACODICE";
|
for (int m = da_mese; m <= a_mese; m++)
|
||||||
|
|
||||||
TISAM_recordset recset_ris_att(query_ris_att);
|
|
||||||
recset_ris_att.set_var("#DACODICE", da_ris_att);
|
|
||||||
recset_ris_att.set_var("#ACODICE", a_ris_att);
|
|
||||||
const long recset_ris_att_items = recset_ris_att.items();
|
|
||||||
|
|
||||||
TProgind pi(recset_ris_att_items, msg, true, true);
|
|
||||||
|
|
||||||
//per ogni risorsa/attrezzatura dell'elenco genera un report singolo che viene riempito nella elabora_risorsa e..
|
|
||||||
//..aggiunto al book per la stampa finale
|
|
||||||
for (bool ok = recset_ris_att.move_first(); ok; ok = recset_ris_att.move_next())
|
|
||||||
{
|
{
|
||||||
if (!pi.addstatus(1))
|
if (tipostampa == 'M')
|
||||||
break;
|
format_report_month(get_int(F_ANNO), m, rep);
|
||||||
|
|
||||||
const TString80 curr_risorsa = recset_ris_att.cursor()->curr().get("CODTAB");
|
//query sulla tabella interessata (risorse o attrezzature)
|
||||||
|
TString16 da_ris_att, a_ris_att;
|
||||||
|
TString query_ris_att;
|
||||||
|
TString msg;
|
||||||
|
const char tiporisorsa = get(F_RISOATT)[0];
|
||||||
|
|
||||||
elabora_risorsa(curr_risorsa, rep);
|
if (tiporisorsa == 'R')
|
||||||
|
{
|
||||||
|
da_ris_att = get(F_DA_CODRIS);
|
||||||
|
a_ris_att = get(F_A_CODRIS);
|
||||||
|
query_ris_att << "USE RSS";
|
||||||
|
msg << "Scansione risorse...";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
da_ris_att = get(F_DA_CODATT);
|
||||||
|
a_ris_att = get(F_A_CODATT);
|
||||||
|
query_ris_att << "USE ATR";
|
||||||
|
"Scansione attrezzature...";
|
||||||
|
}
|
||||||
|
|
||||||
book.add(rep);
|
query_ris_att << "\nFROM CODTAB=#DACODICE";
|
||||||
}
|
query_ris_att << "\nTO CODTAB=#ACODICE";
|
||||||
|
|
||||||
|
TISAM_recordset recset_ris_att(query_ris_att);
|
||||||
|
recset_ris_att.set_var("#DACODICE", da_ris_att);
|
||||||
|
recset_ris_att.set_var("#ACODICE", a_ris_att);
|
||||||
|
const long recset_ris_att_items = recset_ris_att.items();
|
||||||
|
|
||||||
|
TProgind pi(recset_ris_att_items, msg, true, true);
|
||||||
|
|
||||||
|
//per ogni risorsa/attrezzatura dell'elenco genera un report singolo che viene riempito nella elabora_risorsa e..
|
||||||
|
//..aggiunto al book per la stampa finale
|
||||||
|
for (bool ok = recset_ris_att.move_first(); ok; ok = recset_ris_att.move_next())
|
||||||
|
{
|
||||||
|
if (!pi.addstatus(1))
|
||||||
|
break;
|
||||||
|
|
||||||
|
const TString80 curr_risorsa = recset_ris_att.cursor()->curr().get("CODTAB");
|
||||||
|
|
||||||
|
elabora_risorsa(curr_risorsa, m, rep);
|
||||||
|
|
||||||
|
book.add(rep);
|
||||||
|
} //for (bool ok = recset_ris_att.move_first()...
|
||||||
|
} //for (int m = da_mese; ..
|
||||||
//e alla fine stampa il book
|
//e alla fine stampa il book
|
||||||
book.preview();
|
book.preview();
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#define F_A_DESATT 209
|
#define F_A_DESATT 209
|
||||||
#define F_TIPOSTAMPA 210
|
#define F_TIPOSTAMPA 210
|
||||||
#define F_ANNO 211
|
#define F_ANNO 211
|
||||||
#define F_MESE 212
|
#define F_DA_MESE 212
|
||||||
#define F_ORDINAMENTO 213
|
#define F_A_MESE 213
|
||||||
#define F_SHOW_FASI 214
|
#define F_ORDINAMENTO 214
|
||||||
|
#define F_SHOW_FASI 215
|
||||||
|
@ -126,7 +126,7 @@ BEGIN
|
|||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX -1 78 3
|
GROUPBOX -1 78 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "@bFiltri su anno / mese"
|
PROMPT 1 6 "@bFiltri su anno / mese"
|
||||||
END
|
END
|
||||||
@ -135,31 +135,38 @@ LISTBOX F_TIPOSTAMPA 10
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Tipo di stampa "
|
PROMPT 2 7 "Tipo di stampa "
|
||||||
ITEM "M|Mensile"
|
ITEM "M|Mensile"
|
||||||
MESSAGE SHOW,F_MESE
|
MESSAGE SHOW,F_DA_MESE|SHOW,F_A_MESE
|
||||||
ITEM "A|Annuale"
|
ITEM "A|Annuale"
|
||||||
MESSAGE HIDE,F_MESE
|
MESSAGE HIDE,F_DA_MESE|HIDE,F_A_MESE
|
||||||
FLAGS "Z"
|
FLAGS "Z"
|
||||||
FIELD #TIPOSTAMPA
|
FIELD #TIPOSTAMPA
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ANNO 4
|
NUMBER F_ANNO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 35 7 "Anno "
|
PROMPT 2 8 "Anno "
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FLAGS "A"
|
FLAGS "A"
|
||||||
FIELD #ANNO
|
FIELD #ANNO
|
||||||
|
NUM_EXPR (#F_A_MESE>=#F_DA_MESE)
|
||||||
|
WARNING "Il mese finale deve essere uguale o successivo a quello iniziale"
|
||||||
END
|
END
|
||||||
|
|
||||||
LISTBOX F_MESE 10
|
LISTBOX F_DA_MESE 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 7 "Mese "
|
PROMPT 17 8 "Da mese "
|
||||||
FLAGS "M"
|
FLAGS "AM"
|
||||||
FIELD #MESE
|
END
|
||||||
|
|
||||||
|
LISTBOX F_A_MESE 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 8 "A mese "
|
||||||
|
FLAGS "AM"
|
||||||
END
|
END
|
||||||
|
|
||||||
RADIOBUTTON F_ORDINAMENTO 40
|
RADIOBUTTON F_ORDINAMENTO 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 9 "@bStampa e ordina per:"
|
PROMPT 1 10 "@bStampa e ordina per:"
|
||||||
ITEM "1|Commessa"
|
ITEM "1|Commessa"
|
||||||
ITEM "2|Commessa - CdC"
|
ITEM "2|Commessa - CdC"
|
||||||
ITEM "3|Commessa - Fase"
|
ITEM "3|Commessa - Fase"
|
||||||
|
@ -222,13 +222,13 @@ void ci_fill_recset_from_ass(TAssoc_array& ass, TReport& rep)
|
|||||||
//formattazione report per stampa mensile dettagliata per giorno
|
//formattazione report per stampa mensile dettagliata per giorno
|
||||||
void format_report_month(const int anno, const int mese, TReport& rep)
|
void format_report_month(const int anno, const int mese, TReport& rep)
|
||||||
{
|
{
|
||||||
|
TString16 code;
|
||||||
|
|
||||||
//maggico giro per formattare la testata del calendario di pagina nel report
|
//maggico giro per formattare la testata del calendario di pagina nel report
|
||||||
const TDate primo_del_mese(1, mese, anno);
|
const TDate primo_del_mese(1, mese, anno);
|
||||||
TDate ultimo_del_mese = primo_del_mese;
|
TDate ultimo_del_mese = primo_del_mese;
|
||||||
ultimo_del_mese.set_end_month();
|
ultimo_del_mese.set_end_month();
|
||||||
|
|
||||||
TString16 code;
|
|
||||||
|
|
||||||
for (TDate giorno = primo_del_mese; giorno <= ultimo_del_mese; ++giorno)
|
for (TDate giorno = primo_del_mese; giorno <= ultimo_del_mese; ++giorno)
|
||||||
{
|
{
|
||||||
code.format("H0.%d", giorno.day() + 100);
|
code.format("H0.%d", giorno.day() + 100);
|
||||||
|
185
ci/ci1400.cpp
185
ci/ci1400.cpp
@ -61,6 +61,7 @@ public:
|
|||||||
TRil_ore_cms_report(const char tipostampa);
|
TRil_ore_cms_report(const char tipostampa);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
TRil_ore_cms_report::TRil_ore_cms_report(const char tipostampa)
|
TRil_ore_cms_report::TRil_ore_cms_report(const char tipostampa)
|
||||||
{
|
{
|
||||||
if (tipostampa == 'M')
|
if (tipostampa == 'M')
|
||||||
@ -81,7 +82,7 @@ class TRil_ore_cms_mask : public TAutomask
|
|||||||
protected:
|
protected:
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
bool elabora_commessa(const TString& curr_commessa, TReport& rep) const;
|
bool elabora_commessa(const TString& curr_commessa, const int curr_mese, TReport& rep) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void elabora() const;
|
void elabora() const;
|
||||||
@ -96,17 +97,34 @@ TRil_ore_cms_mask::TRil_ore_cms_mask() : TAutomask("ci1400a")
|
|||||||
|
|
||||||
bool TRil_ore_cms_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
bool TRil_ore_cms_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
|
switch (o.dlg())
|
||||||
|
{
|
||||||
|
//se viene selezionata una commessa in particolare da stampare -> non ha piu' senso lo sheet..
|
||||||
|
//..con le commesse da escludere (group 3)
|
||||||
|
case F_CODCMS:
|
||||||
|
if (e == fe_init || e == fe_modify)
|
||||||
|
{
|
||||||
|
const TString& codcms = o.get();
|
||||||
|
if (codcms.full())
|
||||||
|
hide(-3);
|
||||||
|
else
|
||||||
|
show(-3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TRil_ore_cms_mask::elabora_commessa(const TString& curr_commessa, TReport& rep) const
|
bool TRil_ore_cms_mask::elabora_commessa(const TString& curr_commessa, const int curr_mese, TReport& rep) const
|
||||||
{
|
{
|
||||||
const TVariant tipo_cms_cdc = get(F_CMSOCDC);
|
const TVariant tipo_cms_cdc = get(F_CMSOCDC);
|
||||||
const bool per_commessa = tipo_cms_cdc.as_string() == "C";
|
const bool per_commessa = tipo_cms_cdc.as_string() == "C";
|
||||||
const char tipo_stampa = get(F_TIPOSTAMPA)[0];
|
const char tipo_stampa = get(F_TIPOSTAMPA)[0];
|
||||||
const int anno = get_int(F_ANNO);
|
const int anno = get_int(F_ANNO);
|
||||||
const int mese = tipo_stampa == 'M' ? get_int(F_MESE) : 0;
|
const int mese = tipo_stampa == 'M' ? curr_mese : 0;
|
||||||
|
|
||||||
//date del periodo
|
//date del periodo
|
||||||
TDate inizio_periodo, fine_periodo;
|
TDate inizio_periodo, fine_periodo;
|
||||||
@ -114,12 +132,12 @@ bool TRil_ore_cms_mask::elabora_commessa(const TString& curr_commessa, TReport&
|
|||||||
|
|
||||||
TAssoc_array righe;
|
TAssoc_array righe;
|
||||||
|
|
||||||
//query sul file delle ore in chiave 4 o 6, in base alla scelta di Cdc(4) o Cms(5): TIPO+CODCOSTO+... o TIPO+CODCMS+...
|
//query sul file delle ore in chiave 4 o 5, in base alla scelta di Cdc(4) o Cms(5): TIPO+CODCOSTO+... o TIPO+CODCMS+...
|
||||||
TString query;
|
TString query;
|
||||||
|
|
||||||
if (per_commessa)
|
if (per_commessa)
|
||||||
{
|
{
|
||||||
query << "USE RILORE KEY 6";
|
query << "USE RILORE KEY 5";
|
||||||
query << "\nFROM TIPO=#TIPO CODCMS=#CODICE";
|
query << "\nFROM TIPO=#TIPO CODCMS=#CODICE";
|
||||||
query << "\nTO TIPO=#TIPO CODCMS=#CODICE";
|
query << "\nTO TIPO=#TIPO CODCMS=#CODICE";
|
||||||
}
|
}
|
||||||
@ -222,6 +240,9 @@ bool TRil_ore_cms_mask::elabora_commessa(const TString& curr_commessa, TReport&
|
|||||||
rep.set_recordset(recset);
|
rep.set_recordset(recset);
|
||||||
//tenta la mask2report per far apparire sul report i campi di selezione della maschera
|
//tenta la mask2report per far apparire sul report i campi di selezione della maschera
|
||||||
rep.mask2report(*this);
|
rep.mask2report(*this);
|
||||||
|
TString4 code;
|
||||||
|
code.format("%02d", curr_mese);
|
||||||
|
recset->set_var("#MESE", code, true);
|
||||||
//finita l'elaborazione che ha riempito l'assoc_array, asegna il medesimo ad un..
|
//finita l'elaborazione che ha riempito l'assoc_array, asegna il medesimo ad un..
|
||||||
//..csv_recordset e poi sbatte quest'ultimo (ordinato) nel report
|
//..csv_recordset e poi sbatte quest'ultimo (ordinato) nel report
|
||||||
ci_fill_recset_from_ass(righe, rep);
|
ci_fill_recset_from_ass(righe, rep);
|
||||||
@ -234,95 +255,103 @@ bool TRil_ore_cms_mask::elabora_commessa(const TString& curr_commessa, TReport&
|
|||||||
|
|
||||||
void TRil_ore_cms_mask::elabora() const
|
void TRil_ore_cms_mask::elabora() const
|
||||||
{
|
{
|
||||||
|
//book di stampa
|
||||||
TReport_book book;
|
TReport_book book;
|
||||||
//stampa mensile o annuale?
|
//stampa mensile o annuale?
|
||||||
const char tipostampa = get(F_TIPOSTAMPA)[0];
|
const char tipostampa = get(F_TIPOSTAMPA)[0];
|
||||||
TRil_ore_cms_report rep(tipostampa);
|
TRil_ore_cms_report rep(tipostampa);
|
||||||
|
|
||||||
|
int da_mese = 1;
|
||||||
|
int a_mese = 1;
|
||||||
if (tipostampa == 'M')
|
if (tipostampa == 'M')
|
||||||
format_report_month(get_int(F_ANNO), get_int(F_MESE), rep);
|
|
||||||
|
|
||||||
//query sul file interessato (commessa o centro di costo)
|
|
||||||
TString16 da_cms_cdc, a_cms_cdc;
|
|
||||||
TString query_cms_cdc;
|
|
||||||
TString msg, code_name;
|
|
||||||
const char tipo_cms_cdc = get(F_CMSOCDC)[0];
|
|
||||||
|
|
||||||
if (tipo_cms_cdc == 'C')
|
|
||||||
{
|
{
|
||||||
da_cms_cdc = get(F_DA_CODCMS);
|
da_mese = get_int(F_DA_MESE);
|
||||||
a_cms_cdc = get(F_A_CODCMS);
|
a_mese = get_int(F_A_MESE);
|
||||||
query_cms_cdc << "USE COMMESSE";
|
|
||||||
query_cms_cdc << "\nFROM CODCMS=#DACODICE";
|
|
||||||
query_cms_cdc << "\nTO CODCMS=#ACODICE";
|
|
||||||
msg << "Scansione commesse...";
|
|
||||||
code_name = "CODCMS";
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
da_cms_cdc = get(F_DA_CODCDC);
|
|
||||||
a_cms_cdc = get(F_A_CODCDC);
|
|
||||||
query_cms_cdc << "USE CDC";
|
|
||||||
query_cms_cdc << "\nFROM CODCOSTO=#DACODICE";
|
|
||||||
query_cms_cdc << "\nTO CODCOSTO=#ACODICE";
|
|
||||||
msg << "Scansione centri di costo...";
|
|
||||||
code_name = "CODCOSTO";
|
|
||||||
}
|
|
||||||
|
|
||||||
TISAM_recordset recset_cms_cdc(query_cms_cdc);
|
|
||||||
|
|
||||||
//aggiunta Adolfica: lista di commesse da considerare separatamente più commessa borraccione..
|
//giro su tutti i mesi; se stampa annuale o mese unico -> un giro solo
|
||||||
//..con tutte le altre
|
for (int m = da_mese; m <= a_mese; m++)
|
||||||
TSheet_field& lista = sfield(F_RIGHE);
|
|
||||||
const int lista_items = lista.items();
|
|
||||||
if (lista_items > 0)
|
|
||||||
{
|
{
|
||||||
TProgind pi_lista(lista_items, msg, true, true);
|
if (tipostampa == 'M')
|
||||||
|
format_report_month(get_int(F_ANNO), m, rep);
|
||||||
|
|
||||||
FOR_EACH_SHEET_ROW(lista, r, riga)
|
//query sul file interessato (commessa o centro di costo)
|
||||||
|
TString16 cms_cdc;
|
||||||
|
TString query_cms_cdc;
|
||||||
|
TString msg, code_name;
|
||||||
|
const char tipo_cms_cdc = get(F_CMSOCDC)[0];
|
||||||
|
|
||||||
|
if (tipo_cms_cdc == 'C')
|
||||||
{
|
{
|
||||||
if (!pi_lista.addstatus(1))
|
cms_cdc = get(F_CODCMS);
|
||||||
break;
|
query_cms_cdc << "USE COMMESSE";
|
||||||
|
query_cms_cdc << "\nFROM CODCMS=#CODICE";
|
||||||
const TString& curr_cms_cdc = riga->get(lista.cid2index(S_CODCMS));
|
query_cms_cdc << "\nTO CODCMS=#CODICE";
|
||||||
recset_cms_cdc.set_var("#DACODICE", curr_cms_cdc);
|
msg << "Scansione commesse...";
|
||||||
recset_cms_cdc.set_var("#ACODICE", curr_cms_cdc);
|
code_name = "CODCMS";
|
||||||
|
|
||||||
elabora_commessa(curr_cms_cdc, rep);
|
|
||||||
book.add(rep);
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
elabora_commessa("_ALTRE_", rep);
|
|
||||||
book.add(rep);
|
|
||||||
//e stampiamo questo book!
|
|
||||||
book.preview();
|
|
||||||
}
|
|
||||||
else //programma standard senza lista commesse
|
|
||||||
{
|
|
||||||
recset_cms_cdc.set_var("#DACODICE", da_cms_cdc);
|
|
||||||
recset_cms_cdc.set_var("#ACODICE", a_cms_cdc);
|
|
||||||
|
|
||||||
const long recset_cms_cdc_items = recset_cms_cdc.items();
|
|
||||||
|
|
||||||
TProgind pi(recset_cms_cdc_items, msg, true, true);
|
|
||||||
|
|
||||||
//per ogni cms/cdc dell'elenco genera un report singolo che viene riempito nella elabora_commessa e..
|
|
||||||
//..aggiunto al book per la stampa finale
|
|
||||||
for (bool ok = recset_cms_cdc.move_first(); ok; ok = recset_cms_cdc.move_next())
|
|
||||||
{
|
{
|
||||||
if (!pi.addstatus(1))
|
cms_cdc = get(F_CODCDC);
|
||||||
break;
|
query_cms_cdc << "USE CDC";
|
||||||
|
query_cms_cdc << "\nFROM CODCOSTO=#CODICE";
|
||||||
const TString80 curr_commessa = recset_cms_cdc.cursor()->curr().get(code_name);
|
query_cms_cdc << "\nTO CODCOSTO=#CODICE";
|
||||||
|
msg << "Scansione centri di costo...";
|
||||||
elabora_commessa(curr_commessa, rep);
|
code_name = "CODCOSTO";
|
||||||
|
|
||||||
book.add(rep);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TISAM_recordset recset_cms_cdc(query_cms_cdc);
|
||||||
|
|
||||||
//e alla fine stampa il book
|
//aggiunta Adolfica: lista di commesse da considerare separatamente più commessa borraccione..
|
||||||
book.preview();
|
//..con tutte le altre
|
||||||
}
|
TSheet_field& lista = sfield(F_RIGHE);
|
||||||
|
const int lista_items = lista.items();
|
||||||
|
if (lista_items > 0)
|
||||||
|
{
|
||||||
|
TProgind pi_lista(lista_items, msg, true, true);
|
||||||
|
|
||||||
|
FOR_EACH_SHEET_ROW(lista, r, riga)
|
||||||
|
{
|
||||||
|
if (!pi_lista.addstatus(1))
|
||||||
|
break;
|
||||||
|
|
||||||
|
const TString& curr_cms_cdc = riga->get(lista.cid2index(S_CODCMS));
|
||||||
|
recset_cms_cdc.set_var("#CODICE", curr_cms_cdc);
|
||||||
|
|
||||||
|
elabora_commessa(curr_cms_cdc, m, rep);
|
||||||
|
book.add(rep);
|
||||||
|
}
|
||||||
|
|
||||||
|
elabora_commessa("_ALTRE_", m, rep);
|
||||||
|
book.add(rep);
|
||||||
|
//e stampiamo questo book!
|
||||||
|
book.preview();
|
||||||
|
}
|
||||||
|
else //programma standard senza lista commesse
|
||||||
|
{
|
||||||
|
recset_cms_cdc.set_var("#CODICE", cms_cdc);
|
||||||
|
|
||||||
|
const long recset_cms_cdc_items = recset_cms_cdc.items();
|
||||||
|
|
||||||
|
TProgind pi(recset_cms_cdc_items, msg, true, true);
|
||||||
|
|
||||||
|
//per ogni cms/cdc dell'elenco genera un report singolo che viene riempito nella elabora_commessa e..
|
||||||
|
//..aggiunto al book per la stampa finale
|
||||||
|
for (bool ok = recset_cms_cdc.move_first(); ok; ok = recset_cms_cdc.move_next())
|
||||||
|
{
|
||||||
|
if (!pi.addstatus(1))
|
||||||
|
break;
|
||||||
|
|
||||||
|
const TString80 curr_commessa = recset_cms_cdc.cursor()->curr().get(code_name);
|
||||||
|
|
||||||
|
elabora_commessa(curr_commessa, m, rep);
|
||||||
|
|
||||||
|
book.add(rep);
|
||||||
|
} //for (bool ok = recset_cms_cdc.move_first()...
|
||||||
|
} //if (lista_items > 0)...
|
||||||
|
} //for (int i = da_mese; i <= a_mese; i++)...
|
||||||
|
//e alla fine stampa il book
|
||||||
|
book.preview();
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
15
ci/ci1400a.h
15
ci/ci1400a.h
@ -1,16 +1,13 @@
|
|||||||
|
|
||||||
#define F_CMSOCDC 201
|
#define F_CMSOCDC 201
|
||||||
#define F_DA_CODCMS 202
|
#define F_CODCMS 202
|
||||||
#define F_DA_DESCMS 203
|
#define F_DESCMS 203
|
||||||
#define F_A_CODCMS 204
|
#define F_CODCDC 204
|
||||||
#define F_A_DESCMS 205
|
#define F_DESCDC 205
|
||||||
#define F_DA_CODCDC 206
|
|
||||||
#define F_DA_DESCDC 207
|
|
||||||
#define F_A_CODCDC 208
|
|
||||||
#define F_A_DESCDC 209
|
|
||||||
#define F_TIPOSTAMPA 210
|
#define F_TIPOSTAMPA 210
|
||||||
#define F_ANNO 211
|
#define F_ANNO 211
|
||||||
#define F_MESE 212
|
#define F_DA_MESE 212
|
||||||
|
#define F_A_MESE 213
|
||||||
|
|
||||||
#define F_RIGHE 220
|
#define F_RIGHE 220
|
||||||
|
|
||||||
|
127
ci/ci1400a.uml
127
ci/ci1400a.uml
@ -6,7 +6,7 @@ ENDPAGE
|
|||||||
|
|
||||||
PAGE "Rilevazione ore per Commessa - CdC" -1 -1 0 0
|
PAGE "Rilevazione ore per Commessa - CdC" -1 -1 0 0
|
||||||
|
|
||||||
GROUPBOX -1 78 5
|
GROUPBOX -1 78 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "@bFiltri su Commesse / CdC"
|
PROMPT 1 1 "@bFiltri su Commesse / CdC"
|
||||||
END
|
END
|
||||||
@ -15,156 +15,113 @@ LISTBOX F_CMSOCDC 1 16
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "@bTipo "
|
PROMPT 2 2 "@bTipo "
|
||||||
ITEM "C|Commessa"
|
ITEM "C|Commessa"
|
||||||
MESSAGE HIDE,2@|SHOW,1@
|
MESSAGE HIDE,2@|SHOW,1@|SHOW,3@
|
||||||
ITEM "S|Centro di Costo"
|
ITEM "S|Centro di Costo"
|
||||||
MESSAGE HIDE,1@|SHOW,2@
|
MESSAGE HIDE,1@|SHOW,2@|HIDE,3@
|
||||||
FLAGS "Z"
|
FLAGS "Z"
|
||||||
FIELD #CMSOCDC
|
FIELD #CMSOCDC
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DA_CODCMS 20
|
STRING F_CODCMS 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Da commessa "
|
PROMPT 2 3 "Commessa "
|
||||||
USE LF_COMMESSE
|
USE LF_COMMESSE
|
||||||
INPUT CODCMS F_DA_CODCMS
|
INPUT CODCMS F_CODCMS
|
||||||
DISPLAY "Codice@20" CODCMS
|
DISPLAY "Codice@20" CODCMS
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
DISPLAY "Descrizione@50" DESCRIZ
|
||||||
OUTPUT F_DA_CODCMS CODCMS
|
OUTPUT F_CODCMS CODCMS
|
||||||
OUTPUT F_DA_DESCMS DESCRIZ
|
OUTPUT F_DESCMS DESCRIZ
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DA_DESCMS 50 37
|
STRING F_DESCMS 50 42
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 38 3 ""
|
PROMPT 34 3 ""
|
||||||
USE LF_COMMESSE KEY 2
|
USE LF_COMMESSE KEY 2
|
||||||
INPUT DESCRIZ F_DA_DESCMS
|
INPUT DESCRIZ F_DESCMS
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
DISPLAY "Descrizione@50" DESCRIZ
|
||||||
DISPLAY "Codice@20" CODCMS
|
DISPLAY "Codice@20" CODCMS
|
||||||
COPY OUTPUT F_DA_CODCMS
|
COPY OUTPUT F_CODCMS
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_A_CODCMS 20
|
STRING F_CODCDC 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "A commessa "
|
PROMPT 2 3 "CdC "
|
||||||
COPY USE F_DA_CODCMS
|
|
||||||
INPUT CODCMS F_A_CODCMS
|
|
||||||
DISPLAY "Codice@20" CODCMS
|
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
|
||||||
OUTPUT F_A_CODCMS CODCMS
|
|
||||||
OUTPUT F_A_DESCMS DESCRIZ
|
|
||||||
CHECKTYPE NORMAL
|
|
||||||
GROUP 1
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_A_DESCMS 50 37
|
|
||||||
BEGIN
|
|
||||||
PROMPT 38 4 ""
|
|
||||||
COPY USE F_DA_DESCMS
|
|
||||||
INPUT DESCRIZ F_A_DESCMS
|
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
|
||||||
DISPLAY "Codice@20" CODCMS
|
|
||||||
COPY OUTPUT F_A_CODCMS
|
|
||||||
CHECKTYPE NORMAL
|
|
||||||
GROUP 1
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_DA_CODCDC 20
|
|
||||||
BEGIN
|
|
||||||
PROMPT 2 3 "Da CdC "
|
|
||||||
USE LF_CDC
|
USE LF_CDC
|
||||||
INPUT CODCOSTO F_DA_CODCDC
|
INPUT CODCOSTO F_CODCDC
|
||||||
DISPLAY "Codice@20" CODCOSTO
|
DISPLAY "Codice@20" CODCOSTO
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
DISPLAY "Descrizione@50" DESCRIZ
|
||||||
OUTPUT F_DA_CODCDC CODCOSTO
|
OUTPUT F_CODCDC CODCOSTO
|
||||||
OUTPUT F_DA_DESCDC DESCRIZ
|
OUTPUT F_DESCDC DESCRIZ
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DA_DESCDC 50 42
|
STRING F_DESCDC 50 47
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 3 ""
|
PROMPT 29 3 ""
|
||||||
USE LF_CDC KEY 2
|
USE LF_CDC KEY 2
|
||||||
INPUT DESCRIZ F_DA_DESCDC
|
INPUT DESCRIZ F_DESCDC
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
DISPLAY "Descrizione@50" DESCRIZ
|
||||||
DISPLAY "Codice@20" CODCOSTO
|
DISPLAY "Codice@20" CODCOSTO
|
||||||
COPY OUTPUT F_DA_CODCDC
|
COPY OUTPUT F_CODCDC
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_A_CODCDC 20
|
GROUPBOX -1 78 4
|
||||||
BEGIN
|
|
||||||
PROMPT 2 4 "A CdC "
|
|
||||||
COPY USE F_DA_CODCDC
|
|
||||||
INPUT CODCOSTO F_A_CODCDC
|
|
||||||
DISPLAY "Codice@20" CODCOSTO
|
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
|
||||||
OUTPUT F_A_CODCDC CODCOSTO
|
|
||||||
OUTPUT F_A_DESCDC DESCRIZ
|
|
||||||
CHECKTYPE NORMAL
|
|
||||||
GROUP 2
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_A_DESCDC 50 42
|
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 4 ""
|
PROMPT 1 5 "@bFiltri su anno / mese"
|
||||||
COPY USE F_DA_DESCDC
|
|
||||||
INPUT DESCRIZ F_A_DESCDC
|
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
|
||||||
DISPLAY "Codice@20" CODCOSTO
|
|
||||||
COPY OUTPUT F_A_CODCDC
|
|
||||||
CHECKTYPE NORMAL
|
|
||||||
GROUP 2
|
|
||||||
END
|
|
||||||
|
|
||||||
GROUPBOX -1 78 3
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 6 "@bFiltri su anno / mese"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
LISTBOX F_TIPOSTAMPA 10
|
LISTBOX F_TIPOSTAMPA 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Tipo di stampa "
|
PROMPT 2 6 "Tipo di stampa "
|
||||||
ITEM "M|Mensile"
|
ITEM "M|Mensile"
|
||||||
MESSAGE SHOW,F_MESE
|
MESSAGE SHOW,F_DA_MESE|SHOW,F_A_MESE
|
||||||
ITEM "A|Annuale"
|
ITEM "A|Annuale"
|
||||||
MESSAGE HIDE,F_MESE
|
MESSAGE HIDE,F_DA_MESE|HIDE,F_A_MESE
|
||||||
FLAGS "Z"
|
FLAGS "Z"
|
||||||
FIELD #TIPOSTAMPA
|
FIELD #TIPOSTAMPA
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ANNO 4
|
NUMBER F_ANNO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 35 7 "Anno "
|
PROMPT 2 7 "Anno "
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FLAGS "A"
|
FLAGS "A"
|
||||||
FIELD #ANNO
|
FIELD #ANNO
|
||||||
|
NUM_EXPR (#F_A_MESE>=#F_DA_MESE)
|
||||||
|
WARNING "Il mese finale deve essere uguale o successivo a quello iniziale"
|
||||||
END
|
END
|
||||||
|
|
||||||
LISTBOX F_MESE 10
|
LISTBOX F_DA_MESE 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 7 "Mese "
|
PROMPT 17 7 "Da mese "
|
||||||
FLAGS "M"
|
FLAGS "AM"
|
||||||
FIELD #MESE
|
END
|
||||||
|
|
||||||
|
LISTBOX F_A_MESE 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 7 "A Mese "
|
||||||
|
FLAGS "AM"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 "@bCommesse da considerare separatamente"
|
PROMPT 1 9 "@bCommesse da considerare separatamente"
|
||||||
GROUP 1
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_RIGHE 78 -2
|
SPREADSHEET F_RIGHE 78 -2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 11 ""
|
PROMPT 1 10 ""
|
||||||
ITEM "Codice@20"
|
ITEM "Codice@20"
|
||||||
ITEM "Descrizione@50"
|
ITEM "Descrizione@50"
|
||||||
GROUP 1
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING DLG_PROFILE 50
|
STRING DLG_PROFILE 50
|
||||||
|
Loading…
x
Reference in New Issue
Block a user