Patch level : 10.0 752

Files correlati     : mg0.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@20533 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-06-01 14:51:56 +00:00
parent 8919d53f1e
commit 9d8b13648a

View File

@ -9,6 +9,7 @@
#include "mgtbcau.h"
#include "mgtbfca.h"
#include "mgtbgsa.h"
// applicazione per la gestione delle tabelle di magazzino
@ -20,6 +21,7 @@ protected: // TRelation_application
virtual bool user_create() ;
virtual bool protected_record(TRectype& rec) ;
virtual int rewrite(const TMask& m);
virtual void init_query_mode(TMask& m);
virtual TMask * set_mask(TMask * _m=NULL);
@ -288,7 +290,47 @@ bool TMask_tabmag::adv_codgrp_handler(TMask_field& f, KEY k)
desc.set(f.get());
}
}
return true;
else
if (k == K_F8)
{
TMask& m = f.mask();
if (m.query_mode())
{
TString newcod(m.get(F_CODLIV));
const int prlen = newcod.len();
newcod << ((TEditable_field&)f).get_window_data();
TString cod(newcod);
const int len = cod.len();
TTable gsa("GSA");
cod << "999999";
gsa.put("CODTAB", cod);
if (gsa.read(_isgteq) != _isemptyfile)
{
TString code = gsa.get("CODTAB");
if (cod < code.left(len) || (newcod == code.left(len) && !isdigit(code[len])))
{
gsa.prev();
code = gsa.get("CODTAB");
}
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);
f.set(newcod);
m.stop_run(K_INS);
}
}
}
}
return true;
}
// HANDLER DEL CODICE LIVELLO
@ -395,6 +437,13 @@ int Tab_app_mag::rewrite(const TMask& m)
return Tab_application::rewrite(m);
}
void Tab_app_mag::init_query_mode(TMask& m)
{
TTable_application::init_query_mode(m);
if (get_tabname() == "GSA" && argc() > 3)
m.set(F_CODLIV, argv(3));
}
int mg0100(int argc, char* argv[])
{