Patch level : 10.0 patch 808
Files correlati : Ricompilazione Demo : [ ] Commento : Rilevazione ore git-svn-id: svn://10.65.10.50/branches/R_10_00@20888 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
056f30451a
commit
253c8447ff
@ -175,7 +175,7 @@ void TDef_risoatt_msk::riempi_sheet()
|
|||||||
|
|
||||||
TString select;
|
TString select;
|
||||||
if (risoatt.full())
|
if (risoatt.full())
|
||||||
select << "(" << RILORE_TIPORA << "==" << risoatt << ")";
|
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
||||||
if (codice.full())
|
if (codice.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
@ -215,23 +215,12 @@ void TDef_risoatt_msk::riempi_sheet()
|
|||||||
query << "SELECT " << select << "\n";
|
query << "SELECT " << select << "\n";
|
||||||
|
|
||||||
TString fromto = RILORE_TIPO "=\"D\"";
|
TString fromto = RILORE_TIPO "=\"D\"";
|
||||||
if(risoatt != 'T')
|
|
||||||
|
if (anno > 0)
|
||||||
{
|
{
|
||||||
fromto << " " << RILORE_TIPORA << "=\"" << risoatt << "\" ";
|
fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
|
||||||
if(codice.full())
|
if (mese > 0)
|
||||||
{
|
fromto << " " << RILORE_MESE << "=\"" << mese << "\" ";
|
||||||
fromto << " " << RILORE_CODICE << "=\"" << codice << "\" ";
|
|
||||||
if(anno > 0)
|
|
||||||
{
|
|
||||||
fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
|
|
||||||
if(mese > 0)
|
|
||||||
{
|
|
||||||
fromto << " " << RILORE_MESE << "=\"" << mese << "\" ";
|
|
||||||
if(tpora.full())
|
|
||||||
fromto << " " << RILORE_TPORA << "=\"" << tpora << "\" ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
query << "FROM " << fromto << "\n"
|
query << "FROM " << fromto << "\n"
|
||||||
@ -377,7 +366,7 @@ void TDef_risoatt_msk::registra()
|
|||||||
|
|
||||||
get_row_anal_fields(riga, codcosto, codcms, codfase);
|
get_row_anal_fields(riga, codcosto, codcms, codfase);
|
||||||
|
|
||||||
rilroa.read('D', tipora, codice, anno, mese, 0, tpora, codcosto, codcms, codfase);
|
rilroa.read('D', anno, mese, 0, tipora, codice, tpora, codcosto, codcms, codfase);
|
||||||
if (qtaore == 0)
|
if (qtaore == 0)
|
||||||
rilroa.remove();
|
rilroa.remove();
|
||||||
else
|
else
|
||||||
@ -394,7 +383,12 @@ void TDef_risoatt_msk::registra()
|
|||||||
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
|
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
|
||||||
bool TDef_risoatt_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
bool TDef_risoatt_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
switch (f.dlg())
|
if (f.dlg() >= F_ANAL && f.dlg() <= F_ANAL+12)
|
||||||
|
{
|
||||||
|
if (e == fe_modify)
|
||||||
|
riempi_sheet();
|
||||||
|
}
|
||||||
|
switch (f.dlg())
|
||||||
{
|
{
|
||||||
case DLG_CERCA:
|
case DLG_CERCA:
|
||||||
if (e == fe_button)
|
if (e == fe_button)
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
#define F_MESE 302
|
#define F_MESE 302
|
||||||
#define F_TPORA 303
|
#define F_TPORA 303
|
||||||
#define F_RISOATT 304
|
#define F_RISOATT 304
|
||||||
#define F_CODICE 305
|
|
||||||
#define F_CODRIS 306
|
#define F_CODRIS 306
|
||||||
#define F_DESRIS 307
|
#define F_DESRIS 307
|
||||||
#define F_CODATT 308
|
#define F_CODATT 308
|
||||||
|
@ -64,11 +64,11 @@ LISTBOX F_RISOATT 1 12
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "@bTipo "
|
PROMPT 2 2 "@bTipo "
|
||||||
ITEM "T|Tutti"
|
ITEM "T|Tutti"
|
||||||
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
|
MESSAGE HIDE,1@|HIDE,2@
|
||||||
ITEM "R|Risorsa"
|
ITEM "R|Risorsa"
|
||||||
MESSAGE HIDE,1@|SHOW,2@|HIDE,3@
|
MESSAGE SHOW,1@|HIDE,2@
|
||||||
ITEM "A|Attrezzatura"
|
ITEM "A|Attrezzatura"
|
||||||
MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
MESSAGE HIDE,1@|SHOW,2@
|
||||||
FLAGS "Z"
|
FLAGS "Z"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ BEGIN
|
|||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_CODRIS CODTAB
|
OUTPUT F_CODRIS CODTAB
|
||||||
OUTPUT F_DESRIS S0
|
OUTPUT F_DESRIS S0
|
||||||
GROUP 2
|
GROUP 1
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -89,20 +89,19 @@ STRING F_DESRIS 50 27
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 2 ""
|
PROMPT 50 2 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
GROUP 2
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODATT 16
|
STRING F_CODATT 16
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 23 2 "Codice "
|
PROMPT 23 2 "Codice "
|
||||||
FIELD CODTAB[1,16]
|
|
||||||
USE ATR
|
USE ATR
|
||||||
INPUT CODTAB F_CODATT
|
INPUT CODTAB F_CODATT
|
||||||
DISPLAY "Codice@16" CODTAB
|
DISPLAY "Codice@16" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_CODATT CODTAB
|
OUTPUT F_CODATT CODTAB
|
||||||
OUTPUT F_DESATT S0
|
OUTPUT F_DESATT S0
|
||||||
GROUP 3
|
GROUP 2
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -110,7 +109,7 @@ STRING F_DESATT 50 27
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 2 ""
|
PROMPT 50 2 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
GROUP 3
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
@ -231,73 +230,73 @@ END
|
|||||||
STRING S_CDC1 20
|
STRING S_CDC1 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Cdc 1"
|
PROMPT 2 8 "Cdc 1"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC2 20
|
STRING S_CDC2 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Cdc 2"
|
PROMPT 2 8 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC3 20
|
STRING S_CDC3 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Cdc 2"
|
PROMPT 2 8 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC4 20
|
STRING S_CDC4 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Cdc 2"
|
PROMPT 2 8 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC5 20
|
STRING S_CDC5 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Cdc 2"
|
PROMPT 2 9 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC6 20
|
STRING S_CDC6 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Cdc 2"
|
PROMPT 2 9 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC7 20
|
STRING S_CDC7 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Cdc 2"
|
PROMPT 2 9 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC8 20
|
STRING S_CDC8 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Cdc 2"
|
PROMPT 2 9 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC9 20
|
STRING S_CDC9 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Cdc 2"
|
PROMPT 2 10 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC10 20
|
STRING S_CDC10 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Cdc 2"
|
PROMPT 2 10 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC11 20
|
STRING S_CDC11 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Cdc 2"
|
PROMPT 2 10 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CDC12 20
|
STRING S_CDC12 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Cdc 2"
|
PROMPT 2 10 "Cdc 2"
|
||||||
FLAGS "H"
|
FLAGS "HB"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER S_QTAORE 6
|
NUMBER S_QTAORE 6
|
||||||
|
@ -134,7 +134,6 @@ const real TRilevamento_prev_msk::proponi_costo(TToken_string& riga)
|
|||||||
return costo;
|
return costo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TRilevamento_prev_msk::get_anal_fields(TString & cdc, TString & cms, TString & fase)
|
void TRilevamento_prev_msk::get_anal_fields(TString & cdc, TString & cms, TString & fase)
|
||||||
{
|
{
|
||||||
TString val;
|
TString val;
|
||||||
@ -261,7 +260,7 @@ void TRilevamento_prev_msk::carica_default()
|
|||||||
|
|
||||||
TString select;
|
TString select;
|
||||||
if (risoatt.full())
|
if (risoatt.full())
|
||||||
query << "SELECT (" << RILORE_TIPORA << "==" << risoatt << ")";
|
query << "(" << RILORE_TIPORA << "==" << risoatt << ")";
|
||||||
if (codice.full())
|
if (codice.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
@ -301,23 +300,12 @@ void TRilevamento_prev_msk::carica_default()
|
|||||||
query << "SELECT " << select << "\n";
|
query << "SELECT " << select << "\n";
|
||||||
|
|
||||||
TString fromto = RILORE_TIPO "=\"D\" ";
|
TString fromto = RILORE_TIPO "=\"D\" ";
|
||||||
if(risoatt != 'T')
|
|
||||||
|
if (anno > 0)
|
||||||
{
|
{
|
||||||
fromto << " " << RILORE_TIPORA << "=\"" << risoatt << "\" ";
|
fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
|
||||||
if(codice.full())
|
if (damese > 0)
|
||||||
{
|
fromto << RILORE_MESE << "=\"" << damese << "\" ";
|
||||||
fromto << " " << RILORE_CODICE << "=\"" << codice << "\" ";
|
|
||||||
if(anno > 0)
|
|
||||||
{
|
|
||||||
fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
|
|
||||||
if(damese > 0)
|
|
||||||
{
|
|
||||||
fromto << RILORE_MESE << "=\"" << damese << "\" ";
|
|
||||||
if(tpora.full())
|
|
||||||
fromto << " " << RILORE_TPORA << "=\"" << tpora << "\" ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
query << "FROM " << fromto << "\n"
|
query << "FROM " << fromto << "\n"
|
||||||
@ -362,7 +350,11 @@ void TRilevamento_prev_msk::carica_default()
|
|||||||
void TRilevamento_prev_msk::riempi_sheet()
|
void TRilevamento_prev_msk::riempi_sheet()
|
||||||
{
|
{
|
||||||
//leggo dalla maschera i campi chiave di ricerca
|
//leggo dalla maschera i campi chiave di ricerca
|
||||||
const int anno = get_date(F_DADATA).year();
|
const int daanno = get_date(F_DADATA).year();
|
||||||
|
int aanno = get_date(F_ADATA).year();
|
||||||
|
|
||||||
|
if (aanno == 0)
|
||||||
|
aanno = 2100;
|
||||||
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
||||||
int damese = get_date(F_DADATA).month();
|
int damese = get_date(F_DADATA).month();
|
||||||
int amese = get_date(F_ADATA).month();
|
int amese = get_date(F_ADATA).month();
|
||||||
@ -385,67 +377,54 @@ void TRilevamento_prev_msk::riempi_sheet()
|
|||||||
|
|
||||||
TString select;
|
TString select;
|
||||||
if (risoatt.full())
|
if (risoatt.full())
|
||||||
select << "(" << RILORE_TIPORA << "==" << risoatt << ")";
|
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
||||||
if (codice.full())
|
if (codice.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "(" << RILORE_CODICE << "==\"" << codice << "\")";
|
select << "(" << RILORE_CODICE << "==\"" << codice << "\")";
|
||||||
}
|
}
|
||||||
if (anno > 0)
|
if (daanno > 0)
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "STR(" << RILORE_ANNO << "==" << anno << ")";
|
select << "STR(BETWEEN(" << RILORE_ANNO << "," << daanno << "," << aanno << "))";
|
||||||
}
|
}
|
||||||
if ( damese > 0 || amese > 0)
|
if ( damese > 0 || amese > 0)
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "(BETWEEN(MESE,\"" << damese << "\",\"" << amese << "\"))";
|
select << "(BETWEEN(" << RILORE_MESE << "," << damese << "," << amese << "))";
|
||||||
}
|
}
|
||||||
if (tpora.full())
|
if (tpora.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "(BETWEEN(" << RILORE_TPORA << ",\"" << tpora << "\",\"" << tpora << "\"))";
|
select << "(" << RILORE_TPORA << "==\"" << tpora << "\")";
|
||||||
}
|
}
|
||||||
if (codcosto.full())
|
if (codcosto.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "(BETWEEN(" << RILORE_CODCOSTO << ",\"" << codcosto << "\",\"" << codcosto << "\"))";
|
select << "(" << RILORE_CODCOSTO << "==\"" << codcosto << "\")";
|
||||||
}
|
}
|
||||||
if (codcms.full())
|
if (codcms.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "(BETWEEN(" << RILORE_CODCMS << ",\"" << codcms << "\",\"" << codcms << "\"))";
|
select << "(" << RILORE_CODCMS << "==\"" << codcms << "\")";
|
||||||
}
|
}
|
||||||
if (codfase.full())
|
if (codfase.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "(BETWEEN(" << RILORE_CODFASE << ",\"" << codfase << "\",\"" << codfase << "\"))";
|
select << "(" << RILORE_CODFASE << "==\"" << codfase << "\")";
|
||||||
}
|
}
|
||||||
if (select.full())
|
if (select.full())
|
||||||
query << "SELECT " << select << "\n";
|
query << "SELECT " << select << "\n";
|
||||||
|
|
||||||
TString fromto = RILORE_TIPO "=\"P\" ";
|
TString from = RILORE_TIPO "=\"P\" ";
|
||||||
if(risoatt != 'T')
|
TString to = from;
|
||||||
{
|
|
||||||
fromto << " " << RILORE_TIPORA << "=\"" << risoatt << "\" ";
|
|
||||||
if(codice.full())
|
|
||||||
{
|
|
||||||
fromto << " " << RILORE_CODICE << "=\"" << codice << "\" ";
|
|
||||||
if(anno > 0)
|
|
||||||
{
|
|
||||||
fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
|
|
||||||
if(damese > 0)
|
|
||||||
{
|
|
||||||
fromto << RILORE_MESE << "=\"" << damese << "\" ";
|
|
||||||
if(tpora.full())
|
|
||||||
fromto << " " << RILORE_TPORA << "=\"" << tpora << "\" ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
query << "FROM " << fromto << "\n"
|
if (daanno > 0)
|
||||||
<< "TO " << fromto;
|
from << " " << RILORE_ANNO << "=\"" << daanno << "\" ";
|
||||||
|
to << " " << RILORE_ANNO << "=\"" << aanno << "\" ";
|
||||||
|
|
||||||
|
query << "FROM " << from << "\n"
|
||||||
|
<< "TO " << to;
|
||||||
|
|
||||||
TISAM_recordset def(query);
|
TISAM_recordset def(query);
|
||||||
|
|
||||||
@ -593,19 +572,16 @@ void TRilevamento_prev_msk::registra()
|
|||||||
const int qtaore = riga.get_int(sheet.cid2index(S_QTAORE));
|
const int qtaore = riga.get_int(sheet.cid2index(S_QTAORE));
|
||||||
const TString& tmp = riga.get(sheet.cid2index(S_COSTO));
|
const TString& tmp = riga.get(sheet.cid2index(S_COSTO));
|
||||||
const real costo(tmp);
|
const real costo(tmp);
|
||||||
const int mese = adata.month();
|
|
||||||
|
|
||||||
get_row_anal_fields(riga, codcosto, codcms, codfase);
|
get_row_anal_fields(riga, codcosto, codcms, codfase);
|
||||||
|
|
||||||
rilroa.read('P', tipora, codice, adata.year(), mese, 0, tpora);
|
rilroa.read('P', dadata.year(), dadata.month(), dadata.day(), tipora, codice, tpora, codcosto, codcms, codfase);
|
||||||
|
|
||||||
if(qtaore == 0)
|
if(qtaore == 0)
|
||||||
rilroa.remove();
|
rilroa.remove();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rilroa.set_codcosto(codcosto);
|
rilroa.set_dadata(dadata);
|
||||||
rilroa.set_codcms(codcms);
|
|
||||||
rilroa.set_codfase(codfase);
|
|
||||||
rilroa.set_adata(adata);
|
rilroa.set_adata(adata);
|
||||||
rilroa.set_qtaore(qtaore);
|
rilroa.set_qtaore(qtaore);
|
||||||
rilroa.set_costo(costo);
|
rilroa.set_costo(costo);
|
||||||
@ -619,6 +595,11 @@ void TRilevamento_prev_msk::registra()
|
|||||||
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
|
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
|
||||||
bool TRilevamento_prev_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
bool TRilevamento_prev_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
|
if (f.dlg() >= F_ANAL && f.dlg() <= F_ANAL+12)
|
||||||
|
{
|
||||||
|
if (e == fe_modify)
|
||||||
|
riempi_sheet();
|
||||||
|
}
|
||||||
switch (f.dlg())
|
switch (f.dlg())
|
||||||
{
|
{
|
||||||
case DLG_DEFAULT:
|
case DLG_DEFAULT:
|
||||||
@ -680,6 +661,13 @@ bool TRilevamento_prev_msk::on_field_event(TOperable_field& f, TField_event e, l
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case F_RISOATT:
|
||||||
|
case F_CODRIS:
|
||||||
|
case F_CODATT:
|
||||||
|
case F_TPORA:
|
||||||
|
if (e == fe_modify)
|
||||||
|
riempi_sheet();
|
||||||
|
break;
|
||||||
case F_SHEET:
|
case F_SHEET:
|
||||||
if (e == se_query_add)
|
if (e == se_query_add)
|
||||||
{
|
{
|
||||||
|
@ -98,7 +98,6 @@ END
|
|||||||
STRING F_CODATT 16
|
STRING F_CODATT 16
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 23 2 "Codice "
|
PROMPT 23 2 "Codice "
|
||||||
FIELD CODTAB[1,16]
|
|
||||||
USE ATR
|
USE ATR
|
||||||
INPUT CODTAB F_CODATT
|
INPUT CODTAB F_CODATT
|
||||||
DISPLAY "Codice@16" CODTAB
|
DISPLAY "Codice@16" CODTAB
|
||||||
|
796
ci/ci2200.cpp
796
ci/ci2200.cpp
@ -12,6 +12,7 @@
|
|||||||
#include "cilib.h"
|
#include "cilib.h"
|
||||||
#include "ci2200a.h"
|
#include "ci2200a.h"
|
||||||
#include "rilore.h"
|
#include "rilore.h"
|
||||||
|
#include "../ca/calib01.h"
|
||||||
#include "../ve/velib.h"
|
#include "../ve/velib.h"
|
||||||
|
|
||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
@ -22,17 +23,25 @@
|
|||||||
class TRilevamento_cons_msk : public TAutomask
|
class TRilevamento_cons_msk : public TAutomask
|
||||||
{
|
{
|
||||||
int _qtaore;
|
int _qtaore;
|
||||||
char _mode;
|
short _cdc_sid, _cdc_lid;
|
||||||
|
short _cms_sid, _cms_lid;
|
||||||
|
short _fase_sid, _fase_lid;
|
||||||
|
short _scdc_sid, _scdc_lid;
|
||||||
|
short _scms_sid, _scms_lid;
|
||||||
|
short _sfase_sid, _sfase_lid;
|
||||||
|
char _edit_mode;
|
||||||
TDate _datasel;
|
TDate _datasel;
|
||||||
int _rigasel;
|
int _giorno;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const real proponi_costo(TToken_string& riga);
|
const real proponi_costo(TToken_string& riga);
|
||||||
|
void get_anal_fields(TString & cdc, TString & cms, TString & fase);
|
||||||
|
void get_row_anal_fields(TToken_string & row, TString & cdc, TString & cms, TString & fase);
|
||||||
|
void put_row_anal_fields(TToken_string & row, const TString & cdc, const TString & cms, const TString & fase);
|
||||||
void carica_default();
|
void carica_default();
|
||||||
|
|
||||||
void riempi_sheet();
|
void riempi_sheet();
|
||||||
void riempi_calendario(TISAM_recordset& def);
|
void riempi_calendario(const TString & query, const int anno, const int mese);
|
||||||
void riempi_risoatt(TDate& data, const char* codcosto, const char* codcms, const char* codfase);
|
void riempi_risoatt(int giorno);
|
||||||
void azzera_tutto();
|
void azzera_tutto();
|
||||||
void registra();
|
void registra();
|
||||||
|
|
||||||
@ -40,7 +49,6 @@ 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);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void esegui() const;
|
|
||||||
TRilevamento_cons_msk();
|
TRilevamento_cons_msk();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -83,7 +91,104 @@ const real TRilevamento_cons_msk::proponi_costo(TToken_string& riga)
|
|||||||
}
|
}
|
||||||
return costo;
|
return costo;
|
||||||
}
|
}
|
||||||
|
void TRilevamento_cons_msk::get_anal_fields(TString & cdc, TString & cms, TString & fase)
|
||||||
|
{
|
||||||
|
TString val;
|
||||||
|
|
||||||
|
cdc.cut(0);
|
||||||
|
if (_cdc_sid >= 0)
|
||||||
|
for ( short id = _cdc_sid; id <= _cdc_lid; id++)
|
||||||
|
{
|
||||||
|
val = get(id);
|
||||||
|
val.rpad(field(id).size());
|
||||||
|
cdc << val;
|
||||||
|
}
|
||||||
|
cdc.trim();
|
||||||
|
cms.cut(0);
|
||||||
|
if (_cms_sid >= 0)
|
||||||
|
for ( short id = _cms_sid; id <= _cms_lid; id++)
|
||||||
|
{
|
||||||
|
val = get(id);
|
||||||
|
val.rpad(field(id).size());
|
||||||
|
cms << val;
|
||||||
|
}
|
||||||
|
cms.trim();
|
||||||
|
fase.cut(0);
|
||||||
|
if (_fase_sid >= 0)
|
||||||
|
for ( short id = _fase_sid; id <= _fase_lid; id++)
|
||||||
|
{
|
||||||
|
val = get(id);
|
||||||
|
val.rpad(field(id).size());
|
||||||
|
fase << val;
|
||||||
|
}
|
||||||
|
fase.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TRilevamento_cons_msk::get_row_anal_fields(TToken_string & row, TString & cdc, TString & cms, TString & fase)
|
||||||
|
{
|
||||||
|
TSheet_field & s = sfield(F_SHEET);
|
||||||
|
TMask & m = s.sheet_mask();
|
||||||
|
TString val;
|
||||||
|
|
||||||
|
cdc.cut(0);
|
||||||
|
if (_scdc_sid >= 0)
|
||||||
|
for ( short id = _scdc_sid; id <= _scdc_lid; id++)
|
||||||
|
{
|
||||||
|
val = row.get(s.cid2index(id));
|
||||||
|
val.rpad(m.field(id).size());
|
||||||
|
cdc << val;
|
||||||
|
}
|
||||||
|
cdc.trim();
|
||||||
|
cms.cut(0);
|
||||||
|
if (_scms_sid >= 0)
|
||||||
|
for ( short id = _scms_sid; id <= _scms_lid; id++)
|
||||||
|
{
|
||||||
|
val = row.get(s.cid2index(id));
|
||||||
|
val.rpad(m.field(id).size());
|
||||||
|
cms << val;
|
||||||
|
}
|
||||||
|
cms.trim();
|
||||||
|
fase.cut(0);
|
||||||
|
if (_sfase_sid >= 0)
|
||||||
|
for ( short id = _sfase_sid; id <= _sfase_lid; id++)
|
||||||
|
{
|
||||||
|
val = row.get(s.cid2index(id));
|
||||||
|
val.rpad(m.field(id).size());
|
||||||
|
fase << val;
|
||||||
|
}
|
||||||
|
fase.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TRilevamento_cons_msk::put_row_anal_fields(TToken_string & row, const TString & cdc, const TString & cms, const TString & fase)
|
||||||
|
{
|
||||||
|
TSheet_field & s = sfield(F_SHEET);
|
||||||
|
TMask & m = s.sheet_mask();
|
||||||
|
int pos = 0;
|
||||||
|
|
||||||
|
if (_scdc_sid >= 0)
|
||||||
|
for (short id = _scdc_sid; id <= _scdc_lid; id++)
|
||||||
|
{
|
||||||
|
const int len = m.field(id).size();
|
||||||
|
row.add(cdc.mid(pos, len), s.cid2index(id));
|
||||||
|
pos += len;
|
||||||
|
}
|
||||||
|
pos = 0;
|
||||||
|
if (_scms_sid >= 0)
|
||||||
|
for (short id = _scms_sid; id <= _scms_lid; id++)
|
||||||
|
{
|
||||||
|
const int len = m.field(id).size();
|
||||||
|
row.add(cms.mid(pos, len), s.cid2index(id));
|
||||||
|
pos += len;
|
||||||
|
}
|
||||||
|
pos = 0;
|
||||||
|
if (_sfase_sid >= 0)
|
||||||
|
for (short id = _sfase_sid; id <= _sfase_lid; id++)
|
||||||
|
{
|
||||||
|
const int len = m.field(id).size();
|
||||||
|
row.add(fase.mid(pos, len), s.cid2index(id));
|
||||||
|
pos += len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TRilevamento_cons_msk::carica_default()
|
void TRilevamento_cons_msk::carica_default()
|
||||||
{
|
{
|
||||||
@ -92,241 +197,24 @@ void TRilevamento_cons_msk::carica_default()
|
|||||||
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
||||||
const int mese = get_int(F_MESE);
|
const int mese = get_int(F_MESE);
|
||||||
const TString4 tpora = get(F_TPORA);
|
const TString4 tpora = get(F_TPORA);
|
||||||
const TString80 codcosto = get(F_CODCOSTO);
|
TString80 codcosto;
|
||||||
const TString80 codcms = get(F_CODCMS);
|
TString80 codcms;
|
||||||
const TString16 codfase = get(F_CODFASE);
|
TString16 codfase;
|
||||||
TString16 codice;
|
TString16 codice;
|
||||||
|
TString query;
|
||||||
|
TString select;
|
||||||
|
|
||||||
switch(get(F_RISOATT)[0])
|
switch(get(F_RISOATT)[0])
|
||||||
{
|
{
|
||||||
case 'R': codice = get(F_CODRIS); break;
|
case 'R': codice = get(F_CODRIS); break;
|
||||||
case 'A': codice = get(F_CODATT); break;
|
case 'A': codice = get(F_CODATT); break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
|
|
||||||
TString query;
|
query << "USE " << LF_RILORE << "\n" ;
|
||||||
query << "USE " << LF_RILORE << "\n"
|
|
||||||
<< "SELECT (" << RILORE_TIPORA << "==\"" << risoatt << "\")&&"
|
|
||||||
<< "(" << RILORE_CODICE << "==\"" << codice << "\")&&"
|
|
||||||
<< "STR(" << RILORE_ANNO << "==" << anno << ")&&"
|
|
||||||
<< "STR(" << RILORE_MESE << "==" << mese << ")&&"
|
|
||||||
<< "(" << RILORE_TPORA << "==\"" << tpora << "\")&&"
|
|
||||||
<< "(" << RILORE_CODCOSTO << "==\"" << codcosto << "\")&&"
|
|
||||||
<< "(" << RILORE_CODCMS << "==\"" << codcms << "\")&&"
|
|
||||||
<< "(" << RILORE_CODFASE << "==\"" << codfase << "\")\n";
|
|
||||||
|
|
||||||
TString fromto = RILORE_TIPO "=\"D\" ";
|
|
||||||
if(risoatt != 'T')
|
|
||||||
{
|
|
||||||
fromto << " " << RILORE_TIPORA << "=\"" << risoatt << "\" ";
|
|
||||||
if(codice.full())
|
|
||||||
{
|
|
||||||
fromto << " " << RILORE_CODICE << "=\"" << codice << "\" ";
|
|
||||||
if(anno > 0)
|
|
||||||
{
|
|
||||||
fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
|
|
||||||
if(mese > 0)
|
|
||||||
{
|
|
||||||
fromto << RILORE_MESE << "=\"" << mese << "\" ";
|
|
||||||
if(tpora.full())
|
|
||||||
fromto << " " << RILORE_TPORA << "=\"" << tpora << "\" ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TISAM_recordset def(query);
|
|
||||||
riempi_calendario(def);
|
|
||||||
}
|
|
||||||
|
|
||||||
//RIEMPI_CALENDARIO: coloro le celle dello sheet calendario secondo le festività e i giorni occupati
|
|
||||||
void TRilevamento_cons_msk::riempi_calendario(TISAM_recordset& def)
|
|
||||||
{
|
|
||||||
const int anno = get_int(F_ANNO);
|
|
||||||
const int mese = atoi(get(F_MESE));
|
|
||||||
TSheet_field& calendario = sfield(F_CALENDARIO);
|
|
||||||
calendario.destroy();
|
|
||||||
TSheet_field& sheet = sfield(F_SHEET);
|
|
||||||
sheet.destroy();
|
|
||||||
|
|
||||||
//se non ho selezionato un mese valido, svuoto lo sheet e non faccio nient'altro
|
|
||||||
if(mese == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
//abilito per default tutte le colonne del calendario
|
|
||||||
for(int i = 1; i <= 31; i++)
|
|
||||||
{
|
|
||||||
short cid = C_CODFASE;
|
|
||||||
cid += i;
|
|
||||||
calendario.enable_column(calendario.cid2index(cid));
|
|
||||||
}
|
|
||||||
|
|
||||||
//disabilita tutte le colonne dal giorno successivo alla fine del mese in poi
|
|
||||||
TDate date(1, mese, anno);
|
|
||||||
date.set_end_month();
|
|
||||||
int giorno = date.day(); giorno++;
|
|
||||||
|
|
||||||
for(giorno; giorno <= 31; giorno++)
|
|
||||||
{
|
|
||||||
short cid = C_CODFASE;
|
|
||||||
cid += giorno;
|
|
||||||
calendario.enable_column(calendario.cid2index(cid), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
TAssoc_array commesse;
|
|
||||||
int idriga = 0;
|
|
||||||
|
|
||||||
//scorro il recordset, aggiungo una riga allo sheet per ogni chiave analitica che trovo e coloro di blu
|
|
||||||
//tutte le celle che corrispondono a una data interessata da qualcosa
|
|
||||||
for(bool ok = def.move_first(); ok; ok = def.move_next())
|
|
||||||
{
|
|
||||||
TRilevamento_ore rilore(def.cursor()->curr());
|
|
||||||
TToken_string com;
|
|
||||||
com.add(rilore.codcosto());
|
|
||||||
com.add(rilore.codcms());
|
|
||||||
com.add(rilore.codfase());
|
|
||||||
|
|
||||||
if(!commesse.is_key(com))
|
|
||||||
{
|
|
||||||
TString4 tmp; tmp << idriga++;
|
|
||||||
commesse.add(com, tmp);
|
|
||||||
calendario.row(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
TDate data = rilore.dadata();
|
|
||||||
|
|
||||||
int cid = C_CODFASE;
|
|
||||||
cid += data.day();
|
|
||||||
|
|
||||||
TToken_string& row = calendario.row(commesse.get_int(com));
|
|
||||||
row.add(rilore.codcosto(), calendario.cid2index(C_CODCOSTO));
|
|
||||||
row.add(rilore.codcms(), calendario.cid2index(C_CODCMS));
|
|
||||||
row.add(rilore.codfase(), calendario.cid2index(C_CODFASE));
|
|
||||||
|
|
||||||
if(_mode == 'F')
|
|
||||||
{
|
|
||||||
calendario.set_back_and_fore_color(COLOR_DKBLUE, COLOR_DKBLUE, commesse.get_int(com), calendario.cid2index(cid));
|
|
||||||
row.add('P', calendario.cid2index(cid));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//su ogni riga dello sheet coloro di rosso le festività
|
|
||||||
FOR_EACH_SHEET_ROW(calendario, r, riga)
|
|
||||||
{
|
|
||||||
TToken_string& row = calendario.row(r);
|
|
||||||
TDate mesesel(1, mese, anno); --mesesel;
|
|
||||||
for(mesesel; ++mesesel; mesesel.is_end_month())
|
|
||||||
{
|
|
||||||
if(mesesel.month() > mese)
|
|
||||||
{
|
|
||||||
calendario.force_update();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
short cid = C_CODFASE;
|
|
||||||
cid += mesesel.day();
|
|
||||||
const TString4 cella = row.get(calendario.cid2index(cid));
|
|
||||||
if(cella.empty())
|
|
||||||
{
|
|
||||||
if(mesesel.is_holiday())
|
|
||||||
calendario.set_back_and_fore_color(COLOR_DKRED, COLOR_DKRED, r, calendario.cid2index(cid));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
row.add("", calendario.cid2index(cid));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void TRilevamento_cons_msk::riempi_risoatt(TDate& data, const char* codcosto, const char* codcms, const char* codfase)
|
|
||||||
{
|
|
||||||
TSheet_field& sheet = sfield(F_SHEET);
|
|
||||||
sheet.destroy();
|
|
||||||
|
|
||||||
//leggo dalla maschera i campi chiave di ricerca
|
|
||||||
const int anno = get_int(F_ANNO);
|
|
||||||
const TString4 risoatt = "";
|
|
||||||
const TString4 mese = get(F_MESE);
|
|
||||||
const TString4 tpora = get(F_TPORA);
|
|
||||||
|
|
||||||
//preparo la query
|
|
||||||
TString query;
|
|
||||||
|
|
||||||
if(_mode == 'F')
|
|
||||||
query << "USE RILORE\n"
|
|
||||||
<< "SELECT (" << RILORE_TIPORA << "==\"" << risoatt << "\")&&"
|
|
||||||
<< "STR(" << RILORE_ANNO << "==" << anno << ")&&"
|
|
||||||
<< "STR(" << RILORE_MESE << "==" << mese << ")&&"
|
|
||||||
<< "(" << RILORE_TPORA << "==\"" << tpora << "\")&&"
|
|
||||||
<< "(" << RILORE_CODCOSTO << "==\"" << codcosto << "\")&&"
|
|
||||||
<< "(" << RILORE_CODCMS << "==\"" << codcms << "\")&&"
|
|
||||||
<< "(" << RILORE_CODFASE << "==\"" << codfase << "\")&&"
|
|
||||||
<< "(BETWEEN(" << RILORE_DADATA << ",#DATA,#DATA))\n"
|
|
||||||
<< "FROM " << RILORE_TIPO << "=\"C\"\n"
|
|
||||||
<< "TO " << RILORE_TIPO << "=\"C\"";
|
|
||||||
else
|
|
||||||
query << "USE " << LF_RILORE << "\n"
|
|
||||||
<< "SELECT (" << RILORE_TIPORA << "==\"" << risoatt << "\")&&"
|
|
||||||
<< "STR(" << RILORE_ANNO << "==" << anno << ")&&"
|
|
||||||
<< "STR(" << RILORE_MESE << "==" << mese << ")&&"
|
|
||||||
<< "(" << RILORE_TPORA << "==\"" << tpora << "\")&&"
|
|
||||||
<< "(" << RILORE_CODCOSTO << "==\"" << codcosto << "\")&&"
|
|
||||||
<< "(" << RILORE_CODCMS << "==\"" << codcms << "\")&&"
|
|
||||||
<< "(" << RILORE_CODFASE << "==\"" << codfase << "\")\n"
|
|
||||||
<< "FROM " << RILORE_TIPO << "=\"D\"\n"
|
|
||||||
<< "TO " << RILORE_TIPO << "=\"D\"";
|
|
||||||
|
|
||||||
TISAM_recordset def(query);
|
|
||||||
def.set_var("#DATA", data);
|
|
||||||
|
|
||||||
//riempio lo sheet con i dati che soddisfano il filtro preparato prima
|
|
||||||
for(bool ok = def.move_first(); ok; ok = def.move_next())
|
|
||||||
{
|
|
||||||
TRilevamento_ore rilore(def.cursor()->curr());
|
|
||||||
|
|
||||||
TToken_string& riga = sheet.row(-1);
|
|
||||||
riga.add(rilore.tipora(), sheet.cid2index(S_RISOATT));
|
|
||||||
switch(rilore.tipora())
|
|
||||||
{
|
|
||||||
case 'R': riga.add(rilore.codice(), sheet.cid2index(S_CODRIS)); break;
|
|
||||||
case 'A': riga.add(rilore.codice(), sheet.cid2index(S_CODATT)); break;
|
|
||||||
default : break;
|
|
||||||
}
|
|
||||||
riga.add(rilore.tpora(), sheet.cid2index(S_TPORA));
|
|
||||||
riga.add(rilore.qtaore(), sheet.cid2index(S_QTAORE));
|
|
||||||
riga.add(rilore.costo().string(), sheet.cid2index(S_COSTO));
|
|
||||||
sheet.check_row(sheet.items() - 1);
|
|
||||||
}
|
|
||||||
sheet.force_update();
|
|
||||||
}
|
|
||||||
|
|
||||||
//RIEMPI_SHEET: metodo che riempie lo sheet in base ai campi chiave
|
|
||||||
//compilati sulla maschera
|
|
||||||
void TRilevamento_cons_msk::riempi_sheet()
|
|
||||||
{
|
|
||||||
//leggo dalla maschera i campi chiave di ricerca
|
|
||||||
const int anno = get_int(F_ANNO);
|
|
||||||
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
|
||||||
const int mese = get_int(F_MESE);
|
|
||||||
const TString4 tpora = get(F_TPORA);
|
|
||||||
const TString80 codcosto = get(F_CODCOSTO);
|
|
||||||
const TString80 codcms = get(F_CODCMS);
|
|
||||||
const TString16 codfase = get(F_CODFASE);
|
|
||||||
TString16 codice;
|
|
||||||
switch(get(F_RISOATT)[0])
|
|
||||||
{
|
|
||||||
case 'T': codice = get(F_CODICE); break;
|
|
||||||
case 'R': codice = get(F_CODRIS); break;
|
|
||||||
case 'A': codice = get(F_CODATT); break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//preparo la query
|
|
||||||
TString query;
|
|
||||||
query << "USE " << LF_RILORE << "\n" ;
|
|
||||||
|
|
||||||
TString select;
|
|
||||||
if (risoatt.full())
|
if (risoatt.full())
|
||||||
select << "(" << RILORE_TIPORA << "==" << risoatt << ")";
|
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
||||||
if (codice.full())
|
if (codice.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
@ -345,52 +233,275 @@ void TRilevamento_cons_msk::riempi_sheet()
|
|||||||
if (tpora.full())
|
if (tpora.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "(BETWEEN(" << RILORE_TPORA << ",\"" << tpora << "\",\"" << tpora << "\"))";
|
select << "(" << RILORE_TPORA << "==\"" << tpora << "\")";
|
||||||
}
|
}
|
||||||
if (codcosto.full())
|
if (codcosto.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "(BETWEEN(" << RILORE_CODCOSTO << ",\"" << codcosto << "\",\"" << codcosto << "\"))";
|
select << "(" << RILORE_CODCOSTO << "==\"" << codcosto << "\")";
|
||||||
}
|
}
|
||||||
if (codcms.full())
|
if (codcms.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "(BETWEEN(" << RILORE_CODCMS << ",\"" << codcms << "\",\"" << codcms << "\"))";
|
select << "(" << RILORE_CODCMS << "==\"" << codcms << "\")";
|
||||||
}
|
}
|
||||||
if (codfase.full())
|
if (codfase.full())
|
||||||
{
|
{
|
||||||
if (select.full()) select << "&&";
|
if (select.full()) select << "&&";
|
||||||
select << "(BETWEEN(" << RILORE_CODFASE << ",\"" << codfase << "\",\"" << codfase << "\"))";
|
select << "(" << RILORE_CODFASE << "==\"" << codfase << "\")";
|
||||||
}
|
}
|
||||||
if (select.full())
|
if (select.full())
|
||||||
query << "SELECT " << select << "\n";
|
query << "SELECT " << select << "\n";
|
||||||
|
|
||||||
TString fromto = "TIPO=\"C\"";
|
TString fromto = RILORE_TIPO "=\"D\" ";
|
||||||
if(risoatt != 'T')
|
|
||||||
|
if (anno > 0)
|
||||||
|
{
|
||||||
|
fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
|
||||||
|
if (mese > 0)
|
||||||
|
fromto << RILORE_MESE << "=\"" << mese << "\" ";
|
||||||
|
}
|
||||||
|
riempi_calendario(query, anno, mese);
|
||||||
|
}
|
||||||
|
|
||||||
|
//RIEMPI_CALENDARIO: coloro le celle dello sheet calendario secondo le festività e i giorni occupati
|
||||||
|
void TRilevamento_cons_msk::riempi_calendario(const TString & query, const int anno, const int mese)
|
||||||
|
{
|
||||||
|
TSheet_field& calendario = sfield(F_CALENDARIO);
|
||||||
|
|
||||||
|
calendario.destroy();
|
||||||
|
sfield(F_SHEET).destroy();
|
||||||
|
|
||||||
|
TToken_string & row = calendario.row(-1);
|
||||||
|
TDate d(1, mese, anno); d.set_end_month();
|
||||||
|
const int end_month = d.day();
|
||||||
|
const short last_id = DAY2ID(end_month);
|
||||||
|
TBit_array fulldays;
|
||||||
|
TISAM_recordset recset(query);
|
||||||
|
|
||||||
|
//abilito per default tutte le colonne del calendario
|
||||||
|
for(short id = C_1; id <= C_31; id++)
|
||||||
|
calendario.enable_column(calendario.cid2index(id), id <= last_id ? true : false);
|
||||||
|
|
||||||
|
//scorro il recordset, aggiungo una riga allo sheet per ogni chiave analitica che trovo e coloro di blu
|
||||||
|
//tutte le celle che corrispondono a una data interessata da qualcosa
|
||||||
|
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
||||||
|
{
|
||||||
|
const int day = recset.get(RILORE_GIORNO).as_int();
|
||||||
|
|
||||||
|
fulldays.set(day);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(short id = C_1; id <= last_id; id++)
|
||||||
|
{
|
||||||
|
const int column = calendario.cid2index(id);
|
||||||
|
|
||||||
|
if (fulldays[ID2DAY(id)])
|
||||||
|
{
|
||||||
|
if (_edit_mode)
|
||||||
|
calendario.set_back_and_fore_color(COLOR_DKBLUE, COLOR_DKBLUE, 0, column); // coloro di blu le date con registrazioni
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (TDate(ID2DAY(id), mese, anno).is_holiday())
|
||||||
|
calendario.set_back_and_fore_color(COLOR_DKRED, COLOR_DKRED, 0, column); // coloro di rosso le festività
|
||||||
|
row.add(' ', column);
|
||||||
|
}
|
||||||
|
calendario.force_update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TRilevamento_cons_msk::riempi_risoatt(int giorno)
|
||||||
|
{
|
||||||
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
|
sheet.destroy();
|
||||||
|
|
||||||
|
//leggo dalla maschera i campi chiave di ricerca
|
||||||
|
const int anno = get_int(F_ANNO);
|
||||||
|
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
||||||
|
const int mese = get_int(F_MESE);
|
||||||
|
const TString4 tpora = get(F_TPORA);
|
||||||
|
TString80 codcosto;
|
||||||
|
TString80 codcms;
|
||||||
|
TString16 codfase;
|
||||||
|
TString16 codice;
|
||||||
|
TString query;
|
||||||
|
TString select;
|
||||||
|
|
||||||
|
switch(get(F_RISOATT)[0])
|
||||||
{
|
{
|
||||||
fromto << " TIPORA=\"" << risoatt << "\"";
|
case 'R': codice = get(F_CODRIS); break;
|
||||||
if(codice.full())
|
case 'A': codice = get(F_CODATT); break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
|
//preparo la query
|
||||||
|
|
||||||
|
query << "USE " << LF_RILORE << "\n" ;
|
||||||
|
if (risoatt.full())
|
||||||
|
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
||||||
|
if (codice.full())
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "(" << RILORE_CODICE << "==\"" << codice << "\")";
|
||||||
|
}
|
||||||
|
if (anno > 0)
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "STR(" << RILORE_ANNO << "==" << anno << ")";
|
||||||
|
}
|
||||||
|
if (mese > 0)
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "STR(" RILORE_MESE << "==" << mese << ")";
|
||||||
|
}
|
||||||
|
if (_edit_mode && giorno > 0)
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "STR(" RILORE_GIORNO << "==" << giorno << ")";
|
||||||
|
}
|
||||||
|
if (tpora.full())
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "(" << RILORE_TPORA << "==\"" << tpora << "\")";
|
||||||
|
}
|
||||||
|
if (codcosto.full())
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "(" << RILORE_CODCOSTO << "==\"" << codcosto << "\")";
|
||||||
|
}
|
||||||
|
if (codcms.full())
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "(" << RILORE_CODCMS << "==\"" << codcms << "\")";
|
||||||
|
}
|
||||||
|
if (codfase.full())
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "(" << RILORE_CODFASE << "==\"" << codfase << "\")";
|
||||||
|
}
|
||||||
|
if (select.full())
|
||||||
|
query << "SELECT " << select << "\n";
|
||||||
|
|
||||||
|
TString fromto = RILORE_TIPO;
|
||||||
|
|
||||||
|
if (_edit_mode)
|
||||||
|
fromto << "=\"C\"";
|
||||||
|
else
|
||||||
|
fromto << "=\"D\"";
|
||||||
|
if (anno > 0)
|
||||||
|
{
|
||||||
|
fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
|
||||||
|
if (mese > 0)
|
||||||
{
|
{
|
||||||
fromto << " CODICE=\"" << codice << "\"";
|
fromto << RILORE_MESE << "=\"" << mese << "\" ";
|
||||||
if(anno > 0)
|
if (_edit_mode && giorno > 0)
|
||||||
{
|
fromto << RILORE_GIORNO << "=\"" << giorno << "\" ";
|
||||||
fromto << " ANNO=\"" << anno << "\"";
|
|
||||||
if(mese > 0)
|
|
||||||
{
|
|
||||||
fromto << " MESE=\"" << mese << "\"";
|
|
||||||
if(tpora.full())
|
|
||||||
fromto << " TPORA=\"" << tpora << "\"";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
query << "FROM " << fromto << "\n"
|
query << "FROM " << fromto << "\n"
|
||||||
<< "TO " << fromto;
|
<< "TO " << fromto;
|
||||||
|
|
||||||
TISAM_recordset def(query);
|
TISAM_recordset def(query);
|
||||||
|
|
||||||
riempi_calendario(def);
|
//riempio lo sheet con i dati che soddisfano il filtro preparato prima
|
||||||
|
for(bool ok = def.move_first(); ok; ok = def.move_next())
|
||||||
|
{
|
||||||
|
TRilevamento_ore rilore(def.cursor()->curr());
|
||||||
|
|
||||||
|
TToken_string& riga = sheet.row(-1);
|
||||||
|
riga.add(rilore.tipora(), sheet.cid2index(S_RISOATT));
|
||||||
|
switch(rilore.tipora())
|
||||||
|
{
|
||||||
|
case 'R': riga.add(rilore.codice(), sheet.cid2index(S_CODRIS)); break;
|
||||||
|
case 'A': riga.add(rilore.codice(), sheet.cid2index(S_CODATT)); break;
|
||||||
|
default : break;
|
||||||
|
}
|
||||||
|
put_row_anal_fields(riga, rilore.codcosto(), rilore.codcms(), rilore.codfase());
|
||||||
|
riga.add(rilore.tpora(), sheet.cid2index(S_TPORA));
|
||||||
|
riga.add(rilore.qtaore(), sheet.cid2index(S_QTAORE));
|
||||||
|
riga.add(rilore.costo().string(), sheet.cid2index(S_COSTO));
|
||||||
|
sheet.check_row(sheet.items() - 1);
|
||||||
|
}
|
||||||
|
sheet.force_update();
|
||||||
|
}
|
||||||
|
|
||||||
|
//RIEMPI_SHEET: metodo che riempie lo sheet in base ai campi chiave
|
||||||
|
//compilati sulla maschera
|
||||||
|
void TRilevamento_cons_msk::riempi_sheet()
|
||||||
|
{
|
||||||
|
//leggo dalla maschera i campi chiave di ricerca
|
||||||
|
const int anno = get_int(F_ANNO);
|
||||||
|
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
||||||
|
const int mese = get_int(F_MESE);
|
||||||
|
const TString4 tpora = get(F_TPORA);
|
||||||
|
TString80 codcosto;
|
||||||
|
TString80 codcms;
|
||||||
|
TString16 codfase;
|
||||||
|
TString16 codice;
|
||||||
|
TString query;
|
||||||
|
TString select;
|
||||||
|
|
||||||
|
switch(get(F_RISOATT)[0])
|
||||||
|
{
|
||||||
|
case 'R': codice = get(F_CODRIS); break;
|
||||||
|
case 'A': codice = get(F_CODATT); break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
|
||||||
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
|
|
||||||
|
//preparo la query
|
||||||
|
query << "USE " << LF_RILORE << "\n" ;
|
||||||
|
if (risoatt.full())
|
||||||
|
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
||||||
|
if (codice.full())
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "(" << RILORE_CODICE << "==\"" << codice << "\")";
|
||||||
|
}
|
||||||
|
if (anno > 0)
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "STR(" << RILORE_ANNO << "==" << anno << ")";
|
||||||
|
}
|
||||||
|
if (mese > 0)
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "STR(" RILORE_MESE << "==" << mese << ")";
|
||||||
|
}
|
||||||
|
if (tpora.full())
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "(" << RILORE_TPORA << "==\"" << tpora << "\")";
|
||||||
|
}
|
||||||
|
if (codcosto.full())
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "(" << RILORE_CODCOSTO << "==\"" << codcosto << "\")";
|
||||||
|
}
|
||||||
|
if (codcms.full())
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "(" << RILORE_CODCMS << "==\"" << codcms << "\")";
|
||||||
|
}
|
||||||
|
if (codfase.full())
|
||||||
|
{
|
||||||
|
if (select.full()) select << "&&";
|
||||||
|
select << "(" << RILORE_CODFASE << "==\"" << codfase << "\")";
|
||||||
|
}
|
||||||
|
if (select.full())
|
||||||
|
query << "SELECT " << select << "\n";
|
||||||
|
|
||||||
|
TString fromto = RILORE_TIPO "=\"C\"";
|
||||||
|
|
||||||
|
if (anno > 0)
|
||||||
|
{
|
||||||
|
fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
|
||||||
|
if (mese > 0)
|
||||||
|
fromto << RILORE_MESE << "=\"" << mese << "\" ";
|
||||||
|
}
|
||||||
|
query << "FROM " << fromto << "\n"
|
||||||
|
<< "TO " << fromto;
|
||||||
|
riempi_calendario(query, anno, mese);
|
||||||
}
|
}
|
||||||
|
|
||||||
//AZZERA_TUTTO: metodo che azzera il valore unitario di tutte le righe visualizzate sullo sheet
|
//AZZERA_TUTTO: metodo che azzera il valore unitario di tutte le righe visualizzate sullo sheet
|
||||||
@ -410,36 +521,30 @@ void TRilevamento_cons_msk::azzera_tutto()
|
|||||||
//vaoler pari a zero, e poi ricarica lo sheet
|
//vaoler pari a zero, e poi ricarica lo sheet
|
||||||
void TRilevamento_cons_msk::registra()
|
void TRilevamento_cons_msk::registra()
|
||||||
{
|
{
|
||||||
const TDate data = _datasel;
|
|
||||||
const int riga = _rigasel;
|
|
||||||
|
|
||||||
TSheet_field& calendario = sfield(F_CALENDARIO);
|
TSheet_field& calendario = sfield(F_CALENDARIO);
|
||||||
TToken_string& rigacal = calendario.row(riga);
|
|
||||||
TSheet_field& sheet = sfield(F_SHEET);
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
TRilevamento_ore rilroa;
|
TRilevamento_ore rilroa;
|
||||||
const int mese = get_int(F_MESE);
|
const int mese = get_int(F_MESE);
|
||||||
const int anno = get_int(F_ANNO);
|
const int anno = get_int(F_ANNO);
|
||||||
const int giorno = data.day();
|
TString80 codcosto;
|
||||||
|
TString80 codcms;
|
||||||
|
TString16 codfase;
|
||||||
|
|
||||||
FOR_EACH_SHEET_ROW(sheet, r, row)
|
FOR_EACH_SHEET_ROW(sheet, r, row)
|
||||||
{
|
{
|
||||||
TToken_string& riga = *(TToken_string*)row;
|
TToken_string& riga = *(TToken_string*)row;
|
||||||
const char tipora = riga.get_char(sheet.cid2index(S_RISOATT));
|
const char tipora = riga.get_char(sheet.cid2index(S_RISOATT));
|
||||||
const TString16 codice = tipora == 'R' ? riga.get(sheet.cid2index(S_CODRIS)) : riga.get(sheet.cid2index(S_CODATT));
|
const TString16 codice = tipora == 'R' ? riga.get(sheet.cid2index(S_CODRIS)) : riga.get(sheet.cid2index(S_CODATT));
|
||||||
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
|
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
|
||||||
const TString80 codcosto = rigacal.get(calendario.cid2index(C_CODCOSTO));
|
|
||||||
const TString80 codcms = rigacal.get(calendario.cid2index(C_CODCMS));
|
|
||||||
const TString80 codfase = rigacal.get(calendario.cid2index(C_CODFASE));
|
|
||||||
const int qtaore = riga.get_int(sheet.cid2index(S_QTAORE));
|
const int qtaore = riga.get_int(sheet.cid2index(S_QTAORE));
|
||||||
const real costo(riga.get(sheet.cid2index(S_COSTO)));
|
const real costo(riga.get(sheet.cid2index(S_COSTO)));
|
||||||
|
|
||||||
rilroa.read('C', tipora, codice, anno, mese, giorno, tpora);
|
get_row_anal_fields(riga, codcosto, codcms, codfase);
|
||||||
|
rilroa.read('C', anno, mese, _giorno, tipora, codice, tpora, codcosto, codcms, codfase);
|
||||||
if(qtaore == 0)
|
if(qtaore == 0)
|
||||||
rilroa.remove();
|
rilroa.remove();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rilroa.set_dadata(data);
|
|
||||||
rilroa.set_adata(data);
|
|
||||||
rilroa.set_qtaore(qtaore);
|
rilroa.set_qtaore(qtaore);
|
||||||
rilroa.set_costo(costo);
|
rilroa.set_costo(costo);
|
||||||
|
|
||||||
@ -447,6 +552,7 @@ void TRilevamento_cons_msk::registra()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
riempi_sheet();
|
riempi_sheet();
|
||||||
|
riempi_risoatt(_giorno);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TRilevamento_cons_msk::notify_focus_field(short id)
|
void TRilevamento_cons_msk::notify_focus_field(short id)
|
||||||
@ -454,52 +560,61 @@ void TRilevamento_cons_msk::notify_focus_field(short id)
|
|||||||
TMask::notify_focus_field(id);
|
TMask::notify_focus_field(id);
|
||||||
if(id == F_CALENDARIO)
|
if(id == F_CALENDARIO)
|
||||||
{
|
{
|
||||||
TSheet_field& calendario = sfield(id);
|
_giorno = sfield(id).current_column();
|
||||||
TToken_string& riga = calendario.row(calendario.selected());
|
riempi_risoatt(_giorno);
|
||||||
const int giorno = calendario.current_column() - calendario.cid2index(C_1);
|
|
||||||
TDate data(giorno, get_int(F_MESE), get_int(F_ANNO));
|
|
||||||
_datasel = data;
|
|
||||||
_rigasel = calendario.selected();
|
|
||||||
riempi_risoatt(data, riga.get(0), riga.get(1), riga.get(2));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
|
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
|
||||||
bool TRilevamento_cons_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
bool TRilevamento_cons_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
|
if (f.dlg() >= F_ANAL && f.dlg() <= F_ANAL+12)
|
||||||
|
{
|
||||||
|
if (e == fe_modify)
|
||||||
|
riempi_sheet();
|
||||||
|
}
|
||||||
switch (f.dlg())
|
switch (f.dlg())
|
||||||
{
|
{
|
||||||
case DLG_DEFAULT:
|
case DLG_DEFAULT:
|
||||||
if(e == fe_button)
|
if(e == fe_button)
|
||||||
{
|
{
|
||||||
_mode = 'D';
|
_edit_mode = false;
|
||||||
carica_default();
|
carica_default();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DLG_CERCA:
|
case DLG_CERCA:
|
||||||
if(e == fe_button)
|
if(e == fe_button)
|
||||||
{
|
{
|
||||||
_mode = 'F';
|
_edit_mode = true;
|
||||||
riempi_sheet();
|
riempi_sheet();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DLG_SAVEREC:
|
case DLG_SAVEREC:
|
||||||
if(e == fe_button)
|
if(e == fe_button)
|
||||||
{
|
{
|
||||||
_mode = 'S';
|
_edit_mode = true;
|
||||||
registra();
|
registra();
|
||||||
}
|
}
|
||||||
|
case F_ANNO:
|
||||||
|
case F_MESE:
|
||||||
|
case F_RISOATT:
|
||||||
|
case F_CODRIS:
|
||||||
|
case F_CODATT:
|
||||||
|
case F_TPORA:
|
||||||
|
if (e == fe_modify)
|
||||||
|
riempi_sheet();
|
||||||
|
break;
|
||||||
case S_RISOATT:
|
case S_RISOATT:
|
||||||
case S_CODRIS:
|
case S_CODRIS:
|
||||||
case S_CODATT:
|
case S_CODATT:
|
||||||
case S_TPORA:
|
case S_TPORA:
|
||||||
if(e == fe_modify)
|
if(e == fe_modify)
|
||||||
{
|
{
|
||||||
if(get(S_RISOATT).full() && (get(F_CODRIS).full() || get(F_CODRIS).full()) && get(S_TPORA).full())
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
{
|
TMask & sm = sheet.sheet_mask();
|
||||||
TSheet_field& sheet = sfield(F_SHEET);
|
|
||||||
|
if(sm.get(S_RISOATT).full() && (sm.get(S_CODRIS).full() || sm.get(S_CODATT).full()) && sm.get(S_TPORA).full())
|
||||||
proponi_costo(sheet.row(sheet.selected()));
|
proponi_costo(sheet.row(sheet.selected()));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
@ -507,13 +622,119 @@ bool TRilevamento_cons_msk::on_field_event(TOperable_field& f, TField_event e, l
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TRilevamento_cons_msk::esegui() const
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
TRilevamento_cons_msk::TRilevamento_cons_msk()
|
TRilevamento_cons_msk::TRilevamento_cons_msk()
|
||||||
: TAutomask("ci2200a")
|
: TAutomask("ci2200a")
|
||||||
{
|
{
|
||||||
|
const TMultilevel_code_info& fasinfo = ca_multilevel_code_info(LF_FASI);
|
||||||
|
TConfig& ini = ca_config();
|
||||||
|
TSheet_field & s = sfield(F_SHEET);
|
||||||
|
TMask & sm = s.sheet_mask();
|
||||||
|
int y = 3;
|
||||||
|
int sy = 8;
|
||||||
|
short dlg = F_ANAL; // id del primo campo da generare
|
||||||
|
short sdlg = S_CDC1 + 100; // id del primo campo da generare
|
||||||
|
|
||||||
|
_cdc_sid = _cdc_lid = _cms_sid = _cms_lid = _fase_sid = _fase_lid = -1;
|
||||||
|
_scdc_sid = _scdc_lid = _scms_sid = _scms_lid = _sfase_sid = _sfase_lid = -1;
|
||||||
|
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
const TString& level = ini.get("Level", NULL, i+1); // Legge il livello 1 o 2
|
||||||
|
|
||||||
|
if (level == "CDC") // Crea centro di costo
|
||||||
|
{
|
||||||
|
if (fasinfo.parent() == LF_CDC)
|
||||||
|
{
|
||||||
|
int h = ca_multilevel_code_info(LF_CDC).levels();
|
||||||
|
const int h1 = ca_create_fields_compact(*this, 0, LF_FASI, 2, y, dlg, dlg + 100);
|
||||||
|
y += 2;
|
||||||
|
_cdc_sid = dlg;
|
||||||
|
_cdc_lid = dlg + h - 1;
|
||||||
|
_fase_sid = _cdc_lid + 1;
|
||||||
|
_fase_lid = dlg + h1 - 1;
|
||||||
|
dlg += h1;
|
||||||
|
const int sh = ca_create_fields_compact(sm, 0, LF_FASI, 2, sy, sdlg, sdlg + 50);
|
||||||
|
sy += 2;
|
||||||
|
_scdc_sid = sdlg;
|
||||||
|
_scdc_lid = sdlg + h - 1;
|
||||||
|
_sfase_sid = _scdc_lid + 1;
|
||||||
|
_sfase_lid = sdlg + sh - 1;
|
||||||
|
sdlg += sh;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const int h = ca_create_fields_compact(*this, 0, LF_CDC, 2, y++, dlg, dlg + 100);
|
||||||
|
_cdc_sid = dlg;
|
||||||
|
_cdc_lid = dlg + h - 1;
|
||||||
|
dlg += h;
|
||||||
|
const int sh = ca_create_fields_compact(sm, 0, LF_CDC, 2, sy++, sdlg, sdlg + 50);
|
||||||
|
_scdc_sid = sdlg;
|
||||||
|
_scdc_lid = sdlg + sh - 1;
|
||||||
|
sdlg += h;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (level == "CMS") // Crea commessa
|
||||||
|
{
|
||||||
|
if (fasinfo.parent() == LF_COMMESSE)
|
||||||
|
{
|
||||||
|
int h = ca_multilevel_code_info(LF_COMMESSE).levels();
|
||||||
|
const int h1 = ca_create_fields_compact(*this, 0, LF_FASI, 2, y, dlg, dlg + 100);
|
||||||
|
y += 2;
|
||||||
|
_cms_sid = dlg;
|
||||||
|
_cms_lid = dlg + h - 1;
|
||||||
|
_fase_sid = _cms_lid + 1;
|
||||||
|
_fase_lid = dlg + h1 - 1;
|
||||||
|
dlg += h1;
|
||||||
|
const int sh = ca_create_fields_compact(sm, 0, LF_FASI, 2, sy, sdlg, sdlg + 50);
|
||||||
|
sy += 2;
|
||||||
|
_scms_sid = sdlg;
|
||||||
|
_scms_lid = sdlg + h - 1;
|
||||||
|
_sfase_sid = _scms_lid + 1;
|
||||||
|
_sfase_lid = sdlg + sh - 1;
|
||||||
|
sdlg += sh;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const int h = ca_create_fields_compact(*this, 0, LF_COMMESSE, 2, y++, dlg, dlg + 100);
|
||||||
|
_cms_sid = dlg;
|
||||||
|
_cms_lid = dlg + h - 1;
|
||||||
|
dlg += h;
|
||||||
|
const int sh = ca_create_fields_compact(sm, 0, LF_COMMESSE, 2, sy++, sdlg, sdlg + 50);
|
||||||
|
_scms_sid = sdlg;
|
||||||
|
_scms_lid = sdlg + sh - 1;
|
||||||
|
sdlg += sh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (fasinfo.levels() > 0 && fasinfo.parent() <= 0)
|
||||||
|
{
|
||||||
|
const int h = ca_create_fields_compact(*this, 0, LF_FASI, 2, y++, dlg, dlg + 100);
|
||||||
|
_fase_sid = dlg;
|
||||||
|
_fase_lid = dlg + h - 1;
|
||||||
|
dlg += h;
|
||||||
|
const int sh = ca_create_fields_compact(sm, 0, LF_FASI, 2, sy++, sdlg, sdlg + 50);
|
||||||
|
_sfase_sid = sdlg;
|
||||||
|
_sfase_lid = sdlg + sh - 1;
|
||||||
|
sdlg += h;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (short id = S_CDC12 + 100; id >= S_CDC1 + 100; id--)
|
||||||
|
{
|
||||||
|
const int pos = sm.id2pos(id);
|
||||||
|
if (pos >= 0)
|
||||||
|
{
|
||||||
|
TMask_field& f = sm.fld(pos);
|
||||||
|
const int size = f.size();
|
||||||
|
const TString prompt = ((TEditable_field &)f).get_warning();
|
||||||
|
s.set_column_header(id, prompt);
|
||||||
|
s.set_column_justify(id, f.is_kind_of(CLASS_REAL_FIELD));
|
||||||
|
s.set_column_width(id, (max(3+size, prompt.len()+1)) * CHARX);
|
||||||
|
s.enable_column(id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
s.delete_column(id);
|
||||||
|
}
|
||||||
_qtaore = 0;
|
_qtaore = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -531,8 +752,7 @@ public:
|
|||||||
void TRilevamento_cons_app::main_loop()
|
void TRilevamento_cons_app::main_loop()
|
||||||
{
|
{
|
||||||
TRilevamento_cons_msk msk;
|
TRilevamento_cons_msk msk;
|
||||||
while (msk.run() != K_QUIT)
|
while (msk.run() != K_QUIT) ;
|
||||||
msk.esegui();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ci2200(int argc, char *argv[])
|
int ci2200(int argc, char *argv[])
|
||||||
|
93
ci/ci2200a.h
93
ci/ci2200a.h
@ -12,53 +12,66 @@
|
|||||||
#define F_CODCMS 311
|
#define F_CODCMS 311
|
||||||
#define F_CODFASE 312
|
#define F_CODFASE 312
|
||||||
#define F_CALENDARIO 313
|
#define F_CALENDARIO 313
|
||||||
#define F_SHEET 314
|
#define F_ANAL 314
|
||||||
|
#define F_SHEET 330
|
||||||
|
|
||||||
#define DLG_RESET 900
|
#define DLG_RESET 900
|
||||||
#define DLG_CERCA 901
|
#define DLG_CERCA 901
|
||||||
#define DLG_DEFAULT 902
|
#define DLG_DEFAULT 902
|
||||||
|
|
||||||
#define C_CODCOSTO 101
|
#define C_0 100
|
||||||
#define C_CODCMS 102
|
#define C_1 101
|
||||||
#define C_CODFASE 103
|
#define C_2 102
|
||||||
#define C_1 104
|
#define C_3 103
|
||||||
#define C_2 105
|
#define C_4 104
|
||||||
#define C_3 106
|
#define C_5 105
|
||||||
#define C_4 107
|
#define C_6 106
|
||||||
#define C_5 108
|
#define C_7 107
|
||||||
#define C_6 109
|
#define C_8 108
|
||||||
#define C_7 110
|
#define C_9 109
|
||||||
#define C_8 111
|
#define C_10 110
|
||||||
#define C_9 112
|
#define C_11 111
|
||||||
#define C_10 113
|
#define C_12 112
|
||||||
#define C_11 114
|
#define C_13 113
|
||||||
#define C_12 115
|
#define C_14 114
|
||||||
#define C_13 116
|
#define C_15 115
|
||||||
#define C_14 117
|
#define C_16 116
|
||||||
#define C_15 118
|
#define C_17 117
|
||||||
#define C_16 119
|
#define C_18 118
|
||||||
#define C_17 120
|
#define C_19 119
|
||||||
#define C_18 121
|
#define C_20 120
|
||||||
#define C_19 122
|
#define C_21 121
|
||||||
#define C_20 123
|
#define C_22 122
|
||||||
#define C_21 124
|
#define C_23 123
|
||||||
#define C_22 125
|
#define C_24 124
|
||||||
#define C_23 126
|
#define C_25 125
|
||||||
#define C_24 127
|
#define C_26 126
|
||||||
#define C_25 128
|
#define C_27 127
|
||||||
#define C_26 129
|
#define C_28 128
|
||||||
#define C_27 130
|
#define C_29 129
|
||||||
#define C_28 131
|
#define C_30 130
|
||||||
#define C_29 132
|
#define C_31 131
|
||||||
#define C_30 133
|
#define ID2DAY(ID) (ID - C_0)
|
||||||
#define C_31 134
|
#define DAY2ID(DAY) (C_0 + DAY)
|
||||||
|
|
||||||
#define S_RISOATT 101
|
#define S_RISOATT 101
|
||||||
#define S_CODRIS 102
|
#define S_CODRIS 102
|
||||||
#define S_DESRIS 899
|
#define S_DESRIS 119
|
||||||
#define S_CODATT 202
|
#define S_CODATT 202
|
||||||
#define S_DESATT 999
|
#define S_DESATT 219
|
||||||
#define S_TPORA 103
|
#define S_TPORA 103
|
||||||
#define S_QTAORE 104
|
#define S_CDC1 104
|
||||||
#define S_COSTO 105
|
#define S_CDC2 105
|
||||||
#define S_OREDIS 106
|
#define S_CDC3 106
|
||||||
|
#define S_CDC4 107
|
||||||
|
#define S_CDC5 108
|
||||||
|
#define S_CDC6 109
|
||||||
|
#define S_CDC7 110
|
||||||
|
#define S_CDC8 111
|
||||||
|
#define S_CDC9 112
|
||||||
|
#define S_CDC10 113
|
||||||
|
#define S_CDC11 114
|
||||||
|
#define S_CDC12 115
|
||||||
|
#define S_QTAORE 116
|
||||||
|
#define S_COSTO 117
|
||||||
|
#define S_OREDIS 118
|
||||||
|
176
ci/ci2200a.uml
176
ci/ci2200a.uml
@ -47,7 +47,6 @@ END
|
|||||||
LISTBOX F_MESE 10
|
LISTBOX F_MESE 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 24 1 "Mese "
|
PROMPT 24 1 "Mese "
|
||||||
ITEM "|"
|
|
||||||
FLAGS "M"
|
FLAGS "M"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -75,66 +74,47 @@ END
|
|||||||
|
|
||||||
STRING F_CODRIS 16
|
STRING F_CODRIS 16
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 23 3 "Codice "
|
PROMPT 23 2 "Codice "
|
||||||
USE RSS
|
USE RSS
|
||||||
INPUT CODTAB F_CODRIS
|
INPUT CODTAB F_CODRIS
|
||||||
DISPLAY "Codice@16" CODTAB
|
DISPLAY "Codice@16" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_CODRIS CODTAB
|
OUTPUT F_CODRIS CODTAB
|
||||||
|
OUTPUT F_DESRIS S0
|
||||||
GROUP 2
|
GROUP 2
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_DESRIS 50 27
|
||||||
|
BEGIN
|
||||||
|
PROMPT 50 2 ""
|
||||||
|
FLAGS "D"
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_CODATT 16
|
STRING F_CODATT 16
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 23 2 "Codice "
|
PROMPT 23 2 "Codice "
|
||||||
FIELD CODTAB[1,16]
|
|
||||||
USE ATR
|
USE ATR
|
||||||
INPUT CODTAB F_CODATT
|
INPUT CODTAB F_CODATT
|
||||||
DISPLAY "Codice@16" CODTAB
|
DISPLAY "Codice@16" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_CODATT CODTAB
|
OUTPUT F_CODATT CODTAB
|
||||||
|
OUTPUT F_DESATT S0
|
||||||
GROUP 3
|
GROUP 3
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODCOSTO 20 15
|
STRING F_DESATT 50 27
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "C.d.C. "
|
PROMPT 50 27 ""
|
||||||
USE CDC
|
FLAGS "D"
|
||||||
INPUT CODCOSTO F_CODCOSTO
|
GROUP 3
|
||||||
DISPLAY "Codice@16" CODCOSTO
|
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
|
||||||
OUTPUT F_CODCOSTO CODCOSTO
|
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODCMS 20 15
|
SPREADSHEET F_CALENDARIO -16 2
|
||||||
BEGIN
|
|
||||||
PROMPT 2 4 "Cms. "
|
|
||||||
USE COMMESSE
|
|
||||||
INPUT CODCMS F_CODCMS
|
|
||||||
DISPLAY "Codice@16" CODCMS
|
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
|
||||||
OUTPUT F_CODCMS CODCMS
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_CODFASE 10 8
|
|
||||||
BEGIN
|
|
||||||
PROMPT 2 5 "Fase "
|
|
||||||
USE FASI
|
|
||||||
INPUT CODCMSFAS F_CODCMS SELECT
|
|
||||||
INPUT CODFASE F_CODFASE
|
|
||||||
DISPLAY "Codice@16" CODFASE
|
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
|
||||||
OUTPUT F_CODFASE CODFASE
|
|
||||||
END
|
|
||||||
|
|
||||||
SPREADSHEET F_CALENDARIO -16 4
|
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 ""
|
PROMPT 1 7 ""
|
||||||
ITEM "Centro di\nCosto@8F"
|
|
||||||
ITEM "Codice\nCommessa@8F"
|
|
||||||
ITEM "Codice\nFase@5F"
|
|
||||||
ITEM "1@2"
|
ITEM "1@2"
|
||||||
ITEM "2@2"
|
ITEM "2@2"
|
||||||
ITEM "3@2"
|
ITEM "3@2"
|
||||||
@ -170,13 +150,26 @@ END
|
|||||||
|
|
||||||
SPREADSHEET F_SHEET -15 0
|
SPREADSHEET F_SHEET -15 0
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 12 ""
|
PROMPT 1 10 ""
|
||||||
ITEM "Tipo"
|
ITEM "Tipo"
|
||||||
ITEM "Codice@16"
|
ITEM "Codice@16"
|
||||||
ITEM "Tipo\nOra@5"
|
ITEM "Tipo\nOra@5"
|
||||||
|
ITEM "CDC1"
|
||||||
|
ITEM "CDC2"
|
||||||
|
ITEM "CDC3"
|
||||||
|
ITEM "CDC4"
|
||||||
|
ITEM "CDC5"
|
||||||
|
ITEM "CDC6"
|
||||||
|
ITEM "CDC7"
|
||||||
|
ITEM "CDC8"
|
||||||
|
ITEM "CDC9"
|
||||||
|
ITEM "CDC10"
|
||||||
|
ITEM "CDC11"
|
||||||
|
ITEM "CDC12"
|
||||||
ITEM "Qta\nOre@5"
|
ITEM "Qta\nOre@5"
|
||||||
ITEM "Costo@6"
|
ITEM "Costo@6"
|
||||||
ITEM "Ore\ndisponibilità"
|
ITEM "Ore\ndisponibilità"
|
||||||
|
ITEM "Descrizione@50"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
@ -184,45 +177,6 @@ ENDMASK
|
|||||||
|
|
||||||
PAGE "Calendario" -1 -1 78 13
|
PAGE "Calendario" -1 -1 78 13
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 3
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 1 "@bDati Analitici"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_CODCOSTO 20 15
|
|
||||||
BEGIN
|
|
||||||
PROMPT 2 2 "C.d.C. "
|
|
||||||
USE COMMESSE
|
|
||||||
INPUT CODCMS C_CODCOSTO
|
|
||||||
DISPLAY "Codice@16" CODCMS
|
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
|
||||||
OUTPUT C_CODCOSTO CODCMS
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_CODCMS 20 15
|
|
||||||
BEGIN
|
|
||||||
PROMPT 30 2 "Cms. "
|
|
||||||
USE COMMESSE
|
|
||||||
INPUT CODCMS C_CODCMS
|
|
||||||
DISPLAY "Codice@16" CODCMS
|
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
|
||||||
OUTPUT C_CODCMS CODCMS
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_CODFASE 10 8
|
|
||||||
BEGIN
|
|
||||||
PROMPT 59 2 "Fase "
|
|
||||||
USE FASI
|
|
||||||
INPUT CODCMSFAS F_CODCMS SELECT
|
|
||||||
INPUT CODFASE F_CODFASE
|
|
||||||
DISPLAY "Codice@16" CODFASE
|
|
||||||
DISPLAY "Descrizione@50" DESCRIZ
|
|
||||||
OUTPUT F_CODFASE CODFASE
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_1 1
|
STRING C_1 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 " 1"
|
PROMPT 2 4 " 1"
|
||||||
@ -462,6 +416,78 @@ BEGIN
|
|||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING S_CDC1 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Cdc 1"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC2 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC3 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC4 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC5 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC6 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC7 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC8 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC9 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 10 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC10 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 10 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC11 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 10 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC12 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 10 "Cdc 2"
|
||||||
|
FLAGS "HB"
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER S_QTAORE 6
|
NUMBER S_QTAORE 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 "Quantità ore "
|
PROMPT 2 11 "Quantità ore "
|
||||||
|
71
ci/cilib.cpp
71
ci/cilib.cpp
@ -642,43 +642,17 @@ TDisp_risoatt::TDisp_risoatt(const TRectype& r)
|
|||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
|
|
||||||
//READ: cerca una riga rilevamento ore in base alla chiave primaria
|
//READ: cerca una riga rilevamento ore in base alla chiave primaria
|
||||||
int TRilevamento_ore::read(const char tipo, const char tipora, const char *codice, const int anno, const int mese, const int giorno, const char *tpora, TReclock lock)
|
int TRilevamento_ore::read(const char tipo, const int anno, const int mese, const int giorno, const char tipora, const char *codice, const char *tpora, const char* codcosto, const char* codcms, const char* codfase, TReclock lock)
|
||||||
{
|
|
||||||
TLocalisamfile rilore(LF_RILORE);
|
|
||||||
|
|
||||||
rilore.setkey(2);
|
|
||||||
put(RILORE_TIPO, tipo);
|
|
||||||
put(RILORE_TIPORA, tipora);
|
|
||||||
put(RILORE_CODICE, codice);
|
|
||||||
put(RILORE_ANNO, anno);
|
|
||||||
put(RILORE_MESE, mese);
|
|
||||||
put(RILORE_GIORNO, giorno);
|
|
||||||
put(RILORE_TPORA, tpora);
|
|
||||||
TRectype saverec(*this);
|
|
||||||
|
|
||||||
int err = NOERR;
|
|
||||||
while ((err = TRectype::read(rilore,_isequal, lock)) == _islocked)
|
|
||||||
if (!yesno_box("Dati in uso da parte di un altro utente"))
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (err != NOERR)
|
|
||||||
*this = saverec;
|
|
||||||
rilore.setkey(1);
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
//READ: cerca una riga rilevamento ore in base alla chiave secodaria
|
|
||||||
int TRilevamento_ore::read(const char tipo, const char tipora, const char *codice, const int anno, const int mese, const int giorno, const char *tpora, const char* codcosto, const char* codcms, const char* codfase, TReclock lock)
|
|
||||||
{
|
{
|
||||||
TLocalisamfile rilore(LF_RILORE);
|
TLocalisamfile rilore(LF_RILORE);
|
||||||
|
|
||||||
zero();
|
zero();
|
||||||
put(RILORE_TIPO, tipo);
|
put(RILORE_TIPO, tipo);
|
||||||
put(RILORE_TIPORA, tipora);
|
|
||||||
put(RILORE_CODICE, codice);
|
|
||||||
put(RILORE_ANNO, anno);
|
put(RILORE_ANNO, anno);
|
||||||
put(RILORE_MESE, mese);
|
put(RILORE_MESE, mese);
|
||||||
put(RILORE_GIORNO, giorno);
|
put(RILORE_GIORNO, giorno);
|
||||||
|
put(RILORE_TIPORA, tipora);
|
||||||
|
put(RILORE_CODICE, codice);
|
||||||
put(RILORE_TPORA, tpora);
|
put(RILORE_TPORA, tpora);
|
||||||
put(RILORE_CODCOSTO, codcosto);
|
put(RILORE_CODCOSTO, codcosto);
|
||||||
put(RILORE_CODCMS, codcms);
|
put(RILORE_CODCMS, codcms);
|
||||||
@ -695,29 +669,6 @@ int TRilevamento_ore::read(const char tipo, const char tipora, const char *codic
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
//READ: cerca una riga rilevamento ore in base alla chiave secondaria
|
|
||||||
int TRilevamento_ore::read(const char tipo, const char* codcosto, const char* codcms, const char* codfase, TReclock lock)
|
|
||||||
{
|
|
||||||
TLocalisamfile rilore(LF_RILORE);
|
|
||||||
|
|
||||||
rilore.setkey(3);
|
|
||||||
put(RILORE_TIPO, tipo);
|
|
||||||
put(RILORE_CODCOSTO, codcosto);
|
|
||||||
put(RILORE_CODCMS, codcms);
|
|
||||||
put(RILORE_CODFASE, codfase);
|
|
||||||
TRectype saverec(*this);
|
|
||||||
|
|
||||||
int err = NOERR;
|
|
||||||
while ((err = TRectype::read(rilore,_isequal, lock)) == _islocked)
|
|
||||||
if (!yesno_box("Dati in uso da parte di un altro utente"))
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (err != NOERR)
|
|
||||||
*this = saverec;
|
|
||||||
rilore.setkey(1);
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
int TRilevamento_ore::write_rewrite()
|
int TRilevamento_ore::write_rewrite()
|
||||||
{
|
{
|
||||||
if (!empty())
|
if (!empty())
|
||||||
@ -930,22 +881,10 @@ TRilevamento_ore::TRilevamento_ore(const TRilevamento_ore& rilore)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
TRilevamento_ore::TRilevamento_ore(const char tipo, const char tipora, const char* codice, const int anno, const int mese, const int giorno, const char* tpora, const char* codcosto, const char* codcms, const char* codfase)
|
TRilevamento_ore::TRilevamento_ore(const char tipo, const int anno, const int mese, const int giorno, const char tipora, const char* codice, const char* tpora, const char* codcosto, const char* codcms, const char* codfase)
|
||||||
: TRectype(LF_RILORE)
|
: TRectype(LF_RILORE)
|
||||||
{
|
{
|
||||||
read(tipo, tipora, codice, anno, mese, giorno, tpora, codcosto, codcms, codfase);
|
read(tipo, anno, mese, giorno, tipora, codice, tpora, codcosto, codcms, codfase);
|
||||||
}
|
|
||||||
|
|
||||||
TRilevamento_ore::TRilevamento_ore(const char tipo, const char tipora, const char* codice, const int anno, const int mese, const int giorno, const char* tpora)
|
|
||||||
: TRectype(LF_RILORE)
|
|
||||||
{
|
|
||||||
read(tipo, tipora, codice, anno, mese, giorno, tpora);
|
|
||||||
}
|
|
||||||
|
|
||||||
TRilevamento_ore::TRilevamento_ore(const char tipo, const char* codcosto, const char* codcms, const char* codfase)
|
|
||||||
: TRectype(LF_RILORE)
|
|
||||||
{
|
|
||||||
read(tipo, codcosto, codcms, codfase);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TRilevamento_ore::TRilevamento_ore()
|
TRilevamento_ore::TRilevamento_ore()
|
||||||
|
@ -222,9 +222,7 @@ class TRilevamento_ore : public TRectype
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int read(const char tipo, const char tipora, const char* codice, const int anno, const int mese, const int giorno, const char* tpora, const char* codcosto, const char* codcms, const char* codfase, TReclock lock = _nolock);
|
int read(const char tipo, const int anno, const int mese, const int giorno, const char tipora, const char* codice, const char* tpora, const char* codcosto, const char* codcms, const char* codfase, TReclock lock = _nolock);
|
||||||
int read(const char tipo, const char tipora, const char* codice, const int anno, const int mese, const int giorno, const char* tpora, TReclock lock = _nolock);
|
|
||||||
int read(const char tipo, const char* codcosto, const char* codcms, const char* codfase, TReclock lock = _nolock);
|
|
||||||
int remove();
|
int remove();
|
||||||
int write_rewrite();
|
int write_rewrite();
|
||||||
int rewrite_write();
|
int rewrite_write();
|
||||||
@ -263,9 +261,7 @@ public:
|
|||||||
|
|
||||||
TRilevamento_ore(const TRectype& rec);
|
TRilevamento_ore(const TRectype& rec);
|
||||||
TRilevamento_ore(const TRilevamento_ore& rilore);
|
TRilevamento_ore(const TRilevamento_ore& rilore);
|
||||||
TRilevamento_ore(const char tipo, const char tipora, const char* codice, const int anno, const int mese, const int giorno, const char* tpora, const char* codcosto, const char* codcms, const char* codfase);
|
TRilevamento_ore(const char tipo, const int anno, const int mese, const int giorno, const char tipora, const char* codice, const char* tpora, const char* codcosto, const char* codcms, const char* codfase);
|
||||||
TRilevamento_ore(const char tipo, const char tipora, const char* codice, const int anno, const int mese, const int giorno, const char* tpora);
|
|
||||||
TRilevamento_ore(const char tipo, const char* codcosto, const char* codcms, const char* codfase);
|
|
||||||
TRilevamento_ore();
|
TRilevamento_ore();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -19,6 +19,6 @@ DANNO|2|4|0|Chiave doc - Anno
|
|||||||
DCODNUM|2|4|0|Chiave doc - Codnum
|
DCODNUM|2|4|0|Chiave doc - Codnum
|
||||||
DNDOC|2|7|0|Chiave doc - ndoc
|
DNDOC|2|7|0|Chiave doc - ndoc
|
||||||
3
|
3
|
||||||
TIPO+TIPORA+CODICE+ANNO+MESE+GIORNO+TPORA+CODCOSTO+CODCMS+CODFASE|
|
TIPO+ANNO+MESE+GIORNO+TIPORA+CODICE+TPORA+CODCOSTO+CODCMS+CODFASE|
|
||||||
TIPO+TIPORA+CODICE+ANNO+MESE+GIORNO+TPORA|X
|
TIPO+TIPORA+CODICE+ANNO+MESE+GIORNO+TPORA+CODCOSTO+CODCMS+CODFASE|X
|
||||||
TIPO+CODCOSTO+CODCMS+CODFASE|X
|
TIPO+CODCOSTO+CODCMS+CODFASE|X
|
||||||
|
Loading…
x
Reference in New Issue
Block a user