Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21962 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
23298c2e15
commit
89442c7b67
@ -5,6 +5,7 @@
|
|||||||
#include <recset.h>
|
#include <recset.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
|
|
||||||
|
#include "hatbatt.h"
|
||||||
#include "hatbcau.h"
|
#include "hatbcau.h"
|
||||||
#include "hatbcel.h"
|
#include "hatbcel.h"
|
||||||
|
|
||||||
@ -37,9 +38,42 @@ protected: // TRelation_application
|
|||||||
virtual bool protected_record(TRectype& record);
|
virtual bool protected_record(TRectype& record);
|
||||||
virtual void init_query_mode(TMask& m);
|
virtual void init_query_mode(TMask& m);
|
||||||
virtual void init_query_insert_mode(TMask& m);
|
virtual void init_query_insert_mode(TMask& m);
|
||||||
|
|
||||||
|
virtual bool get_next_key(TToken_string& key);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
bool THA_table_app::get_next_key(TToken_string& key)
|
||||||
|
{
|
||||||
|
//casino per la tabella attrezzature "&ATT"
|
||||||
|
const TString4 name = get_relation()->file(0).name();
|
||||||
|
if (name == "ATT")
|
||||||
|
{
|
||||||
|
const TString& codart = curr_mask().get(F_CODART);
|
||||||
|
if (codart.full())
|
||||||
|
{
|
||||||
|
TString query;
|
||||||
|
query << "USE &ATT";
|
||||||
|
query << "\nFROM CODTAB=#CODTAB";
|
||||||
|
query << "\nTO CODTAB=#CODTAB";
|
||||||
|
TISAM_recordset recset(query);
|
||||||
|
recset.set_var("#CODTAB", codart);
|
||||||
|
long last_prog = 0;
|
||||||
|
if (recset.move_last())
|
||||||
|
last_prog = recset.get("CODTAB[6,12]").as_int();
|
||||||
|
|
||||||
|
//riempie la token_string con i dati richiesti
|
||||||
|
key.add(F_CODART);
|
||||||
|
key.add(codart);
|
||||||
|
key.add(F_PROGRESSIVO);
|
||||||
|
key.add(last_prog + 1);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TTable_module_application::get_next_key(key);
|
||||||
|
}
|
||||||
|
|
||||||
bool THA_table_app::protected_record(TRectype& record)
|
bool THA_table_app::protected_record(TRectype& record)
|
||||||
{
|
{
|
||||||
const TString4 name = get_relation()->file(0).name();
|
const TString4 name = get_relation()->file(0).name();
|
||||||
|
@ -22,8 +22,9 @@ class TCoffee_tree : public TBidirectional_tree
|
|||||||
{
|
{
|
||||||
TString8 _curr_node;
|
TString8 _curr_node;
|
||||||
long _codcf;
|
long _codcf;
|
||||||
|
long _progressivo;
|
||||||
TString8 _codart;
|
TString8 _codart;
|
||||||
TString16 _matricola;
|
TString16 _matricola, _cespite;
|
||||||
TISAM_recordset _recset;
|
TISAM_recordset _recset;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -44,14 +45,16 @@ public:
|
|||||||
virtual bool goto_lbrother();
|
virtual bool goto_lbrother();
|
||||||
virtual bool get_description(TString& desc) const;
|
virtual bool get_description(TString& desc) const;
|
||||||
virtual TFieldtypes get_var(const TString& name, TVariant& var) const;
|
virtual TFieldtypes get_var(const TString& name, TVariant& var) const;
|
||||||
virtual TImage* image(bool selected) const { return get_res_icon(10232); }
|
virtual TImage* image(bool selected) const { return get_res_icon(10232); } //mai dimenticarsi la moka!
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool set_clifo(long codcf);
|
bool set_clifo(long codcf);
|
||||||
bool select_attr(const TString& codart, const TString& matricola);
|
bool select_attr(const TString& codart, const long progressivo);
|
||||||
const long get_codcf() const;
|
const long get_codcf() const;
|
||||||
const TString& get_codart() const;
|
const TString& get_codart() const;
|
||||||
|
const long get_progressivo() const;
|
||||||
const TString& get_matricola() const;
|
const TString& get_matricola() const;
|
||||||
|
const TString& get_cespite() const;
|
||||||
TCoffee_tree() : _codcf(0), _recset("USE &ATT") { set_clifo(0L); }
|
TCoffee_tree() : _codcf(0), _recset("USE &ATT") { set_clifo(0L); }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -119,7 +122,7 @@ TFieldtypes TCoffee_tree::get_var(const TString& name, TVariant& var) const
|
|||||||
{
|
{
|
||||||
//se il campo richiesto è la descrizione ci vuole quella dell'articolo, non dell'attrezzatura..
|
//se il campo richiesto è la descrizione ci vuole quella dell'articolo, non dell'attrezzatura..
|
||||||
//..che risulta vuota
|
//..che risulta vuota
|
||||||
if (name == "S0")
|
if (name == "S10")
|
||||||
{
|
{
|
||||||
TString8 codart = _recset.get("CODTAB[1,5]").as_string();
|
TString8 codart = _recset.get("CODTAB[1,5]").as_string();
|
||||||
codart.trim();
|
codart.trim();
|
||||||
@ -136,11 +139,21 @@ const TString& TCoffee_tree::get_codart() const
|
|||||||
return _codart;
|
return _codart;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const long TCoffee_tree::get_progressivo() const
|
||||||
|
{
|
||||||
|
return _progressivo;
|
||||||
|
}
|
||||||
|
|
||||||
const TString& TCoffee_tree::get_matricola() const
|
const TString& TCoffee_tree::get_matricola() const
|
||||||
{
|
{
|
||||||
return _matricola;
|
return _matricola;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const TString& TCoffee_tree::get_cespite() const
|
||||||
|
{
|
||||||
|
return _cespite;
|
||||||
|
}
|
||||||
|
|
||||||
const long TCoffee_tree::get_codcf() const
|
const long TCoffee_tree::get_codcf() const
|
||||||
{
|
{
|
||||||
return _codcf;
|
return _codcf;
|
||||||
@ -155,7 +168,7 @@ bool TCoffee_tree::set_clifo(long codcf)
|
|||||||
return goto_root();
|
return goto_root();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TCoffee_tree::select_attr(const TString& codart, const TString& matricola)
|
bool TCoffee_tree::select_attr(const TString& codart, const long progressivo)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
for (bool ok = _recset.move_first(); ok; ok = _recset.move_next())
|
for (bool ok = _recset.move_first(); ok; ok = _recset.move_next())
|
||||||
@ -165,13 +178,14 @@ bool TCoffee_tree::select_attr(const TString& codart, const TString& matricola)
|
|||||||
if (curr_codart == codart)
|
if (curr_codart == codart)
|
||||||
{
|
{
|
||||||
_codart = codart;
|
_codart = codart;
|
||||||
TString16 curr_matricola = _recset.get("CODTAB[16,30]").as_string();
|
const long curr_progressivo = _recset.get("CODTAB[6,12]").as_int();
|
||||||
curr_matricola.trim();
|
if (curr_progressivo == progressivo)
|
||||||
if (curr_matricola == matricola)
|
|
||||||
{
|
{
|
||||||
_curr_node.format("%ld", _recset.current_row());
|
_curr_node.format("%ld", _recset.current_row());
|
||||||
found = true;
|
found = true;
|
||||||
_matricola = matricola;
|
_progressivo = progressivo;
|
||||||
|
_matricola = _recset.get("S0[6,20]").as_string();
|
||||||
|
_cespite = _recset.get("S1").as_string();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -280,7 +294,7 @@ bool TGestione_attrezzature_mask::write()
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
const TString& codart = ct->get_codart();
|
const TString& codart = ct->get_codart();
|
||||||
const TString& matricola = ct->get_matricola();
|
const long progressivo = ct->get_progressivo();
|
||||||
|
|
||||||
TSheet_field& sf_righe = sfield(F_STORICO);
|
TSheet_field& sf_righe = sfield(F_STORICO);
|
||||||
//maschera di riga dello sheet
|
//maschera di riga dello sheet
|
||||||
@ -288,9 +302,9 @@ bool TGestione_attrezzature_mask::write()
|
|||||||
//tabella di modulo con lo storico interventi
|
//tabella di modulo con lo storico interventi
|
||||||
TModule_table his("&HIS");
|
TModule_table his("&HIS");
|
||||||
TRectype& rec_his = his.curr();
|
TRectype& rec_his = his.curr();
|
||||||
//codice articolo + matricola (prima parte del CODTAB del record di tabmod)
|
//codice articolo + progressivo (prima parte del CODTAB del record di tabmod)
|
||||||
TString80 codtab;
|
TString80 codtab;
|
||||||
codtab.format("%-15s%-15s", (const char*)codart, (const char*)matricola);
|
codtab.format("%-5s%07d", (const char*)codart, progressivo);
|
||||||
|
|
||||||
//contatore delle righe che vengono salvate
|
//contatore delle righe che vengono salvate
|
||||||
int righe_tot = 0;
|
int righe_tot = 0;
|
||||||
@ -301,7 +315,7 @@ bool TGestione_attrezzature_mask::write()
|
|||||||
short id = 101;
|
short id = 101;
|
||||||
//giro su tutti i campi della riga (che è una sporca token_string)
|
//giro su tutti i campi della riga (che è una sporca token_string)
|
||||||
//per prima cosa mette la chiave del record che è così fatta:
|
//per prima cosa mette la chiave del record che è così fatta:
|
||||||
// codart=codtab[1,5] - matricola=codtab[16,30] - nriga=codtab[31,35]
|
// codart=codtab[1,5] - progressivo=codtab[6,12] - nriga=codtab[31,35]
|
||||||
TString80 curr_codtab;
|
TString80 curr_codtab;
|
||||||
curr_codtab.format("%05d", sf_righe.items() - r);
|
curr_codtab.format("%05d", sf_righe.items() - r);
|
||||||
curr_codtab.insert(codtab);
|
curr_codtab.insert(codtab);
|
||||||
@ -309,6 +323,7 @@ bool TGestione_attrezzature_mask::write()
|
|||||||
//deve azzerare la tabella, senno' perde il codice modulo HA ed il codice tabella HIS
|
//deve azzerare la tabella, senno' perde il codice modulo HA ed il codice tabella HIS
|
||||||
his.zero();
|
his.zero();
|
||||||
rec_his.put("CODTAB", curr_codtab);
|
rec_his.put("CODTAB", curr_codtab);
|
||||||
|
//poi quelli specifici della riga
|
||||||
FOR_EACH_TOKEN(*riga, str)
|
FOR_EACH_TOKEN(*riga, str)
|
||||||
{
|
{
|
||||||
const TMask_field& mf = sm.field(id);
|
const TMask_field& mf = sm.field(id);
|
||||||
@ -369,7 +384,7 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case F_COD_MATR:
|
case F_PROGRESSIVO:
|
||||||
if (e == fe_modify)
|
if (e == fe_modify)
|
||||||
{
|
{
|
||||||
//albero magico: selezionando un'attrezzatura, si posiziona direttamente sulla giusta posizione nell'albero..
|
//albero magico: selezionando un'attrezzatura, si posiziona direttamente sulla giusta posizione nell'albero..
|
||||||
@ -379,9 +394,9 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
|
|||||||
if (ct != NULL)
|
if (ct != NULL)
|
||||||
{
|
{
|
||||||
ct->set_clifo(get_long(F_CODCF));
|
ct->set_clifo(get_long(F_CODCF));
|
||||||
const TString& codart = get(F_COD_ART);
|
const TString& codart = get(F_CODART);
|
||||||
const TString& matricola = get(F_COD_MATR);
|
const long progressivo = get_long(F_PROGRESSIVO);
|
||||||
if (ct->select_attr(codart, matricola))
|
if (ct->select_attr(codart, progressivo))
|
||||||
{
|
{
|
||||||
tf.select_current();
|
tf.select_current();
|
||||||
send_key(K_SPACE, F_ATTREZZATURE, &o);
|
send_key(K_SPACE, F_ATTREZZATURE, &o);
|
||||||
@ -398,13 +413,18 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
|
|||||||
{
|
{
|
||||||
TString80 codattr;
|
TString80 codattr;
|
||||||
ct->get_description(codattr);
|
ct->get_description(codattr);
|
||||||
|
|
||||||
//riempie i campi di intestazione maschera
|
//riempie i campi di intestazione maschera
|
||||||
set(F_COD_ART, codattr.left(5));
|
set(F_CODART, codattr.left(5));
|
||||||
set(F_COD_MATR, codattr.mid(15,15));
|
set(F_PROGRESSIVO, codattr.mid(5,7));
|
||||||
|
check_field(F_CODART);
|
||||||
//chiede di salvare le modifiche al cambio attrezzatura
|
//chiede di salvare le modifiche al cambio attrezzatura
|
||||||
save_if_dirty();
|
save_if_dirty();
|
||||||
//seleziona sull'albero
|
//seleziona sull'albero
|
||||||
ct->select_attr(get(F_COD_ART), get(F_COD_MATR));
|
ct->select_attr(get(F_CODART), get_long(F_PROGRESSIVO));
|
||||||
|
//la select_attr fa sapere all'albero matricola e cespite -> si possono mettere sulla maschera)
|
||||||
|
set(F_MATRICOLA, ct->get_matricola());
|
||||||
|
set(F_CESPITE, ct->get_cespite());
|
||||||
//riempie lo sheet
|
//riempie lo sheet
|
||||||
fill_sheet_storico(codattr);
|
fill_sheet_storico(codattr);
|
||||||
}
|
}
|
||||||
@ -434,20 +454,20 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
|
|||||||
{
|
{
|
||||||
//1) per prima cosa deve controllare che siano pieni i campi chiave della tabella ttrezzature, senno' non puo'..
|
//1) per prima cosa deve controllare che siano pieni i campi chiave della tabella ttrezzature, senno' non puo'..
|
||||||
//...aggiungere una cippa
|
//...aggiungere una cippa
|
||||||
if (get(F_COD_ART).empty() || get(F_COD_MATR).empty())
|
if (get(F_CODART).empty() || get(F_PROGRESSIVO) <= 0L)
|
||||||
return warning_box(TR("E' necessario compilare articolo e matricola per aggiungere una nuova attrezzatura!"));
|
return warning_box(TR("E' necessario compilare articolo e progressivo per aggiungere una nuova attrezzatura!"));
|
||||||
|
|
||||||
TString80 codtab;
|
TString80 codtab;
|
||||||
const TString& codart = get(F_COD_ART);
|
const TString& codart = get(F_CODART);
|
||||||
const TString& matricola = get(F_COD_MATR);
|
const long progressivo = get_long(F_PROGRESSIVO);
|
||||||
codtab.format("%-15s%-15s", (const char*)codart, (const char*)matricola);
|
codtab.format("%-5s%07d", (const char*)codart, progressivo);
|
||||||
//2) controllo effettiva "nuovezza" dell'attrezzatura..
|
//2) controllo effettiva "nuovezza" dell'attrezzatura..
|
||||||
//...se l'utonto tentasse di inserire come nuova un'attrezzatura già esistente va cazziato!
|
//...se l'utonto tentasse di inserire come nuova un'attrezzatura già esistente va cazziato!
|
||||||
TModule_table tab_att("&ATT");
|
TModule_table tab_att("&ATT");
|
||||||
tab_att.put("CODTAB", codtab);
|
tab_att.put("CODTAB", codtab);
|
||||||
const int err = tab_att.read();
|
const int err = tab_att.read();
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
return warning_box(TR("L'attrezzatura con questa matricola esiste gia'!"));
|
return warning_box(TR("L'attrezzatura con questi articolo e progressivo esiste gia'!"));
|
||||||
|
|
||||||
//3) invio dati al gestore della tabella &ATT delle attrezzature tramite .ini
|
//3) invio dati al gestore della tabella &ATT delle attrezzature tramite .ini
|
||||||
TFilename trans_ini;
|
TFilename trans_ini;
|
||||||
@ -463,6 +483,10 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
|
|||||||
ini.set("CODTAB", codtab);
|
ini.set("CODTAB", codtab);
|
||||||
ini.set("I0", get(F_CODCF));
|
ini.set("I0", get(F_CODCF));
|
||||||
ini.set("D0", TDate(TODAY));
|
ini.set("D0", TDate(TODAY));
|
||||||
|
TString matricola;
|
||||||
|
matricola.format("%-5s%-15s", (const char*)get(F_CODART), (const char*)get(F_MATRICOLA));
|
||||||
|
ini.set("S0", matricola);
|
||||||
|
ini.set("S1", get(F_CESPITE));
|
||||||
}
|
}
|
||||||
//invio del config al gestore della tabella &ATT
|
//invio del config al gestore della tabella &ATT
|
||||||
TString80 cmd;
|
TString80 cmd;
|
||||||
@ -481,6 +505,9 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
|
|||||||
codtab.strip("\""); //elimina eventuali " che vengono dall'ini
|
codtab.strip("\""); //elimina eventuali " che vengono dall'ini
|
||||||
const long codcf = ini.get_long("I0");
|
const long codcf = ini.get_long("I0");
|
||||||
const TDate data_storico = ini.get("D0");
|
const TDate data_storico = ini.get("D0");
|
||||||
|
const TString& cespite = ini.get("S1");
|
||||||
|
const TString& full_matricola = ini.get("S0");
|
||||||
|
const TString16 matricola = full_matricola.mid(5,15);
|
||||||
|
|
||||||
//4b) da file ini crea un record nuovo sulla tabella &HIS; se non lo facesse l'albero con le attrezzature non..
|
//4b) da file ini crea un record nuovo sulla tabella &HIS; se non lo facesse l'albero con le attrezzature non..
|
||||||
//....potrebbe mai vedere la nuova attrezzatura aggiunta; sara' poi l'albero stesso ad occuparsi dello sheet
|
//....potrebbe mai vedere la nuova attrezzatura aggiunta; sara' poi l'albero stesso ad occuparsi dello sheet
|
||||||
@ -490,14 +517,18 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
|
|||||||
tab_his.put("CODTAB", his_codtab);
|
tab_his.put("CODTAB", his_codtab);
|
||||||
tab_his.put("I0", codcf);
|
tab_his.put("I0", codcf);
|
||||||
tab_his.put("D0", data_storico);
|
tab_his.put("D0", data_storico);
|
||||||
|
tab_his.put("S2", matricola);
|
||||||
|
tab_his.put("S1", cespite);
|
||||||
|
|
||||||
int can_write = tab_his.write();
|
int can_write = tab_his.write();
|
||||||
if (can_write != NOERR)
|
if (can_write != NOERR)
|
||||||
return warning_box(TR("Impossibile aggiungere l'attrezzatura! Risulta gia' presente."));
|
return warning_box(TR("Impossibile aggiungere l'attrezzatura! Risulta gia' presente."));
|
||||||
|
|
||||||
set(F_CODCF, codcf, true);
|
set(F_CODCF, codcf, true);
|
||||||
set(F_COD_ART, codtab.left(5));
|
set(F_CODART, codtab.left(5), true);
|
||||||
set(F_COD_MATR, codtab.mid(15,15), true);
|
set(F_PROGRESSIVO, codtab.mid(5,7), true);
|
||||||
|
set(F_MATRICOLA, matricola);
|
||||||
|
set(F_CESPITE, cespite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -548,6 +579,7 @@ TGestione_attrezzature_mask::TGestione_attrezzature_mask() : TAutomask("ha3900a"
|
|||||||
TCoffee_tree* ct = new TCoffee_tree;
|
TCoffee_tree* ct = new TCoffee_tree;
|
||||||
tf.set_tree(ct);
|
tf.set_tree(ct);
|
||||||
|
|
||||||
|
//se non facesse questa precisazione non potrebbe inserire le righe in alto
|
||||||
TSheet_field& sf_storico = sfield(F_STORICO);
|
TSheet_field& sf_storico = sfield(F_STORICO);
|
||||||
sf_storico.set_append(false);
|
sf_storico.set_append(false);
|
||||||
|
|
||||||
|
12
ha/ha3900a.h
12
ha/ha3900a.h
@ -1,9 +1,12 @@
|
|||||||
#define F_CODCF 301
|
#define F_CODCF 301
|
||||||
#define F_DESCF 302
|
#define F_DESCF 302
|
||||||
#define F_COD_ART 303
|
#define F_CODART 303
|
||||||
#define F_DESCR_ART 304
|
#define F_DESART 304
|
||||||
#define F_COD_MATR 305
|
#define F_PROGRESSIVO 305
|
||||||
#define DLG_ADD_NEW 306
|
#define F_MATRICOLA 306
|
||||||
|
#define F_CESPITE 307
|
||||||
|
#define F_DESC_CES 308
|
||||||
|
#define DLG_ADD_NEW 310
|
||||||
|
|
||||||
//tree
|
//tree
|
||||||
#define F_ATTREZZATURE 350
|
#define F_ATTREZZATURE 350
|
||||||
@ -30,6 +33,7 @@
|
|||||||
|
|
||||||
#define S_CODCF 114
|
#define S_CODCF 114
|
||||||
#define S_CODMAG 115
|
#define S_CODMAG 115
|
||||||
|
#define S_CLOSED 116
|
||||||
|
|
||||||
#define S_DESART 144
|
#define S_DESART 144
|
||||||
#define S_DESCF 154
|
#define S_DESCF 154
|
||||||
|
137
ha/ha3900a.uml
137
ha/ha3900a.uml
@ -49,52 +49,92 @@ BEGIN
|
|||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_COD_ART 5
|
STRING F_CODART 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Articolo "
|
PROMPT 2 2 "Articolo "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
USE LF_ANAMAG SELECT GRMERC="50"
|
USE LF_ANAMAG SELECT (GRMERC="50")&&(SOSPESO!="X")
|
||||||
INPUT CODART F_COD_ART
|
INPUT CODART F_CODART
|
||||||
DISPLAY "Codice" CODART
|
DISPLAY "Codice" CODART
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
OUPUT F_COD_ART CODART
|
OUPUT F_CODART CODART
|
||||||
OUPUT F_DESCR_ART DESCR
|
OUPUT F_DESART DESCR
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
ADD RUN ve2 -3
|
ADD RUN ve2 -3
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCR_ART 50
|
STRING F_DESART 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 23 2 ""
|
PROMPT 23 2 ""
|
||||||
USE LF_ANAMAG KEY 2 SELECT GRMERC="50"
|
USE LF_ANAMAG KEY 2 SELECT (GRMERC="50")&&(SOSPESO!="X")
|
||||||
INPUT DESCR F_DESCR_ART
|
INPUT DESCR F_DESART
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Codice" CODART
|
DISPLAY "Codice" CODART
|
||||||
COPY OUTPUT F_COD_ART
|
COPY OUTPUT F_CODART
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_COD_MATR 15
|
NUMBER F_PROGRESSIVO 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Matricola "
|
PROMPT 2 3 "Progres. "
|
||||||
FLAGS "U"
|
FLAGS "UZ"
|
||||||
USE &ATT
|
USE &ATT
|
||||||
JOIN LF_ANAMAG INTO CODART=CODTAB[1,5]
|
JOIN LF_ANAMAG INTO CODART=CODTAB[1,5]
|
||||||
INPUT CODTAB[1,5] F_COD_ART
|
INPUT CODTAB[1,5] F_CODART
|
||||||
INPUT CODTAB[16,30] F_COD_MATR
|
INPUT CODTAB[6,12] F_PROGRESSIVO
|
||||||
DISPLAY "Codice@5" CODTAB[1,5]
|
DISPLAY "Progressivo" CODTAB[6,12]
|
||||||
DISPLAY "Matricola@15" CODTAB[16,30]
|
DISPLAY "Articolo" CODTAB[1,5]
|
||||||
|
DISPLAY "Matricola@15" S0[6,20]
|
||||||
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
|
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
|
||||||
DISPLAY "Cliente" I0
|
DISPLAY "Cespite@10" S1[1,10]
|
||||||
OUTPUT F_COD_ART CODTAB[1,5]
|
OUTPUT F_CODART CODTAB[1,5]
|
||||||
OUTPUT F_COD_MATR CODTAB[16,30]
|
OUTPUT F_PROGRESSIVO CODTAB[6,12]
|
||||||
|
OUTPUT F_MATRICOLA S0[6,20]
|
||||||
|
OUTPUT F_CESPITE S1[1,10]
|
||||||
OUTPUT F_CODCF I0
|
OUTPUT F_CODCF I0
|
||||||
CHECKTYPE SEARCH
|
CHECKTYPE SEARCH
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_MATRICOLA 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 24 3 "Matricola "
|
||||||
|
FLAGS "U"
|
||||||
|
USE &ATT KEY 2
|
||||||
|
JOIN LF_ANAMAG INTO CODART=CODTAB[1,5]
|
||||||
|
INPUT S0[1,5] F_CODART
|
||||||
|
INPUT S0[6,20] F_MATRICOLA
|
||||||
|
DISPLAY "Codice@5" S0[1,5]
|
||||||
|
DISPLAY "Matricola@15" S0[6,20]
|
||||||
|
DISPLAY "Progressivo" CODTAB[6,12]
|
||||||
|
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
|
||||||
|
DISPLAY "Cespite@10" S1[1,10]
|
||||||
|
DISPLAY "Cliente" I0
|
||||||
|
COPY OUTPUT F_PROGRESSIVO
|
||||||
|
CHECKTYPE SEARCH
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CESPITE 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 55 3 "Cespite "
|
||||||
|
FLAGS "UZ"
|
||||||
|
USE &ATT
|
||||||
|
JOIN LF_ANAMAG INTO CODART=CODTAB[1,5]
|
||||||
|
INPUT CODTAB[1,5] F_CODART
|
||||||
|
INPUT CODTAB[6,12] F_PROGRESSIVO
|
||||||
|
DISPLAY "Cespite@10" S1[1,10]
|
||||||
|
DISPLAY "Articolo" CODTAB[1,5]
|
||||||
|
DISPLAY "Progressivo" CODTAB[6,12]
|
||||||
|
DISPLAY "Matricola@15" S0[6,20]
|
||||||
|
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
|
||||||
|
DISPLAY "Cliente" I0
|
||||||
|
COPY OUTPUT F_PROGRESSIVO
|
||||||
|
CHECKTYPE SEARCH
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
BUTTON DLG_ADD_NEW 20 1
|
BUTTON DLG_ADD_NEW 20 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 53 3 "Nuova attrezzatura"
|
PROMPT 53 5 "Nuova attrezzatura"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
@ -103,11 +143,13 @@ BEGIN
|
|||||||
PROMPT 1 5 "@bAttrezzature"
|
PROMPT 1 5 "@bAttrezzature"
|
||||||
END
|
END
|
||||||
|
|
||||||
TLIST F_ATTREZZATURE 78 5
|
TLIST F_ATTREZZATURE 0 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "Attrezzatura"
|
PROMPT 0 6 "Attrezzatura"
|
||||||
DISPLAY "Codice@20" CODTAB
|
DISPLAY "Codice@20" CODTAB
|
||||||
DISPLAY "Descrizione@35" S0
|
DISPLAY "Matricola@15" S0[6,20]
|
||||||
|
DISPLAY "Descrizione@35" S10
|
||||||
|
DISPLAY "Cespite@10" S1[1,10]
|
||||||
DISPLAY "Cliente" I0
|
DISPLAY "Cliente" I0
|
||||||
DISPLAY "Assegnamento" D0
|
DISPLAY "Assegnamento" D0
|
||||||
END
|
END
|
||||||
@ -135,6 +177,7 @@ BEGIN
|
|||||||
ITEM "Ch.Ndoc"
|
ITEM "Ch.Ndoc"
|
||||||
ITEM "Cliente"
|
ITEM "Cliente"
|
||||||
ITEM "Mag"
|
ITEM "Mag"
|
||||||
|
ITEM "Chiusa"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
@ -150,12 +193,18 @@ PAGE "Dati intervento" -1 -1 78 15
|
|||||||
LISTBOX S_TIPO 1 16
|
LISTBOX S_TIPO 1 16
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Tipo intervento"
|
PROMPT 1 1 "Tipo intervento"
|
||||||
ITEM "C|Comodato d'uso" MESSAGE DISABLE,1@
|
ITEM "C|Comodato d'uso" MESSAGE DISABLE,1@|ENABLE,S_CLOSED
|
||||||
ITEM "D|Descrittivo" MESSAGE DISABLE,1@
|
ITEM "D|Descrittivo" MESSAGE DISABLE,1@|CLEAR,S_CLOSED
|
||||||
ITEM "I|Insegne nuove" MESSAGE DISABLE,1@
|
ITEM "I|Insegne nuove" MESSAGE DISABLE,1@|CLEAR,S_CLOSED
|
||||||
ITEM "R|Riparazione" MESSAGE DISABLE,1@
|
ITEM "R|Riparazione" MESSAGE DISABLE,1@|CLEAR,S_CLOSED
|
||||||
ITEM "V|Varie" MESSAGE ENABLE,1@
|
ITEM "V|Varie" MESSAGE ENABLE,1@|CLEAR,S_CLOSED
|
||||||
FIELD S7
|
FIELD S7[1,1]
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN S_CLOSED
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 1 "Chiusura"
|
||||||
|
FIELD B0
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE S_DATA
|
DATE S_DATA
|
||||||
@ -168,7 +217,7 @@ END
|
|||||||
STRING S_CODART 5
|
STRING S_CODART 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Art. collegato "
|
PROMPT 1 2 "Art. collegato "
|
||||||
USE LF_ANAMAG SELECT GRMERC="50"
|
USE LF_ANAMAG SELECT (GRMERC="50")&&(SOSPESO!="X")
|
||||||
INPUT CODART S_CODART
|
INPUT CODART S_CODART
|
||||||
DISPLAY "Codice" CODART
|
DISPLAY "Codice" CODART
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
@ -178,7 +227,7 @@ BEGIN
|
|||||||
MESSAGE EMPTY HIDE,S_UM_CODART|SHOW,S_UM_GENERICO
|
MESSAGE EMPTY HIDE,S_UM_CODART|SHOW,S_UM_GENERICO
|
||||||
MESSAGE HIDE,S_UM_GENERICO|SHOW,S_UM_CODART
|
MESSAGE HIDE,S_UM_GENERICO|SHOW,S_UM_CODART
|
||||||
FLAGS "G"
|
FLAGS "G"
|
||||||
FIELD S2
|
FIELD S3
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_DESART 50
|
STRING S_DESART 50
|
||||||
@ -349,7 +398,7 @@ BEGIN
|
|||||||
OUTPUT S_CODMAG CODTAB[1,3]
|
OUTPUT S_CODMAG CODTAB[1,3]
|
||||||
OUTPUT S_DESMAG S0
|
OUTPUT S_DESMAG S0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
FIELD S3
|
FIELD S7[2,4]
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_DESMAG 50
|
STRING S_DESMAG 50
|
||||||
@ -391,3 +440,27 @@ END
|
|||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
|
/*
|
||||||
|
Mappa campi sul file TABMOD:
|
||||||
|
----------------------------
|
||||||
|
CODTAB[1,5] = codart (A)
|
||||||
|
CODTAB[6,12] = progressivo (N z)
|
||||||
|
CODTAB[13,17] = numero riga (N z)
|
||||||
|
S0 = descrizione
|
||||||
|
S3[1,5] = codart collegato
|
||||||
|
S4[1,4] = anno doc. apertura (N)
|
||||||
|
S4[5,8] = numerazione doc. apertura (A)
|
||||||
|
S4[9,15] = numero doc. apertura (N)
|
||||||
|
S5[1,4] = anno doc. chiusura (N)
|
||||||
|
S5[5,8] = numerazione doc. chiusura (A)
|
||||||
|
S5[9,15] = numero doc. chiusura (N)
|
||||||
|
S6[1,2] = umqta
|
||||||
|
S7[1,1] = tipo
|
||||||
|
S7[2,4] = codmag
|
||||||
|
I0 = codice cliente (N)
|
||||||
|
R0 = quantita
|
||||||
|
R1 = importo
|
||||||
|
D0 = data intervento
|
||||||
|
B0 = chiusura
|
||||||
|
*/
|
17
ha/hatbatt.h
17
ha/hatbatt.h
@ -1,6 +1,11 @@
|
|||||||
#define F_COD_ATT 201
|
#define F_CODART 201
|
||||||
#define F_DESCR_ATT 202
|
#define F_DESCRART 202
|
||||||
#define F_COD_MATR 203
|
#define F_PROGRESSIVO 203
|
||||||
#define F_CODCF 204
|
#define F_CODART_X_MATR 204
|
||||||
#define F_RAGSOC 205
|
#define F_MATRICOLA 205
|
||||||
#define F_DATA_CONSEGNA 206
|
#define F_DATA_FABBR 206
|
||||||
|
#define F_CESPITE 207
|
||||||
|
#define F_DESC_CES 208
|
||||||
|
#define F_CODCF 210
|
||||||
|
#define F_DESCF 211
|
||||||
|
#define F_DATA_CONSEGNA 212
|
142
ha/hatbatt.uml
142
ha/hatbatt.uml
@ -1,64 +1,134 @@
|
|||||||
#include "hatbatt.h"
|
#include "hatbatt.h"
|
||||||
|
|
||||||
PAGE "Attrezzature" -1 -1 78 10
|
TOOLBAR "" 0 0 0 2
|
||||||
|
#include "relapbar.h"
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 4
|
PAGE "Attrezzature" 0 2 0 0
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "@bAttrezzatura"
|
PROMPT 1 0 "@bAttrezzatura"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_COD_ATT 5
|
STRING F_CODART 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Articolo "
|
PROMPT 2 1 "Articolo "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
USE LF_ANAMAG SELECT GRMERC="50"
|
USE LF_ANAMAG SELECT (GRMERC="50")&&(SOSPESO!="X")
|
||||||
INPUT CODART F_COD_ATT
|
INPUT CODART F_CODART
|
||||||
DISPLAY "Codice" CODART
|
DISPLAY "Codice" CODART
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
OUPUT F_COD_ATT CODART
|
OUPUT F_CODART CODART
|
||||||
OUPUT F_DESCR_ATT DESCR
|
OUPUT F_DESCRART DESCR
|
||||||
FIELD CODTAB[1,15]
|
FIELD CODTAB[1,5]
|
||||||
CHECKTYPE FORCED
|
CHECKTYPE FORCED
|
||||||
|
MESSAGE COPY,F_CODART_X_MATR
|
||||||
KEY 1
|
KEY 1
|
||||||
ADD RUN ve2 -3
|
ADD RUN ve2 -3
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCR_ATT 50
|
STRING F_DESCRART 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 20 2 ""
|
PROMPT 22 1 ""
|
||||||
USE LF_ANAMAG KEY 2 SELECT GRMERC="50"
|
USE LF_ANAMAG KEY 2 SELECT (GRMERC="50")&&(SOSPESO!="X")
|
||||||
INPUT DESCR F_DESCR_ATT
|
INPUT DESCR F_DESCRART
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Codice" CODART
|
DISPLAY "Codice" CODART
|
||||||
COPY OUTPUT F_COD_ATT
|
COPY OUTPUT F_CODART
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_COD_MATR 15
|
NUMBER F_PROGRESSIVO 7
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 2 "Progress. "
|
||||||
|
FLAGS "UZ"
|
||||||
|
USE &ATT
|
||||||
|
JOIN LF_ANAMAG INTO CODART=CODTAB[1,5]
|
||||||
|
INPUT CODTAB[1,5] F_CODART
|
||||||
|
INPUT CODTAB[6,12] F_PROGRESSIVO
|
||||||
|
DISPLAY "Progressivo" CODTAB[6,12]
|
||||||
|
DISPLAY "Articolo" CODTAB[1,5]
|
||||||
|
DISPLAY "Matricola@15" S0[6,20]
|
||||||
|
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
|
||||||
|
DISPLAY "Cespite@10" S1[1,10]
|
||||||
|
OUTPUT F_CODART CODTAB[1,5]
|
||||||
|
OUTPUT F_PROGRESSIVO CODTAB[6,12]
|
||||||
|
OUTPUT F_MATRICOLA S0[6,20]
|
||||||
|
OUTPUT F_CESPITE S1[1,10]
|
||||||
|
FIELD CODTAB[6,12]
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
KEY 1
|
||||||
|
END
|
||||||
|
|
||||||
|
//questo campo serve per poter avere le display della matricola gia' puntate sul corretto articolo
|
||||||
|
STRING F_CODART_X_MATR 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 3 "Atricolo x matricola"
|
||||||
|
FIELD S0[1,5]
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_MATRICOLA 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Matricola "
|
PROMPT 2 3 "Matricola "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
USE &ATT
|
USE &ATT KEY 2
|
||||||
INPUT CODTAB[1,5] F_COD_ATT
|
JOIN LF_ANAMAG INTO CODART=CODTAB[1,5]
|
||||||
INPUT CODTAB[16,30] F_COD_MATR
|
INPUT S0[1,5] F_CODART
|
||||||
DISPLAY "Codice@5" CODTAB[1,5]
|
INPUT S0[6,20] F_MATRICOLA
|
||||||
DISPLAY "Matricola@15" CODTAB[16,30]
|
DISPLAY "Codice@5" S0[1,5]
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Matricola@15" S0[6,20]
|
||||||
OUTPUT F_COD_ATT CODTAB[1,5]
|
DISPLAY "Progressivo" CODTAB[6,12]
|
||||||
OUTPUT F_COD_MATR CODTAB[16,30]
|
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
|
||||||
CHECKTYPE REQUIRED
|
DISPLAY "Cespite@10" S1[1,10]
|
||||||
FIELD CODTAB[16,30]
|
COPY OUTPUT F_PROGRESSIVO
|
||||||
KEY 1
|
CHECKTYPE NORMAL
|
||||||
|
FIELD S0[6,20]
|
||||||
|
KEY 2
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CESPITE 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 4 "Cespite "
|
||||||
|
FLAGS "UZ"
|
||||||
|
USE LF_CESPI
|
||||||
|
INPUT IDCESPITE F_CESPITE
|
||||||
|
DISPLAY "Cespite@10" IDCESPITE
|
||||||
|
DISPLAY "Desc@50" DESC
|
||||||
|
DISPLAY "Cat." CODCAT
|
||||||
|
OUTPUT F_CESPITE IDCESPITE
|
||||||
|
OUTPUT F_DESC_CES DESC
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FIELD S1
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESC_CES 50 46
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 4 ""
|
||||||
|
USE LF_CESPI KEY 3
|
||||||
|
INPUT DESC F_DESC_CES
|
||||||
|
DISPLAY "Desc@50" DESC
|
||||||
|
DISPLAY "Codice@10" IDCESPITE
|
||||||
|
DISPLAY "Cat." CODCAT
|
||||||
|
COPY OUTPUT F_CESPITE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DATA_FABBR
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 5 "Data fabbricazione "
|
||||||
|
FIELD D1
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 5
|
GROUPBOX DLG_NULL 76 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 "@bCliente"
|
PROMPT 1 7 "@bCliente"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CODCF 6
|
NUMBER F_CODCF 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Codice "
|
PROMPT 2 8 "Codice "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
@ -66,17 +136,17 @@ BEGIN
|
|||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
DISPLAY "Descrizione@50" RAGSOC
|
DISPLAY "Descrizione@50" RAGSOC
|
||||||
OUTPUT F_CODCF CODCF
|
OUTPUT F_CODCF CODCF
|
||||||
OUTPUT F_RAGSOC RAGSOC
|
OUTPUT F_DESCF RAGSOC
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
FIELD I0
|
FIELD I0
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RAGSOC 50
|
STRING F_DESCF 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Descrizione "
|
PROMPT 2 9 "Rag. soc. "
|
||||||
USE LF_CLIFO KEY 2
|
USE LF_CLIFO KEY 2
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT RAGSOC F_RAGSOC
|
INPUT RAGSOC F_DESCF
|
||||||
DISPLAY "Descrizione@50" RAGSOC
|
DISPLAY "Descrizione@50" RAGSOC
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
COPY OUTPUT F_CODCF
|
COPY OUTPUT F_CODCF
|
||||||
@ -85,15 +155,11 @@ END
|
|||||||
|
|
||||||
DATE F_DATA_CONSEGNA
|
DATE F_DATA_CONSEGNA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Data presa in consegna "
|
PROMPT 2 10 "Data presa in consegna "
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FIELD D0
|
FIELD D0
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
TOOLBAR "" 0 0 0 2
|
|
||||||
#include "relapbar.h"
|
|
||||||
ENDPAGE
|
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user