This commit was manufactured by cvs2svn to create branch 'R_10_00'.
git-svn-id: svn://10.65.10.50/branches/R_10_00@21906 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
44f50b833e
commit
858648de4f
321
ha/ha3900.cpp
Executable file
321
ha/ha3900.cpp
Executable file
@ -0,0 +1,321 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <recarray.h>
|
||||
#include <recset.h>
|
||||
#include <tree.h>
|
||||
#include <treectrl.h>
|
||||
|
||||
#include "../mg/anamag.h"
|
||||
|
||||
#include "ha3.h"
|
||||
#include "ha3900a.h"
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// Albero
|
||||
//////////////////////////////////////////////
|
||||
//Albero per la gestione delle macchine di un cliente
|
||||
class TCoffee_tree : public TBidirectional_tree
|
||||
{
|
||||
TString8 _curr_node;
|
||||
long _codcf;
|
||||
TISAM_recordset _recset;
|
||||
|
||||
public:
|
||||
virtual bool goto_root();
|
||||
virtual bool goto_firstson() { return false; }
|
||||
virtual bool goto_rbrother();
|
||||
virtual bool goto_node(const TString &id);
|
||||
virtual bool could_have_son() const { return false; }
|
||||
virtual bool has_son() const { return false; }
|
||||
virtual bool has_rbrother() const;
|
||||
virtual TObject* curr_node() const { return (TObject*)&_curr_node; }
|
||||
virtual void node2id(const TObject* obj, TString& id) const { id = *(TString*)obj; }
|
||||
|
||||
virtual bool has_root() const;
|
||||
virtual bool has_father() const { return false; }
|
||||
virtual bool has_lbrother() const;
|
||||
virtual bool goto_father() { return false; }
|
||||
virtual bool goto_lbrother();
|
||||
virtual bool get_description(TString& desc) const;
|
||||
virtual TFieldtypes get_var(const TString& name, TVariant& var) const;
|
||||
virtual TImage* image(bool selected) const { return get_res_icon(10232); }
|
||||
|
||||
public:
|
||||
bool set_clifo(long codcf);
|
||||
bool select_attr(const TString& codart, const TString& matricola);
|
||||
TCoffee_tree() : _codcf(0), _recset("USE &ATT") { set_clifo(0L); }
|
||||
};
|
||||
|
||||
|
||||
bool TCoffee_tree::has_root() const
|
||||
{
|
||||
return _recset.items() > 0L;
|
||||
}
|
||||
|
||||
bool TCoffee_tree::goto_root()
|
||||
{
|
||||
const bool ok = _recset.move_first();
|
||||
if (ok)
|
||||
_curr_node = "0";
|
||||
else
|
||||
_curr_node.cut(0);
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TCoffee_tree::has_rbrother() const
|
||||
{
|
||||
const long pos = atol(_curr_node);
|
||||
return pos < _recset.items() - 1;
|
||||
}
|
||||
|
||||
bool TCoffee_tree::goto_rbrother()
|
||||
{
|
||||
const long pos = atol(_curr_node) + 1;
|
||||
const bool ok = _recset.move_to(pos);
|
||||
if (ok)
|
||||
_curr_node.format("%ld", pos);
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TCoffee_tree::has_lbrother() const
|
||||
{
|
||||
return atol(_curr_node) > 0L;
|
||||
}
|
||||
|
||||
bool TCoffee_tree::goto_lbrother()
|
||||
{
|
||||
const long pos = atol(_curr_node) - 1;
|
||||
const bool ok = pos >= 0 && _recset.move_to(pos);
|
||||
if (ok)
|
||||
_curr_node.format("%ld", pos);
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TCoffee_tree::goto_node(const TString &id)
|
||||
{
|
||||
const long pos = atol(id);
|
||||
const bool ok = _recset.move_to(pos);
|
||||
if (ok)
|
||||
_curr_node = id;
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TCoffee_tree::get_description(TString& desc) const
|
||||
{
|
||||
desc = _recset.get("S0").as_string();
|
||||
return desc.full();
|
||||
}
|
||||
|
||||
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..
|
||||
//..che risulta vuota
|
||||
if (name == "S0")
|
||||
{
|
||||
TString8 codart = _recset.get("CODTAB[1,5]").as_string();
|
||||
codart.trim();
|
||||
var = cache().get(LF_ANAMAG, codart, ANAMAG_DESCR);
|
||||
}
|
||||
else
|
||||
var = _recset.get(name);
|
||||
|
||||
return _alfafld;
|
||||
}
|
||||
|
||||
bool TCoffee_tree::set_clifo(long codcf)
|
||||
{
|
||||
_codcf = codcf;
|
||||
TString query;
|
||||
query << "USE &ATT";
|
||||
if (codcf > 0L)
|
||||
query << "\nSELECT I0=" << codcf;
|
||||
_recset.set(query);
|
||||
return goto_root();
|
||||
}
|
||||
|
||||
bool TCoffee_tree::select_attr(const TString& codart, const TString& matricola)
|
||||
{
|
||||
bool found = false;
|
||||
for (bool ok = _recset.move_first(); ok; ok = _recset.move_next())
|
||||
{
|
||||
TString8 curr_codart = _recset.get("CODTAB[1,5]").as_string();
|
||||
curr_codart.trim();
|
||||
if (curr_codart == codart)
|
||||
{
|
||||
TString16 curr_matricola = _recset.get("CODTAB[16,30]").as_string();
|
||||
curr_matricola.trim();
|
||||
if (curr_matricola == matricola)
|
||||
{
|
||||
_curr_node.format("%ld", _recset.current_row());
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// Maschera
|
||||
//////////////////////////////////////////////
|
||||
class TGestione_attrezzature_mask : public TAutomask
|
||||
{
|
||||
int _pos_tipo, _pos_data, _pos_note, _pos_codart, _pos_um, _pos_qta, _pos_importo,
|
||||
_pos_bo_anno, _pos_bo_codnum, _pos_bo_ndoc, _pos_bc_anno, _pos_bc_codnum, _pos_bc_ndoc,
|
||||
_pos_clifo, _pos_mag;
|
||||
|
||||
protected:
|
||||
void fill_sheet_storico(const TString& codattr);
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TGestione_attrezzature_mask();
|
||||
};
|
||||
|
||||
|
||||
//metodo che riempie il primo sheet delle attrezzature in base ai filtri su cliente/attrezztura
|
||||
void TGestione_attrezzature_mask::fill_sheet_storico(const TString& codattr)
|
||||
{
|
||||
//riempie lo sheet dello storico in base all'attrezzatura scelta nell'albero
|
||||
TString query;
|
||||
query << "USE &HIS";
|
||||
query << "\nFROM CODTAB=#CODATTR";
|
||||
query << "\nTO CODTAB=#CODATTR";
|
||||
|
||||
TISAM_recordset recset(query);
|
||||
recset.set_var("#CODATTR", codattr);
|
||||
|
||||
const long recset_items = recset.items();
|
||||
|
||||
TSheet_field& sf_righe = sfield(F_STORICO);
|
||||
sf_righe.destroy();
|
||||
|
||||
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
||||
{
|
||||
TToken_string& row = sf_righe.row(-1); //riga sheet da riempire
|
||||
row.add(""); //nuova riga
|
||||
const TString& row_tipo = recset.get("S7").as_string(); //tipo intervento
|
||||
row.add(row_tipo, _pos_tipo);
|
||||
const TDate row_data = recset.get("D0").as_date();
|
||||
}
|
||||
|
||||
//mostra e aggiorna lo sheet
|
||||
sf_righe.show();
|
||||
sf_righe.force_update();
|
||||
|
||||
}
|
||||
|
||||
bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
//campi
|
||||
case F_CODCF:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
//albero magico: selezionando un cliente riempie l'albero con tutte le attrezzature del cliente
|
||||
TTreelist_field& tf = (TTreelist_field&)field(F_ATTREZZATURE);
|
||||
TCoffee_tree* ct = (TCoffee_tree*)tf.tree();
|
||||
if (ct != NULL)
|
||||
{
|
||||
ct->set_clifo(atol(o.get()));
|
||||
tf.win().force_update();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case F_COD_MATR:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
//albero magico: selezionando un'attrezzatura, si posiziona direttamente sulla giusta posizione nell'albero..
|
||||
//..(il cliente viene riempito dalla maschera)
|
||||
TTreelist_field& tf = (TTreelist_field&)field(F_ATTREZZATURE);
|
||||
TCoffee_tree* ct = (TCoffee_tree*)tf.tree();
|
||||
if (ct != NULL)
|
||||
{
|
||||
const TString& codart = get(F_COD_ART);
|
||||
const TString& matricola = get(F_COD_MATR);
|
||||
if (ct->select_attr(codart, matricola))
|
||||
tf.select_current();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case F_ATTREZZATURE:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
TTreelist_field& tf = (TTreelist_field&)field(F_ATTREZZATURE);
|
||||
TCoffee_tree* ct = (TCoffee_tree*)tf.tree();
|
||||
if (ct != NULL)
|
||||
{
|
||||
TString80 codattr;
|
||||
ct->get_description(codattr);
|
||||
fill_sheet_storico(codattr);
|
||||
//riempie anche i campi codart e matricola?
|
||||
}
|
||||
}
|
||||
break;
|
||||
//bottoni
|
||||
case DLG_SAVEREC:
|
||||
if (e == fe_button)
|
||||
{
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
TGestione_attrezzature_mask::TGestione_attrezzature_mask() : TAutomask("ha3900a")
|
||||
{
|
||||
//assegna l'albero del caffe' al campo di tipo albero sulla maschera
|
||||
TTreelist_field& tf = (TTreelist_field&)field(F_ATTREZZATURE);
|
||||
TCoffee_tree* ct = new TCoffee_tree;
|
||||
tf.set_tree(ct);
|
||||
|
||||
//assegna una volta per tutte le pos delle colonne di sheet
|
||||
TSheet_field& sf_righe = sfield(F_STORICO);
|
||||
_pos_tipo = sf_righe.cid2index(S_TIPO);
|
||||
_pos_data = sf_righe.cid2index(S_DATA);
|
||||
_pos_note = sf_righe.cid2index(S_NOTE);
|
||||
_pos_codart = sf_righe.cid2index(S_CODART);
|
||||
_pos_um = sf_righe.cid2index(S_UM_GENERICO);
|
||||
_pos_qta = sf_righe.cid2index(S_QTA);
|
||||
_pos_importo = sf_righe.cid2index(S_IMPORTO);
|
||||
//campi 'B'olla 'O'pen (di apertura per gli italici)
|
||||
_pos_bo_anno = sf_righe.cid2index(S_BOL_OPEN_ANNO);
|
||||
_pos_bo_codnum = sf_righe.cid2index(S_BOL_OPEN_CODNUM);
|
||||
_pos_bo_ndoc = sf_righe.cid2index(S_BOL_OPEN_NDOC);
|
||||
//'B'olla 'C'lose
|
||||
_pos_bc_anno = sf_righe.cid2index(S_BOL_CLOSE_ANNO);
|
||||
_pos_bc_codnum = sf_righe.cid2index(S_BOL_CLOSE_CODNUM);
|
||||
_pos_bc_ndoc = sf_righe.cid2index(S_BOL_CLOSE_NDOC);
|
||||
|
||||
_pos_clifo = sf_righe.cid2index(S_CODCF);
|
||||
_pos_mag = sf_righe.cid2index(S_CODMAG);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// Applicazione
|
||||
//////////////////////////////////////////////
|
||||
class TGestione_attrezzature : public TSkeleton_application
|
||||
{
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
|
||||
void TGestione_attrezzature::main_loop()
|
||||
{
|
||||
TGestione_attrezzature_mask mask;
|
||||
while (mask.run() == K_ENTER)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
int ha3900(int argc, char* argv[])
|
||||
{
|
||||
TGestione_attrezzature app;
|
||||
app.run(argc, argv, TR("Gestione attrezzature"));
|
||||
return 0;
|
||||
}
|
36
ha/ha3900a.h
Executable file
36
ha/ha3900a.h
Executable file
@ -0,0 +1,36 @@
|
||||
#define F_CODCF 201
|
||||
#define F_DESCF 202
|
||||
#define F_COD_ART 203
|
||||
#define F_DESCR_ART 204
|
||||
#define F_COD_MATR 205
|
||||
|
||||
//tree
|
||||
#define F_ATTREZZATURE 300
|
||||
//sheet
|
||||
#define F_STORICO 301
|
||||
|
||||
//sheet storico
|
||||
#define S_TIPO 101
|
||||
#define S_DATA 102
|
||||
#define S_NOTE 103
|
||||
#define S_CODART 104
|
||||
#define S_UM_GENERICO 105
|
||||
#define S_UM_CODART 205
|
||||
#define S_QTA 106
|
||||
//#define S_PREZZO 107
|
||||
#define S_IMPORTO 107
|
||||
|
||||
#define S_BOL_OPEN_ANNO 108
|
||||
#define S_BOL_OPEN_CODNUM 109
|
||||
#define S_BOL_OPEN_NDOC 110
|
||||
|
||||
#define S_BOL_CLOSE_ANNO 111
|
||||
#define S_BOL_CLOSE_CODNUM 112
|
||||
#define S_BOL_CLOSE_NDOC 113
|
||||
|
||||
#define S_CODCF 114
|
||||
#define S_CODMAG 115
|
||||
|
||||
#define S_DESART 144
|
||||
#define S_DESCF 154
|
||||
#define S_DESMAG 155
|
389
ha/ha3900a.uml
Executable file
389
ha/ha3900a.uml
Executable file
@ -0,0 +1,389 @@
|
||||
#include "ha3900a.h"
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
|
||||
BUTTON DLG_SAVEREC 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "~Registra"
|
||||
PICTURE TOOL_SAVEREC
|
||||
END
|
||||
|
||||
#include <cancelbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Gestione attrezzature" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 79 5
|
||||
BEGIN
|
||||
PROMPT 0 0 "@bParametri"
|
||||
END
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 1 1 "Cliente "
|
||||
FLAGS "R"
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_CODCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Partita IVA@12" PAIV
|
||||
DISPLAY "Sospeso" SOSPESO
|
||||
OUTPUT F_CODCF CODCF
|
||||
OUTPUT F_DESCF RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESCF 50
|
||||
BEGIN
|
||||
PROMPT 22 1 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_DESCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Partita IVA@12" PAIV
|
||||
DISPLAY "Sospeso" SOSPESO
|
||||
COPY OUTPUT F_CODCF
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_COD_ART 5
|
||||
BEGIN
|
||||
PROMPT 1 2 "Articolo "
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG SELECT GRMERC="50"
|
||||
INPUT CODART F_COD_ART
|
||||
DISPLAY "Codice" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUPUT F_COD_ART CODART
|
||||
OUPUT F_DESCR_ART DESCR
|
||||
CHECKTYPE NORMAL
|
||||
ADD RUN ve2 -3
|
||||
END
|
||||
|
||||
STRING F_DESCR_ART 50
|
||||
BEGIN
|
||||
PROMPT 22 2 ""
|
||||
USE LF_ANAMAG KEY 2 SELECT GRMERC="50"
|
||||
INPUT DESCR F_DESCR_ART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice" CODART
|
||||
COPY OUTPUT F_COD_ART
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_COD_MATR 15
|
||||
BEGIN
|
||||
PROMPT 1 3 "Matricola "
|
||||
FLAGS "U"
|
||||
USE &ATT
|
||||
INPUT CODTAB[1,5] F_COD_ART
|
||||
INPUT CODTAB[16,30] F_COD_MATR
|
||||
DISPLAY "Codice@5" CODTAB[1,5]
|
||||
DISPLAY "Matricola@15" CODTAB[16,30]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Cliente" I0
|
||||
OUTPUT F_COD_ART CODTAB[1,5]
|
||||
OUTPUT F_COD_MATR CODTAB[16,30]
|
||||
OUTPUT F_CODCF I0
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 1 5 "@bAttrezzature"
|
||||
END
|
||||
|
||||
TLIST F_ATTREZZATURE 78 5
|
||||
BEGIN
|
||||
PROMPT 1 6 "Attrezzatura"
|
||||
DISPLAY "Codice@20" CODTAB
|
||||
DISPLAY "Descrizione@35" S0
|
||||
DISPLAY "Cliente" I0
|
||||
DISPLAY "Assegnamento" D0
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 1 12 "@bStorico interventi"
|
||||
END
|
||||
|
||||
SPREADSHEET F_STORICO 0 0
|
||||
BEGIN
|
||||
PROMPT 0 13 "Storico interventi"
|
||||
ITEM "Tipo"
|
||||
ITEM "Data@10"
|
||||
ITEM "Note@15"
|
||||
ITEM "Articolo"
|
||||
ITEM "UM"
|
||||
ITEM "Quantita"
|
||||
//ITEM "Prezzo@10"
|
||||
ITEM "Importo@10"
|
||||
ITEM "Ap.Anno"
|
||||
ITEM "Ap.Codnum"
|
||||
ITEM "Ap.Ndoc"
|
||||
ITEM "Ch.Anno"
|
||||
ITEM "Ch.Codnum"
|
||||
ITEM "Ch.Ndoc"
|
||||
ITEM "Cliente"
|
||||
ITEM "Mag"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
|
||||
/////////////////////////////////////////
|
||||
//maschera di riga sheet
|
||||
|
||||
PAGE "Dati intervento" -1 -1 78 15
|
||||
|
||||
LISTBOX S_TIPO 1 35
|
||||
BEGIN
|
||||
PROMPT 1 1 "Tipo intervento"
|
||||
ITEM "C|Comodato" MESSAGE DISABLE,1@
|
||||
ITEM "R|Riparazione" MESSAGE DISABLE,1@
|
||||
ITEM "S|Sostituzione" MESSAGE DISABLE,1@
|
||||
ITEM "A|Accessori" MESSAGE ENABLE,1@
|
||||
FIELD S7
|
||||
END
|
||||
|
||||
DATE S_DATA
|
||||
BEGIN
|
||||
PROMPT 58 1 "Data "
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD D0
|
||||
END
|
||||
|
||||
STRING S_CODART 5
|
||||
BEGIN
|
||||
PROMPT 1 2 "Art. collegato "
|
||||
USE LF_ANAMAG SELECT GRMERC="50"
|
||||
INPUT CODART S_CODART
|
||||
DISPLAY "Codice" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT S_CODART CODART
|
||||
OUTPUT S_DESART DESCR
|
||||
GROUP 1
|
||||
MESSAGE EMPTY HIDE,S_UM_CODART|SHOW,S_UM_GENERICO
|
||||
MESSAGE HIDE,S_UM_GENERICO|SHOW,S_UM_CODART
|
||||
FLAGS "G"
|
||||
FIELD S2
|
||||
END
|
||||
|
||||
STRING S_DESART 50
|
||||
BEGIN
|
||||
PROMPT 25 2 ""
|
||||
USE ANAMAG KEY 2 SELECT GRMERC="50"
|
||||
INPUT DESCR S_DESART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice" CODART
|
||||
COPY OUTPUT S_CODART
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
//u.m. nel caso non ci sia alcun articolo collegato selezionato
|
||||
STRING S_UM_GENERICO 2
|
||||
BEGIN
|
||||
PROMPT 1 3 "U.M. "
|
||||
USE %UMS
|
||||
INPUT CODTAB S_UM_GENERICO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT S_UM_GENERICO CODTAB
|
||||
FLAGS "U"
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S6
|
||||
END
|
||||
|
||||
//u.m. nel caso venga selezionato un articolo collegato (è una u.m. di quell'articolo)
|
||||
STRING S_UM_CODART 2
|
||||
BEGIN
|
||||
PROMPT 1 3 "U.M. "
|
||||
USE LF_UMART KEY 2 SELECT CODART==#S_CODART
|
||||
INPUT CODART S_CODART SELECT
|
||||
INPUT UM S_UM_CODART
|
||||
DISPLAY "U.M." UM
|
||||
DISPLAY "Articolo@20" CODART
|
||||
OUTPUT S_UM_CODART UM
|
||||
FLAGS "U"
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S6
|
||||
END
|
||||
|
||||
NUMBER S_QTA 8 2
|
||||
BEGIN
|
||||
PROMPT 12 3 "Qta "
|
||||
FIELD R0
|
||||
END
|
||||
|
||||
/*CURRENCY S_PREZZO 10
|
||||
BEGIN
|
||||
PROMPT 32 3 "Prezzo "
|
||||
END*/
|
||||
|
||||
CURRENCY S_IMPORTO 12
|
||||
BEGIN
|
||||
PROMPT 32 3 "Importo "
|
||||
FIELD R1
|
||||
END
|
||||
|
||||
GROPUPBOX DLG_NULL 76 3
|
||||
BEGIN
|
||||
PROMPT 1 4 "@bBolla di apertura"
|
||||
END
|
||||
|
||||
NUMBER S_BOL_OPEN_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 2 5 "Anno "
|
||||
FIELD S4[1,4]
|
||||
END
|
||||
|
||||
STRING S_BOL_OPEN_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 15 5 "Cod.Num. "
|
||||
USE %NUM
|
||||
INPUT CODTAB S_BOL_OPEN_CODNUM
|
||||
DISPLAY "Codnum" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT S_BOL_OPEN_CODNUM CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S4[5,8]
|
||||
END
|
||||
|
||||
NUMBER S_BOL_OPEN_NDOC 4
|
||||
BEGIN
|
||||
PROMPT 35 5 "N.Doc. "
|
||||
USE DOC SELECT TIPOCF="C"
|
||||
JOIN LF_CLIFO INTO TIPOCF=TIPOCF CODCF==CODCF
|
||||
INPUT PROVV "D"
|
||||
INPUT ANNO S_BOL_OPEN_ANNO SELECT
|
||||
INPUT CODNUM S_BOL_OPEN_CODNUM SELECT
|
||||
INPUT NDOC S_BOL_OPEN_NDOC
|
||||
DISPLAY "Anno" ANNO
|
||||
DISPLAY "Codnum" CODNUM
|
||||
DISPLAY "N. doc.@7" NDOC
|
||||
DISPLAY "Data doc.@10" DATADOC
|
||||
DISPLAY "Cliente" CODCF
|
||||
DISPLAY "Ragione sociale@50" LF_CLIFO->RAGSOC
|
||||
OUTPUT S_BOL_OPEN_NDOC NDOC
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S4[9,15]
|
||||
END
|
||||
|
||||
GROPUPBOX DLG_NULL 76 3
|
||||
BEGIN
|
||||
PROMPT 1 7 "@bBolla di chiusura"
|
||||
END
|
||||
|
||||
NUMBER S_BOL_CLOSE_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 2 8 "Anno "
|
||||
FIELD S5[1,4]
|
||||
END
|
||||
|
||||
STRING S_BOL_CLOSE_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 15 8 "Cod.Num. "
|
||||
COPY USE S_BOL_OPEN_CODNUM
|
||||
INPUT CODTAB S_BOL_CLOSE_CODNUM
|
||||
COPY DISPLAY S_BOL_OPEN_CODNUM
|
||||
OUTPUT S_BOL_CLOSE_CODNUM CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S5[5,8]
|
||||
END
|
||||
|
||||
NUMBER S_BOL_CLOSE_NDOC 4
|
||||
BEGIN
|
||||
PROMPT 35 8 "N.Doc. "
|
||||
USE DOC SELECT TIPOCF="C"
|
||||
JOIN LF_CLIFO INTO TIPOCF=TIPOCF CODCF==CODCF
|
||||
INPUT PROVV "D"
|
||||
INPUT ANNO S_BOL_CLOSE_ANNO SELECT
|
||||
INPUT CODNUM S_BOL_CLOSE_CODNUM SELECT
|
||||
INPUT NDOC S_BOL_CLOSE_NDOC
|
||||
COPY DISPLAY S_BOL_OPEN_NDOC
|
||||
OUTPUT S_BOL_CLOSE_NDOC NDOC
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S5[9,15]
|
||||
END
|
||||
|
||||
NUMBER S_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 1 10 "Cliente "
|
||||
USE LF_CLIFO SELECT TIPOCF="C"
|
||||
INPUT CODCF S_CODCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT S_CODCF CODCF
|
||||
OUTPUT S_DESCF RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
FIELD I0
|
||||
END
|
||||
|
||||
STRING S_DESCF 50
|
||||
BEGIN
|
||||
PROMPT 20 10 ""
|
||||
USE LF_CLIFO KEY 2 SELECT TIPOCF="C"
|
||||
INPUT RAGSOC S_DESCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
COPY OUTPUT S_CODCF
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING S_CODMAG 3
|
||||
BEGIN
|
||||
PROMPT 1 11 "Magazzino "
|
||||
USE MAG
|
||||
INPUT CODTAB[1,3] S_CODMAG
|
||||
DISPLAY "Codice" CODTAB[1,3]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT S_CODMAG CODTAB[1,3]
|
||||
OUTPUT S_DESMAG S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S3
|
||||
END
|
||||
|
||||
STRING S_DESMAG 50
|
||||
BEGIN
|
||||
PROMPT 20 11 ""
|
||||
USE MAG KEY 2
|
||||
INPUT S0 S_DESMAG
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB[1,3]
|
||||
COPY OUTPUT S_CODMAG
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING S_NOTE 70
|
||||
BEGIN
|
||||
PROMPT 1 13 "Note "
|
||||
FIELD S0
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "bottombar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC 2 2
|
||||
BEGIN
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
6
ha/hatbatt.h
Executable file
6
ha/hatbatt.h
Executable file
@ -0,0 +1,6 @@
|
||||
#define F_COD_ATT 201
|
||||
#define F_DESCR_ATT 202
|
||||
#define F_COD_MATR 203
|
||||
#define F_CODCF 204
|
||||
#define F_RAGSOC 205
|
||||
#define F_DATA_CONSEGNA 206
|
99
ha/hatbatt.uml
Executable file
99
ha/hatbatt.uml
Executable file
@ -0,0 +1,99 @@
|
||||
#include "hatbatt.h"
|
||||
|
||||
PAGE "Attrezzature" -1 -1 78 10
|
||||
|
||||
GROUPBOX DLG_NULL 76 4
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bAttrezzatura"
|
||||
END
|
||||
|
||||
STRING F_COD_ATT 5
|
||||
BEGIN
|
||||
PROMPT 2 2 "Articolo "
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG SELECT GRMERC="50"
|
||||
INPUT CODART F_COD_ATT
|
||||
DISPLAY "Codice" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUPUT F_COD_ATT CODART
|
||||
OUPUT F_DESCR_ATT DESCR
|
||||
FIELD CODTAB[1,15]
|
||||
CHECKTYPE FORCED
|
||||
KEY 1
|
||||
ADD RUN ve2 -3
|
||||
END
|
||||
|
||||
STRING F_DESCR_ATT 50
|
||||
BEGIN
|
||||
PROMPT 20 2 ""
|
||||
USE LF_ANAMAG KEY 2 SELECT GRMERC="50"
|
||||
INPUT DESCR F_DESCR_ATT
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice" CODART
|
||||
COPY OUTPUT F_COD_ATT
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_COD_MATR 15
|
||||
BEGIN
|
||||
PROMPT 2 3 "Matricola "
|
||||
FLAGS "U"
|
||||
USE &ATT
|
||||
INPUT CODTAB[1,5] F_COD_ATT
|
||||
INPUT CODTAB[16,30] F_COD_MATR
|
||||
DISPLAY "Codice@5" CODTAB[1,5]
|
||||
DISPLAY "Matricola@15" CODTAB[16,30]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_COD_ATT CODTAB[1,5]
|
||||
OUTPUT F_COD_MATR CODTAB[16,30]
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD CODTAB[16,30]
|
||||
KEY 1
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 76 5
|
||||
BEGIN
|
||||
PROMPT 1 5 "@bCliente"
|
||||
END
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 2 6 "Codice "
|
||||
FLAGS "U"
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_CODCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Descrizione@50" RAGSOC
|
||||
OUTPUT F_CODCF CODCF
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
FIELD I0
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 2 7 "Descrizione "
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_RAGSOC
|
||||
DISPLAY "Descrizione@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
COPY OUTPUT F_CODCF
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
DATE F_DATA_CONSEGNA
|
||||
BEGIN
|
||||
PROMPT 2 8 "Data presa in consegna "
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD D0
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
#include "relapbar.h"
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user