Personalizzazioni per Cigno
git-svn-id: svn://10.65.10.50/branches/R_10_00@22727 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
148f889d51
commit
ab083a1e95
@ -7,15 +7,10 @@ int main(int argc, char** argv)
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
ps0430100(argc, argv); break; //Correlazioni articoli utenti
|
||||
case 1:
|
||||
ps0430200(argc, argv); break; //Configurazione campi per utente
|
||||
case 2:
|
||||
ps0430300(argc, argv); break; //generazione ordini (è or1400 per il cigno)
|
||||
default:
|
||||
ps0430100(argc, argv); break;
|
||||
case 0: ps0430100(argc, argv); break; //Correlazioni articoli utenti
|
||||
case 1: ps0430200(argc, argv); break; //Configurazione campi per utente
|
||||
//case 2: ps0430300(argc, argv); break; //generazione ordini (è or1400 per il cigno)
|
||||
default: ps0430100(argc, argv); break;
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
593
ps/ps0430100.cpp
593
ps/ps0430100.cpp
@ -1,227 +1,366 @@
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <msksheet.h>
|
||||
#include <mask.h>
|
||||
#include <recarray.h>
|
||||
#include <recset.h>
|
||||
#include <tabapp.h>
|
||||
|
||||
#include <multirel.h>
|
||||
#include "../mg/anamag.h"
|
||||
#include "ps0430100a.h"
|
||||
|
||||
#define FILE_KEY "ACM"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TArt_mask maschera
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TArt_mask : public TAutomask
|
||||
{
|
||||
|
||||
public:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
TArt_mask() : TAutomask("ps0430100a") {}
|
||||
~TArt_mask() {}
|
||||
};
|
||||
|
||||
bool TArt_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_SET:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TSheet_field & sf = sfield(F_ARTICLES);
|
||||
const long items = sf.items();
|
||||
bool select = true;
|
||||
const int cid = sf.cid2index(F_ATTIVO);
|
||||
int i ;
|
||||
|
||||
for (i = 0; select && i < items; i++)
|
||||
select = *sf.row (i).get(cid) <= ' ';
|
||||
|
||||
const TString4 val(select ? "X" : " ");
|
||||
|
||||
for (i = 0; i < items; i++)
|
||||
sf.row(i).add(val, cid);
|
||||
sf.force_update();
|
||||
}
|
||||
break;
|
||||
case F_RESET:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TSheet_field & sf = sfield(F_ARTICLES);
|
||||
const long items = sf.items();
|
||||
|
||||
for (int i = 0; i < items; i++)
|
||||
{
|
||||
TToken_string & row = sf.row(i);
|
||||
|
||||
row.add(" ", sf.cid2index(F_ATTIVO));
|
||||
}
|
||||
sf.force_update();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
class TRelArticoli_multirel_app : public TMultirel_application
|
||||
{
|
||||
TISAM_recordset _recset;
|
||||
TArt_mask * _mask;
|
||||
|
||||
protected:
|
||||
virtual void get_mask_name(TString& tabname) const;
|
||||
//magico metodo per impedire la navigazione su tabelle diverse da quella corrente del cursore
|
||||
virtual bool has_filtered_cursor() const { return true; }
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy() ;
|
||||
virtual int read(TMask& m);
|
||||
virtual int rewrite(const TMask& m);
|
||||
virtual int write(const TMask& m) { return rewrite(m);}
|
||||
virtual bool remove();
|
||||
virtual void init_insert_mode(TMask& m) { read(m); }
|
||||
virtual bool find(word key = 0);
|
||||
virtual TMask* get_mask(int mode = MODE_QUERY) { return (TMask *) _mask;}
|
||||
|
||||
public:
|
||||
|
||||
virtual const char * extra_modules() const {return "ba";}
|
||||
|
||||
TRelArticoli_multirel_app() : _recset("USE ANAMAG KEY 1") {}
|
||||
virtual ~TRelArticoli_multirel_app() {}
|
||||
};
|
||||
|
||||
void TRelArticoli_multirel_app::get_mask_name(TString& tabname) const
|
||||
{
|
||||
tabname = "ps0430100a";
|
||||
}
|
||||
|
||||
bool TRelArticoli_multirel_app::user_create()
|
||||
{
|
||||
bool ok = TMultirel_application::user_create();
|
||||
_mask = new TArt_mask;
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TRelArticoli_multirel_app::user_destroy()
|
||||
{
|
||||
/* prefix().close_closeable_isamfiles();
|
||||
|
||||
TSystemisamfile multirel(LF_MULTIREL);
|
||||
|
||||
multirel.pack(); */
|
||||
delete _mask;
|
||||
return true;
|
||||
}
|
||||
|
||||
int TRelArticoli_multirel_app::read(TMask& m)
|
||||
{
|
||||
const TRectype & curr = get_relation()->lfile().curr();
|
||||
TSheet_field & sf = m.sfield(F_ARTICLES);
|
||||
TLocalisamfile multirel(LF_MULTIREL);
|
||||
const TString user(m.get(F_USER));
|
||||
int i = 0;
|
||||
|
||||
sf.destroy();
|
||||
for (bool ok = _recset.move_first(); ok; ok = _recset.move_next())
|
||||
{
|
||||
TToken_string & row = sf.row(i++);
|
||||
const TString & codart = _recset.get(ANAMAG_CODART).as_string();
|
||||
|
||||
row.add(codart, sf.cid2index(F_CODART));
|
||||
row.add(_recset.get(ANAMAG_DESCR).as_string(), sf.cid2index(F_DESCR));
|
||||
row.add(_recset.get(ANAMAG_DESCRAGG).as_string(), sf.cid2index(F_DESCRAGG));
|
||||
row.add(_recset.get(ANAMAG_CODFORN).as_string(), sf.cid2index(F_CODFORN));
|
||||
TToken_string key; key.format("F|%ld", _recset.get(ANAMAG_CODFORN).as_int());
|
||||
|
||||
row.add(cache().get(LF_CLIFO, key, "RAGSOC"), sf.cid2index(F_RAGSOC));
|
||||
|
||||
multirel.put(MULTI_COD, FILE_KEY);
|
||||
multirel.put(MULTI_FIRST, user);
|
||||
multirel.put(MULTI_SECOND, codart);
|
||||
if (multirel.read(_isequal) == NOERR)
|
||||
row.add("X", sf.cid2index(F_ATTIVO));
|
||||
else
|
||||
row.add(" ", sf.cid2index(F_ATTIVO));
|
||||
}
|
||||
return NOERR;
|
||||
}
|
||||
|
||||
int TRelArticoli_multirel_app::rewrite(const TMask& m)
|
||||
{
|
||||
int err = NOERR;
|
||||
TSheet_field & sf = m.sfield(F_ARTICLES);
|
||||
int i = 0;
|
||||
TLocalisamfile multirel(LF_MULTIREL);
|
||||
const TString user(m.get(F_USER));
|
||||
|
||||
for (bool ok = _recset.move_first(); err == NOERR && ok; ok = _recset.move_next())
|
||||
{
|
||||
TToken_string & row = sf.row(i++);
|
||||
bool selected = *row.get(sf.cid2index(F_ATTIVO)) > ' ';
|
||||
|
||||
multirel.zero();
|
||||
multirel.put(MULTI_COD, FILE_KEY);
|
||||
multirel.put(MULTI_FIRST, user);
|
||||
multirel.put(MULTI_SECOND, row.get(sf.cid2index(F_CODART)));
|
||||
bool exist = multirel.read(_isequal) == NOERR;
|
||||
|
||||
if (exist && !selected)
|
||||
err = multirel.remove();
|
||||
else
|
||||
if (!exist && selected)
|
||||
{
|
||||
multirel.zero();
|
||||
multirel.put(MULTI_COD, FILE_KEY);
|
||||
multirel.put(MULTI_FIRST, user);
|
||||
multirel.put(MULTI_SECOND, row.get(sf.cid2index(F_CODART)));
|
||||
err = multirel.write();
|
||||
}
|
||||
}
|
||||
get_relation()->read(_isgteq);
|
||||
return err;
|
||||
}
|
||||
|
||||
bool TRelArticoli_multirel_app::remove()
|
||||
{
|
||||
int err;
|
||||
TLocalisamfile multirel(LF_MULTIREL);
|
||||
const TString user(get_mask(MODE_MOD)->get(F_USER));
|
||||
|
||||
multirel.put(MULTI_COD, FILE_KEY);
|
||||
multirel.put(MULTI_FIRST, user);
|
||||
|
||||
for (err = multirel.read(_isgteq); err == NOERR && user == multirel.get(MULTI_FIRST); multirel.next())
|
||||
err = multirel.remove();
|
||||
return err == NOERR || err == _iseof;
|
||||
}
|
||||
|
||||
bool TRelArticoli_multirel_app::find(word key)
|
||||
{
|
||||
bool ok = false;
|
||||
const TString& user = get_mask(MODE_QUERY)->get(F_USER);
|
||||
|
||||
if (user.full())
|
||||
{
|
||||
TLocalisamfile multirel(LF_MULTIREL);
|
||||
|
||||
multirel.put(MULTI_COD, FILE_KEY);
|
||||
multirel.put(MULTI_FIRST, user);
|
||||
ok = (multirel.read(_isgteq) == NOERR) && (user == multirel.get(MULTI_FIRST));
|
||||
}
|
||||
if (ok)
|
||||
get_relation()->read(_isgteq);
|
||||
return ok;
|
||||
}
|
||||
|
||||
int ps0430100(int argc, char* argv[])
|
||||
{
|
||||
TRelArticoli_multirel_app a;
|
||||
a.run(argc, argv, TR("Tabella"));
|
||||
return 0;
|
||||
}
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <msksheet.h>
|
||||
#include <mask.h>
|
||||
#include <recarray.h>
|
||||
#include <recset.h>
|
||||
#include <tabapp.h>
|
||||
|
||||
#include <multirel.h>
|
||||
#include "../mg/anamag.h"
|
||||
#include "ps0430100a.h"
|
||||
|
||||
#define FILE_KEY "ACM"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TArt_mask maschera
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TArt_mask : public TAutomask
|
||||
{
|
||||
TString _query;
|
||||
TISAM_recordset _recset;
|
||||
bool _filter_changed;
|
||||
|
||||
virtual void next_page(int p);
|
||||
|
||||
public:
|
||||
void update_sheet();
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
TArt_mask();
|
||||
};
|
||||
|
||||
TArt_mask::TArt_mask() : TAutomask("ps0430100a"), _recset("USE ANAMAG")
|
||||
{
|
||||
TConfig c(CONFIG_DITTA);
|
||||
TSheet_field & sh = sfield(F_ARTICLES);
|
||||
TMask & sh_mask = sh.sheet_mask();
|
||||
TString80 prompt;
|
||||
|
||||
for (int i = 1; i <= 10; i++)
|
||||
{
|
||||
const int col = sh.cid2index(F_USER1 + i -1);
|
||||
TEditable_field & f = sh_mask.efield(F_USER1 + i - 1);
|
||||
|
||||
if (c.get_bool("CHK_USER", "ve", i) && c.get_bool("USERDEF", "or", i))
|
||||
{
|
||||
prompt = c.get("PROMPT_USER", "ve", i);
|
||||
prompt.rpad(20);
|
||||
f.set_prompt(prompt);
|
||||
sh.set_column_header(col, prompt);
|
||||
}
|
||||
else
|
||||
{
|
||||
f.hide();
|
||||
sh.delete_column(col);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TArt_mask::update_sheet()
|
||||
{
|
||||
const bool active_only = get_bool(F_ACTIVEONLY);
|
||||
TSheet_field& sf = sfield(F_ARTICLES);
|
||||
|
||||
TString query("USE ANAMAG KEY ");
|
||||
|
||||
TString select;
|
||||
TLocalisamfile multirel(LF_MULTIREL);
|
||||
const TString user(get(F_USER));
|
||||
|
||||
const TString & codart = get(F_SCODART);
|
||||
|
||||
if (codart.full())
|
||||
select << "(UPPER(" << ANAMAG_CODART << ")?=UPPER(\"" << codart << "\"))";
|
||||
|
||||
const TString & desart = get(F_SDESART);
|
||||
|
||||
if (desart.full())
|
||||
{
|
||||
if (select.full())
|
||||
select << "&&";
|
||||
select << "(UPPER(" << ANAMAG_DESCR << ")?=UPPER(\"" << desart << "\"))";
|
||||
}
|
||||
|
||||
const TString & desagg = get(F_SDESAGG);
|
||||
|
||||
if (desagg.full())
|
||||
{
|
||||
if (select.full())
|
||||
select << "&&";
|
||||
select << "(UPPER(" << ANAMAG_DESCRAGG << ")?=UPPER(\"" << desagg << "\"))";
|
||||
}
|
||||
|
||||
const TString & codforn = get(F_SCODFOR);
|
||||
|
||||
if (codforn.full())
|
||||
{
|
||||
if (select.full())
|
||||
select << "&&";
|
||||
select << "(" << ANAMAG_CODFORN << "==\"" << codforn << "\")";
|
||||
}
|
||||
|
||||
const TString & ragsoc = get(F_SRAGSOC);
|
||||
|
||||
if (ragsoc.full())
|
||||
{
|
||||
if (select.full())
|
||||
select << "&&";
|
||||
select << "(UPPER(CLIFO.RAGSOC)?=UPPER(\"" << ragsoc << "\"))";
|
||||
}
|
||||
|
||||
TString16 grmerc(get(F_GRMERC));
|
||||
if (grmerc.full())
|
||||
query << '3';
|
||||
else
|
||||
query << '1';
|
||||
|
||||
if (select.full())
|
||||
query << "\nSELECT " << select;
|
||||
|
||||
grmerc.left_just(3);
|
||||
grmerc << get(F_SGRMERC);
|
||||
grmerc.trim();
|
||||
|
||||
if (grmerc.full())
|
||||
query << "\nJOIN CLIFO INTO TIPOCF==\"F\" CODCF==CODFORN\nFROM GRMERC=#GRMERC\nTO GRMERC=#GRMERC";
|
||||
else
|
||||
query << "\nJOIN CLIFO INTO TIPOCF==\"F\" CODCF==CODFORN\n";
|
||||
|
||||
_recset.set(query);
|
||||
|
||||
TVariant var ;
|
||||
|
||||
var = grmerc;
|
||||
_recset.set_var("#GRMERC", var);
|
||||
|
||||
int i = 0;
|
||||
|
||||
sf.destroy();
|
||||
|
||||
for (bool ok = _recset.move_first(); ok; ok = _recset.move_next())
|
||||
{
|
||||
const TString& codart = _recset.get(ANAMAG_CODART).as_string();
|
||||
|
||||
multirel.put(MULTI_COD, FILE_KEY);
|
||||
multirel.put(MULTI_FIRST, user);
|
||||
multirel.put(MULTI_SECOND, codart);
|
||||
const bool act = multirel.read(_isequal) == NOERR;
|
||||
|
||||
if (active_only && !act)
|
||||
continue;
|
||||
|
||||
TToken_string & row = sf.row(i++);
|
||||
row.add(codart, sf.cid2index(F_CODART));
|
||||
row.add(_recset.get(ANAMAG_DESCR).as_string(), sf.cid2index(F_DESCR));
|
||||
row.add(act ? "X" : " ", sf.cid2index(F_ATTIVO));
|
||||
row.add(_recset.get(ANAMAG_CODFORN).as_string(), sf.cid2index(F_CODFORN));
|
||||
row.add(_recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(F_RAGSOC));
|
||||
row.add(_recset.get(ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(F_LEADTIME));
|
||||
row.add(_recset.get(ANAMAG_LOTTORIOR).as_string(), sf.cid2index(F_LOTTOMIN));
|
||||
row.add(_recset.get(ANAMAG_DESCRAGG).as_string().left(50), sf.cid2index(F_DESCRAGG));
|
||||
row.add(_recset.get(ANAMAG_PPCONF).as_string(), sf.cid2index(F_PPCONF));
|
||||
row.add(_recset.get(ANAMAG_VALSTATUN).as_string(), sf.cid2index(F_VALSTATUN));
|
||||
row.add(_recset.get(ANAMAG_ULTCOS1).as_string(), sf.cid2index(F_ULTCOS1));
|
||||
row.add(_recset.get(ANAMAG_USER1).as_string(), sf.cid2index(F_USER1));
|
||||
row.add(_recset.get(ANAMAG_USER2).as_string(), sf.cid2index(F_USER2));
|
||||
row.add(_recset.get(ANAMAG_USER3).as_string(), sf.cid2index(F_USER3));
|
||||
row.add(_recset.get(ANAMAG_USER4).as_string(), sf.cid2index(F_USER4));
|
||||
row.add(_recset.get(ANAMAG_USER5).as_string(), sf.cid2index(F_USER5));
|
||||
row.add(_recset.get(ANAMAG_USER6).as_string(), sf.cid2index(F_USER6));
|
||||
row.add(_recset.get(ANAMAG_USER7).as_string(), sf.cid2index(F_USER7));
|
||||
row.add(_recset.get(ANAMAG_USER8).as_string(), sf.cid2index(F_USER8));
|
||||
row.add(_recset.get(ANAMAG_USER9).as_string(), sf.cid2index(F_USER9));
|
||||
row.add(_recset.get(ANAMAG_USER10).as_string(), sf.cid2index(F_USER10));
|
||||
}
|
||||
}
|
||||
|
||||
void TArt_mask::next_page(int p)
|
||||
{
|
||||
TAutomask::next_page(p);
|
||||
if (_filter_changed)
|
||||
{
|
||||
TSheet_field & sf = sfield(F_ARTICLES);
|
||||
if (curr_win() == sf.parent())
|
||||
{
|
||||
update_sheet();
|
||||
sf.force_update();
|
||||
_filter_changed = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
bool TArt_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_GRMERC:
|
||||
case F_SGRMERC:
|
||||
case F_SCODART:
|
||||
case F_SDESART:
|
||||
case F_SDESAGG:
|
||||
case F_SCODFOR:
|
||||
case F_SRAGSOC:
|
||||
if (e == fe_modify)
|
||||
_filter_changed = true;
|
||||
break;
|
||||
case F_SET:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TSheet_field& sf = sfield(F_ARTICLES);
|
||||
const int items = sf.items();
|
||||
bool select = true;
|
||||
const int cid = sf.cid2index(F_ATTIVO);
|
||||
int i ;
|
||||
|
||||
for (i = 0; select && i < items; i++)
|
||||
select = *sf.row (i).get(cid) <= ' ';
|
||||
|
||||
const TString4 val(select ? "X" : " ");
|
||||
|
||||
for (i = 0; i < items; i++)
|
||||
sf.row(i).add(val, cid);
|
||||
sf.force_update();
|
||||
}
|
||||
break;
|
||||
case F_ACTIVEONLY:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
if (!field(F_USER).empty())
|
||||
{
|
||||
update_sheet();
|
||||
sfield(F_ARTICLES).force_update();
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
class TRelArticoli_multirel_app : public TMultirel_application
|
||||
{
|
||||
TArt_mask * _mask;
|
||||
|
||||
protected:
|
||||
virtual void get_mask_name(TString& tabname) const;
|
||||
//magico metodo per impedire la navigazione su tabelle diverse da quella corrente del cursore
|
||||
virtual bool has_filtered_cursor() const { return true; }
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy() ;
|
||||
virtual int read(TMask& m);
|
||||
virtual int rewrite(const TMask& m);
|
||||
virtual int write(const TMask& m) { return rewrite(m);}
|
||||
virtual bool remove();
|
||||
virtual void init_insert_mode(TMask& m) { read(m); }
|
||||
virtual bool find(word key = 0);
|
||||
virtual TMask* get_mask(int mode = MODE_QUERY) { return (TMask *) _mask;}
|
||||
|
||||
public:
|
||||
|
||||
virtual const char * extra_modules() const {return "ba";}
|
||||
|
||||
TRelArticoli_multirel_app() {}
|
||||
virtual ~TRelArticoli_multirel_app() {}
|
||||
};
|
||||
|
||||
void TRelArticoli_multirel_app::get_mask_name(TString& tabname) const
|
||||
{
|
||||
tabname = "ps0430100a";
|
||||
}
|
||||
|
||||
bool TRelArticoli_multirel_app::user_create()
|
||||
{
|
||||
bool ok = TMultirel_application::user_create();
|
||||
_mask = new TArt_mask;
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TRelArticoli_multirel_app::user_destroy()
|
||||
{
|
||||
delete _mask;
|
||||
return true;
|
||||
}
|
||||
|
||||
int TRelArticoli_multirel_app::read(TMask& m)
|
||||
{
|
||||
const TRectype & curr = get_relation()->lfile().curr();
|
||||
TArt_mask & mask = (TArt_mask &) m;
|
||||
|
||||
mask.update_sheet();
|
||||
return NOERR;
|
||||
}
|
||||
|
||||
int TRelArticoli_multirel_app::rewrite(const TMask& m)
|
||||
{
|
||||
int err = NOERR;
|
||||
TSheet_field & sf = m.sfield(F_ARTICLES);
|
||||
TLocalisamfile multirel(LF_MULTIREL);
|
||||
const TString user(m.get(F_USER));
|
||||
|
||||
for (int i = 0; i < sf.items(); i++)
|
||||
{
|
||||
TToken_string & row = sf.row(i);
|
||||
bool selected = *row.get(sf.cid2index(F_ATTIVO)) > ' ';
|
||||
|
||||
multirel.zero();
|
||||
multirel.put(MULTI_COD, FILE_KEY);
|
||||
multirel.put(MULTI_FIRST, user);
|
||||
multirel.put(MULTI_SECOND, row.get(sf.cid2index(F_CODART)));
|
||||
bool exist = multirel.read(_isequal) == NOERR;
|
||||
|
||||
if (exist && !selected)
|
||||
err = multirel.remove();
|
||||
else
|
||||
if (!exist && selected)
|
||||
{
|
||||
multirel.zero();
|
||||
multirel.put(MULTI_COD, FILE_KEY);
|
||||
multirel.put(MULTI_FIRST, user);
|
||||
multirel.put(MULTI_SECOND, row.get(sf.cid2index(F_CODART)));
|
||||
err = multirel.write();
|
||||
}
|
||||
}
|
||||
get_relation()->read(_isgteq);
|
||||
return err;
|
||||
}
|
||||
|
||||
bool TRelArticoli_multirel_app::remove()
|
||||
{
|
||||
int err;
|
||||
TLocalisamfile multirel(LF_MULTIREL);
|
||||
const TString user(get_mask(MODE_MOD)->get(F_USER));
|
||||
|
||||
multirel.put(MULTI_COD, FILE_KEY);
|
||||
multirel.put(MULTI_FIRST, user);
|
||||
|
||||
for (err = multirel.read(_isgteq); err == NOERR && user == multirel.get(MULTI_FIRST); multirel.next())
|
||||
err = multirel.remove();
|
||||
return err == NOERR || err == _iseof;
|
||||
}
|
||||
|
||||
bool TRelArticoli_multirel_app::find(word key)
|
||||
{
|
||||
bool ok = false;
|
||||
const TString& user = get_mask(MODE_QUERY)->get(F_USER);
|
||||
|
||||
if (user.full())
|
||||
{
|
||||
TLocalisamfile multirel(LF_MULTIREL);
|
||||
|
||||
multirel.put(MULTI_COD, FILE_KEY);
|
||||
multirel.put(MULTI_FIRST, user);
|
||||
ok = (multirel.read(_isgteq) == NOERR) && (user == multirel.get(MULTI_FIRST));
|
||||
}
|
||||
if (ok)
|
||||
get_relation()->read(_isgteq);
|
||||
return ok;
|
||||
}
|
||||
|
||||
int ps0430100(int argc, char* argv[])
|
||||
{
|
||||
TRelArticoli_multirel_app a;
|
||||
a.run(argc, argv, TR("Tabella"));
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,16 +1,43 @@
|
||||
// Defines per maschera
|
||||
|
||||
#define F_COD 149
|
||||
#define F_CODTAB 150
|
||||
#define F_USER 151
|
||||
#define F_DUSER 152
|
||||
#define F_ARTICLES 153
|
||||
#define F_SET 154
|
||||
#define F_RESET 155
|
||||
|
||||
#define F_CODART 101
|
||||
#define F_DESCR 102
|
||||
#define F_ATTIVO 103
|
||||
#define F_DESCRAGG 104
|
||||
#define F_CODFORN 105
|
||||
#define F_RAGSOC 106
|
||||
// Defines per maschera
|
||||
|
||||
#define F_COD 149
|
||||
#define F_CODTAB 150
|
||||
#define F_USER 151
|
||||
#define F_DUSER 152
|
||||
#define F_ARTICLES 153
|
||||
#define F_SET 154
|
||||
#define F_ACTIVEONLY 155
|
||||
#define F_GRMERC 156
|
||||
#define F_DGRMERC 157
|
||||
#define F_SGRMERC 158
|
||||
#define F_DSGRMERC 159
|
||||
#define F_SCODART 160
|
||||
#define F_SDESART 161
|
||||
#define F_SDESAGG 162
|
||||
#define F_SCODFOR 163
|
||||
#define F_SRAGSOC 164
|
||||
|
||||
|
||||
#define F_CODART 101
|
||||
#define F_DESCR 102
|
||||
#define F_ATTIVO 103
|
||||
#define F_CODFORN 104
|
||||
#define F_RAGSOC 105
|
||||
|
||||
#define F_LEADTIME 106
|
||||
#define F_LOTTOMIN 107
|
||||
#define F_DESCRAGG 108
|
||||
#define F_PPCONF 109
|
||||
#define F_VALSTATUN 110
|
||||
#define F_ULTCOS1 111
|
||||
#define F_USER1 112
|
||||
#define F_USER2 113
|
||||
#define F_USER3 114
|
||||
#define F_USER4 115
|
||||
#define F_USER5 116
|
||||
#define F_USER6 117
|
||||
#define F_USER7 118
|
||||
#define F_USER8 119
|
||||
#define F_USER9 120
|
||||
#define F_USER10 121
|
||||
|
||||
|
@ -1,116 +1,337 @@
|
||||
#include "ps0430100a.h"
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
#include <relapbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Relazioni utenti Articoli" -1 -1 80 20
|
||||
|
||||
LIST F_COD 5
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
ITEM "ATM|ATM"
|
||||
FIELD COD
|
||||
FLAGS "H"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
NUMBER F_CODTAB 3
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
USE LF_MULTIREL
|
||||
INPUT COD F_COD SELECT
|
||||
INPUT FIRST F_CODTAB
|
||||
DISPLAY "Codice" FIRST
|
||||
DISPLAY "Descrizione@60" DATA
|
||||
DISPLAY "Causale Collegata" SECOND
|
||||
OUTPUT F_CODTAB FIRST
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD FIRST
|
||||
FLAGS "H"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_USER 8
|
||||
BEGIN
|
||||
PROMPT 4 2 "Utente "
|
||||
FLAGS "U"
|
||||
// FIELD FIRST
|
||||
KEY 1
|
||||
USE LF_USER SELECT ISGROUP!="X"
|
||||
INPUT USERNAME F_USER
|
||||
DISPLAY "Utente@8" USERNAME
|
||||
DISPLAY "Gruppo@8" GROUPNAME
|
||||
DISPLAY "Descrizione@50" USERDESC
|
||||
OUTPUT F_USER USERNAME
|
||||
OUTPUT F_DUSER USERDESC
|
||||
CHECKTYPE NORMAL
|
||||
MESSAGE COPY,F_CODTAB
|
||||
END
|
||||
|
||||
STRING F_DUSER 50
|
||||
BEGIN
|
||||
PROMPT 25 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
SPREADSHEET F_ARTICLES 85 -3
|
||||
BEGIN
|
||||
PROMPT 1 4 "Articoli"
|
||||
ITEM "Codice@20"
|
||||
ITEM "Descrizione@45"
|
||||
ITEM "Attivo"
|
||||
ITEM "Descrizione fornitore@45"
|
||||
ITEM "Codice Fonitore"
|
||||
ITEM "Ragione sociale@45"
|
||||
END
|
||||
|
||||
BUTTON F_SET 10 2
|
||||
BEGIN
|
||||
PROMPT -11 -1 "~Tutti"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
PAGE "Righe" -1 -1 80 18
|
||||
|
||||
STRING F_CODART 20
|
||||
BEGIN
|
||||
PROMPT 1 2 "Codice "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DESCR 50 45
|
||||
BEGIN
|
||||
PROMPT 42 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_ATTIVO
|
||||
BEGIN
|
||||
PROMPT 2 4 "Attivo per questo utente"
|
||||
END
|
||||
|
||||
STRING F_DESCRAGG 50 45
|
||||
BEGIN
|
||||
PROMPT 2 6 " "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CODFORN 6
|
||||
BEGIN
|
||||
PROMPT 2 8 " "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50 45
|
||||
BEGIN
|
||||
PROMPT 2 10 " "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
#include "ps0430100a.h"
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
#include <relapbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Relazioni utenti Articoli" -1 -1 80 20
|
||||
|
||||
LIST F_COD 5
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
ITEM "ATM|ATM"
|
||||
FIELD COD
|
||||
FLAGS "H"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
NUMBER F_CODTAB 3
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
USE LF_MULTIREL
|
||||
INPUT COD F_COD SELECT
|
||||
INPUT FIRST F_CODTAB
|
||||
DISPLAY "Codice" FIRST
|
||||
DISPLAY "Descrizione@60" DATA
|
||||
DISPLAY "Causale Collegata" SECOND
|
||||
OUTPUT F_CODTAB FIRST
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD FIRST
|
||||
FLAGS "H"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_USER 8
|
||||
BEGIN
|
||||
PROMPT 4 0 "Utente "
|
||||
FLAGS "U"
|
||||
KEY 1
|
||||
USE LF_USER SELECT ISGROUP!="X"
|
||||
INPUT USERNAME F_USER
|
||||
DISPLAY "Utente@8" USERNAME
|
||||
DISPLAY "Gruppo@8" GROUPNAME
|
||||
DISPLAY "Descrizione@50" USERDESC
|
||||
OUTPUT F_USER USERNAME
|
||||
OUTPUT F_DUSER USERDESC
|
||||
CHECKTYPE NORMAL
|
||||
MESSAGE COPY,F_CODTAB
|
||||
END
|
||||
|
||||
STRING F_DUSER 50
|
||||
BEGIN
|
||||
PROMPT 25 0 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_ACTIVEONLY
|
||||
BEGIN
|
||||
PROMPT 4 1 "Mostrare solo gli articoli attivi"
|
||||
END
|
||||
|
||||
BUTTON F_SET 10 2
|
||||
BEGIN
|
||||
PROMPT -1 0 "~Tutti"
|
||||
END
|
||||
|
||||
SPREADSHEET F_ARTICLES
|
||||
BEGIN
|
||||
PROMPT 1 2 "Articoli"
|
||||
ITEM "Codice@20"
|
||||
ITEM "Descrizione@45"
|
||||
ITEM "Attivo"
|
||||
ITEM "Fornit."
|
||||
ITEM "Ragione sociale@45"
|
||||
ITEM "Lead\ntime@5"
|
||||
ITEM "Lotto minimo\ndi riordino@10"
|
||||
ITEM "Descrizione aggiuntiva@50"
|
||||
ITEM "Q.tà per unità\ndi vendita@15"
|
||||
ITEM "Prezzo unitario@15"
|
||||
ITEM "Prezzo unità\ndi vendita@15"
|
||||
ITEM "Campo Aggiuntivo 1@15"
|
||||
ITEM "Campo Aggiuntivo 2@15"
|
||||
ITEM "Campo Aggiuntivo 3@15"
|
||||
ITEM "Campo Aggiuntivo 4@15"
|
||||
ITEM "Campo Aggiuntivo 5@15"
|
||||
ITEM "Campo Aggiuntivo 6@15"
|
||||
ITEM "Campo Aggiuntivo 7@15"
|
||||
ITEM "Campo Aggiuntivo 8@15"
|
||||
ITEM "Campo Aggiuntivo 9@15"
|
||||
ITEM "Campo Aggiuntivo 10@15"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Filtri" -1 -1 80 20
|
||||
|
||||
STRING F_GRMERC 3
|
||||
BEGIN
|
||||
PROMPT 2 4 "Gruppo merceologico "
|
||||
FLAG "U"
|
||||
USE GMC KEY 1 SELECT CODTAB[4,5]==""
|
||||
INPUT CODTAB F_GRMERC
|
||||
DISPLAY "Codice" CODTAB[1,3]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC CODTAB[1,3]
|
||||
OUTPUT F_DGRMERC S0
|
||||
CHECKTYPE SEARCH
|
||||
FIELD OR14_GRM
|
||||
END
|
||||
|
||||
STRING F_DGRMERC 50 35
|
||||
BEGIN
|
||||
PROMPT 35 4 ""
|
||||
USE GMC KEY 2 SELECT CODTAB[4,5]==""
|
||||
INPUT S0 F_DGRMERC
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC CODTAB[1,3]
|
||||
OUTPUT F_DGRMERC S0
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_SGRMERC 2
|
||||
BEGIN
|
||||
PROMPT 2 6 "Sottogruppo merceologico "
|
||||
FLAG "U"
|
||||
USE GMC
|
||||
INPUT CODTAB[1,3] F_GRMERC
|
||||
INPUT CODTAB[4,5] F_SGRMERC
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC CODTAB[1,3]
|
||||
OUTPUT F_SGRMERC CODTAB[4,5]
|
||||
OUTPUT F_DSGRMERC S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_SGR
|
||||
END
|
||||
|
||||
STRING F_DSGRMERC 50 35
|
||||
BEGIN
|
||||
PROMPT 35 6 ""
|
||||
USE GMC KEY 2 SELECT CODTAB[4,5] != ""
|
||||
INPUT S0 F_DSGRMERC
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_SGRMERC
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_SCODART 20
|
||||
BEGIN
|
||||
PROMPT 2 8 "Codice articolo "
|
||||
END
|
||||
|
||||
STRING F_SDESART 50
|
||||
BEGIN
|
||||
PROMPT 2 10 "Descrizione "
|
||||
END
|
||||
|
||||
STRING F_SDESAGG 50
|
||||
BEGIN
|
||||
PROMPT 2 12 "Descrizione aggiuntiva "
|
||||
END
|
||||
|
||||
STRING F_SCODFOR 7
|
||||
BEGIN
|
||||
PROMPT 2 14 "Codice fornitore "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "F"
|
||||
INPUT CODCF F_SCODFOR
|
||||
DISPLAY "Codice " CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT F_SCODFOR CODCF
|
||||
END
|
||||
|
||||
STRING F_SRAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 2 16 "Ragione sociale "
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
PAGE "Righe" -1 -1 80 18
|
||||
|
||||
STRING F_CODART 20
|
||||
BEGIN
|
||||
PROMPT 1 2 "Codice "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DESCR 50 45
|
||||
BEGIN
|
||||
PROMPT 42 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_ATTIVO
|
||||
BEGIN
|
||||
PROMPT 2 4 "Attivo per questo utente"
|
||||
END
|
||||
|
||||
NUMBER F_CODFORN 6
|
||||
BEGIN
|
||||
PROMPT 2 6 " "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50 45
|
||||
BEGIN
|
||||
PROMPT 2 8 " "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_LEADTIME 5
|
||||
BEGIN
|
||||
PROMPT 2 10 "Lead time "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_LOTTOMIN 10 3
|
||||
BEGIN
|
||||
PROMPT 42 10 "Lotto "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DESCRAGG 50 45
|
||||
BEGIN
|
||||
PROMPT 2 12 " "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_PPCONF 15
|
||||
BEGIN
|
||||
PROMPT 2 12 "Q.tà per unità di vendita "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALSTATUN 15 5
|
||||
BEGIN
|
||||
PROMPT 2 14 "Prezzo unitario "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_ULTCOS1 15 5
|
||||
BEGIN
|
||||
PROMPT 2 16 "Prezzo unità di vendita "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 11 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 11 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Campi Utente" -1 -1 80 20
|
||||
|
||||
STRING F_USER1 20
|
||||
BEGIN
|
||||
PROMPT 2 2 "Campo utente 1 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_USER2 20
|
||||
BEGIN
|
||||
PROMPT 2 4 "Campo utente 2 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_USER3 20
|
||||
BEGIN
|
||||
PROMPT 2 6 "Campo utente 3 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_USER4 20
|
||||
BEGIN
|
||||
PROMPT 2 8 "Campo utente 4 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_USER5 20
|
||||
BEGIN
|
||||
PROMPT 2 10 "Campo utente 5 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_USER6 20
|
||||
BEGIN
|
||||
PROMPT 2 12 "Campo utente 6 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_USER7 20
|
||||
BEGIN
|
||||
PROMPT 2 14 "Campo utente 7 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_USER8 20
|
||||
BEGIN
|
||||
PROMPT 2 16 "Campo utente 8 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_USER9 20
|
||||
BEGIN
|
||||
PROMPT 2 18 "Campo utente 9 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_USER10 20
|
||||
BEGIN
|
||||
PROMPT 2 20 "Campo utente 10 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 11 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 11 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
191
ps/ps0430200.cpp
191
ps/ps0430200.cpp
@ -1,96 +1,95 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <relation.h>
|
||||
|
||||
#include <multirel.h>
|
||||
#include "../mg/anamag.h"
|
||||
|
||||
#include "ps0430200a.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TUser_mask maschera
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TUser_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
bool get_user_ini(TFilename& name) const;
|
||||
TUser_mask() : TAutomask("ps0430200a") {}
|
||||
};
|
||||
|
||||
bool TUser_mask::get_user_ini(TFilename& name) const
|
||||
{
|
||||
name = prefix().get_studio();
|
||||
name.add("config");
|
||||
name.add(get(F_USER));
|
||||
name.ext("ini");
|
||||
return name.exist();
|
||||
}
|
||||
|
||||
bool TUser_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_USER:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
const char* const defpar = "or";
|
||||
TFilename inipath; get_user_ini(inipath);
|
||||
TConfig userconf(inipath, defpar);
|
||||
|
||||
for (int i = o.mask().fields()-1; i >= 0; i--)
|
||||
{
|
||||
TMask_field& f = o.mask().fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
|
||||
if (fr != NULL)
|
||||
{
|
||||
f.set(fr->read(userconf, defpar));
|
||||
f.check();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
class TUser_set_app : public TSkeleton_application
|
||||
{
|
||||
protected:
|
||||
virtual const char * extra_modules() const {return "ba";}
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TUser_set_app::main_loop()
|
||||
{
|
||||
TUser_mask mask;
|
||||
|
||||
while (mask.run() == K_ENTER)
|
||||
{
|
||||
const char* const defpar = "or";
|
||||
TFilename inipath; mask.get_user_ini(inipath);
|
||||
TConfig userconf(inipath, defpar);
|
||||
|
||||
for (int i = mask.fields()-1; i >= 0; i--)
|
||||
{
|
||||
const TMask_field& f = mask.fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
if (fr != NULL)
|
||||
fr->write(userconf, defpar, f.get());
|
||||
}
|
||||
mask.reset();
|
||||
}
|
||||
}
|
||||
|
||||
int ps0430200(int argc, char* argv[])
|
||||
{
|
||||
TUser_set_app a;
|
||||
a.run(argc, argv, TR("Configurazione campi per utente"));
|
||||
return 0;
|
||||
}
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <msksheet.h>
|
||||
#include <mask.h>
|
||||
#include <recarray.h>
|
||||
#include <recset.h>
|
||||
#include <tabapp.h>
|
||||
|
||||
#include <multirel.h>
|
||||
#include "../mg/anamag.h"
|
||||
#include "ps0430200a.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TUser_mask maschera
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TUser_mask : public TAutomask
|
||||
{
|
||||
|
||||
public:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
TUser_mask() : TAutomask("ps0430200a") {}
|
||||
~TUser_mask() {}
|
||||
};
|
||||
|
||||
bool TUser_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_USER:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
const TString& new_user = o.get();
|
||||
const TString16 old_user = user();
|
||||
user() = new_user;
|
||||
const char* defpar = "or";
|
||||
TConfig userconf(CONFIG_USER, defpar);
|
||||
|
||||
for (int i = o.mask().fields()-1; i >= 0; i--)
|
||||
{
|
||||
TMask_field& f = o.mask().fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
|
||||
if (fr != NULL)
|
||||
f.set(fr->read(userconf, defpar));
|
||||
}
|
||||
user() = old_user;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
class TUser_set_app : public TSkeleton_application
|
||||
{
|
||||
public:
|
||||
virtual const char * extra_modules() const {return "ba";}
|
||||
virtual void main_loop();
|
||||
|
||||
TUser_set_app() {}
|
||||
virtual ~TUser_set_app() {}
|
||||
};
|
||||
|
||||
void TUser_set_app::main_loop()
|
||||
{
|
||||
TUser_mask mask;
|
||||
|
||||
while (mask.run() == K_ENTER)
|
||||
{
|
||||
const TString& new_user = mask.get(F_USER);
|
||||
const TString16 old_user = user();
|
||||
user() = new_user;
|
||||
const char* defpar = "or";
|
||||
TConfig userconf(CONFIG_USER, defpar);
|
||||
|
||||
for (int i = mask.fields()-1; i >= 0; i--)
|
||||
{
|
||||
TMask_field& f = mask.fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
if (fr != NULL)
|
||||
fr->write(userconf, defpar, f.get());
|
||||
}
|
||||
user() = old_user;
|
||||
mask.reset();
|
||||
}
|
||||
}
|
||||
|
||||
int ps0430200(int argc, char* argv[])
|
||||
{
|
||||
TUser_set_app a;
|
||||
a.run(argc, argv, TR("Configurazione campi per utente"));
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,24 +1,31 @@
|
||||
// Defines per maschera
|
||||
|
||||
#define F_USER 101
|
||||
#define F_DUSER 102
|
||||
#define F_GRMERC 103
|
||||
#define F_DGRMERC 104
|
||||
#define F_SGRMERC 105
|
||||
#define F_DSGRMERC 106
|
||||
#define F_SOTTOSCORTA 107
|
||||
#define F_ARTICLES 108
|
||||
#define F_CODNUM 109
|
||||
#define F_DESNUM 110
|
||||
#define F_TIPODOC 111
|
||||
#define F_DESTIPODOC 112
|
||||
#define F_MAG 113
|
||||
#define F_DESMAG 114
|
||||
#define F_DEP 115
|
||||
#define F_DESDEP 116
|
||||
#define F_PREZZO 117
|
||||
#define F_CDCT 118
|
||||
#define F_FSCT 119
|
||||
#define F_DASTATO 120
|
||||
#define F_ASTATO 121
|
||||
|
||||
// Defines per maschera
|
||||
|
||||
#define F_USER 101
|
||||
#define F_DUSER 102
|
||||
#define F_GRMERC 103
|
||||
#define F_DGRMERC 104
|
||||
#define F_SGRMERC 105
|
||||
#define F_DSGRMERC 106
|
||||
#define F_SOTTOSCORTA 107
|
||||
#define F_ARTICLES 108
|
||||
#define F_CODNUM 109
|
||||
#define F_DESNUM 110
|
||||
#define F_TIPODOC 111
|
||||
#define F_DESTIPODOC 112
|
||||
#define F_MAG 113
|
||||
#define F_DESMAG 114
|
||||
#define F_DEP 115
|
||||
#define F_DESDEP 116
|
||||
#define F_PREZZO 117
|
||||
#define F_CDCT 118
|
||||
#define F_FSCT 119
|
||||
#define F_DASTATO 120
|
||||
#define F_ASTATO 121
|
||||
#define F_CODNUMCAR 122
|
||||
#define F_DESNUMCAR 123
|
||||
#define F_TIPODOCCAR 124
|
||||
#define F_DESTIPODOCCAR 125
|
||||
#define F_STATOEVASO 126
|
||||
#define F_STATOINI 127
|
||||
|
||||
|
||||
|
@ -1,248 +1,324 @@
|
||||
#include "ps0430200a.h"
|
||||
|
||||
TOOLBAR "" 0 -3 0 3
|
||||
|
||||
BUTTON DLG_SAVEREC 11 2
|
||||
BEGIN
|
||||
PROMPT -12 -11 ""
|
||||
PICTURE BMP_SAVEREC
|
||||
PICTURE BMP_SAVERECDN
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 11 2
|
||||
BEGIN
|
||||
PROMPT -22 -11 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Configurazione campi per utente" 0 0 0 -3
|
||||
|
||||
STRING F_USER 8
|
||||
BEGIN
|
||||
PROMPT 2 2 "Utente "
|
||||
FLAGS "U"
|
||||
KEY 1
|
||||
USE LF_USER SELECT ISGROUP!="X"
|
||||
INPUT USERNAME F_USER
|
||||
DISPLAY "Utente@8" USERNAME
|
||||
DISPLAY "Gruppo@8" GROUPNAME
|
||||
DISPLAY "Descrizione@50" USERDESC
|
||||
OUTPUT F_USER USERNAME
|
||||
OUTPUT F_DUSER USERDESC
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DUSER 50
|
||||
BEGIN
|
||||
PROMPT 29 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_GRMERC 3
|
||||
BEGIN
|
||||
PROMPT 2 4 "Gruppo merc. "
|
||||
FLAG "U"
|
||||
USE GMC KEY 1 SELECT CODTAB[4,5]==""
|
||||
INPUT CODTAB F_GRMERC
|
||||
DISPLAY "Codice" CODTAB[1,3]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC CODTAB[1,3]
|
||||
OUTPUT F_DGRMERC S0
|
||||
CHECKTYPE SEARCH
|
||||
FIELD OR14_GRM
|
||||
END
|
||||
|
||||
STRING F_DGRMERC 50
|
||||
BEGIN
|
||||
PROMPT 29 4 ""
|
||||
USE GMC KEY 2 SELECT CODTAB[4,5]==""
|
||||
INPUT S0 F_DGRMERC
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC CODTAB[1,3]
|
||||
OUTPUT F_DGRMERC S0
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_SGRMERC 2
|
||||
BEGIN
|
||||
PROMPT 2 6 "Sottogr.merc ."
|
||||
FLAG "U"
|
||||
USE GMC
|
||||
INPUT CODTAB[1,3] F_GRMERC
|
||||
INPUT CODTAB[4,5] F_SGRMERC
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC CODTAB[1,3]
|
||||
OUTPUT F_SGRMERC CODTAB[4,5]
|
||||
OUTPUT F_DSGRMERC S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_SGR
|
||||
END
|
||||
|
||||
STRING F_DSGRMERC 50
|
||||
BEGIN
|
||||
PROMPT 29 6 ""
|
||||
USE GMC KEY 2 SELECT CODTAB[4,5] != ""
|
||||
INPUT S0 F_DSGRMERC
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_SGRMERC
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CDCT 20
|
||||
BEGIN
|
||||
PROMPT 2 8 "CDC/Commessa "
|
||||
FLAGS "UZ"
|
||||
USE CMS
|
||||
INPUT CODTAB F_CDCT
|
||||
DISPLAY "Codice@20" CODTAB
|
||||
DISPLAY "Descrizione@70" S0
|
||||
OUTPUT F_CDCT CODTAB
|
||||
FILED OR14_CDCT
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_FSCT 10
|
||||
BEGIN
|
||||
PROMPT 45 8 "Fase "
|
||||
FLAGS "UZ"
|
||||
USE FSC
|
||||
INPUT CODTAB F_FSCT
|
||||
DISPLAY "Codice@20" CODTAB
|
||||
DISPLAY "Descrizione@70" S0
|
||||
OUTPUT F_FSCT CODTAB
|
||||
FIELD OR14_FSCT
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 2 10 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODNUM CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
FLAG "UG"
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_NUM
|
||||
END
|
||||
|
||||
STRING F_DESNUM 50
|
||||
BEGIN
|
||||
PROMPT 29 10 ""
|
||||
USE %NUM KEY 2
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODNUM
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_TIPODOC 4
|
||||
BEGIN
|
||||
PROMPT 2 12 "Tipo "
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC CODTAB
|
||||
OUTPUT F_DESTIPODOC S0
|
||||
CHECKTYPE NORMAL
|
||||
FLAG "UG"
|
||||
FIELD OR14_TIP
|
||||
END
|
||||
|
||||
STRING F_DESTIPODOC 50
|
||||
BEGIN
|
||||
PROMPT 29 12 ""
|
||||
USE %TIP KEY 2
|
||||
INPUT S0 F_DESTIPODOC
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_TIPODOC
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_MAG 3
|
||||
BEGIN
|
||||
PROMPT 2 14 "Magazzino "
|
||||
FLAGS "UG"
|
||||
USE MAG SELECT CODTAB[4,5]==""
|
||||
INPUT CODTAB F_MAG
|
||||
DISPLAY "Codice " CODTAB[1,3]
|
||||
DISPLAY "Denominazione mag.@50 " S0
|
||||
OUTPUT F_MAG CODTAB[1,3]
|
||||
OUTPUT F_DESMAG S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_MAG
|
||||
END
|
||||
|
||||
STRING F_DESMAG 50
|
||||
BEGIN
|
||||
PROMPT 29 14 ""
|
||||
USE MAG KEY 2 SELECT CODTAB[4,5]==""
|
||||
INPUT S0 F_DESMAG
|
||||
DISPLAY "Denominazione magazzino@50" S0
|
||||
DISPLAY "Cod. magazzino" CODTAB[1,3]
|
||||
DISPLAY "Cod. deposito" CODTAB[4,5]
|
||||
COPY OUTPUT F_MAG
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_DEP 2
|
||||
BEGIN
|
||||
PROMPT 2 16 "Deposito "
|
||||
FLAGS "U"
|
||||
USE MAG SELECT CODTAB[4,5]!=""
|
||||
INPUT CODTAB[1,3] F_MAG
|
||||
INPUT CODTAB[4,5] F_DEP
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Denominazione dep.@50 " S0
|
||||
OUTPUT F_MAG CODTAB[1,3]
|
||||
OUTPUT F_DEP CODTAB[4,5]
|
||||
CHECKTYPE SEARCH
|
||||
FIELD OR14_DEP
|
||||
END
|
||||
|
||||
STRING F_DESDEP 50
|
||||
BEGIN
|
||||
PROMPT 29 16 ""
|
||||
USE MAG KEY 2 SELECT CODTAB[4,5]!=""
|
||||
INPUT S0 F_DESDEP
|
||||
COPY DISPLAY F_DESMAG
|
||||
OUTPUT F_DEP CODTAB[4,5]
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_DASTATO 1
|
||||
BEGIN
|
||||
PROMPT 2 18 "Dallo stato "
|
||||
USE %STD
|
||||
INPUT CODTAB F_DASTATO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DASTATO CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_DASTATO
|
||||
END
|
||||
|
||||
STRING F_ASTATO 1
|
||||
BEGIN
|
||||
PROMPT 29 18 "Allo stato "
|
||||
COPY USE F_DASTATO
|
||||
INPUT CODTAB F_ASTATO
|
||||
COPY DISPLAY F_DASTATO
|
||||
OUTPUT F_ASTATO CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_ASTATO
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
#include "ps0430200a.h"
|
||||
|
||||
TOOLBAR "" 0 -3 0 3
|
||||
|
||||
BUTTON DLG_SAVEREC 11 2
|
||||
BEGIN
|
||||
PROMPT -12 -11 ""
|
||||
PICTURE BMP_SAVEREC
|
||||
PICTURE BMP_SAVERECDN
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 11 2
|
||||
BEGIN
|
||||
PROMPT -22 -11 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Configurazione campi per utente" 0 0 0 -3
|
||||
|
||||
STRING F_USER 8
|
||||
BEGIN
|
||||
PROMPT 2 2 "Utente "
|
||||
FLAGS "U"
|
||||
KEY 1
|
||||
USE LF_USER SELECT ISGROUP!="X"
|
||||
INPUT USERNAME F_USER
|
||||
DISPLAY "Utente@8" USERNAME
|
||||
DISPLAY "Gruppo@8" GROUPNAME
|
||||
DISPLAY "Descrizione@50" USERDESC
|
||||
OUTPUT F_USER USERNAME
|
||||
OUTPUT F_DUSER USERDESC
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DUSER 50
|
||||
BEGIN
|
||||
PROMPT 29 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_GRMERC 3
|
||||
BEGIN
|
||||
PROMPT 2 4 "Gruppo merc. "
|
||||
FLAG "U"
|
||||
USE GMC KEY 1 SELECT CODTAB[4,5]==""
|
||||
INPUT CODTAB F_GRMERC
|
||||
DISPLAY "Codice" CODTAB[1,3]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC CODTAB[1,3]
|
||||
OUTPUT F_DGRMERC S0
|
||||
CHECKTYPE SEARCH
|
||||
FIELD OR14_GRM
|
||||
END
|
||||
|
||||
STRING F_DGRMERC 50
|
||||
BEGIN
|
||||
PROMPT 29 4 ""
|
||||
USE GMC KEY 2 SELECT CODTAB[4,5]==""
|
||||
INPUT S0 F_DGRMERC
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC CODTAB[1,3]
|
||||
OUTPUT F_DGRMERC S0
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_SGRMERC 2
|
||||
BEGIN
|
||||
PROMPT 2 5 "Sottogr.merc. "
|
||||
FLAG "U"
|
||||
USE GMC
|
||||
INPUT CODTAB[1,3] F_GRMERC
|
||||
INPUT CODTAB[4,5] F_SGRMERC
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC CODTAB[1,3]
|
||||
OUTPUT F_SGRMERC CODTAB[4,5]
|
||||
OUTPUT F_DSGRMERC S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_SGR
|
||||
END
|
||||
|
||||
STRING F_DSGRMERC 50
|
||||
BEGIN
|
||||
PROMPT 29 5 ""
|
||||
USE GMC KEY 2 SELECT CODTAB[4,5] != ""
|
||||
INPUT S0 F_DSGRMERC
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_SGRMERC
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CDCT 20
|
||||
BEGIN
|
||||
PROMPT 2 7 "CDC/Commessa "
|
||||
FLAGS "UZ"
|
||||
USE CMS
|
||||
INPUT CODTAB F_CDCT
|
||||
DISPLAY "Codice@20" CODTAB
|
||||
DISPLAY "Descrizione@70" S0
|
||||
OUTPUT F_CDCT CODTAB
|
||||
FILED OR14_CDCT
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_FSCT 10
|
||||
BEGIN
|
||||
PROMPT 45 7 "Fase "
|
||||
FLAGS "UZ"
|
||||
USE FSC
|
||||
INPUT CODTAB F_FSCT
|
||||
DISPLAY "Codice@20" CODTAB
|
||||
DISPLAY "Descrizione@70" S0
|
||||
OUTPUT F_FSCT CODTAB
|
||||
FIELD OR14_FSCT
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 2 9 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODNUM CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
FLAG "UG"
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_NUM
|
||||
END
|
||||
|
||||
STRING F_DESNUM 50
|
||||
BEGIN
|
||||
PROMPT 29 9 ""
|
||||
USE %NUM KEY 2
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODNUM
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_TIPODOC 4
|
||||
BEGIN
|
||||
PROMPT 2 10 "Tipo "
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC CODTAB
|
||||
OUTPUT F_DESTIPODOC S0
|
||||
CHECKTYPE NORMAL
|
||||
FLAG "UG"
|
||||
FIELD OR14_TIP
|
||||
END
|
||||
|
||||
STRING F_DESTIPODOC 50
|
||||
BEGIN
|
||||
PROMPT 29 10 ""
|
||||
USE %TIP KEY 2
|
||||
INPUT S0 F_DESTIPODOC
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_TIPODOC
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
|
||||
STRING F_CODNUMCAR 4
|
||||
BEGIN
|
||||
PROMPT 2 12 "Num.doc.carico "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUMCAR
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODNUMCAR CODTAB
|
||||
OUTPUT F_DESNUMCAR S0
|
||||
FLAG "UG"
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_NUMCAR
|
||||
END
|
||||
|
||||
STRING F_DESNUMCAR 50
|
||||
BEGIN
|
||||
PROMPT 29 12 ""
|
||||
USE %NUM KEY 2
|
||||
INPUT S0 F_DESNUMCAR
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODNUMCAR
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_TIPODOCCAR 4
|
||||
BEGIN
|
||||
PROMPT 2 13 "Tipo doc.car. "
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOCCAR
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOCCAR CODTAB
|
||||
OUTPUT F_DESTIPODOCCAR S0
|
||||
CHECKTYPE NORMAL
|
||||
FLAG "UG"
|
||||
FIELD OR14_TIPCAR
|
||||
END
|
||||
|
||||
STRING F_DESTIPODOCCAR 50
|
||||
BEGIN
|
||||
PROMPT 29 13 ""
|
||||
USE %TIP KEY 2
|
||||
INPUT S0 F_DESTIPODOCCAR
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_TIPODOCCAR
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_STATOEVASO 1
|
||||
BEGIN
|
||||
PROMPT 2 13 "Tipo doc.car. "
|
||||
PROMPT 2 14 "Stato ord. ev. "
|
||||
USE %STD
|
||||
INPUT CODTAB F_STATOEVASO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_STATOEVASO CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_STATOEVASO
|
||||
END
|
||||
|
||||
STRING F_STATOINI 1
|
||||
BEGIN
|
||||
PROMPT 52 14 "Stato ordine iniziale "
|
||||
USE %STD
|
||||
INPUT CODTAB F_STATOINI
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_STATOINI CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_STATOINI
|
||||
END
|
||||
|
||||
STRING F_MAG 3
|
||||
BEGIN
|
||||
PROMPT 2 15 "Magazzino "
|
||||
FLAGS "UG"
|
||||
USE MAG SELECT CODTAB[4,5]==""
|
||||
INPUT CODTAB F_MAG
|
||||
DISPLAY "Codice " CODTAB[1,3]
|
||||
DISPLAY "Denominazione mag.@50 " S0
|
||||
OUTPUT F_MAG CODTAB[1,3]
|
||||
OUTPUT F_DESMAG S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_MAG
|
||||
END
|
||||
|
||||
STRING F_DESMAG 50
|
||||
BEGIN
|
||||
PROMPT 29 15 ""
|
||||
USE MAG KEY 2 SELECT CODTAB[4,5]==""
|
||||
INPUT S0 F_DESMAG
|
||||
DISPLAY "Denominazione magazzino@50" S0
|
||||
DISPLAY "Cod. magazzino" CODTAB[1,3]
|
||||
DISPLAY "Cod. deposito" CODTAB[4,5]
|
||||
COPY OUTPUT F_MAG
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_DEP 2
|
||||
BEGIN
|
||||
PROMPT 2 16 "Deposito "
|
||||
FLAGS "U"
|
||||
USE MAG SELECT CODTAB[4,5]!=""
|
||||
INPUT CODTAB[1,3] F_MAG
|
||||
INPUT CODTAB[4,5] F_DEP
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Denominazione dep.@50 " S0
|
||||
OUTPUT F_MAG CODTAB[1,3]
|
||||
OUTPUT F_DEP CODTAB[4,5]
|
||||
CHECKTYPE SEARCH
|
||||
FIELD OR14_DEP
|
||||
END
|
||||
|
||||
STRING F_DESDEP 50
|
||||
BEGIN
|
||||
PROMPT 29 16 ""
|
||||
USE MAG KEY 2 SELECT CODTAB[4,5]!=""
|
||||
INPUT S0 F_DESDEP
|
||||
COPY DISPLAY F_DESMAG
|
||||
OUTPUT F_DEP CODTAB[4,5]
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING F_DASTATO 1
|
||||
BEGIN
|
||||
PROMPT 2 18 "Dallo stato "
|
||||
USE %STD
|
||||
INPUT CODTAB F_DASTATO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DASTATO CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_DASTATO
|
||||
END
|
||||
|
||||
STRING F_ASTATO 1
|
||||
BEGIN
|
||||
PROMPT 29 18 "Allo stato "
|
||||
COPY USE F_DASTATO
|
||||
INPUT CODTAB F_ASTATO
|
||||
COPY DISPLAY F_DASTATO
|
||||
OUTPUT F_ASTATO CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD OR14_ASTATO
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
2572
ps/ps0430300.cpp
2572
ps/ps0430300.cpp
File diff suppressed because it is too large
Load Diff
1874
ps/ps0430300a.uml
1874
ps/ps0430300a.uml
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user