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 "../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();

View File

@ -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);

View File

@ -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