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:
(no author) 2011-04-06 13:30:49 +00:00
parent 44f50b833e
commit 858648de4f
5 changed files with 851 additions and 0 deletions

321
ha/ha3900.cpp Executable file
View 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
View 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
View 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
View 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
View 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