Patch level : 4.0
Files correlati : ve2 Ricompilazione Demo : [ ] Commento : Aggiunto supporto per livelli avanzati anche in sede di copia articoli git-svn-id: svn://10.65.10.50/trunk@15477 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
bfcf98e179
commit
4584ecb070
@ -3,11 +3,6 @@
|
||||
#include "ve2401.h"
|
||||
|
||||
#include "../ca/calib01.h"
|
||||
#include "../cg/cglib01.h"
|
||||
#include "../mg/mglib.h"
|
||||
#include "../mg/stomag.h"
|
||||
#include "../mg/anamag.h"
|
||||
#include "../mg/codcorr.h"
|
||||
|
||||
#include <modaut.h>
|
||||
#include <relapp.h>
|
||||
@ -1903,25 +1898,41 @@ bool TAnagrafica_magazzino::handle_copia(TMask_field &fld, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
TMask ask("ve2400k");
|
||||
TMask_anamag & m = (TMask_anamag &) fld.mask();
|
||||
const TCodart_livelli* liv_art = m.get_livelli_art();
|
||||
|
||||
ask.set_handler(F_CODART, non_esiste_handler);
|
||||
if(liv_art && liv_art->enabled())
|
||||
TMask_anamag & m = (TMask_anamag &) fld.mask();
|
||||
|
||||
TString codart, descart;
|
||||
if (advanced_codart_enabled())
|
||||
{
|
||||
create_fields(ask, 1, 1, F_LIVART1, F_DESLIVART1, *liv_art, false);
|
||||
for (int i = liv_art->last_level(); i > 0; i--)
|
||||
codart = m.get(F_CODART);
|
||||
if (!advanced_codart_ask(codart, descart))
|
||||
codart.cut(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
const TCodart_livelli* liv_art = m.get_livelli_art();
|
||||
|
||||
TMask ask("ve2400k");
|
||||
ask.set_handler(F_CODART, non_esiste_handler);
|
||||
if(liv_art && liv_art->enabled())
|
||||
{
|
||||
const short id = F_LIVART1+i-1;
|
||||
ask.set(id, m.get(id));
|
||||
create_fields(ask, 1, 1, F_LIVART1, F_DESLIVART1, *liv_art, false);
|
||||
for (int i = liv_art->last_level(); i > 0; i--)
|
||||
{
|
||||
const short id = F_LIVART1+i-1;
|
||||
ask.set(id, m.get(id));
|
||||
}
|
||||
ask.reset(F_CODART);
|
||||
}
|
||||
ask.reset(F_CODART);
|
||||
if (ask.run() == K_ENTER)
|
||||
codart = ask.get(F_CODART);
|
||||
}
|
||||
|
||||
if (ask.run() == K_ENTER)
|
||||
if (codart.full())
|
||||
{
|
||||
m.set(F_CODART, ask.get(F_CODART), TRUE);
|
||||
if (descart.full())
|
||||
m.set(F_DESCR, descart);
|
||||
|
||||
m.set(F_CODART, codart, TRUE);
|
||||
|
||||
m.sfield(F_SHEETGIAC).destroy();
|
||||
m.sfield(F_SHEETSTOMAG).destroy();
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
const TString& root_code()
|
||||
{
|
||||
static TString4 _root_code;
|
||||
static TString8 _root_code; // Solitamente lungo 3
|
||||
if (_root_code.empty())
|
||||
{
|
||||
const TString query = "USE FSA SELECT B0=\"X\"";
|
||||
@ -37,7 +37,7 @@ static const TRectype& get_sublevel_info(const TString& code)
|
||||
|
||||
class TCodart_mask : public TAutomask
|
||||
{
|
||||
static TString4 _restart;
|
||||
static TString8 _restart; // Solitamente lungo 3
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
@ -46,11 +46,12 @@ protected:
|
||||
|
||||
public:
|
||||
bool restart() const { return _restart.full(); }
|
||||
static void restart_with(const char* cod) { _restart = cod; }
|
||||
|
||||
TCodart_mask();
|
||||
};
|
||||
|
||||
TString4 TCodart_mask::_restart;
|
||||
TString8 TCodart_mask::_restart;
|
||||
|
||||
bool TCodart_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
@ -59,6 +60,7 @@ bool TCodart_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
|
||||
case 101:
|
||||
if (e == fe_init && restart())
|
||||
{
|
||||
_restart.cut(o.size()); // Taglia alla lunghezza vera del campo
|
||||
o.set(_restart);
|
||||
_restart.cut(0);
|
||||
o.check(STARTING_CHECK);
|
||||
@ -148,10 +150,18 @@ TCodart_mask::TCodart_mask() : TAutomask(TR("Articolo guidato"), 1, 78, 13)
|
||||
create_level(1, EMPTY_STRING);
|
||||
}
|
||||
|
||||
bool advanced_get_codart(TString& code, TString& desc)
|
||||
bool advanced_codart_ask(TString& code, TString& desc)
|
||||
{
|
||||
bool ok = false;
|
||||
bool running = true;
|
||||
|
||||
if (code.full())
|
||||
{
|
||||
code.cut(4); // Taglio grossolano, poi la TCodart_mask tagliera' meglio
|
||||
TCodart_mask::restart_with(code);
|
||||
code.cut(0);
|
||||
}
|
||||
|
||||
while (running)
|
||||
{
|
||||
TCodart_mask m;
|
||||
@ -189,7 +199,7 @@ bool advanced_codart_handler(TMask_field& fld, KEY key)
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
TString code, desc;
|
||||
if (advanced_get_codart(code, desc))
|
||||
if (advanced_codart_ask(code, desc))
|
||||
{
|
||||
TMask& msk = fld.mask();
|
||||
msk.set(F_DESCR, desc);
|
||||
|
@ -6,6 +6,7 @@
|
||||
#endif
|
||||
|
||||
bool advanced_codart_enabled();
|
||||
bool advanced_codart_ask(TString& code, TString& desc);
|
||||
bool advanced_codart_handler(TMask_field& fld, KEY key);
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user