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