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:
guy 2007-07-09 10:28:38 +00:00
parent bfcf98e179
commit 4584ecb070
3 changed files with 45 additions and 23 deletions

View File

@ -3,11 +3,6 @@
#include "ve2401.h" #include "ve2401.h"
#include "../ca/calib01.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 <modaut.h>
#include <relapp.h> #include <relapp.h>
@ -1903,10 +1898,20 @@ bool TAnagrafica_magazzino::handle_copia(TMask_field &fld, KEY k)
{ {
if (k == K_SPACE) if (k == K_SPACE)
{ {
TMask ask("ve2400k");
TMask_anamag & m = (TMask_anamag &) fld.mask(); TMask_anamag & m = (TMask_anamag &) fld.mask();
TString codart, descart;
if (advanced_codart_enabled())
{
codart = m.get(F_CODART);
if (!advanced_codart_ask(codart, descart))
codart.cut(0);
}
else
{
const TCodart_livelli* liv_art = m.get_livelli_art(); const TCodart_livelli* liv_art = m.get_livelli_art();
TMask ask("ve2400k");
ask.set_handler(F_CODART, non_esiste_handler); ask.set_handler(F_CODART, non_esiste_handler);
if(liv_art && liv_art->enabled()) if(liv_art && liv_art->enabled())
{ {
@ -1918,10 +1923,16 @@ bool TAnagrafica_magazzino::handle_copia(TMask_field &fld, KEY k)
} }
ask.reset(F_CODART); ask.reset(F_CODART);
} }
if (ask.run() == K_ENTER) if (ask.run() == K_ENTER)
codart = ask.get(F_CODART);
}
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_SHEETGIAC).destroy();
m.sfield(F_SHEETSTOMAG).destroy(); m.sfield(F_SHEETSTOMAG).destroy();

View File

@ -12,7 +12,7 @@
const TString& root_code() const TString& root_code()
{ {
static TString4 _root_code; static TString8 _root_code; // Solitamente lungo 3
if (_root_code.empty()) if (_root_code.empty())
{ {
const TString query = "USE FSA SELECT B0=\"X\""; 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 class TCodart_mask : public TAutomask
{ {
static TString4 _restart; static TString8 _restart; // Solitamente lungo 3
protected: protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
@ -46,11 +46,12 @@ protected:
public: public:
bool restart() const { return _restart.full(); } bool restart() const { return _restart.full(); }
static void restart_with(const char* cod) { _restart = cod; }
TCodart_mask(); TCodart_mask();
}; };
TString4 TCodart_mask::_restart; TString8 TCodart_mask::_restart;
bool TCodart_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) 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: case 101:
if (e == fe_init && restart()) if (e == fe_init && restart())
{ {
_restart.cut(o.size()); // Taglia alla lunghezza vera del campo
o.set(_restart); o.set(_restart);
_restart.cut(0); _restart.cut(0);
o.check(STARTING_CHECK); o.check(STARTING_CHECK);
@ -148,10 +150,18 @@ TCodart_mask::TCodart_mask() : TAutomask(TR("Articolo guidato"), 1, 78, 13)
create_level(1, EMPTY_STRING); 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 ok = false;
bool running = true; 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) while (running)
{ {
TCodart_mask m; TCodart_mask m;
@ -189,7 +199,7 @@ bool advanced_codart_handler(TMask_field& fld, KEY key)
if (key == K_SPACE) if (key == K_SPACE)
{ {
TString code, desc; TString code, desc;
if (advanced_get_codart(code, desc)) if (advanced_codart_ask(code, desc))
{ {
TMask& msk = fld.mask(); TMask& msk = fld.mask();
msk.set(F_DESCR, desc); msk.set(F_DESCR, desc);

View File

@ -6,6 +6,7 @@
#endif #endif
bool advanced_codart_enabled(); bool advanced_codart_enabled();
bool advanced_codart_ask(TString& code, TString& desc);
bool advanced_codart_handler(TMask_field& fld, KEY key); bool advanced_codart_handler(TMask_field& fld, KEY key);
#endif #endif