Patch level : 10.0 282

Files correlati     : mg0.exe mgtbgsa.msk
Ricompilazione Demo : [ ]
Commento            :
0001029: formato cod. art. avanzato
Formato codice articolo avanzato: è possibile indicare come radice più di un tipo articolo (parte), componendo l'articolo è poi possibile richiamare per lo stesso codice più di un campo radice.


git-svn-id: svn://10.65.10.50/trunk@18700 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2009-04-14 15:47:57 +00:00
parent 908525ccfe
commit d9c712e2f9
2 changed files with 16 additions and 19 deletions

View File

@ -149,7 +149,7 @@ bool TMask_tabmag::stdmag_handler(TMask_field& f, KEY k)
// tabella causali: handler della somma segni // tabella causali: handler della somma segni
bool TMask_tabmag::sumsign_handler(TMask_field& f, KEY k) bool TMask_tabmag::sumsign_handler(TMask_field& f, KEY k)
{ {
bool ok=TRUE; bool ok = true;
if (k == K_ENTER) if (k == K_ENTER)
{ {
int ss=f.mask().get_int(F_SGNGIAC)-f.mask().get_int(F_SGNRIM); int ss=f.mask().get_int(F_SGNGIAC)-f.mask().get_int(F_SGNRIM);
@ -175,12 +175,12 @@ bool TMask_tabmag::sumsign_handler(TMask_field& f, KEY k)
ps+=ABSSALDO(F_SGNORDC)+ABSSALDO(F_SGNORDF); ps+=ABSSALDO(F_SGNORDC)+ABSSALDO(F_SGNORDF);
ps+=ABSSALDO(F_SGNLABEL)+ABSSALDO(F_SGNSCAR); ps+=ABSSALDO(F_SGNLABEL)+ABSSALDO(F_SGNSCAR);
if (ps==0) if (ps==0)
ok = f.yesno_box(TR("Attenzione: la causale non movimenta nessun saldo. Confermi ?")); ok = f.yesno_box(TR("Attenzione: la causale non movimenta nessun saldo. Confermare?"));
const char tipomov=*f.mask().get(F_TIPOMOV); const char tipomov=*f.mask().get(F_TIPOMOV);
if ((f.mask().get_int(F_SGNGIAC) >=0 && tipomov=='S') ) if ((f.mask().get_int(F_SGNGIAC) >=0 && tipomov=='S') )
ok = f.yesno_box(TR("Attenzione: la causale e' impostata come scarico ma la giacenza non e' movimentata in negativo. Confermi ?")); ok = f.yesno_box(TR("Attenzione: la causale e' impostata come scarico ma la giacenza non e' movimentata in negativo. Confermare?"));
if ((f.mask().get_int(F_SGNGIAC) <=0 && tipomov=='C')) if ((f.mask().get_int(F_SGNGIAC) <=0 && tipomov=='C'))
ok = f.yesno_box(TR("Attenzione: la causale e' impostata come carico ma la giacenza non e' movimentata in positivo. Confermi ?")); ok = f.yesno_box(TR("Attenzione: la causale e' impostata come carico ma la giacenza non e' movimentata in positivo. Confermare?"));
} }
} }
return ok; return ok;
@ -240,10 +240,10 @@ bool TMask_tabmag::formatgiac_handler(TMask_field& f, KEY k)
if (total_len > maxlen) if (total_len > maxlen)
{ {
f.error_box(FR("La somma delle lunghezze dei codici \n dei livelli di giacenza eccede \nil massimo consentito di %d caratteri"),maxlen); f.error_box(FR("La somma delle lunghezze dei codici \n dei livelli di giacenza eccede \nil massimo consentito di %d caratteri"),maxlen);
return FALSE; return false;
} }
} }
return TRUE; return true;
} }
@ -297,15 +297,11 @@ bool TMask_tabmag::codlivgiac_handler(TMask_field& f, KEY k)
if (k == K_TAB && f.focusdirty()) if (k == K_TAB && f.focusdirty())
{ {
const int codliv = atoi(f.get()); const int codliv = atoi(f.get());
if (codliv>1) if (codliv>1) // Non è il primo codice
// Non è il primo codice
{ {
TMask_tabmag & mask=((TMask_tabmag &)f.mask());
TTable aux_tabf(app().get_tabname()); TTable aux_tabf(app().get_tabname());
aux_tabf.put("CODTAB",codliv-1); aux_tabf.put("CODTAB",codliv-1);
if (aux_tabf.read()!=NOERR) if (aux_tabf.read()!=NOERR) // non esiste un precedente
// non esiste un precedente
return f.error_box(TR("Non si possono inserire salti nel livello del codice")); return f.error_box(TR("Non si possono inserire salti nel livello del codice"));
} }
} }
@ -335,16 +331,16 @@ Tab_app_mag::Tab_app_mag() {}
bool Tab_app_mag::protected_record(TRectype& rec) bool Tab_app_mag::protected_record(TRectype& rec)
{ {
bool prot = rec.get_bool(FPC); bool prot = rec.get_bool(FPC);
if (!prot) if (!prot)
{ {
if (get_tabname()=="FCA" ||get_tabname()=="FCG" ) const TString4 tn = get_tabname();
if (tn=="FCA" || tn=="FCG" )
{ {
// non si possono cancellare i livelli intermedi:se non è l'ultimo livello, proteggilo // non si possono cancellare i livelli intermedi:se non è l'ultimo livello, proteggilo
TTable aux_tabf(get_tabname()); TTable aux_tabf(tn);
aux_tabf.put("CODTAB",rec.get_int("CODTAB")+1); aux_tabf.put("CODTAB",rec.get_int("CODTAB")+1);
if (aux_tabf.read()==NOERR) if (aux_tabf.read()==NOERR)
prot=TRUE; prot = true;
} }
} }
return prot; return prot;

View File

@ -21,6 +21,7 @@ BEGIN
DISPLAY "Codice Parte" CODTAB DISPLAY "Codice Parte" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Formato@20" S1 DISPLAY "Formato@20" S1
DISPLAY "Radice@C" B0
OUTPUT F_CODLIV CODTAB OUTPUT F_CODLIV CODTAB
OUTPUT F_DESLIV S0 OUTPUT F_DESLIV S0
OUTPUT F_FORMLIV S1 OUTPUT F_FORMLIV S1
@ -44,9 +45,9 @@ END
LIST F_ROOT 1 10 LIST F_ROOT 1 10
BEGIN BEGIN
PROMPT 42 3 "Livello" PROMPT 42 3 "Livello "
FLAGS "DG" FLAGS "DG"
ITEM " |Secondario" ITEM "|Secondario"
MESSAGE HIDE,3@ MESSAGE HIDE,3@
ITEM "X|Radice" ITEM "X|Radice"
MESSAGE SHOW,3@ MESSAGE SHOW,3@
@ -100,7 +101,7 @@ END
STRING F_CHILD1 3 STRING F_CHILD1 3
BEGIN BEGIN
PROMPT 2 7 "Parte 2 " PROMPT 2 7 "Parte 2 "
USE FSA SELECT CODTAB!=#F_CODLIV USE FSA SELECT (CODTAB!=#F_CODLIV)&&(B0!="X")
INPUT CODTAB F_CHILD1 INPUT CODTAB F_CHILD1
COPY DISPLAY F_CODLIV COPY DISPLAY F_CODLIV
OUTPUT F_CHILD1 CODTAB OUTPUT F_CHILD1 CODTAB