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@20737 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d41038e62e
commit
c538e29152
@ -158,68 +158,43 @@ void TRisoatt_msk::riempi_sheet()
|
|||||||
void TRisoatt_msk::nuova_riga()
|
void TRisoatt_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();
|
||||||
|
const bool tutti = get(F_RISOATT)[0] == 'T';
|
||||||
|
const TString4 tipo = tutti ? "R" : get(F_RISOATT);
|
||||||
|
int mese = get_int(F_MESE);
|
||||||
|
int anno = get_int(F_ANNO);
|
||||||
|
TString tpora = get(F_TPORA);
|
||||||
|
|
||||||
msk.set(S_ANNO, get(F_ANNO));
|
riga.add(tipo, sheet.cid2index(S_RISOATT));
|
||||||
//guardo il tipo risorsa / attrezzatura che sto ricercando
|
if (!tutti)
|
||||||
const char risoatt = get(F_RISOATT)[0] == 'T' ? 'R' : get(F_RISOATT)[0];
|
|
||||||
TString4 tmp; tmp << risoatt;
|
|
||||||
msk.set(S_RISOATT, tmp);
|
|
||||||
msk.enable(S_RISOATT, get(F_RISOATT)[0] == 'T');
|
|
||||||
|
|
||||||
//leggo il codice corretto a seconda del tipo selezionato
|
|
||||||
switch(get(F_RISOATT)[0])
|
|
||||||
{
|
{
|
||||||
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);
|
|
||||||
break;
|
|
||||||
case 'A':
|
|
||||||
msk.set(S_CODATT, get(F_CODATT)); msk.enable(S_CODATT);
|
|
||||||
break;
|
|
||||||
default: break;
|
|
||||||
}
|
}
|
||||||
|
riga.add(anno, sheet.cid2index(S_ANNO));
|
||||||
msk.enable(S_MESE, get(F_MESE).empty());
|
riga.add(mese, sheet.cid2index(S_MESE));
|
||||||
msk.set(S_MESE, get(F_MESE));
|
riga.add(tpora, sheet.cid2index(S_TPORA));
|
||||||
|
sheet.update_mask(r);
|
||||||
msk.enable(S_TPORA, get(F_TPORA).empty());
|
msk.enable(S_RISOATT, tutti);
|
||||||
msk.set(S_TPORA, get(F_TPORA));
|
if (tutti || tipo == "R")
|
||||||
|
msk.enable(S_CODRIS);
|
||||||
msk.set(S_VALUNI, "");
|
if (tutti || tipo == "A")
|
||||||
|
msk.enable(S_CODATT);
|
||||||
|
msk.enable(S_ANNO, anno == 0);
|
||||||
|
msk.enable(S_MESE, mese == 0);
|
||||||
|
msk.enable(S_TPORA, tpora.empty());
|
||||||
//lancio la maschera di riga da compilare
|
//lancio la maschera di riga da compilare
|
||||||
if(msk.run() == K_ENTER)
|
if(msk.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
const real& valuni = msk.get_real(S_VALUNI);
|
const real& valuni = msk.get_real(S_VALUNI);
|
||||||
|
|
||||||
if(valuni > ZERO)
|
if(valuni > ZERO)
|
||||||
{
|
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);
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
const TString& mese = msk.get(S_MESE);
|
|
||||||
riga.add(mese, sheet.cid2index(S_MESE));
|
|
||||||
const TString& tpora = msk.get(S_TPORA);
|
|
||||||
riga.add(tpora, sheet.cid2index(S_TPORA));
|
|
||||||
riga.add(valuni.string(), sheet.cid2index(S_VALUNI));
|
|
||||||
const TString& anno = msk.get(S_ANNO);
|
|
||||||
riga.add(anno, sheet.cid2index(S_ANNO));
|
|
||||||
sheet.set_column_justify(sheet.cid2index(S_VALUNI), true);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sheet.destroy(sheet.items() - 1);
|
sheet.destroy(sheet.items() - 1);
|
||||||
|
@ -158,71 +158,44 @@ void TDisp_risoatt_msk::riempi_sheet()
|
|||||||
void TDisp_risoatt_msk::nuova_riga()
|
void TDisp_risoatt_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();
|
||||||
|
const bool tutti = get(F_RISOATT)[0] == 'T';
|
||||||
|
const TString4 tipo = tutti ? "R" : get(F_RISOATT);
|
||||||
|
int mese = get_int(F_MESE);
|
||||||
|
int anno = get_int(F_ANNO);
|
||||||
|
TString tpora = get(F_TPORA);
|
||||||
|
|
||||||
//guardo il tipo risorsa / attrezzatura che sto ricercando
|
riga.add(tipo, sheet.cid2index(S_RISOATT));
|
||||||
const char risoatt = get(F_RISOATT)[0] == 'T' ? 'R' : get(F_RISOATT)[0];
|
if (!tutti)
|
||||||
TString4 tmp; tmp << risoatt;
|
|
||||||
msk.set(S_RISOATT, tmp);
|
|
||||||
msk.enable(S_RISOATT, get(F_RISOATT)[0] == 'T');
|
|
||||||
|
|
||||||
//leggo il codice corretto a seconda del tipo selezionato
|
|
||||||
switch(get(F_RISOATT)[0])
|
|
||||||
{
|
{
|
||||||
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);
|
|
||||||
break;
|
|
||||||
case 'A':
|
|
||||||
msk.set(S_CODATT, get(F_CODATT)); msk.enable(S_CODATT);
|
|
||||||
break;
|
|
||||||
default: break;
|
|
||||||
}
|
}
|
||||||
|
riga.add(anno, sheet.cid2index(S_ANNO));
|
||||||
msk.enable(S_ANNO, get(F_ANNO).empty());
|
riga.add(mese, sheet.cid2index(S_MESE));
|
||||||
msk.set(S_ANNO, get(F_ANNO));
|
riga.add(tpora, sheet.cid2index(S_TPORA));
|
||||||
|
sheet.update_mask(r);
|
||||||
msk.enable(S_MESE, get(F_MESE).empty());
|
msk.enable(S_RISOATT, tutti);
|
||||||
msk.set(S_MESE, get(F_MESE));
|
if (tutti || tipo == "R")
|
||||||
|
msk.enable(S_CODRIS);
|
||||||
msk.enable(S_TPORA, get(F_TPORA).empty());
|
if (tutti || tipo == "A")
|
||||||
msk.set(S_TPORA, get(F_TPORA));
|
msk.enable(S_CODATT);
|
||||||
|
msk.enable(S_ANNO, anno == 0);
|
||||||
msk.set(S_OREPREV, 0L);
|
msk.enable(S_MESE, mese == 0);
|
||||||
msk.set(S_ORECONS, 0L);
|
msk.enable(S_TPORA, tpora.empty());
|
||||||
|
|
||||||
//lancio la maschera di riga da compilare
|
//lancio la maschera di riga da compilare
|
||||||
if(msk.run() == K_ENTER)
|
if(msk.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
const int oreprev = msk.get_int(S_OREPREV);
|
const int oreprev = msk.get_int(S_OREPREV);
|
||||||
const int orecons = msk.get_int(S_ORECONS);
|
const int orecons = msk.get_int(S_ORECONS);
|
||||||
|
|
||||||
if(oreprev > 0 && orecons > 0)
|
if(oreprev > 0 || orecons > 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);
|
|
||||||
|
|
||||||
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(get_int(F_ANNO), sheet.cid2index(S_ANNO));
|
|
||||||
riga.add(mese, sheet.cid2index(S_MESE));
|
|
||||||
riga.add(tpora, sheet.cid2index(S_TPORA));
|
|
||||||
riga.add(oreprev, sheet.cid2index(S_OREPREV));
|
|
||||||
riga.add(orecons, sheet.cid2index(S_ORECONS));
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sheet.destroy(sheet.items() - 1);
|
sheet.destroy(sheet.items() - 1);
|
||||||
|
361
ci/ci0600.cpp
361
ci/ci0600.cpp
@ -11,6 +11,8 @@
|
|||||||
#include "ci0.h"
|
#include "ci0.h"
|
||||||
#include "cilib.h"
|
#include "cilib.h"
|
||||||
#include "ci0600a.h"
|
#include "ci0600a.h"
|
||||||
|
#include "rilore.h"
|
||||||
|
#include "../ca/calib01.h"
|
||||||
#include "../ve/velib.h"
|
#include "../ve/velib.h"
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
@ -21,9 +23,19 @@
|
|||||||
class TDef_risoatt_msk : public TAutomask
|
class TDef_risoatt_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:
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
|
void 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, TString & cdc, TString & cms, 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);
|
||||||
@ -35,6 +47,98 @@ public:
|
|||||||
TDef_risoatt_msk();
|
TDef_risoatt_msk();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void TDef_risoatt_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.fill(' ', field(id).size());
|
||||||
|
cdc << val;
|
||||||
|
}
|
||||||
|
cms.cut(0);
|
||||||
|
if (_cms_sid >= 0)
|
||||||
|
for ( short id = _cms_sid; id <= _cms_lid; id++)
|
||||||
|
{
|
||||||
|
val = get(id);
|
||||||
|
val.fill(' ', field(id).size());
|
||||||
|
cms << val;
|
||||||
|
}
|
||||||
|
fase.cut(0);
|
||||||
|
if (_fase_sid >= 0)
|
||||||
|
for ( short id = _fase_sid; id <= _fase_lid; id++)
|
||||||
|
{
|
||||||
|
val = get(id);
|
||||||
|
val.fill(' ', field(id).size());
|
||||||
|
fase << val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TDef_risoatt_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.fill(' ', m.field(id).size());
|
||||||
|
cdc << val;
|
||||||
|
}
|
||||||
|
cms.cut(0);
|
||||||
|
if (_scms_sid >= 0)
|
||||||
|
for ( short id = _scms_sid; id <= _scms_lid; id++)
|
||||||
|
{
|
||||||
|
val = m.get(id);
|
||||||
|
val.fill(' ', m.field(id).size());
|
||||||
|
cms << val;
|
||||||
|
}
|
||||||
|
fase.cut(0);
|
||||||
|
if (_sfase_sid >= 0)
|
||||||
|
for ( short id = _sfase_sid; id <= _sfase_lid; id++)
|
||||||
|
{
|
||||||
|
val = m.get(id);
|
||||||
|
val.fill(' ', m.field(id).size());
|
||||||
|
fase << val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TDef_risoatt_msk::put_row_anal_fields(TToken_string & row, TString & cdc, TString & cms, 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//RIEMPI_SHEET: metodo che riempie lo sheet in base ai campi chiave
|
//RIEMPI_SHEET: metodo che riempie lo sheet in base ai campi chiave
|
||||||
//compilati sulla maschera
|
//compilati sulla maschera
|
||||||
void TDef_risoatt_msk::riempi_sheet()
|
void TDef_risoatt_msk::riempi_sheet()
|
||||||
@ -44,9 +148,9 @@ void TDef_risoatt_msk::riempi_sheet()
|
|||||||
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
||||||
const TString4 mese = get(F_MESE);
|
const TString4 mese = get(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;
|
||||||
switch(get(F_RISOATT)[0])
|
switch(get(F_RISOATT)[0])
|
||||||
{
|
{
|
||||||
@ -56,32 +160,34 @@ void TDef_risoatt_msk::riempi_sheet()
|
|||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
TString query;
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
query << "USE RILORE\n"
|
|
||||||
<< "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&"
|
|
||||||
<< "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&"
|
|
||||||
<< "(BETWEEN(ANNO,\"" << anno << "\",\"" << anno << "\"))&&"
|
|
||||||
<< "(BETWEEN(MESE,\"" << mese << "\",\"" << mese << "\"))&&"
|
|
||||||
<< "(BETWEEN(TPORA,\"" << tpora << "\",\"" << tpora << "\"))&&"
|
|
||||||
<< "(BETWEEN(CODCOSTO,\"" << codcosto << "\",\"" << codcosto << "\"))&&"
|
|
||||||
<< "(BETWEEN(CODCMS,\"" << codcms << "\",\"" << codcms << "\"))&&"
|
|
||||||
<< "(BETWEEN(CODFASE,\"" << codcms << "\",\"" << codfase << "\"))\n";
|
|
||||||
|
|
||||||
TString fromto = "TIPO=\"D\"";
|
TString query;
|
||||||
|
query << "USE " << LF_RILORE << "\n"
|
||||||
|
<< "SELECT (BETWEEN(" << RILORE_TIPORA << ",\"" << risoatt << "\",\"" << risoatt << "\"))&&"
|
||||||
|
<< "(BETWEEN(" << RILORE_CODICE << ",\"" << codice << "\",\"" << codice << "\"))&&"
|
||||||
|
<< "(BETWEEN(" << RILORE_ANNO << ",\"" << anno << "\",\"" << anno << "\"))&&"
|
||||||
|
<< "(BETWEEN(" << RILORE_MESE << ",\"" << mese << "\",\"" << mese << "\"))&&"
|
||||||
|
<< "(BETWEEN(" << RILORE_TPORA << ",\"" << tpora << "\",\"" << tpora << "\"))&&"
|
||||||
|
<< "(BETWEEN(" << RILORE_CODCOSTO << ",\"" << codcosto << "\",\"" << codcosto << "\"))&&"
|
||||||
|
<< "(BETWEEN(" << RILORE_CODCMS << ",\"" << codcms << "\",\"" << codcms << "\"))&&"
|
||||||
|
<< "(BETWEEN(" << RILORE_CODFASE << ",\"" << codcms << "\",\"" << codfase << "\"))\n";
|
||||||
|
|
||||||
|
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.full())
|
if(anno.full())
|
||||||
{
|
{
|
||||||
fromto << " ANNO=\"" << anno << "\"";
|
fromto << " " << RILORE_ANNO << "=\"" << anno << "\"";
|
||||||
if(mese.full())
|
if(mese.full())
|
||||||
{
|
{
|
||||||
fromto << " MESE=\"" << mese << "\"";
|
fromto << " " << RILORE_MESE << "=\"" << mese << "\"";
|
||||||
if(tpora.full())
|
if(tpora.full())
|
||||||
fromto << " TPORA=\"" << tpora << "\"";
|
fromto << " " << RILORE_TPORA << "=\"" << tpora << "\"";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -110,11 +216,10 @@ 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));
|
||||||
riga.add(rilore.codcosto(), sheet.cid2index(S_CODCOSTO));
|
put_row_anal_fields(riga, codcosto, codcms, codfase);
|
||||||
riga.add(rilore.codcms(), sheet.cid2index(S_CODCMS));
|
|
||||||
riga.add(rilore.codfase(), sheet.cid2index(S_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));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sheet.force_update();
|
sheet.force_update();
|
||||||
@ -125,42 +230,53 @@ void TDef_risoatt_msk::riempi_sheet()
|
|||||||
void TDef_risoatt_msk::nuova_riga()
|
void TDef_risoatt_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');
|
int mese = get_int(F_MESE);
|
||||||
|
int anno = get_int(F_ANNO);
|
||||||
|
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);
|
|
||||||
break;
|
|
||||||
case 'A':
|
|
||||||
msk.set(S_CODATT, get(F_CODATT)); msk.enable(S_CODATT);
|
|
||||||
break;
|
|
||||||
default: break;
|
|
||||||
}
|
}
|
||||||
|
riga.add(anno, sheet.cid2index(S_ANNO));
|
||||||
msk.enable(S_ANNO, get(F_ANNO).empty());
|
riga.add(mese, sheet.cid2index(S_MESE));
|
||||||
msk.set(S_ANNO, get(F_ANNO));
|
riga.add(tpora, sheet.cid2index(S_TPORA));
|
||||||
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
msk.enable(S_MESE, get(F_MESE).empty());
|
put_row_anal_fields(riga, codcosto, codcms, codfase);
|
||||||
msk.set(S_MESE, get(F_MESE));
|
sheet.update_mask(r);
|
||||||
|
msk.enable(S_RISOATT, tutti);
|
||||||
msk.enable(S_TPORA, get(F_TPORA).empty());
|
if (tutti || tipo == "R")
|
||||||
msk.set(S_TPORA, get(F_TPORA));
|
msk.enable(S_CODRIS);
|
||||||
|
if (tutti || tipo == "A")
|
||||||
msk.set(S_QTAORE, 0L);
|
msk.enable(S_CODATT);
|
||||||
|
msk.enable(S_ANNO, anno == 0);
|
||||||
|
msk.enable(S_MESE, mese == 0);
|
||||||
|
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());
|
||||||
|
|
||||||
//lancio la maschera di riga da compilare
|
//lancio la maschera di riga da compilare
|
||||||
if(msk.run() == K_ENTER)
|
if(msk.run() == K_ENTER)
|
||||||
@ -169,32 +285,7 @@ void TDef_risoatt_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);
|
|
||||||
|
|
||||||
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(get_int(F_ANNO), sheet.cid2index(S_ANNO));
|
|
||||||
riga.add(mese, sheet.cid2index(S_MESE));
|
|
||||||
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(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);
|
||||||
@ -248,14 +339,15 @@ void TDef_risoatt_msk::registra()
|
|||||||
const int anno = riga.get_int(sheet.cid2index(S_ANNO));
|
const int anno = riga.get_int(sheet.cid2index(S_ANNO));
|
||||||
const TString4 mese = riga.get(sheet.cid2index(S_MESE));
|
const TString4 mese = riga.get(sheet.cid2index(S_MESE));
|
||||||
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);
|
||||||
|
|
||||||
|
get_row_anal_fields(riga, codcosto, codcms, codfase);
|
||||||
|
|
||||||
TRilevamento_ore rilroa('D', tipora, codice, anno, mese, tpora);
|
TRilevamento_ore rilroa('D', tipora, codice, anno, mese, tpora);
|
||||||
if(!rilroa.empty() && qtaore == 0)
|
if(!rilroa.empty() && qtaore == 0)
|
||||||
rilroa.remove(file);
|
rilroa.remove(file);
|
||||||
@ -365,7 +457,110 @@ void TDef_risoatt_msk::esegui() const
|
|||||||
TDef_risoatt_msk::TDef_risoatt_msk()
|
TDef_risoatt_msk::TDef_risoatt_msk()
|
||||||
: TAutomask("ci0600a")
|
: TAutomask("ci0600a")
|
||||||
{
|
{
|
||||||
|
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
|
||||||
|
{
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
const int h = ca_create_fields(*this, 0, LF_FASI, 2, y, dlg, dlg + 100);
|
||||||
|
_fase_sid = dlg;
|
||||||
|
_fase_lid = dlg + h - 1;
|
||||||
|
y += h - 1;
|
||||||
|
dlg += h;
|
||||||
|
const int sh = ca_create_fields(sm, 0, LF_FASI, 2, sy, sdlg, sdlg + 50);
|
||||||
|
_sfase_sid = sdlg;
|
||||||
|
_sfase_lid = sdlg + sh - 1;
|
||||||
|
sy += sh - 1;
|
||||||
|
sdlg += h;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
const int h = ca_create_fields(*this, 0, LF_FASI, 2, y, dlg, dlg + 100);
|
||||||
|
_fase_sid = dlg;
|
||||||
|
_fase_lid = dlg + h - 1;
|
||||||
|
y += h - 1;
|
||||||
|
dlg += h;
|
||||||
|
const int sh = ca_create_fields(sm, 0, LF_FASI, 2, sy, sdlg, sdlg + 50);
|
||||||
|
_sfase_sid = sdlg;
|
||||||
|
_sfase_lid = sdlg + sh - 1;
|
||||||
|
sy += sh - 1;
|
||||||
|
sdlg += h;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (fasinfo.levels() > 0 && fasinfo.parent() <= 0)
|
||||||
|
{
|
||||||
|
const int h = ca_create_fields(*this, 0, LF_FASI, 2, y, dlg, dlg + 100);
|
||||||
|
_fase_sid = dlg;
|
||||||
|
_fase_lid = dlg + h - 1;
|
||||||
|
y += h - 1;
|
||||||
|
dlg += h;
|
||||||
|
const int sh = ca_create_fields(sm, 0, LF_FASI, 2, sy, sdlg, sdlg + 50);
|
||||||
|
_sfase_sid = sdlg;
|
||||||
|
_sfase_lid = sdlg + sh - 1;
|
||||||
|
sy += 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 = f.prompt();
|
||||||
|
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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
@ -389,6 +584,6 @@ void TDef_risoatt_app::main_loop()
|
|||||||
int ci0600(int argc, char *argv[])
|
int ci0600(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
TDef_risoatt_app a;
|
TDef_risoatt_app a;
|
||||||
a.run (argc, argv, TR("Gestione dati dredefiniti"));
|
a.run (argc, argv, TR("Gestione dati predefiniti"));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
26
ci/ci0600a.h
26
ci/ci0600a.h
@ -8,11 +8,10 @@
|
|||||||
#define F_DESRIS 307
|
#define F_DESRIS 307
|
||||||
#define F_CODATT 308
|
#define F_CODATT 308
|
||||||
#define F_DESATT 309
|
#define F_DESATT 309
|
||||||
#define F_CODCOSTO 310
|
#define F_ANAL 310
|
||||||
#define F_CODCMS 311
|
#define F_SHEET 330
|
||||||
#define F_CODFASE 312
|
|
||||||
#define F_SHEET 313
|
|
||||||
|
|
||||||
|
#define F_DESANAL 410
|
||||||
#define DLG_RESET 400
|
#define DLG_RESET 400
|
||||||
#define DLG_CERCA 401
|
#define DLG_CERCA 401
|
||||||
|
|
||||||
@ -24,8 +23,17 @@
|
|||||||
#define S_ANNO 103
|
#define S_ANNO 103
|
||||||
#define S_MESE 104
|
#define S_MESE 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
|
124
ci/ci0600a.uml
124
ci/ci0600a.uml
@ -130,21 +130,6 @@ BEGIN
|
|||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
STRING F_CODCOSTO 20
|
|
||||||
BEGIN
|
|
||||||
PROMPT 3 3 "Centro di costo"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_CODCMS 20
|
|
||||||
BEGIN
|
|
||||||
PROMPT 3 4 "Commessa "
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_CODFASE 20
|
|
||||||
BEGIN
|
|
||||||
PROMPT 3 5 "Fase "
|
|
||||||
END
|
|
||||||
|
|
||||||
SPREADSHEET F_SHEET -10 0
|
SPREADSHEET F_SHEET -10 0
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 15 ""
|
PROMPT 1 15 ""
|
||||||
@ -153,9 +138,18 @@ BEGIN
|
|||||||
ITEM "Anno"
|
ITEM "Anno"
|
||||||
ITEM "Mese"
|
ITEM "Mese"
|
||||||
ITEM "Tipo\nOra@5"
|
ITEM "Tipo\nOra@5"
|
||||||
ITEM "Centro di\nCosto@20"
|
ITEM "CDC1"
|
||||||
ITEM "Codice\nCommessa@20"
|
ITEM "CDC2"
|
||||||
ITEM "Codice\nFase@10"
|
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@10"
|
ITEM "Costo@10"
|
||||||
END
|
END
|
||||||
@ -163,9 +157,9 @@ END
|
|||||||
ENDPAGE
|
ENDPAGE
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
PAGE "Dati Predefiniti" -1 -1 78 13
|
PAGE "Dati Predefiniti" -1 -1 78 22
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 12
|
GROUPBOX DLG_NULL 76 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "@bRisorsa - Attrezzatura"
|
PROMPT 1 1 "@bRisorsa - Attrezzatura"
|
||||||
END
|
END
|
||||||
@ -252,29 +246,103 @@ 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
|
||||||
|
GROUP 1
|
||||||
|
FLAGS "H"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CODCMS 20
|
STRING S_CDC2 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Codice Commessa "
|
PROMPT 2 9 "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 10 "Cdc 2"
|
||||||
|
COPY USE S_CDC1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC4 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 11 "Cdc 2"
|
||||||
|
COPY USE S_CDC1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC5 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 12 "Cdc 2"
|
||||||
|
COPY USE S_CDC1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC7 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 13 "Cdc 2"
|
||||||
|
COPY USE S_CDC1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC8 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 14 "Cdc 2"
|
||||||
|
COPY USE S_CDC1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC9 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 15 "Cdc 2"
|
||||||
|
COPY USE S_CDC1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC10 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 16 "Cdc 2"
|
||||||
|
COPY USE S_CDC1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC11 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 17 "Cdc 2"
|
||||||
|
COPY USE S_CDC1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CDC12 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 18 "Cdc 2"
|
||||||
|
COPY USE S_CDC1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "H"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER S_QTAORE 6
|
NUMBER S_QTAORE 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 "Quantità ore "
|
PROMPT 2 19 "Quantità ore "
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER S_COSTO 10 2
|
NUMBER S_COSTO 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 30 11 "Prezzo "
|
PROMPT 30 19 "Prezzo "
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user