Patch level : 10.0 nopatch

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

RIlevazione Ore su commessa cdc fase


git-svn-id: svn://10.65.10.50/branches/R_10_00@20717 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-07-29 00:26:58 +00:00
parent e813f4ccbb
commit 3f7e85cb1c
13 changed files with 142 additions and 121 deletions

View File

@ -23,6 +23,7 @@ class TRisoatt_msk : public TAutomask
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
const TString & add_field_to_tab_filter(TString & filtro, short id, int len = 0, const char * empty_value = "");
void riempi_sheet();
void nuova_riga();
void azzera_riga(TSheet_field& sheet);
@ -36,6 +37,21 @@ public:
TRisoatt_msk();
};
const TString & TRisoatt_msk::add_field_to_tab_filter(TString & filtro, short id, int len, const char * empty_value)
{
if (len <= 0)
len = field(id).size();
TString val = get(id);
if (val == empty_value)
val.fill('?', len);
else
val.left_just(len);
filtro << val;
return filtro;
}
//RIEMPI_SHEET: metodo che riempie lo sheet in base ai campi chiave
//compilati sulla maschera
void TRisoatt_msk::riempi_sheet()
@ -44,68 +60,43 @@ void TRisoatt_msk::riempi_sheet()
const TString4 anno = get(F_ANNO);
//guardo il tipo risorsa / attrezzatura che sto ricercando (se Tutti setto a '?')
char risoatt;
if(get(F_RISOATT)[0] == 'T')
risoatt = '?';
else
risoatt = get(F_RISOATT)[0];
TString filtro;
add_field_to_tab_filter(filtro, F_RISOATT, 1, "T");
char risoatt = get(F_RISOATT)[0];
//leggo il codice corretto a seconda del tipo selezionato (se vuoto setto a 16 caratteri '?')
TString16 codice;
switch(get(F_RISOATT)[0])
switch(risoatt)
{
case 'T':
if (get(F_CODICE).empty())
codice.fill('?', 16);
else
{
codice = get(F_CODICE);
codice.left_just(16);
}
add_field_to_tab_filter(filtro, F_CODICE);
break;
case 'R':
if (get(F_CODRIS).empty())
codice.fill('?', 16);
else
{
codice = get(F_CODRIS);
codice.left_just(16);
}
add_field_to_tab_filter(filtro, F_CODRIS);
break;
case 'A':
if (get(F_CODATT).empty())
codice.fill('?', 16);
else
{
codice = get(F_CODATT);
codice.left_just(16);
}
add_field_to_tab_filter(filtro, F_CODATT);
break;
default: break;
}
//leggo il mese (se vuoto setto a '??')
TString4 mese;
if (get(F_MESE).empty())
mese.fill('?', 2);
else
mese = get(F_MESE);
add_field_to_tab_filter(filtro, F_MESE, 2);
//leggo il tipo ora (se vuoto setto a '??')
TString4 tpora;
if (get(F_TPORA).empty())
tpora.fill('?', 2);
else
tpora = get(F_TPORA);
add_field_to_tab_filter(filtro, F_TPORA);
//preparo il filtro della query
TString filtro;
filtro << risoatt << codice << anno << mese << tpora;
int i ;
for (i = filtro.len() - 1; i >= 0 && filtro[i] == '?'; i--);
filtro.cut(++i);
if (i > 0)
filtro << '*';
TString query;
query << "USE &ROA\n"
<< "SELECT CODTAB?=\"" << filtro << "\"";
if(risoatt != '?')
TString query("USE &ROA\n");
if (filtro.full())
query << "SELECT CODTAB?=\"" << filtro << "\"";
if(risoatt != 'T')
{
query << "\n"
<< "FROM CODTAB=" << risoatt << "\n"
@ -459,7 +450,13 @@ bool TRisoatt_msk::on_field_event(TOperable_field& f, TField_event e, long jolly
{
switch (f.dlg())
{
case DLG_NEWREC:
case DLG_CERCA:
if (e == fe_button)
{
riempi_sheet();
return false;
}
case DLG_NEWREC:
if (e == fe_button)
{
nuova_riga();
@ -569,6 +566,6 @@ void TRisoatt_app::main_loop()
int ci0200(int argc, char *argv[])
{
TRisoatt_app a;
a.run (argc, argv, TR("Gestione Risorse / Attrezzature"));
a.run (argc, argv, TR("Gestione Listini"));
return TRUE;
}

View File

@ -12,6 +12,7 @@
#define DLG_RESET 400
#define DLG_COPY 401
#define DLG_CERCA 402
#define S_RISOATT 101
#define S_CODRIS 102

View File

@ -2,6 +2,12 @@
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_CERCA
BEGIN
PROMP 1 1 "Cerca"
PICTURE TOOL_FINDREC
END
BUTTON DLG_NEWREC 2 2
BEGIN
PROMPT 1 1 "Nuovo"
@ -30,7 +36,7 @@ END
ENDPAGE
PAGE "Risorse e Attrezzature" 0 2 0 0
PAGE "Listino Risorse e Attrezzature" 0 2 0 0
GROUPBOX DLG_NULL 78 8
BEGIN

View File

@ -315,7 +315,13 @@ bool TDisp_risoatt_msk::on_field_event(TOperable_field& f, TField_event e, long
{
switch (f.dlg())
{
case DLG_NEWREC:
case DLG_CERCA:
if (e == fe_button)
{
riempi_sheet();
return false;
}
case DLG_NEWREC:
if (e == fe_button)
{
nuova_riga();

View File

@ -11,6 +11,7 @@
#define F_SHEET 310
#define DLG_RESET 400
#define DLG_CERCA 401
#define S_RISOATT 101
#define S_CODRIS 102

View File

@ -2,6 +2,12 @@
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_CERCA
BEGIN
PROMP 1 1 "Cerca"
PICTURE TOOL_FINDREC
END
BUTTON DLG_NEWREC 2 2
BEGIN
PROMPT 1 1 "Nuovo"

View File

@ -1,6 +1,7 @@
#include <applicat.h>
#include <automask.h>
#include <defmask.h>
#include <lffiles.h>
#include <recset.h>
#include <sheet.h>
#include <utility.h>
@ -56,7 +57,7 @@ void TDef_risoatt_msk::riempi_sheet()
}
TString query;
query << "USE CIRILROA\n"
query << "USE RILORE\n"
<< "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&"
<< "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&"
<< "(BETWEEN(ANNO,\"" << anno << "\",\"" << anno << "\"))&&"
@ -236,7 +237,7 @@ void TDef_risoatt_msk::azzera_tutto(TSheet_field& sheet)
//vaoler pari a zero, e poi ricarica lo sheet
void TDef_risoatt_msk::registra()
{
TLocalisamfile file(LF_CIRILROA);
TLocalisamfile file(LF_RILORE);
TSheet_field& sheet = sfield(F_SHEET);
FOR_EACH_SHEET_ROW(sheet, r, row)

View File

@ -144,7 +144,7 @@ void TRilevamento_prev_msk::carica_default()
}
TString query;
query << "USE CIRILROA\n"
query << "USE RILORE\n"
<< "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&"
<< "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&"
<< "(BETWEEN(ANNO," << anno << "," << anno << "))&&"
@ -235,7 +235,7 @@ void TRilevamento_prev_msk::riempi_sheet()
}
TString query;
query << "USE CIRILROA\n"
query << "USE RILORE\n"
<< "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&"
<< "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&"
<< "(BETWEEN(ANNO," << anno << "," << anno << "))&&"
@ -425,7 +425,7 @@ void TRilevamento_prev_msk::azzera_tutto(TSheet_field& sheet)
//vaoler pari a zero, e poi ricarica lo sheet
void TRilevamento_prev_msk::registra()
{
TLocalisamfile file(LF_CIRILROA);
TLocalisamfile file(LF_RILORE);
TSheet_field& sheet = sfield(F_SHEET);
FOR_EACH_SHEET_ROW(sheet, r, row)

View File

@ -144,7 +144,7 @@ void TRilevamento_cons_msk::carica_default()
}
TString query;
query << "USE CIRILROA\n"
query << "USE RILORE\n"
<< "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&"
<< "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&"
<< "(BETWEEN(ANNO," << anno << "," << anno << "))&&"
@ -235,7 +235,7 @@ void TRilevamento_cons_msk::riempi_sheet()
}
TString query;
query << "USE CIRILROA\n"
query << "USE RILORE\n"
<< "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&"
<< "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&"
<< "(BETWEEN(ANNO," << anno << "," << anno << "))&&"
@ -425,7 +425,7 @@ void TRilevamento_cons_msk::azzera_tutto(TSheet_field& sheet)
//vaoler pari a zero, e poi ricarica lo sheet
void TRilevamento_cons_msk::registra()
{
/*TLocalisamfile file(LF_CIRILROA);
/*TLocalisamfile file(LF_RILORE);
TSheet_field& sheet = sfield(F_SHEET);
FOR_EACH_SHEET_ROW(sheet, r, row)
@ -475,10 +475,10 @@ void TRilevamento_cons_msk::registra()
//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)
{
switch (f.dlg())
/* switch (f.dlg())
{
default: break;
}
} */
return true;
}

View File

@ -3,7 +3,7 @@
#include <image.h>
#include "cilib.h"
#include "cirilroa.h"
#include "rilore.h"
#include "cimsk.h"
///////////////////////////////////////////////////////////
@ -646,14 +646,14 @@ bool TRilevamento_ore::read(const char tipo, const char tipora, const char *codi
{
int err = _iskeynotfound;
TLocalisamfile rilore(LF_CIRILROA);
TLocalisamfile rilore(LF_RILORE);
put(CIRILROA_TIPO, tipo);
put(CIRILROA_TIPORA, tipora);
put(CIRILROA_CODICE, codice);
put(CIRILROA_ANNO, anno);
put(CIRILROA_MESE, mese);
put(CIRILROA_TPORA, tpora);
put(RILORE_TIPO, tipo);
put(RILORE_TIPORA, tipora);
put(RILORE_CODICE, codice);
put(RILORE_ANNO, anno);
put(RILORE_MESE, mese);
put(RILORE_TPORA, tpora);
err = TRectype::read(rilore);
@ -668,12 +668,12 @@ bool TRilevamento_ore::read(const char tipo, const char* codcosto, const char* c
{
int err = _iskeynotfound;
TLocalisamfile rilore(LF_CIRILROA);
TLocalisamfile rilore(LF_RILORE);
put(CIRILROA_TIPO, tipo);
put(CIRILROA_CODCOSTO, codcosto);
put(CIRILROA_CODCMS, codcms);
put(CIRILROA_CODFASE, codfase);
put(RILORE_TIPO, tipo);
put(RILORE_CODCOSTO, codcosto);
put(RILORE_CODCMS, codcms);
put(RILORE_CODFASE, codfase);
err = TRectype::read(rilore);
@ -686,157 +686,157 @@ bool TRilevamento_ore::read(const char tipo, const char* codcosto, const char* c
//TIPO: indica se si tratta di una riga di <D>efault, <P>reventivo o <C>onsuntivo
const char TRilevamento_ore::tipo() const
{
return get(CIRILROA_TIPO)[0];
return get(RILORE_TIPO)[0];
}
//TIPORA: indica se si tratta din una <R>isorsa o di una <A>ttrezzatura
const char TRilevamento_ore::tipora() const
{
return get(CIRILROA_TIPORA)[0];
return get(RILORE_TIPORA)[0];
}
//CODICE: restiruisce il codice della risorsa o dell'attrezzatura
const TString& TRilevamento_ore::codice() const
{
return get(CIRILROA_CODICE);
return get(RILORE_CODICE);
}
//ANNO: restituisce l'anno a cui fa riferimento la riga
const int TRilevamento_ore::anno() const
{
return get_int(CIRILROA_ANNO);
return get_int(RILORE_ANNO);
}
//MESE: restituisce il mese a cui fa riferimento la riga
const TString& TRilevamento_ore::mese() const
{
return get(CIRILROA_MESE);
return get(RILORE_MESE);
}
//TPORA: restituisce il tipo ora
const TString& TRilevamento_ore::tpora() const
{
return get(CIRILROA_TPORA);
return get(RILORE_TPORA);
}
//CODCOSTO: restituisce il codice del centro di costo
const TString& TRilevamento_ore::codcosto() const
{
return get(CIRILROA_CODCOSTO);
return get(RILORE_CODCOSTO);
}
//CODCMS: restituisce il codice commessa
const TString& TRilevamento_ore::codcms() const
{
return get(CIRILROA_CODCMS);
return get(RILORE_CODCMS);
}
//CODFASE: restituisce il codice della fase
const TString& TRilevamento_ore::codfase() const
{
return get(CIRILROA_CODFASE);
return get(RILORE_CODFASE);
}
//DADATA: restituisce la data di inizio validità della riga
const TDate TRilevamento_ore::dadata() const
{
return get_date(CIRILROA_DADATA);
return get_date(RILORE_DADATA);
}
//ADATA: restituisce la fata di fine validità della riga
const TDate TRilevamento_ore::adata()const
{
return get_date(CIRILROA_ADATA);
return get_date(RILORE_ADATA);
}
//QTAORE: restituisce il numero di ore
const int TRilevamento_ore::qtaore() const
{
return get_int(CIRILROA_QTAORE);
return get_int(RILORE_QTAORE);
}
//COSTO: restitusce il costo unitario
const real TRilevamento_ore::costo() const
{
return get_real(CIRILROA_COSTO);
return get_real(RILORE_COSTO);
}
//SET_TIPO: setta <D>efault, <P>reventivo o <C>onsuntivo
void TRilevamento_ore::set_tipo(const char tipo)
{
put(CIRILROA_TIPO, tipo);
put(RILORE_TIPO, tipo);
}
//SET_TIPORA: setta <R>isorsa o <A>ttrezzatura
void TRilevamento_ore::set_tipora(const char tipora)
{
put(CIRILROA_TIPORA, tipora);
put(RILORE_TIPORA, tipora);
}
//SET_CODICE: setta il codice
void TRilevamento_ore::set_codice(const char* codice)
{
put(CIRILROA_CODICE, codice);
put(RILORE_CODICE, codice);
}
//SET_ANNO: setta l'anno di riferimento
void TRilevamento_ore::set_anno(const int anno)
{
put(CIRILROA_ANNO, anno);
put(RILORE_ANNO, anno);
}
//SET_MESE: setta il mese di riferimento
void TRilevamento_ore::set_mese(const char* mese)
{
put(CIRILROA_MESE, mese);
put(RILORE_MESE, mese);
}
//SET_TPORA: setta il tipo ora
void TRilevamento_ore::set_tpora(const char* tpora)
{
put(CIRILROA_TPORA, tpora);
put(RILORE_TPORA, tpora);
}
//SET_CODCOSTO: setta il codice del centro di costo
void TRilevamento_ore::set_codcosto(const char* codcosto)
{
put(CIRILROA_CODCOSTO, codcosto);
put(RILORE_CODCOSTO, codcosto);
}
//SET_CODCMS: setta il codice commessa
void TRilevamento_ore::set_codcms(const char* codcms)
{
put(CIRILROA_CODCMS, codcms);
put(RILORE_CODCMS, codcms);
}
//SET_CODFASE: setta il codice della fase
void TRilevamento_ore::set_codfase(const char* codfase)
{
put(CIRILROA_CODFASE, codfase);
put(RILORE_CODFASE, codfase);
}
//SET_DADATA: setta la data di inizio validità della riga
void TRilevamento_ore::set_dadata(const TDate& dadata)
{
put(CIRILROA_DADATA, dadata);
put(RILORE_DADATA, dadata);
}
//SET_ADATA: setta la data di fine validità della riga
void TRilevamento_ore::set_adata(const TDate& adata)
{
put(CIRILROA_ADATA, adata);
put(RILORE_ADATA, adata);
}
//SET_QTAORE: setta il numero di ore rilevato
void TRilevamento_ore::set_qtaore(const int qtaore)
{
put(CIRILROA_QTAORE, qtaore);
put(RILORE_QTAORE, qtaore);
}
//SET_COSTO: metodo che setta il costo unitario (da listino)
void TRilevamento_ore::set_costo(const real& costo)
{
put(CIRILROA_COSTO, costo);
put(RILORE_COSTO, costo);
}
//Metodi costruttori
@ -851,19 +851,22 @@ 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 char* mese, const char* tpora)
: TRectype(LF_CIRILROA)
: TRectype(LF_RILORE)
{
read(tipo, tipora, codice, anno, mese, tpora);
}
TRilevamento_ore::TRilevamento_ore(const char tipo, const char* codcosto, const char* codcms, const char* codfase)
: TRectype(LF_CIRILROA)
: TRectype(LF_RILORE)
{
read(tipo, codcosto, codcms, codfase);
}
TRilevamento_ore::TRilevamento_ore()
: TRectype(LF_CIRILROA)
: TRectype(LF_RILORE)
{
zero();
}

View File

@ -1,18 +0,0 @@
#ifndef __CIRILROA_H
#define __CIRILROA_H
#define CIRILROA_TIPO "TIPO"
#define CIRILROA_TIPORA "TIPORA"
#define CIRILROA_CODICE "CODICE"
#define CIRILROA_ANNO "ANNO"
#define CIRILROA_MESE "MESE"
#define CIRILROA_TPORA "TPORA"
#define CIRILROA_CODCOSTO "CODCOSTO"
#define CIRILROA_CODCMS "CODCMS"
#define CIRILROA_CODFASE "CODFASE"
#define CIRILROA_DADATA "DADATA"
#define CIRILROA_ADATA "ADATA"
#define CIRILROA_QTAORE "QTAORE"
#define CIRILROA_COSTO "COSTO"
#endif

View File

@ -1,3 +1,3 @@
125
0
$cirilroa|0|0|102|0|Rilevamento Ore|||
$rilore|0|0|102|0|Rilevamento Ore|||

18
ci/rilore.h Executable file
View File

@ -0,0 +1,18 @@
#ifndef __RILORE_H
#define __RILORE_H
#define RILORE_TIPO "TIPO"
#define RILORE_TIPORA "TIPORA"
#define RILORE_CODICE "CODICE"
#define RILORE_ANNO "ANNO"
#define RILORE_MESE "MESE"
#define RILORE_TPORA "TPORA"
#define RILORE_CODCOSTO "CODCOSTO"
#define RILORE_CODCMS "CODCMS"
#define RILORE_CODFASE "CODFASE"
#define RILORE_DADATA "DADATA"
#define RILORE_ADATA "ADATA"
#define RILORE_QTAORE "QTAORE"
#define RILORE_COSTO "COSTO"
#endif