Patch level : 10.0 nopatch

Files correlati     : ci0.exe
Ricompilazione Demo : [ ]
Commento            :

Rilevazione Ore su commessa cdc fase


git-svn-id: svn://10.65.10.50/branches/R_10_00@20739 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-07-31 06:58:44 +00:00
parent c538e29152
commit d14cf638eb
3 changed files with 115 additions and 83 deletions

View File

@ -35,7 +35,7 @@ protected:
void get_anal_fields(TString & cdc, TString & cms, TString & fase); 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 get_row_anal_fields(TToken_string & row, TString & cdc, TString & cms, TString & fase);
void put_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 riempi_sheet(); void riempi_sheet();
void nuova_riga(); void nuova_riga();
void azzera_riga(TSheet_field& sheet); void azzera_riga(TSheet_field& sheet);
@ -56,25 +56,28 @@ void TDef_risoatt_msk::get_anal_fields(TString & cdc, TString & cms, TString & f
for ( short id = _cdc_sid; id <= _cdc_lid; id++) for ( short id = _cdc_sid; id <= _cdc_lid; id++)
{ {
val = get(id); val = get(id);
val.fill(' ', field(id).size()); val.rpad(field(id).size());
cdc << val; cdc << val;
} }
cdc.trim();
cms.cut(0); cms.cut(0);
if (_cms_sid >= 0) if (_cms_sid >= 0)
for ( short id = _cms_sid; id <= _cms_lid; id++) for ( short id = _cms_sid; id <= _cms_lid; id++)
{ {
val = get(id); val = get(id);
val.fill(' ', field(id).size()); val.rpad(field(id).size());
cms << val; cms << val;
} }
cms.trim();
fase.cut(0); fase.cut(0);
if (_fase_sid >= 0) if (_fase_sid >= 0)
for ( short id = _fase_sid; id <= _fase_lid; id++) for ( short id = _fase_sid; id <= _fase_lid; id++)
{ {
val = get(id); val = get(id);
val.fill(' ', field(id).size()); val.rpad(field(id).size());
fase << val; fase << val;
} }
fase.trim();
} }
void TDef_risoatt_msk::get_row_anal_fields(TToken_string & row, TString & cdc, TString & cms, TString & fase) void TDef_risoatt_msk::get_row_anal_fields(TToken_string & row, TString & cdc, TString & cms, TString & fase)
@ -87,28 +90,31 @@ void TDef_risoatt_msk::get_row_anal_fields(TToken_string & row, TString & cdc, T
for ( short id = _scdc_sid; id <= _scdc_lid; id++) for ( short id = _scdc_sid; id <= _scdc_lid; id++)
{ {
val = m.get(id); val = m.get(id);
val.fill(' ', m.field(id).size()); val.rpad(m.field(id).size());
cdc << val; cdc << val;
} }
cdc.trim();
cms.cut(0); cms.cut(0);
if (_scms_sid >= 0) if (_scms_sid >= 0)
for ( short id = _scms_sid; id <= _scms_lid; id++) for ( short id = _scms_sid; id <= _scms_lid; id++)
{ {
val = m.get(id); val = m.get(id);
val.fill(' ', m.field(id).size()); val.rpad(m.field(id).size());
cms << val; cms << val;
} }
cms.trim();
fase.cut(0); fase.cut(0);
if (_sfase_sid >= 0) if (_sfase_sid >= 0)
for ( short id = _sfase_sid; id <= _sfase_lid; id++) for ( short id = _sfase_sid; id <= _sfase_lid; id++)
{ {
val = m.get(id); val = m.get(id);
val.fill(' ', m.field(id).size()); val.rpad(m.field(id).size());
fase << val; fase << val;
} }
fase.trim();
} }
void TDef_risoatt_msk::put_row_anal_fields(TToken_string & row, TString & cdc, TString & cms, TString & fase) void TDef_risoatt_msk::put_row_anal_fields(TToken_string & row, const TString & cdc, const TString & cms, const TString & fase)
{ {
TSheet_field & s = sfield(F_SHEET); TSheet_field & s = sfield(F_SHEET);
TMask & m = s.sheet_mask(); TMask & m = s.sheet_mask();
@ -162,16 +168,25 @@ void TDef_risoatt_msk::riempi_sheet()
get_anal_fields(codcosto, codcms, codfase); get_anal_fields(codcosto, codcms, codfase);
TString query; TString query;
query << "USE " << LF_RILORE << "\n" query << "USE " << LF_RILORE << "\n";
<< "SELECT (BETWEEN(" << RILORE_TIPORA << ",\"" << risoatt << "\",\"" << risoatt << "\"))&&" if (risoatt.full())
<< "(BETWEEN(" << RILORE_CODICE << ",\"" << codice << "\",\"" << codice << "\"))&&" query << "SELECT (BETWEEN(" << RILORE_TIPORA << ",\"" << risoatt << "\",\"" << risoatt << "\"))";
<< "(BETWEEN(" << RILORE_ANNO << ",\"" << anno << "\",\"" << anno << "\"))&&" if (codice.full())
<< "(BETWEEN(" << RILORE_MESE << ",\"" << mese << "\",\"" << mese << "\"))&&" query << "&&(BETWEEN(" << RILORE_CODICE << ",\"" << codice << "\",\"" << codice << "\"))";
<< "(BETWEEN(" << RILORE_TPORA << ",\"" << tpora << "\",\"" << tpora << "\"))&&" if (anno.full())
<< "(BETWEEN(" << RILORE_CODCOSTO << ",\"" << codcosto << "\",\"" << codcosto << "\"))&&" query << "&&(BETWEEN(" << RILORE_ANNO << ",\"" << anno << "\",\"" << anno << "\"))";
<< "(BETWEEN(" << RILORE_CODCMS << ",\"" << codcms << "\",\"" << codcms << "\"))&&" if (mese.full())
<< "(BETWEEN(" << RILORE_CODFASE << ",\"" << codcms << "\",\"" << codfase << "\"))\n"; query << "&&(BETWEEN(" << RILORE_MESE << ",\"" << mese << "\",\"" << mese << "\"))";
if (tpora.full())
query << "&&(BETWEEN(" << RILORE_TPORA << ",\"" << tpora << "\",\"" << tpora << "\"))";
if (codcosto.full())
query << "&&(BETWEEN(" << RILORE_CODCOSTO << ",\"" << codcosto << "\",\"" << codcosto << "\"))";
if (codcms.full())
query << "&&(BETWEEN(" << RILORE_CODCMS << ",\"" << codcms << "\",\"" << codcms << "\"))";
if (codfase.full())
query << "&&(BETWEEN(" << RILORE_CODFASE << ",\"" << codfase << "\",\"" << codfase << "\"))";
query << "\n";
TString fromto = RILORE_TIPO "=\"D\""; TString fromto = RILORE_TIPO "=\"D\"";
if(risoatt != 'T') if(risoatt != 'T')
@ -216,7 +231,7 @@ void TDef_risoatt_msk::riempi_sheet()
riga.add(rilore.anno(), sheet.cid2index(S_ANNO)); riga.add(rilore.anno(), sheet.cid2index(S_ANNO));
riga.add(rilore.mese(), sheet.cid2index(S_MESE)); riga.add(rilore.mese(), sheet.cid2index(S_MESE));
riga.add(rilore.tpora(), sheet.cid2index(S_TPORA)); riga.add(rilore.tpora(), sheet.cid2index(S_TPORA));
put_row_anal_fields(riga, codcosto, codcms, codfase); put_row_anal_fields(riga, rilore.codcosto(), rilore.codcms(), rilore.codfase());
riga.add(rilore.qtaore(), sheet.cid2index(S_QTAORE)); riga.add(rilore.qtaore(), sheet.cid2index(S_QTAORE));
riga.add(rilore.costo().string(), sheet.cid2index(S_COSTO)); riga.add(rilore.costo().string(), sheet.cid2index(S_COSTO));
@ -475,69 +490,79 @@ TDef_risoatt_msk::TDef_risoatt_msk()
if (level == "CDC") // Crea centro di costo if (level == "CDC") // Crea centro di costo
{ {
const int h = ca_create_fields(*this, 0, LF_CDC, 2, y, dlg, dlg + 100);
_cdc_sid = dlg;
_cdc_lid = dlg + h - 1;
y += h - 1;
dlg += h;
const int sh = ca_create_fields(sm, 0, LF_CDC, 2, sy, sdlg, sdlg + 50);
_scdc_sid = sdlg;
_scdc_lid = sdlg + sh - 1;
sy += sh - 1;
sdlg += h;
if (fasinfo.parent() == LF_CDC) if (fasinfo.parent() == LF_CDC)
{ {
const int h = ca_create_fields(*this, 0, LF_FASI, 2, y, dlg, dlg + 100); int h = ca_multilevel_code_info(LF_CDC).levels();
_fase_sid = dlg; const int h1 = ca_create_fields_compact(*this, 0, LF_FASI, 2, y, dlg, dlg + 100);
_fase_lid = dlg + h - 1; y += 2;
y += h - 1; _cdc_sid = dlg;
dlg += h; _cdc_lid = dlg + h - 1;
const int sh = ca_create_fields(sm, 0, LF_FASI, 2, sy, sdlg, sdlg + 50); _fase_sid = _cdc_lid + 1;
_sfase_sid = sdlg; _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; _sfase_lid = sdlg + sh - 1;
sy += sh - 1; sdlg += sh;
sdlg += h;
} }
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 else
if (level == "CMS") // Crea commessa if (level == "CMS") // Crea commessa
{ {
const int h = ca_create_fields(*this, 0, LF_COMMESSE, 2, y, dlg, dlg + 100);
_cms_sid = dlg;
_cms_lid = dlg + h - 1;
y += h - 1;
dlg += h;
const int sh = ca_create_fields(sm, 0, LF_COMMESSE, 2, sy, sdlg, sdlg + 50);
_scms_sid = sdlg;
_scms_lid = sdlg + sh - 1;
sy += sh - 1;
sdlg += sh;
if (fasinfo.parent() == LF_COMMESSE) if (fasinfo.parent() == LF_COMMESSE)
{ {
const int h = ca_create_fields(*this, 0, LF_FASI, 2, y, dlg, dlg + 100); int h = ca_multilevel_code_info(LF_COMMESSE).levels();
_fase_sid = dlg; const int h1 = ca_create_fields_compact(*this, 0, LF_FASI, 2, y, dlg, dlg + 100);
_fase_lid = dlg + h - 1; y += 2;
y += h - 1; _cms_sid = dlg;
dlg += h; _cms_lid = dlg + h - 1;
const int sh = ca_create_fields(sm, 0, LF_FASI, 2, sy, sdlg, sdlg + 50); _fase_sid = _cms_lid + 1;
_sfase_sid = sdlg; _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; _sfase_lid = sdlg + sh - 1;
sy += sh - 1; sdlg += sh;
sdlg += h; }
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) if (fasinfo.levels() > 0 && fasinfo.parent() <= 0)
{ {
const int h = ca_create_fields(*this, 0, LF_FASI, 2, y, dlg, dlg + 100); const int h = ca_create_fields_compact(*this, 0, LF_FASI, 2, y++, dlg, dlg + 100);
_fase_sid = dlg; _fase_sid = dlg;
_fase_lid = dlg + h - 1; _fase_lid = dlg + h - 1;
y += h - 1;
dlg += h; dlg += h;
const int sh = ca_create_fields(sm, 0, LF_FASI, 2, sy, sdlg, sdlg + 50); const int sh = ca_create_fields_compact(sm, 0, LF_FASI, 2, sy++, sdlg, sdlg + 50);
_sfase_sid = sdlg; _sfase_sid = sdlg;
_sfase_lid = sdlg + sh - 1; _sfase_lid = sdlg + sh - 1;
sy += sh - 1;
sdlg += h; sdlg += h;
} }
@ -555,9 +580,7 @@ TDef_risoatt_msk::TDef_risoatt_msk()
s.enable_column(id); s.enable_column(id);
} }
else else
{
s.delete_column(id); s.delete_column(id);
}
} }
_qtaore = 0; _qtaore = 0;

View File

@ -17,9 +17,9 @@
#define S_RISOATT 101 #define S_RISOATT 101
#define S_CODRIS 102 #define S_CODRIS 102
#define S_DESRIS 111 #define S_DESRIS 120
#define S_CODATT 202 #define S_CODATT 202
#define S_DESATT 211 #define S_DESATT 220
#define S_ANNO 103 #define S_ANNO 103
#define S_MESE 104 #define S_MESE 104
#define S_TPORA 105 #define S_TPORA 105

View File

@ -32,7 +32,7 @@ ENDPAGE
PAGE "Dati predefiniti" 0 2 0 0 PAGE "Dati predefiniti" 0 2 0 0
GROUPBOX DLG_NULL 78 15 GROUPBOX DLG_NULL 78 7
BEGIN BEGIN
PROMPT 1 0 "@bSelezione" PROMPT 1 0 "@bSelezione"
END END
@ -130,9 +130,9 @@ BEGIN
END END
SPREADSHEET F_SHEET -10 0 SPREADSHEET F_SHEET -18 0
BEGIN BEGIN
PROMPT 1 15 "" PROMPT 1 7 ""
ITEM "Tipo" ITEM "Tipo"
ITEM "Codice@16" ITEM "Codice@16"
ITEM "Anno" ITEM "Anno"
@ -152,12 +152,13 @@ BEGIN
ITEM "CDC12" ITEM "CDC12"
ITEM "Qta\nOre@5" ITEM "Qta\nOre@5"
ITEM "Costo@10" ITEM "Costo@10"
ITEM "Descrizione@50"
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK
PAGE "Dati Predefiniti" -1 -1 78 22 PAGE "Dati Predefiniti" -1 -1 78 13
GROUPBOX DLG_NULL 76 20 GROUPBOX DLG_NULL 76 20
BEGIN BEGIN
@ -224,13 +225,13 @@ END
NUMBER S_ANNO 4 NUMBER S_ANNO 4
BEGIN BEGIN
PROMPT 2 7 "Anno " PROMPT 2 7 "Anno "
CHECKTYPE REQUIRED
FLAGS "AD" FLAGS "AD"
END END
LISTBOX S_MESE 10 LISTBOX S_MESE 10
BEGIN BEGIN
PROMPT 22 7 "Mese" PROMPT 22 7 "Mese"
ITEM "|"
FILED CODTAB[21,2] FILED CODTAB[21,2]
FLAGS "MD" FLAGS "MD"
END END
@ -243,6 +244,7 @@ BEGIN
DISPLAY "Codice@16" CODTAB DISPLAY "Codice@16" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT S_TPORA CODTAB OUTPUT S_TPORA CODTAB
CHECKTYPE REQUIRED
FLAGS "D" FLAGS "D"
END END
@ -251,13 +253,12 @@ BEGIN
PROMPT 2 8 "Cdc 1" PROMPT 2 8 "Cdc 1"
USE LF_CDC USE LF_CDC
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 1
FLAGS "H" FLAGS "H"
END END
STRING S_CDC2 20 STRING S_CDC2 20
BEGIN BEGIN
PROMPT 2 9 "Cdc 2" PROMPT 2 8 "Cdc 2"
COPY USE S_CDC1 COPY USE S_CDC1
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "H" FLAGS "H"
@ -265,7 +266,7 @@ END
STRING S_CDC3 20 STRING S_CDC3 20
BEGIN BEGIN
PROMPT 2 10 "Cdc 2" PROMPT 2 8 "Cdc 2"
COPY USE S_CDC1 COPY USE S_CDC1
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "H" FLAGS "H"
@ -273,7 +274,7 @@ END
STRING S_CDC4 20 STRING S_CDC4 20
BEGIN BEGIN
PROMPT 2 11 "Cdc 2" PROMPT 2 8 "Cdc 2"
COPY USE S_CDC1 COPY USE S_CDC1
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "H" FLAGS "H"
@ -281,7 +282,15 @@ END
STRING S_CDC5 20 STRING S_CDC5 20
BEGIN BEGIN
PROMPT 2 12 "Cdc 2" PROMPT 2 9 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
FLAGS "H"
END
STRING S_CDC6 20
BEGIN
PROMPT 2 9 "Cdc 2"
COPY USE S_CDC1 COPY USE S_CDC1
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "H" FLAGS "H"
@ -289,7 +298,7 @@ END
STRING S_CDC7 20 STRING S_CDC7 20
BEGIN BEGIN
PROMPT 2 13 "Cdc 2" PROMPT 2 9 "Cdc 2"
COPY USE S_CDC1 COPY USE S_CDC1
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "H" FLAGS "H"
@ -297,7 +306,7 @@ END
STRING S_CDC8 20 STRING S_CDC8 20
BEGIN BEGIN
PROMPT 2 14 "Cdc 2" PROMPT 2 9 "Cdc 2"
COPY USE S_CDC1 COPY USE S_CDC1
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "H" FLAGS "H"
@ -305,7 +314,7 @@ END
STRING S_CDC9 20 STRING S_CDC9 20
BEGIN BEGIN
PROMPT 2 15 "Cdc 2" PROMPT 2 10 "Cdc 2"
COPY USE S_CDC1 COPY USE S_CDC1
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "H" FLAGS "H"
@ -313,7 +322,7 @@ END
STRING S_CDC10 20 STRING S_CDC10 20
BEGIN BEGIN
PROMPT 2 16 "Cdc 2" PROMPT 2 10 "Cdc 2"
COPY USE S_CDC1 COPY USE S_CDC1
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "H" FLAGS "H"
@ -321,7 +330,7 @@ END
STRING S_CDC11 20 STRING S_CDC11 20
BEGIN BEGIN
PROMPT 2 17 "Cdc 2" PROMPT 2 10 "Cdc 2"
COPY USE S_CDC1 COPY USE S_CDC1
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "H" FLAGS "H"
@ -329,7 +338,7 @@ END
STRING S_CDC12 20 STRING S_CDC12 20
BEGIN BEGIN
PROMPT 2 18 "Cdc 2" PROMPT 2 10 "Cdc 2"
COPY USE S_CDC1 COPY USE S_CDC1
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "H" FLAGS "H"
@ -337,12 +346,12 @@ END
NUMBER S_QTAORE 6 NUMBER S_QTAORE 6
BEGIN BEGIN
PROMPT 2 19 "Quantitŕ ore " PROMPT 2 11 "Quantità ore "
END END
NUMBER S_COSTO 10 2 NUMBER S_COSTO 10 2
BEGIN BEGIN
PROMPT 30 19 "Prezzo " PROMPT 30 11 "Prezzo "
END END
ENDPAGE ENDPAGE