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:
luca 2011-06-15 13:29:27 +00:00
parent e777a89daf
commit 65e0251976
7 changed files with 234 additions and 229 deletions

View File

@ -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();
} }

View File

@ -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

View File

@ -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"

View File

@ -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);

View File

@ -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();
} }
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////

View File

@ -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

View File

@ -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