Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21944 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
56498e8cc7
commit
57acddff0a
@ -50,7 +50,7 @@ bool THA_table_app::protected_record(TRectype& record)
|
||||
{
|
||||
//controlla che l'attrezzatura non abbia record nella tabella della storia attrezzature
|
||||
TString query;
|
||||
query << "USE &HAHIS";
|
||||
query << "USE &HIS";
|
||||
query << "\nFROM CODTAB=#CODATTR";
|
||||
query << "\nTO CODTAB=#CODATTR";
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include <automask.h>
|
||||
#include <config.h>
|
||||
#include <recarray.h>
|
||||
#include <reputils.h>
|
||||
#include <tabmod.h>
|
||||
|
||||
#include <doc.h>
|
||||
@ -93,6 +94,13 @@ void TInserimento_storico::elabora(const TMask& mask)
|
||||
ofstream numerazioni("c:/temp/numerazioni.txt", ios::app);
|
||||
#endif
|
||||
|
||||
//vogliono pure il log! che rompicazzo
|
||||
TLog_report log("Righe storico aggiunte");
|
||||
log.kill_duplicates();
|
||||
log.log(0, "");
|
||||
log.log(0, "Anno-Num.-Ndoc--Codart Matricola --Cliente");
|
||||
log.log(0, "");
|
||||
|
||||
//3) giro su ogni numerazione per trovare le righe che servono
|
||||
for (int n = 0; n < num_del_tipo; n++)
|
||||
{
|
||||
@ -237,12 +245,21 @@ void TInserimento_storico::elabora(const TMask& mask)
|
||||
const real importo = qta * prezzo;
|
||||
tab_his.put("R1", importo);
|
||||
|
||||
tab_his.write_rewrite();
|
||||
const int written = tab_his.write_rewrite();
|
||||
//segna sul log la riga aggiunta alla tabella storico &HIS
|
||||
if (written == NOERR)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("%4d%1s%4s%1s%7d%2s%30s%2s%6d", doc_anno, "-", (const char*)doc_codnum, "-", doc_ndoc, "--", (const char*)codtab, "--", doc_clifo);
|
||||
//msg << doc_anno << "-" << doc_codnum << "-" << doc_ndoc << "--" << codtab << "--" << doc_clifo;
|
||||
log.log(0, msg);
|
||||
}
|
||||
} //if (caus==caus_open || ..
|
||||
|
||||
} //for (bool ok = rdoc_recset.move_first()...
|
||||
|
||||
} //for (int n = 0; n < num_del_tipo...
|
||||
log.preview();
|
||||
}
|
||||
|
||||
void TInserimento_storico::main_loop()
|
||||
|
103
ha/ha3900.cpp
103
ha/ha3900.cpp
@ -1,6 +1,7 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <execp.h>
|
||||
#include <recarray.h>
|
||||
#include <recset.h>
|
||||
#include <relation.h>
|
||||
@ -178,6 +179,22 @@ bool TCoffee_tree::select_attr(const TString& codart, const TString& matricola)
|
||||
return found;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// Metodi static di ordinamento dello sheet
|
||||
//////////////////////////////////////////////
|
||||
static int sort_by_data(TSheet_field& s, int r1, int r2)
|
||||
{
|
||||
TToken_string& s1 = s.row(r1);
|
||||
TToken_string& s2 = s.row(r2);
|
||||
|
||||
const int datacomp_pos = s.cid2index(S_DATA);
|
||||
const TDate d1 = s1.get(datacomp_pos);
|
||||
const TDate d2 = s2.get(datacomp_pos);
|
||||
int cmp = int(d2 - d1);
|
||||
|
||||
return cmp;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// Maschera
|
||||
//////////////////////////////////////////////
|
||||
@ -237,7 +254,8 @@ void TGestione_attrezzature_mask::fill_sheet_storico(const TString& codattr)
|
||||
}
|
||||
}
|
||||
|
||||
//mostra e aggiorna lo sheet
|
||||
//mostra e aggiorna lo sheet ordinato per data (in alto le date maggiori)
|
||||
sf_righe.sort(sort_by_data);
|
||||
sf_righe.show();
|
||||
sf_righe.force_update();
|
||||
|
||||
@ -276,7 +294,7 @@ bool TGestione_attrezzature_mask::write()
|
||||
//per prima cosa mette la chiave del record che è così fatta:
|
||||
// codart=codtab[1,5] - matricola=codtab[16,30] - nriga=codtab[31,35]
|
||||
TString80 curr_codtab;
|
||||
curr_codtab.format("%05d", r + 1);
|
||||
curr_codtab.format("%05d", sf_righe.items() - r);
|
||||
curr_codtab.insert(codtab);
|
||||
//azzera il record senno' nei campi vuoti ci metterebbe quelli del record precedente
|
||||
//deve azzerare la tabella, senno' perde il codice modulo HA ed il codice tabella HIS
|
||||
@ -327,6 +345,7 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
|
||||
//campi
|
||||
case F_CODCF:
|
||||
if (e == fe_modify)
|
||||
@ -385,8 +404,85 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
|
||||
{
|
||||
_sheet_dirty = true;
|
||||
}
|
||||
if (e == se_notify_add)
|
||||
{
|
||||
//quando si aggiunge una riga si deve fare il sorting in modo che venga come prima riga in alto
|
||||
TSheet_field& sf = sfield(o.dlg());
|
||||
TToken_string& row = sf.row(jolly); //riga corrente appena aggiunta
|
||||
row.add(TDate(TODAY), sf.cid2index(S_DATA));
|
||||
row.add(get(F_CODCF), sf.cid2index(S_CODCF));
|
||||
sf.sort(sort_by_data);
|
||||
sf.force_update();
|
||||
sf.post_select(0); //evidenzia la prima riga
|
||||
}
|
||||
break;
|
||||
|
||||
//bottoni
|
||||
case DLG_ADD_NEW:
|
||||
if (e == fe_button)
|
||||
{
|
||||
//per prima cosa deve controllare che siano pieni i campi chiave della tabella ttrezzature, senno' non puo'..
|
||||
//..aggiungere una cippa
|
||||
if (get(F_COD_ART).empty() || get(F_COD_MATR).empty())
|
||||
return warning_box(TR("E' necessario compilare articolo e matricola per aggiungere una nuova attrezzatura!"));
|
||||
|
||||
TString80 codtab;
|
||||
const TString& codart = get(F_COD_ART);
|
||||
const TString& matricola = get(F_COD_MATR);
|
||||
codtab.format("%-15s%-15s", (const char*)codart, (const char*)matricola);
|
||||
//se l'utonto tentasse di inserire come nuova un'attrezzatura già esistente va cazziato!
|
||||
TModule_table tab_att("&ATT");
|
||||
tab_att.put("CODTAB", codtab);
|
||||
const int err = tab_att.read();
|
||||
if (err == NOERR)
|
||||
return warning_box(TR("L'attrezzatura con questa matricola esiste gia'!"));
|
||||
|
||||
TFilename trans_ini;
|
||||
trans_ini.temp(NULL, "ini");
|
||||
TString4 filenumber;
|
||||
filenumber << LF_TABMOD;
|
||||
//i config vanno chiusi senno' non si riescono ad usare
|
||||
{
|
||||
TConfig ini(trans_ini, "Transaction");
|
||||
ini.set("Action", "INSERT");
|
||||
|
||||
ini.set_paragraph(filenumber);
|
||||
ini.set("CODTAB", codtab);
|
||||
ini.set("I0", get(F_CODCF));
|
||||
ini.set("D0", TDate(TODAY));
|
||||
}
|
||||
//invio del config al gestore della tabella &ATT
|
||||
TString80 cmd;
|
||||
cmd << "ha0 -0 &ATT /i" << trans_ini;
|
||||
TExternal_app app(cmd);
|
||||
|
||||
//lettura dell'ini di ritorno compilato
|
||||
if (app.run() == NOERR)
|
||||
{
|
||||
//setta sulla maschera i valori di ritorno del .ini (riempiti dal gestore di &ATT)
|
||||
TConfig ini(trans_ini, "Transaction");
|
||||
if (ini.get("Result") == "OK")
|
||||
{
|
||||
ini.set_paragraph(filenumber);
|
||||
TString80 codtab = ini.get("CODTAB");
|
||||
codtab.strip("\""); //elimina eventuali " che vengono dall'ini
|
||||
set(F_COD_ART, codtab.left(5));
|
||||
set(F_COD_MATR, codtab.mid(15,15));
|
||||
const long codcf = ini.get_long("I0");
|
||||
set(F_CODCF, codcf);
|
||||
|
||||
const TDate data_storico = ini.get("D0");
|
||||
TSheet_field& sf = sfield(F_STORICO);
|
||||
TToken_string& row = sf.row(-1);
|
||||
row.add("C", sf.cid2index(S_TIPO));
|
||||
row.add(data_storico, sf.cid2index(S_DATA));
|
||||
row.add(codcf, sf.cid2index(S_CODCF));
|
||||
|
||||
sf.force_update();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DLG_SAVEREC:
|
||||
if (e == fe_button && check_fields())
|
||||
{
|
||||
@ -433,6 +529,9 @@ TGestione_attrezzature_mask::TGestione_attrezzature_mask() : TAutomask("ha3900a"
|
||||
TCoffee_tree* ct = new TCoffee_tree;
|
||||
tf.set_tree(ct);
|
||||
|
||||
TSheet_field& sf_storico = sfield(F_STORICO);
|
||||
sf_storico.set_append(false);
|
||||
|
||||
//inizializza lo "sporcatore" dello sheet
|
||||
_sheet_dirty = false;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
#define F_COD_ART 303
|
||||
#define F_DESCR_ART 304
|
||||
#define F_COD_MATR 305
|
||||
#define DLG_ADD_NEW 306
|
||||
|
||||
//tree
|
||||
#define F_ATTREZZATURE 350
|
||||
|
@ -16,12 +16,12 @@ PAGE "Gestione attrezzature" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 79 5
|
||||
BEGIN
|
||||
PROMPT 0 0 "@bParametri"
|
||||
PROMPT 1 0 "@bParametri"
|
||||
END
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 1 1 "Cliente "
|
||||
PROMPT 2 1 "Cliente "
|
||||
FLAGS "R"
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
@ -37,7 +37,7 @@ END
|
||||
|
||||
STRING F_DESCF 50
|
||||
BEGIN
|
||||
PROMPT 22 1 ""
|
||||
PROMPT 23 1 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_DESCF
|
||||
@ -51,7 +51,7 @@ END
|
||||
|
||||
STRING F_COD_ART 5
|
||||
BEGIN
|
||||
PROMPT 1 2 "Articolo "
|
||||
PROMPT 2 2 "Articolo "
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG SELECT GRMERC="50"
|
||||
INPUT CODART F_COD_ART
|
||||
@ -65,7 +65,7 @@ END
|
||||
|
||||
STRING F_DESCR_ART 50
|
||||
BEGIN
|
||||
PROMPT 22 2 ""
|
||||
PROMPT 23 2 ""
|
||||
USE LF_ANAMAG KEY 2 SELECT GRMERC="50"
|
||||
INPUT DESCR F_DESCR_ART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
@ -76,7 +76,7 @@ END
|
||||
|
||||
STRING F_COD_MATR 15
|
||||
BEGIN
|
||||
PROMPT 1 3 "Matricola "
|
||||
PROMPT 2 3 "Matricola "
|
||||
FLAGS "U"
|
||||
USE &ATT
|
||||
JOIN LF_ANAMAG INTO CODART=CODTAB[1,5]
|
||||
@ -89,9 +89,15 @@ BEGIN
|
||||
OUTPUT F_COD_ART CODTAB[1,5]
|
||||
OUTPUT F_COD_MATR CODTAB[16,30]
|
||||
OUTPUT F_CODCF I0
|
||||
CHECKTYPE REQUIRED
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
BUTTON DLG_ADD_NEW 20 1
|
||||
BEGIN
|
||||
PROMPT 53 3 "Nuova attrezzatura"
|
||||
END
|
||||
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 1 5 "@bAttrezzature"
|
||||
@ -99,7 +105,7 @@ END
|
||||
|
||||
TLIST F_ATTREZZATURE 78 5
|
||||
BEGIN
|
||||
PROMPT 0 6 "Attrezzatura"
|
||||
PROMPT 1 6 "Attrezzatura"
|
||||
DISPLAY "Codice@20" CODTAB
|
||||
DISPLAY "Descrizione@35" S0
|
||||
DISPLAY "Cliente" I0
|
||||
@ -156,7 +162,6 @@ DATE S_DATA
|
||||
BEGIN
|
||||
PROMPT 58 1 "Data "
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "A"
|
||||
FIELD D0
|
||||
END
|
||||
|
||||
|
39
ha/hasthis.uml
Executable file
39
ha/hasthis.uml
Executable file
@ -0,0 +1,39 @@
|
||||
#include "hatbatt.h"
|
||||
|
||||
PAGE "Attrezzature" -1 -1 78 3
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 1 1 "Cliente "
|
||||
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 #CODCF
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 20 1 ""
|
||||
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
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
#include "printbar.h"
|
||||
ENDPAGE
|
||||
|
||||
ENDMAK
|
Loading…
x
Reference in New Issue
Block a user