From 579caa00ef037f0a1f4fa36e46601c19298ee63b Mon Sep 17 00:00:00 2001 From: Mattia Tollari Date: Tue, 11 Jun 2019 11:02:18 +0200 Subject: [PATCH] Patch level : 12.0 no-patch Files correlati : fp Commento : Aggiornamento programma anagrafica personalizzazioni, aggiunto flag globale, aggiustata grafica (non ancora terminato) --- src/fp/fp0500.cpp | 30 +++++++++++++++++- src/fp/fp0500a.h | 8 ++++- src/fp/fp0500a.uml | 76 +++++++++++++++++++++++++++++++++++++--------- 3 files changed, 97 insertions(+), 17 deletions(-) diff --git a/src/fp/fp0500.cpp b/src/fp/fp0500.cpp index 1878c2f21..f2fc649d7 100644 --- a/src/fp/fp0500.cpp +++ b/src/fp/fp0500.cpp @@ -9,6 +9,7 @@ #include "fpccaus.h" #include "fpcart.h" #include "fpcadg.h" +#include "fpcust.h" //------------------------------------------------------------------- @@ -27,6 +28,32 @@ bool TFpcust_mask::on_field_event(TOperable_field& o, TField_event e, long jolly { switch (o.dlg()) { + case F_GLOBAL: + if(e == fe_modify) + { + const bool global = get_bool(F_GLOBAL); + // Se è globale controllo che effettivamente non ce ne siano altri + if(global) + { + TLocalisamfile fpcust(LF_FPCUST); + fpcust.read(_isfirst); + bool ok = true; + for(;!fpcust.eof(); fpcust.next()) + { + if (fpcust.get_bool(FPCUST_GLOBAL) && fpcust.get(FPCUST_CODICE) != get(F_CODICE)) + { + ok = false; + break; + } + } + + if(!ok) + { + warning_box("Esiste già un'altra configurazione globale"); + set(F_GLOBAL, ""); + } + } + } default: break; } @@ -126,11 +153,12 @@ void TFpcust::load_cust(const TMask& m) const bool TFpcust::user_create() { + open_files(LF_FPCUST, LF_FPCADG, LF_FPCART, LF_FPCCAUS, 0); _fpcust = new TFP_custom(); _rel = new TRelation(LF_FPCUST); _rel->lfile().set_curr(_fpcust); _mask = new TFpcust_mask; - + return true; } diff --git a/src/fp/fp0500a.h b/src/fp/fp0500a.h index 4cd25a556..c68b1a63c 100644 --- a/src/fp/fp0500a.h +++ b/src/fp/fp0500a.h @@ -3,6 +3,7 @@ #define F_CODICE 201 #define F_DESCR 202 +#define F_GLOBAL 203 #define F_CAUSALI 301 #define F_ARTICOLI 401 @@ -11,13 +12,18 @@ // Causale #define S_CAUS_VALORE 101 +#define S_CAUS_COND 102 // Articoli #define S_ART_TIPO 101 #define S_ART_VALORE 102 +#define S_ART_COND 103 // Altri Dati Gestionali #define S_ADG_TIPODATO 101 #define S_ADG_RTESTO 102 #define S_ADG_RNUMERO 103 -#define S_ADG_RDATA 104 \ No newline at end of file +#define S_ADG_RDATA 104 +#define S_ADG_TIPORIGA 105 +#define S_ADG_COND 106 +#define S_ADG_SPLIT 107 \ No newline at end of file diff --git a/src/fp/fp0500a.uml b/src/fp/fp0500a.uml index d06236939..cae04a682 100644 --- a/src/fp/fp0500a.uml +++ b/src/fp/fp0500a.uml @@ -13,7 +13,7 @@ BEGIN USE FPCUST INPUT CODICE F_CODICE DISPLAY "Codice" CODICE - DISPLAY "Descrizione" DESCR + DISPLAY "Descrizione@50" DESCR OUTPUT F_CODICE CODICE OUTPUT F_DESCR DESCR CHECKTYPE REQUIRED @@ -27,36 +27,47 @@ BEGIN USE FPCUST INPUT DESCR F_CODICE DISPLAY "Codice" CODICE - DISPLAY "Descrizione" DESCR + DISPLAY "Descrizione@50" DESCR COPY OUTPUT F_CODICE CHECKTYPE REQUIRED KEY 2 END +BOOLEAN F_GLOBAL +BEGIN + PROMPT 1 2 "Configurazione globale" + FIELD GLOBAL +END + SPREADSHEET F_CAUSALI 60 6 BEGIN PROMPT 1 3 "Causale" ITEM "Valore@50" + ITEM "Condizione@50" END ENDPAGE PAGE "Pag. 2" 0 2 0 0 -SPREADSHEET F_ARTICOLI 80 6 +SPREADSHEET F_ARTICOLI 0 6 BEGIN PROMPT 1 1 "Codice Articolo" - ITEM "Tipo@50" - ITEM "Valore@50" + ITEM "Tipo@35" + ITEM "Valore@35" + ITEM "Condizione@35" END SPREADSHEET F_ADG 0 6 BEGIN PROMPT 0 10 "Altri dati gestionali" - ITEM "Tipo Dato@50" - ITEM "Rif Testo@50" - ITEM "Rif Numero@20" - ITEM "Rif Data@20" + ITEM "Tipo Dato@35" + ITEM "Riferimento\nTesto@35" + ITEM "Riferimento\nNumero@35" + ITEM "Riferimento\nData@35" + ITEM "Tipo riga@8" + ITEM "Condizione@35" + ITEM "Riga\nseparata@8" END ENDPAGE @@ -70,6 +81,12 @@ BEGIN HELP "Valore da inserire nella causale" END +STRING S_CAUS_COND 200 50 +BEGIN + PROMPT 1 2 "Condizione " + HELP "Condizione che se è vera abilita la riga" +END + ENDPAGE TOOLBAR "Riga" 0 0 0 2 @@ -89,18 +106,24 @@ ENDMASK PAGE "Riga Articolo" -1 -1 60 12 -STRING S_ART_TIPO 90 50 +STRING S_ART_TIPO 200 50 BEGIN PROMPT 1 1 "Tipo " HELP "Tag TipoArticolo" END -STRING S_ART_VALORE 90 50 +STRING S_ART_VALORE 200 50 BEGIN PROMPT 1 1 "Valore " HELP "Tag ValoreArticolo" END +STRING S_ART_COND 200 50 +BEGIN + PROMPT 1 2 "Condizione " + HELP "Condizione che se è vera abilita la riga" +END + ENDPAGE TOOLBAR "Riga" 0 0 0 2 @@ -120,30 +143,53 @@ ENDMASK PAGE "Riga Altri Dati Gestionali" -1 -1 60 12 -STRING S_ADG_TIPODATO 90 50 +STRING S_ADG_TIPODATO 200 50 BEGIN PROMPT 1 1 "Tipo dato " HELP "Tag 2.2.1.16.1 TipoDato" END -STRING S_ADG_RTESTO 90 50 +STRING S_ADG_RTESTO 200 50 BEGIN PROMPT 1 2 "Rif testo " HELP "Tag 2.2.1.16.2 RiferimentoTesto" END -NUMBER S_ADG_RNUMERO 18 5 +STRING S_ADG_RNUMERO 200 50 BEGIN PROMPT 1 3 "Rif numero " HELP "Tag 2.2.1.16.3 RiferimentoNumero" END -DATE S_ADG_RDATA +STRING S_ADG_RDATA 200 50 BEGIN PROMPT 1 4 "Rif data " HELP "Tag 2.2.1.16.4 RiferimentoData" END +STRING S_ADG_TIPORIGA 4 +BEGIN + PROMPT 1 2 "Tipo riga " + USE %TRI + INPUT CODTAB S_ADG_TIPORIGA + DISPLAY "Tipo riga@8" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT S_ADG_TIPORIGA CODTAB + HELP "Condizione che se è vera abilita la riga" +END + +STRING S_ADG_COND 200 50 +BEGIN + PROMPT 1 2 "Condizione " + HELP "Condizione che se è vera abilita la riga" +END + +BOOLEAN S_ADG_SPLIT +BEGIN + PROMPT 1 2 "Riga separata" + HELP "Separa questa informazione in una riga separata" +END + ENDPAGE TOOLBAR "Riga" 0 0 0 2