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:
luca 2011-04-15 13:49:27 +00:00
parent 23298c2e15
commit 89442c7b67
6 changed files with 326 additions and 112 deletions

View File

@ -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();

View File

@ -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);

View File

@ -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

View File

@ -21,7 +21,7 @@ END
NUMBER F_CODCF 6 NUMBER F_CODCF 6
BEGIN BEGIN
PROMPT 2 1 "Cliente " PROMPT 2 1 "Cliente "
FLAGS "R" FLAGS "R"
USE LF_CLIFO USE LF_CLIFO
INPUT TIPOCF "C" INPUT TIPOCF "C"
@ -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
*/

View File

@ -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

View File

@ -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