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@20740 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-07-31 11:31:19 +00:00
parent d14cf638eb
commit cce236cba8
4 changed files with 358 additions and 163 deletions

View File

@ -191,18 +191,18 @@ void TDef_risoatt_msk::riempi_sheet()
TString fromto = RILORE_TIPO "=\"D\""; TString fromto = RILORE_TIPO "=\"D\"";
if(risoatt != 'T') if(risoatt != 'T')
{ {
fromto << " " << RILORE_TIPORA << "=\"" << risoatt << "\""; fromto << " " << RILORE_TIPORA << "=\"" << risoatt << "\" ";
if(codice.full()) if(codice.full())
{ {
fromto << " " << RILORE_CODICE << "=\"" << codice << "\""; fromto << " " << RILORE_CODICE << "=\"" << codice << "\" ";
if(anno.full()) if(anno.full())
{ {
fromto << " " << RILORE_ANNO << "=\"" << anno << "\""; fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
if(mese.full()) if(mese.full())
{ {
fromto << " " << RILORE_MESE << "=\"" << mese << "\""; fromto << " " << RILORE_MESE << "=\"" << mese << "\" ";
if(tpora.full()) if(tpora.full())
fromto << " " << RILORE_TPORA << "=\"" << tpora << "\""; fromto << " " << RILORE_TPORA << "=\"" << tpora << "\" ";
} }
} }
} }
@ -573,7 +573,10 @@ TDef_risoatt_msk::TDef_risoatt_msk()
{ {
TMask_field& f = sm.fld(pos); TMask_field& f = sm.fld(pos);
const int size = f.size(); const int size = f.size();
const TString& prompt = f.prompt(); TString prompt = f.prompt();
if (prompt.blank())
prompt = ((TEditable_field &)f).get_warning();
s.set_column_header(id, prompt); s.set_column_header(id, prompt);
s.set_column_justify(id, f.is_kind_of(CLASS_REAL_FIELD)); 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.set_column_width(id, (max(3+size, prompt.len()+1)) * CHARX);

View File

@ -10,6 +10,7 @@
#include "ci2.h" #include "ci2.h"
#include "cilib.h" #include "cilib.h"
#include "ci2100a.h" #include "ci2100a.h"
#include "rilore.h"
#include "../ve/velib.h" #include "../ve/velib.h"
//////////////////////////////////////////// ////////////////////////////////////////////
@ -20,10 +21,20 @@
class TRilevamento_prev_msk : public TAutomask class TRilevamento_prev_msk : public TAutomask
{ {
int _qtaore; int _qtaore;
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;
protected: protected:
const real proponi_costo(const TMask& msk); const real proponi_costo(const TMask& msk);
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 nuova_riga(); void nuova_riga();
@ -123,52 +134,161 @@ const real TRilevamento_prev_msk::proponi_costo(TToken_string& riga)
} }
void TRilevamento_prev_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_prev_msk::get_row_anal_fields(TToken_string & row, TString & cdc, TString & cms, TString & fase)
{
TMask & m = sfield(F_SHEET).sheet_mask();
TString val;
cdc.cut(0);
if (_scdc_sid >= 0)
for ( short id = _scdc_sid; id <= _scdc_lid; id++)
{
val = m.get(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 = m.get(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 = m.get(id);
val.rpad(m.field(id).size());
fase << val;
}
fase.trim();
}
void TRilevamento_prev_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_prev_msk::carica_default() void TRilevamento_prev_msk::carica_default()
{ {
//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 anno = get_date(F_DADATA).year();
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT); const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
TString4 damese; damese.format("%02d", get_date(F_DADATA).month()); TString4 damese; damese.format("%02d", get_date(F_DADATA).month());
TString4 amese; amese.format("%02d", get_date(F_ADATA).month()); TString4 amese; amese.format("%02d", get_date(F_ADATA).month());
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;
switch(get(F_RISOATT)[0])
switch(get(F_RISOATT)[0])
{ {
case 'T': codice = get(F_CODICE); break; case 'T': codice = get(F_CODICE); break;
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; TString query;
query << "USE RILORE\n" query << "USE " << LF_RILORE << "\n";
<< "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&" if (risoatt.full())
<< "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&" query << "SELECT (BETWEEN(" << RILORE_TIPORA << ",\"" << risoatt << "\",\"" << risoatt << "\"))";
<< "(BETWEEN(ANNO," << anno << "," << anno << "))&&" if (codice.full())
<< "(BETWEEN(MESE,\"" << damese << "\",\"" << amese << "\"))&&" query << "&&(BETWEEN(" << RILORE_CODICE << ",\"" << codice << "\",\"" << codice << "\"))";
<< "(BETWEEN(TPORA,\"" << tpora << "\",\"" << tpora << "\"))&&" if (anno > 0)
<< "(BETWEEN(CODCOSTO,\"" << codcosto << "\",\"" << codcosto << "\"))&&" query << "&&(BETWEEN(" << RILORE_ANNO << ",\"" << anno << "\",\"" << anno << "\"))";
<< "(BETWEEN(CODCMS,\"" << codcms << "\",\"" << codcms << "\"))&&" query << "(BETWEEN(MESE,\"" << damese << "\",\"" << amese << "\"))&&";
<< "(BETWEEN(CODFASE,\"" << codfase << "\",\"" << codfase << "\"))\n"; 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 = "TIPO=\"D\""; TString fromto = RILORE_TIPO "=\"D\" ";
if(risoatt != 'T') if(risoatt != 'T')
{ {
fromto << " TIPORA=\"" << risoatt << "\""; fromto << " " << RILORE_TIPORA << "=\"" << risoatt << "\" ";
if(codice.full()) if(codice.full())
{ {
fromto << " CODICE=\"" << codice << "\""; fromto << " " << RILORE_CODICE << "=\"" << codice << "\" ";
if(anno > 0) if(anno > 0)
{ {
fromto << " ANNO=\"" << anno << "\""; fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
if(damese.full()) if(damese.full())
{ {
fromto << " MESE=\"" << damese << "\""; fromto << RILORE_MESE << "=\"" << damese << "\" ";
if(tpora.full()) if(tpora.full())
fromto << " TPORA=\"" << tpora << "\""; fromto << " " << RILORE_TPORA << "=\"" << tpora << "\" ";
} }
} }
} }
@ -200,11 +320,9 @@ void TRilevamento_prev_msk::carica_default()
riga.add(rilore.dadata(), sheet.cid2index(S_DADATA)); riga.add(rilore.dadata(), sheet.cid2index(S_DADATA));
riga.add(rilore.adata(), sheet.cid2index(S_ADATA)); riga.add(rilore.adata(), sheet.cid2index(S_ADATA));
riga.add(rilore.tpora(), sheet.cid2index(S_TPORA)); riga.add(rilore.tpora(), sheet.cid2index(S_TPORA));
riga.add(rilore.codcosto(), sheet.cid2index(S_CODCOSTO)); riga.add(da.string(), sheet.cid2index(S_DADATA));
riga.add(rilore.codcms(), sheet.cid2index(S_CODCMS)); riga.add(a.string(), sheet.cid2index(S_ADATA));
riga.add(rilore.codfase(), sheet.cid2index(S_CODFASE)); put_row_anal_fields(riga, rilore.codcosto(), rilore.codcms(), rilore.codfase());
riga.add(da, sheet.cid2index(S_DADATA));
riga.add(a, sheet.cid2index(S_ADATA));
riga.add(rilore.qtaore(), sheet.cid2index(S_QTAORE)); riga.add(rilore.qtaore(), sheet.cid2index(S_QTAORE));
riga.add(proponi_costo(riga).string(), sheet.cid2index(S_COSTO)); riga.add(proponi_costo(riga).string(), sheet.cid2index(S_COSTO));
} }
@ -222,9 +340,9 @@ void TRilevamento_prev_msk::riempi_sheet()
TString4 damese; damese.format("%02d", get_date(F_DADATA).month()); TString4 damese; damese.format("%02d", get_date(F_DADATA).month());
TString4 amese; amese.format("%02d", get_date(F_ADATA).month()); TString4 amese; amese.format("%02d", get_date(F_ADATA).month());
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;
switch(get(F_RISOATT)[0]) switch(get(F_RISOATT)[0])
{ {
@ -233,33 +351,43 @@ void TRilevamento_prev_msk::riempi_sheet()
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; TString query;
query << "USE RILORE\n" query << "USE " << LF_RILORE << "\n";
<< "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&" if (risoatt.full())
<< "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&" query << "SELECT (BETWEEN(" << RILORE_TIPORA << ",\"" << risoatt << "\",\"" << risoatt << "\"))";
<< "(BETWEEN(ANNO," << anno << "," << anno << "))&&" if (codice.full())
<< "(BETWEEN(MESE,\"" << damese << "\",\"" << amese << "\"))&&" query << "&&(BETWEEN(" << RILORE_CODICE << ",\"" << codice << "\",\"" << codice << "\"))";
<< "(BETWEEN(TPORA,\"" << tpora << "\",\"" << tpora << "\"))&&" if (anno > 0)
<< "(BETWEEN(CODCOSTO,\"" << codcosto << "\",\"" << codcosto << "\"))&&" query << "&&(BETWEEN(" << RILORE_ANNO << ",\"" << anno << "\",\"" << anno << "\"))";
<< "(BETWEEN(CODCMS,\"" << codcms << "\",\"" << codcms << "\"))&&" query << "(BETWEEN(MESE,\"" << damese << "\",\"" << amese << "\"))&&";
<< "(BETWEEN(CODFASE,\"" << codfase << "\",\"" << codfase << "\"))\n"; 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 = "TIPO=\"P\""; TString fromto = RILORE_TIPO "=\"P\" ";
if(risoatt != 'T') if(risoatt != 'T')
{ {
fromto << " TIPORA=\"" << risoatt << "\""; fromto << " " << RILORE_TIPORA << "=\"" << risoatt << "\" ";
if(codice.full()) if(codice.full())
{ {
fromto << " CODICE=\"" << codice << "\""; fromto << " " << RILORE_CODICE << "=\"" << codice << "\" ";
if(anno > 0) if(anno > 0)
{ {
fromto << " ANNO=\"" << anno << "\""; fromto << " " << RILORE_ANNO << "=\"" << anno << "\" ";
if(damese.full()) if(damese.full())
{ {
fromto << " MESE=\"" << damese << "\""; fromto << RILORE_MESE << "=\"" << damese << "\" ";
if(tpora.full()) if(tpora.full())
fromto << " TPORA=\"" << tpora << "\""; fromto << " " << RILORE_TPORA << "=\"" << tpora << "\" ";
} }
} }
} }
@ -288,15 +416,12 @@ void TRilevamento_prev_msk::riempi_sheet()
riga.add(rilore.dadata(), sheet.cid2index(S_DADATA)); riga.add(rilore.dadata(), sheet.cid2index(S_DADATA));
riga.add(rilore.adata(), sheet.cid2index(S_ADATA)); riga.add(rilore.adata(), sheet.cid2index(S_ADATA));
riga.add(rilore.tpora(), sheet.cid2index(S_TPORA)); riga.add(rilore.tpora(), sheet.cid2index(S_TPORA));
riga.add(rilore.codcosto(), sheet.cid2index(S_CODCOSTO)); put_row_anal_fields(riga, rilore.codcosto(), rilore.codcms(), rilore.codfase());
riga.add(rilore.codcms(), sheet.cid2index(S_CODCMS));
riga.add(rilore.codfase(), sheet.cid2index(S_CODFASE));
riga.add(rilore.dadata(), sheet.cid2index(S_DADATA)); riga.add(rilore.dadata(), sheet.cid2index(S_DADATA));
riga.add(rilore.adata(), sheet.cid2index(S_ADATA)); riga.add(rilore.adata(), sheet.cid2index(S_ADATA));
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));
} }
sheet.force_update();
} }
//NUOVA_RIGA: metodo che aggiunge una riga allo sheet //NUOVA_RIGA: metodo che aggiunge una riga allo sheet
@ -304,48 +429,56 @@ void TRilevamento_prev_msk::riempi_sheet()
void TRilevamento_prev_msk::nuova_riga() void TRilevamento_prev_msk::nuova_riga()
{ {
TSheet_field& sheet = sfield(F_SHEET); TSheet_field& sheet = sfield(F_SHEET);
sheet.row(-1); TToken_string & riga = sheet.row(-1);
sheet.select(sheet.items() - 1); const int r = sheet.items() - 1;
sheet.select(r);
TMask& msk = sheet.sheet_mask(); TMask& msk = sheet.sheet_mask();
//guardo il tipo risorsa / attrezzatura che sto ricercando //guardo il tipo risorsa / attrezzatura che sto ricercando
const char risoatt = get(F_RISOATT)[0] == 'T' ? 'R' : get(F_RISOATT)[0]; const bool tutti = get(F_RISOATT)[0] == 'T';
TString4 tmp; tmp << risoatt; const TString4 tipo = tutti ? "R" : get(F_RISOATT);
msk.set(S_RISOATT, tmp); TString codice;
msk.enable(S_RISOATT, get(F_RISOATT)[0] == 'T'); TString16 dadata(get(F_DADATA));
TString16 adata(get(F_ADATA));
TString tpora = get(F_TPORA);
TString codcosto;
TString codcms;
TString codfase;
//leggo il codice corretto a seconda del tipo selezionato riga.add(tipo, sheet.cid2index(S_RISOATT));
switch(get(F_RISOATT)[0]) if (!tutti)
{ {
case 'T': if (tipo == "R")
msk.reset(S_CODRIS); msk.enable(S_CODRIS); riga.add(get(F_CODRIS), sheet.cid2index(S_CODRIS));
msk.reset(S_CODATT); msk.enable(S_CODATT); else
break; riga.add(get(F_CODATT), sheet.cid2index(S_CODATT));
case 'R': }
msk.set(S_CODRIS, get(F_CODRIS)); msk.enable(S_CODRIS); riga.add(dadata, sheet.cid2index(S_DADATA));
break; riga.add(adata, sheet.cid2index(S_ADATA));
case 'A': riga.add(tpora, sheet.cid2index(S_TPORA));
msk.set(S_CODATT, get(F_CODATT)); msk.enable(S_CODATT); get_anal_fields(codcosto, codcms, codfase);
break; put_row_anal_fields(riga, codcosto, codcms, codfase);
default: break;
}
msk.enable(S_DADATA, get(F_DADATA).empty());
msk.set(S_DADATA, get(F_DADATA));
msk.enable(S_ADATA, get(F_ADATA).empty()); riga.add(proponi_costo(msk).string(), sheet.cid2index(S_COSTO));
msk.set(S_ADATA, get(F_ADATA)); sheet.update_mask(r);
msk.enable(S_RISOATT, tutti);
if (tutti || tipo == "R")
msk.enable(S_CODRIS);
if (tutti || tipo == "A")
msk.enable(S_CODATT);
msk.enable(S_DADATA, dadata.empty());
msk.enable(S_ADATA, adata.empty());
msk.enable(S_TPORA, tpora.empty());
if (_scdc_sid >= 0)
for ( short id = _scdc_sid; id <= _scdc_lid; id++)
msk.enable(id, codcosto.blank());
if (_scms_sid >= 0)
for ( short id = _scms_sid; id <= _scms_lid; id++)
msk.enable(id, codcms.blank());
if (_sfase_sid >= 0)
for ( short id = _sfase_sid; id <= _sfase_lid; id++)
msk.enable(id, codfase.blank());
msk.enable(S_TPORA, get(F_TPORA).empty());
msk.set(S_TPORA, get(F_TPORA));
msk.enable(S_CODCOSTO, get(F_CODCOSTO).empty());
msk.enable(S_CODCMS, get(F_CODCMS).empty());
msk.enable(S_CODFASE, get(F_CODFASE).empty());
msk.set(S_QTAORE, 0L);
msk.set(S_COSTO, proponi_costo(msk));
//lancio la maschera di riga da compilare //lancio la maschera di riga da compilare
if(msk.run() == K_ENTER) if(msk.run() == K_ENTER)
{ {
@ -353,36 +486,7 @@ void TRilevamento_prev_msk::nuova_riga()
const real prezzo = msk.get_real(S_COSTO); const real prezzo = msk.get_real(S_COSTO);
if(qtaore > 0) if(qtaore > 0)
{ sheet.update_row(r);
const char tipo = msk.get(S_RISOATT)[0];
const TString& codice = tipo == 'R' ? msk.get(S_CODRIS) : msk.get(S_CODATT);
//const TString& mese = msk.get(S_MESE);
const TString& tpora = msk.get(S_TPORA);
const TString& codcosto = msk.get(S_CODCOSTO);
const TString& codcms = msk.get(S_CODCMS);
const TString& codfase = msk.get(S_CODFASE);
const TDate& dadata = msk.get_date(S_DADATA);
const TDate& adata = msk.get_date(S_ADATA);
TToken_string& riga = sheet.row(sheet.items() - 1);
riga.add(tipo, sheet.cid2index(S_RISOATT));
switch(tipo)
{
case 'R': riga.add(codice, sheet.cid2index(S_CODRIS)); break;
case 'A': riga.add(codice, sheet.cid2index(S_CODATT)); break;
default : break;
}
riga.add(dadata, sheet.cid2index(S_DADATA));
riga.add(adata, sheet.cid2index(S_ADATA));
riga.add(tpora, sheet.cid2index(S_TPORA));
riga.add(codcosto, sheet.cid2index(S_CODCOSTO));
riga.add(codcms, sheet.cid2index(S_CODCMS));
riga.add(codfase, sheet.cid2index(S_CODFASE));
riga.add(dadata, sheet.cid2index(S_DADATA));
riga.add(adata, sheet.cid2index(S_ADATA));
riga.add(qtaore, sheet.cid2index(S_QTAORE));
riga.add(prezzo.string(), sheet.cid2index(S_COSTO));
}
else else
{ {
sheet.destroy(sheet.items() - 1); sheet.destroy(sheet.items() - 1);
@ -436,18 +540,18 @@ void TRilevamento_prev_msk::registra()
const TDate& dadata = riga.get(sheet.cid2index(S_DADATA)); const TDate& dadata = riga.get(sheet.cid2index(S_DADATA));
const TDate& adata = riga.get(sheet.cid2index(S_ADATA)); const TDate& adata = riga.get(sheet.cid2index(S_ADATA));
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA)); const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
const TString80 codcosto = riga.get(sheet.cid2index(S_CODCOSTO)); TString80 codcosto;
const TString80 codcms = riga.get(sheet.cid2index(S_CODCMS)); TString80 codcms;
const TString80 codfase = riga.get(sheet.cid2index(S_CODFASE)); TString80 codfase;
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);
TString4 mese; mese.format("%02d", adata.month()); TString4 mese; mese.format("%02d", adata.month());
TRilevamento_ore rilroa('P', tipora, codice, adata.year(), mese, tpora); TRilevamento_ore rilroa('P', tipora, codice, adata.year(), mese, tpora);
if(!rilroa.empty() && qtaore == 0)
get_row_anal_fields(riga, codcosto, codcms, codfase);
if(!rilroa.empty() && qtaore == 0)
rilroa.remove(file); rilroa.remove(file);
else else
{ {

View File

@ -19,14 +19,23 @@
#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_DADATA 103 #define S_DADATA 103
#define S_ADATA 104 #define S_ADATA 104
#define S_TPORA 105 #define S_TPORA 105
#define S_CODCOSTO 106 #define S_CDC1 106
#define S_CODCMS 107 #define S_CDC2 107
#define S_CODFASE 108 #define S_CDC3 108
#define S_QTAORE 109 #define S_CDC4 109
#define S_COSTO 110 #define S_CDC5 110
#define S_CDC6 111
#define S_CDC7 112
#define S_CDC8 113
#define S_CDC9 114
#define S_CDC10 115
#define S_CDC11 116
#define S_CDC12 117
#define S_QTAORE 118
#define S_COSTO 119

View File

@ -38,7 +38,7 @@ ENDPAGE
PAGE "Rilevazione Preventivi" 0 2 0 0 PAGE "Rilevazione Preventivi" 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
@ -55,7 +55,7 @@ END
STRING F_TPORA 2 STRING F_TPORA 2
BEGIN BEGIN
PROMPT 44 2 "Tipo ora " PROMPT 44 1 "Tipo ora "
USE &ORE USE &ORE
INPUT CODTAB F_TPORA INPUT CODTAB F_TPORA
DISPLAY "Codice@16" CODTAB DISPLAY "Codice@16" CODTAB
@ -132,24 +132,9 @@ BEGIN
GROUP 3 GROUP 3
END END
STRING F_CODCOSTO 20 SPREADSHEET F_SHEET -18 0
BEGIN BEGIN
PROMPT 2 3 "Centro di costo" PROMPT 1 7 ""
END
STRING F_CODCMS 20
BEGIN
PROMPT 2 4 "Commessa "
END
STRING F_CODFASE 20
BEGIN
PROMPT 3 5 "Fase "
END
SPREADSHEET F_SHEET -10 0
BEGIN
PROMPT 1 15 ""
ITEM "Tipo" ITEM "Tipo"
ITEM "Codice@16" ITEM "Codice@16"
ITEM "Dal@10" ITEM "Dal@10"
@ -158,8 +143,21 @@ BEGIN
ITEM "Centro di\nCosto@20" ITEM "Centro di\nCosto@20"
ITEM "Codice\nCommessa@20" ITEM "Codice\nCommessa@20"
ITEM "Codice\nFase@10" ITEM "Codice\nFase@10"
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@10"
ITEM "Descrizione@50"
END END
ENDPAGE ENDPAGE
@ -250,19 +248,100 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING S_CODCOSTO 20 STRING S_CDC1 20
BEGIN BEGIN
PROMPT 2 8 "Centro di Costo " PROMPT 2 8 "Cdc 1"
USE LF_CDC
CHECKTYPE NORMAL
FLAGS "H"
END END
STRING S_CODCMS 20 STRING S_CDC2 20
BEGIN BEGIN
PROMPT 2 9 "Codice Commessa " PROMPT 2 8 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
FLAGS "H"
END END
STRING S_CODFASE 20 STRING S_CDC3 20
BEGIN BEGIN
PROMPT 2 10 "Codice Fase " PROMPT 2 8 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
FLAGS "H"
END
STRING S_CDC4 20
BEGIN
PROMPT 2 8 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
FLAGS "H"
END
STRING S_CDC5 20
BEGIN
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
CHECKTYPE NORMAL
FLAGS "H"
END
STRING S_CDC7 20
BEGIN
PROMPT 2 9 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
FLAGS "H"
END
STRING S_CDC8 20
BEGIN
PROMPT 2 9 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
FLAGS "H"
END
STRING S_CDC9 20
BEGIN
PROMPT 2 10 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
FLAGS "H"
END
STRING S_CDC10 20
BEGIN
PROMPT 2 10 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
FLAGS "H"
END
STRING S_CDC11 20
BEGIN
PROMPT 2 10 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
FLAGS "H"
END
STRING S_CDC12 20
BEGIN
PROMPT 2 10 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
FLAGS "H"
END END
NUMBER S_QTAORE 6 NUMBER S_QTAORE 6
@ -270,7 +349,7 @@ BEGIN
PROMPT 2 11 "Quantità ore " PROMPT 2 11 "Quantità ore "
END END
NUMBER S_COSTO 6 2 NUMBER S_COSTO 10 2
BEGIN BEGIN
PROMPT 30 11 "Prezzo " PROMPT 30 11 "Prezzo "
END END