Patch level : 10.0 754
Files correlati : ve2.exe Ricompilazione Demo : [ ] Commento Bug 0001648: Anagrafica Articoli-Gestione Tabella Gruppi cod. art. avanzati Se tolgo la spunta nel campo "in descrizione" non solo non mi mette la descrizione in quella dell'articolo corrispondente ma anche il codice del gruppo nella costruzioine dell'articolo con la funzionalità "codice guidato" Se sono su un livello secondario e premo il bottone nuovo non mi propone i default di dove sono come fa se vado in modifica. git-svn-id: svn://10.65.10.50/trunk@20538 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
4c161d5ad4
commit
0fbec20102
@ -299,6 +299,7 @@ bool TMask_tabmag::adv_codgrp_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TString newcod(m.get(F_CODLIV));
|
||||
const int prlen = newcod.len();
|
||||
const bool autonumalfa = cache().get("FSA", newcod).get_bool("B1");
|
||||
|
||||
newcod << ((TEditable_field&)f).get_window_data();
|
||||
|
||||
@ -306,7 +307,7 @@ bool TMask_tabmag::adv_codgrp_handler(TMask_field& f, KEY k)
|
||||
const int len = cod.len();
|
||||
TTable gsa("GSA");
|
||||
|
||||
cod << "999999";
|
||||
cod << (autonumalfa ? "ZZZZZZ" : "999999");
|
||||
gsa.put("CODTAB", cod);
|
||||
if (gsa.read(_isgteq) != _isemptyfile)
|
||||
{
|
||||
@ -319,11 +320,39 @@ bool TMask_tabmag::adv_codgrp_handler(TMask_field& f, KEY k)
|
||||
}
|
||||
if (newcod == code.left(len))
|
||||
{
|
||||
const int progr = atol(code.mid(len)) + 1;
|
||||
TString fmt;
|
||||
fmt.format("%%s%%0%dld", code.len() - len);
|
||||
newcod.ltrim(prlen);
|
||||
newcod.format(fmt, (const char *)newcod, progr);
|
||||
if (autonumalfa)
|
||||
{
|
||||
|
||||
newcod = code;
|
||||
newcod.ltrim(prlen);
|
||||
|
||||
int add = 1;
|
||||
int lastpos = newcod.len() - 1;
|
||||
|
||||
while (lastpos >= 0)
|
||||
{
|
||||
newcod[lastpos] += add;
|
||||
if (newcod[lastpos] > '9' && newcod[lastpos] < 'A')
|
||||
{
|
||||
newcod[lastpos] = 'A';
|
||||
break;
|
||||
}
|
||||
else
|
||||
if (newcod[lastpos] > 'Z')
|
||||
newcod[lastpos--] = '0';
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const int progr = atol(code.mid(len)) + 1;
|
||||
TString fmt;
|
||||
|
||||
fmt.format("%%s%%0%dld", code.len() - len);
|
||||
newcod.ltrim(prlen);
|
||||
newcod.format(fmt, (const char *)newcod, progr);
|
||||
}
|
||||
f.set(newcod);
|
||||
m.stop_run(K_INS);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
#define F_CODLIV 101
|
||||
#define F_ROOT 102
|
||||
#define F_DESLIV 103
|
||||
#define F_FORMLIV 104
|
||||
#define F_CODLIV 101
|
||||
#define F_ROOT 102
|
||||
#define F_DESLIV 103
|
||||
#define F_FORMLIV 104
|
||||
#define F_AUTOALFA 105
|
||||
|
||||
|
||||
|
@ -9,7 +9,7 @@ ENDPAGE
|
||||
|
||||
PAGE "Formato Sottocodice Articoli" 0 0 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 7
|
||||
GROUPBOX DLG_NULL 78 9
|
||||
BEGIN
|
||||
PROMPT 1 1 "Sottocodici Articolo"
|
||||
FLAGS "R"
|
||||
@ -61,6 +61,12 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BOOLEAN F_AUTOALFA
|
||||
BEGIN
|
||||
PROMPT 2 7 "Auto numerazione alfabetica"
|
||||
FIELD B1
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
@ -1035,15 +1035,16 @@ bool TMask_anamag::handle_sheet_cod(TMask_field &fld, KEY k)
|
||||
TMask &m= fld.mask(); // prende la maschere d'origine del campo
|
||||
TAssoc_array v; // istanzia l'hash table per il controllo di univocità
|
||||
|
||||
TString80 codart = m.get(F_CODART);
|
||||
v.add(codart); // aggiunge all'hash table il codice articolo originale
|
||||
TString80 codart;
|
||||
for (int i= 0; i< items; i++)
|
||||
{
|
||||
codart = f.cell(i,0);
|
||||
if (codart.blank())
|
||||
return error_box("I codici alternativi non possono essere vuoti");
|
||||
if (v.add(codart))
|
||||
if (codart == m.get(F_CODART))
|
||||
return error_box("I codici alternativi devono essere diversi tra loro e dal codice dell'articolo"); // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||
if (v.add(codart) && !yesno_box("I codici alternativi devono essere diversi tra loro, si desidera continuare ?"))
|
||||
return false; // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1107,7 +1108,7 @@ bool TMask_anamag::notify_sheet_cod(TSheet_field & s, int r, KEY k)
|
||||
if (codcorr.read(_isgteq) == NOERR && codcorr.get(CODCORR_CODARTALT) == codice)
|
||||
{
|
||||
if (codcorr.get(CODCORR_CODART) != codart)
|
||||
return s.error_box("Il codice %s è già un codice corrispondente", (const char *) codice);
|
||||
return s.yesno_box("Il codice %s è già un codice corrispondente", (const char *) codice);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user