Patch level :2.0 personalizzazione CRPA
Files correlati :ce4.exe ce4100a.msk f145.dir/trr Ricompilazione Demo : [ ] Commento :personalizzazione cespiti per commessa del CRPA;prima implementazione: anagrafica cespiti per commessa git-svn-id: svn://10.65.10.50/trunk@11586 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d5e5628902
commit
06fe3e88f9
19
ce/ce4.cpp
Executable file
19
ce/ce4.cpp
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#include <xvt.h>
|
||||||
|
|
||||||
|
#include "ce4.h"
|
||||||
|
|
||||||
|
int main(int argc,char** argv)
|
||||||
|
{
|
||||||
|
const int r = (argc > 1) ? (argv[1][1]-'0') : 0;
|
||||||
|
switch (r)
|
||||||
|
{
|
||||||
|
/* case 1:
|
||||||
|
ce4200(argc,argv); break; //calcolo cespiti per commessa
|
||||||
|
case 2:
|
||||||
|
ce4300(argc,argv); break;*/ //stampa cespiti per commessa
|
||||||
|
case 0:
|
||||||
|
default: ce4100(argc,argv) ; break; // inserimento cespiti per commessa (personalizzazione CRPA)
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
10
ce/ce4.h
Executable file
10
ce/ce4.h
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#ifndef __CE4_H
|
||||||
|
#define __CE4_H
|
||||||
|
|
||||||
|
int ce4100(int argc, char* argv[]);
|
||||||
|
//int ce4200(int argc, char* argv[]);
|
||||||
|
//int ce4300(int argc, char* argv[]);
|
||||||
|
|
||||||
|
|
||||||
|
#endif // __CE4_H
|
||||||
|
|
145
ce/ce4100.cpp
Executable file
145
ce/ce4100.cpp
Executable file
@ -0,0 +1,145 @@
|
|||||||
|
#include<automask.h>
|
||||||
|
#include<relapp.h>
|
||||||
|
|
||||||
|
#include "ce4100a.h"
|
||||||
|
|
||||||
|
//=============================================================================================
|
||||||
|
//maschera
|
||||||
|
|
||||||
|
class TCesp_per_cms_mask: public TAutomask
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
|
real TCesp_per_cms_mask::somma_perc() const;
|
||||||
|
|
||||||
|
TCesp_per_cms_mask():TAutomask("ce4100a") {}
|
||||||
|
};
|
||||||
|
|
||||||
|
real TCesp_per_cms_mask::somma_perc() const
|
||||||
|
{
|
||||||
|
TSheet_field& ss = sfield(F_RIGHE);
|
||||||
|
real tot_perc;
|
||||||
|
FOR_EACH_SHEET_ROW(ss,i,r)
|
||||||
|
tot_perc += real(r->get(ss.cid2index(S_PERCUTIL)));
|
||||||
|
return tot_perc;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TCesp_per_cms_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
|
{
|
||||||
|
switch (o.dlg())
|
||||||
|
{
|
||||||
|
case F_RIGHE:
|
||||||
|
if (e == se_notify_add)
|
||||||
|
{
|
||||||
|
TSheet_field& ss = (TSheet_field&)o;
|
||||||
|
real residuo = CENTO - somma_perc();
|
||||||
|
if (residuo > 0)
|
||||||
|
{
|
||||||
|
TToken_string& row = ss.row(jolly);
|
||||||
|
row.add(residuo.string(),ss.cid2index(S_PERCUTIL));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (e == fe_close && (insert_mode() || edit_mode()))
|
||||||
|
{
|
||||||
|
//controllo sulle percentuali totali di un cespite
|
||||||
|
if (somma_perc() != CENTO)
|
||||||
|
return noyes_box("La percentuale complessiva di utilizzo del cespite e' diversa da 100"
|
||||||
|
"\nSi desidera proseguire ?");
|
||||||
|
|
||||||
|
TAssoc_array lista_cms;
|
||||||
|
|
||||||
|
TSheet_field& ss = sfield(F_RIGHE);
|
||||||
|
FOR_EACH_SHEET_ROW(ss,i,r)
|
||||||
|
{
|
||||||
|
//controllo di esistenza codice commessa
|
||||||
|
const TString& cms = r->get(ss.cid2index(S_CODCMS));
|
||||||
|
if (cms.blank())
|
||||||
|
return error_box("Specificare la commessa sulla riga %d", i+1);
|
||||||
|
//controllo di duplicazione codice commessa
|
||||||
|
if (lista_cms.is_key(cms))
|
||||||
|
return error_box("Codice commessa %s duplicato", (const char *)cms);
|
||||||
|
lista_cms.add(cms);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//===============================================================================================
|
||||||
|
//Applicazione
|
||||||
|
class TCesp_per_cms: public TRelation_application
|
||||||
|
{
|
||||||
|
TCesp_per_cms_mask *_msk; // maschera principale
|
||||||
|
TRelation *_rel; // relazione principale
|
||||||
|
|
||||||
|
//metodi virtuali obbligatori per gli oggetti TRelation_application
|
||||||
|
protected:
|
||||||
|
virtual bool user_create();
|
||||||
|
virtual bool user_destroy();
|
||||||
|
virtual TMask* get_mask(int mode) { return _msk; }
|
||||||
|
virtual bool changing_mask(int mode) { return FALSE;}
|
||||||
|
virtual void init_query_mode(TMask& m);
|
||||||
|
virtual void init_query_insert_mode(TMask& m);
|
||||||
|
virtual void init_insert_mode(TMask& m);
|
||||||
|
virtual void init_modify_mode(TMask& m);
|
||||||
|
|
||||||
|
virtual TRelation* get_relation() const { return _rel; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual ~TCesp_per_cms() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
//metodi per la maschera
|
||||||
|
//abilita i campi per inserimento nuovo cespite,attivando i campi del gruppo 2 (che fanno riferimento al file LF_CESPI)
|
||||||
|
void TCesp_per_cms::init_query_insert_mode(TMask& m)
|
||||||
|
{
|
||||||
|
m.enable(-2);
|
||||||
|
m.show(-2);
|
||||||
|
m.hide(-1);
|
||||||
|
}
|
||||||
|
//abilita i campi per ricercare un cespite gia' inserito,attivando i campi del gruppo 1(LF_SALCECMS)
|
||||||
|
void TCesp_per_cms::init_query_mode(TMask& m)
|
||||||
|
{
|
||||||
|
m.show(-1);
|
||||||
|
m.hide(-2);
|
||||||
|
m.set(F_DESC,"");
|
||||||
|
}
|
||||||
|
|
||||||
|
void TCesp_per_cms::init_insert_mode(TMask& m)
|
||||||
|
{
|
||||||
|
m.hide(-1);
|
||||||
|
m.disable(-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TCesp_per_cms::init_modify_mode(TMask& m)
|
||||||
|
{
|
||||||
|
m.hide(-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TCesp_per_cms::user_create()
|
||||||
|
{
|
||||||
|
_rel = new TRelation(LF_SALCECMS);
|
||||||
|
_msk = new TCesp_per_cms_mask;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool TCesp_per_cms::user_destroy()
|
||||||
|
{
|
||||||
|
delete _rel;
|
||||||
|
delete _msk;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int ce4100(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TCesp_per_cms a;
|
||||||
|
a.run(argc,argv,TR("Inserimento cespiti per commessa"));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
19
ce/ce4100a.h
Executable file
19
ce/ce4100a.h
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
//definizioni campi per la maschera ce4100a.uml (immissione cespiti per commessa)
|
||||||
|
#define F_DITTA 201
|
||||||
|
#define F_RAGSOC 202
|
||||||
|
#define F_ESERCIZIO 203
|
||||||
|
#define F_INIZIO_ES 204
|
||||||
|
#define F_FINE_ES 205
|
||||||
|
#define F_IDCESPITE 206
|
||||||
|
#define F_DESC 207
|
||||||
|
#define F_IDCESPITE_N 208
|
||||||
|
#define F_DESC_N 209
|
||||||
|
#define F_NRIGA 210
|
||||||
|
|
||||||
|
#define F_RIGHE 211
|
||||||
|
|
||||||
|
#define S_CODCMS 101
|
||||||
|
#define S_DESCMS 102
|
||||||
|
#define S_PERCUTIL 103
|
||||||
|
#define S_PERCCOPE 104
|
||||||
|
#define S_FONDO 105
|
225
ce/ce4100a.uml
Executable file
225
ce/ce4100a.uml
Executable file
@ -0,0 +1,225 @@
|
|||||||
|
#include "ce4100a.h"
|
||||||
|
|
||||||
|
TOOLBAR "Toolbar" 0 -3 0 3
|
||||||
|
|
||||||
|
#include <toolbar.h>
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Anagrafica cespiti per commessa" -1 -1 0 -3
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 1 "@bParametri cespite"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_DITTA 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Ditta "
|
||||||
|
FLAGS "DF"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_RAGSOC 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 2 ""
|
||||||
|
USE LF_NDITTE
|
||||||
|
INPUT CODDITTA F_DITTA
|
||||||
|
OUTPUT F_RAGSOC RAGSOC
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ESERCIZIO 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 3 "Esercizio "
|
||||||
|
FLAGS "AZ"
|
||||||
|
USE CCE
|
||||||
|
JOIN ESC ALIAS 104 INTO CODTAB==CODTAB
|
||||||
|
INPUT CODTAB F_ESERCIZIO
|
||||||
|
DISPLAY "Codice esercizio" CODTAB
|
||||||
|
DISPLAY "Inizio esercizio" 104@->D0
|
||||||
|
DISPLAY "Fine esercizio" 104@->D1
|
||||||
|
OUTPUT F_ESERCIZIO CODTAB
|
||||||
|
OUTPUT F_INIZIO_ES 104@->D0
|
||||||
|
OUTPUT F_FINE_ES 104@->D1
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FIELD CODES
|
||||||
|
KEY 1
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_INIZIO_ES
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 3 "Inizio "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_FINE_ES
|
||||||
|
BEGIN
|
||||||
|
PROMPT 50 3 "Fine "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST F_NRIGA 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 100 ""
|
||||||
|
FLAGS "D"
|
||||||
|
ITEM "1|1"
|
||||||
|
FIELD NRIGA
|
||||||
|
KEY 1
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_IDCESPITE 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Cespite "
|
||||||
|
FLAGS "UZ"
|
||||||
|
USE LF_SALCECMS SELECT NRIGA==1
|
||||||
|
JOIN LF_CESPI INTO IDCESPITE==IDCESPITE
|
||||||
|
INPUT CODES F_ESERCIZIO
|
||||||
|
INPUT IDCESPITE F_IDCESPITE
|
||||||
|
DISPLAY "Codice@10" IDCESPITE
|
||||||
|
DISPLAY "Descrizione@50" LF_CESPI->DESC
|
||||||
|
DISPLAY "Cat." LF_CESPI->CODCAT
|
||||||
|
DISPLAY "Impianto@10" LF_CESPI->CODIMP
|
||||||
|
DISPLAY "Stabilimento@30" LF_CESPI->STABILIM
|
||||||
|
DISPLAY "Reparto@30" LF_CESPI->REPARTO
|
||||||
|
DISPLAY "Data Acq.@10" LF_CESPI->DTCOMP
|
||||||
|
DISPLAY "Data Ali.@10" LF_CESPI->DTALIEN
|
||||||
|
OUTPUT F_ESERCIZIO CODES
|
||||||
|
OUTPUT F_IDCESPITE IDCESPITE
|
||||||
|
OUTPUT F_IDCESPITE_N IDCESPITE
|
||||||
|
OUTPUT F_DESC LF_CESPI->DESC
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FIELD IDCESPITE
|
||||||
|
KEY 1
|
||||||
|
GROUP 1
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESC 60 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 24 4 ""
|
||||||
|
FLAGS "DP"
|
||||||
|
GROUP 1
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_IDCESPITE_N 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Cespite "
|
||||||
|
FLAGS "UZ"
|
||||||
|
FIELD IDCESPITE
|
||||||
|
USE LF_CESPI
|
||||||
|
INPUT IDCESPITE F_IDCESPITE_N
|
||||||
|
DISPLAY "Codice@10" IDCESPITE
|
||||||
|
DISPLAY "Descrizione@50" DESC
|
||||||
|
DISPLAY "Cat." CODCAT
|
||||||
|
DISPLAY "Impianto@10" CODIMP
|
||||||
|
DISPLAY "Stabilimento@30" STABILIM
|
||||||
|
DISPLAY "Reparto@30" REPARTO
|
||||||
|
DISPLAY "Data Acq.@10" DTCOMP
|
||||||
|
DISPLAY "Data Ali.@10" DTALIEN
|
||||||
|
OUTPUT F_IDCESPITE IDCESPITE
|
||||||
|
OUTPUT F_IDCESPITE_N IDCESPITE
|
||||||
|
OUTPUT F_DESC_N DESC
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
KEY 1
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESC_N 60 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 24 4 ""
|
||||||
|
USE LF_CESPI KEY 3
|
||||||
|
INPUT DESC F_DESC_N
|
||||||
|
DISPLAY "Descrizione@50" DESC
|
||||||
|
DISPLAY "Codice@10" IDCESPITE
|
||||||
|
DISPLAY "Cat." CODCAT
|
||||||
|
DISPLAY "Impianto@10" CODIMP
|
||||||
|
DISPLAY "Stabilimento@30" STABILIM
|
||||||
|
DISPLAY "Reparto@30" REPARTO
|
||||||
|
DISPLAY "Data Acq.@10" DTCOMP
|
||||||
|
DISPLAY "Data Ali.@10" DTALIEN
|
||||||
|
COPY OUTPUT F_IDCESPITE_N
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
GROUP 2
|
||||||
|
KEY 2 //chiave civetta per provocare l'entrata in modalita' INSERIMENTO in caso di ricerca per descrizione
|
||||||
|
END
|
||||||
|
|
||||||
|
SPREADSHEET F_RIGHE
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 6 ""
|
||||||
|
ITEM "Codice commessa"
|
||||||
|
ITEM "Descrizione@50"
|
||||||
|
ITEM "% Utilizzo"
|
||||||
|
ITEM "% Copertura"
|
||||||
|
ITEM "Valore fondo per commessa"
|
||||||
|
USE LF_SALCECMS KEY NRIGA
|
||||||
|
INPUT CODES F_ESERCIZIO
|
||||||
|
INPUT IDCESPITE F_IDCESPITE
|
||||||
|
FLAGS "A"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
||||||
|
|
||||||
|
//maschera di riga dello sheet
|
||||||
|
PAGE "Riga" -1 -1 64 8
|
||||||
|
|
||||||
|
STRING S_CODCMS 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Codice commessa "
|
||||||
|
USE CMS
|
||||||
|
INPUT CODTAB S_CODCMS
|
||||||
|
DISPLAY "Codice@20" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT S_CODCMS CODTAB
|
||||||
|
OUTPUT S_DESCMS S0
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FIELD CODCMS
|
||||||
|
FLAGS "U"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_DESCMS 50 45
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Descrizione "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_PERCUTIL 6 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 3 "Percentuale utilizzo "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FLAGS "U"
|
||||||
|
FIELD PERCUTIL
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_PERCCOPE 6 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Percentuale copertura "
|
||||||
|
FLAGS "U"
|
||||||
|
FIELD PERCCOPE
|
||||||
|
END
|
||||||
|
|
||||||
|
CURRENCY S_FONDO 18
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 "Valore fondo per commessa "
|
||||||
|
FIELD FONDO
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -13 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -23 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_DELREC 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -33 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
3
ce/f145.dir
Executable file
3
ce/f145.dir
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
145
|
||||||
|
0
|
||||||
|
$salcecms|0|0|67|0|Fondi cespiti per commesse|||
|
12
ce/f145.trr
Executable file
12
ce/f145.trr
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
145
|
||||||
|
7
|
||||||
|
IDCESPITE|1|10|0|Codice cespite
|
||||||
|
CODES|2|4|0|Codice esercizio
|
||||||
|
NRIGA|2|3|0|N. riga
|
||||||
|
CODCMS|1|20|0|Codice commessa
|
||||||
|
PERCUTIL|4|6|2|Percentuale di utilizzo
|
||||||
|
PERCCOPE|4|6|2|Percentuale di copertura
|
||||||
|
FONDO|4|18|3|Valore fondo per commessa
|
||||||
|
2
|
||||||
|
IDCESPITE+CODES+NRIGA|
|
||||||
|
CODES+IDCESPITE+NRIGA|
|
Loading…
x
Reference in New Issue
Block a user