Patch level : 12.0 820

Files correlati     : ve5.exe, ve5100a.msk
Commento            : Aggiunta archiviazione su File oltre al Floppy
This commit is contained in:
Simone Palacino 2019-06-11 12:08:47 +02:00
parent 5782fa12d3
commit 8a6a484f54
3 changed files with 89 additions and 25 deletions

View File

@ -19,10 +19,12 @@ class TDeletedoc_app : public TSkeleton_application
TString _desc, _last_std; TString _desc, _last_std;
TString16 _num; TString16 _num;
int _anno; int _anno;
char _unit; char _unit;
TString _dirdest;
TFilename _tmp_dir; TFilename _tmp_dir;
TIsamtempfile *_tdoc,*_trdoc; TIsamtempfile *_tdoc,*_trdoc;
bool _floppy;
protected: protected:
void backup_delete_doc(int op, int who, bool pack_rows); // Backup e cancellazione dei documenti da eliminare void backup_delete_doc(int op, int who, bool pack_rows); // Backup e cancellazione dei documenti da eliminare
@ -33,7 +35,9 @@ protected:
virtual bool destroy(); virtual bool destroy();
virtual void main_loop(); virtual void main_loop();
static bool state_handler(TMask& m, KEY k); static bool state_handler(TMask& m, KEY k);
static void enable_supports(TMask& m, bool enable = true);
static bool op_handler(TMask_field& field, KEY k);
public: public:
@ -49,6 +53,38 @@ bool TDeletedoc_app::state_handler(TMask& m, KEY k)
return TRUE; return TRUE;
} }
void TDeletedoc_app::enable_supports(TMask& m, bool enable)
{
if(!enable)
{
m.field(F_UNIT).disable();
m.field(F_DESTDIR).disable();
}
else
{
if(m.get(F_SALVA) == "F")
{
m.field(F_UNIT).enable();
m.field(F_DESTDIR).disable();
}
else
{
m.field(F_UNIT).disable();
m.field(F_DESTDIR).enable();
}
}
}
bool TDeletedoc_app::op_handler(TMask_field& field, KEY k)
{
TMask& m = field.mask();
if (m.get_int(F_OPERAZIONE) == 1)
enable_supports(m, false);
else
enable_supports(m);
return true;
}
void TDeletedoc_app::backup_delete_doc(int op, int who, bool pack_rows) void TDeletedoc_app::backup_delete_doc(int op, int who, bool pack_rows)
{ {
@ -176,7 +212,10 @@ void TDeletedoc_app::backup_delete_doc(int op, int who, bool pack_rows)
movmag.close(); rmovmag.close(); movmag.close(); rmovmag.close();
const char * dir = &_tmp_dir[1]; const char * dir = &_tmp_dir[1];
delete_tmp_files(FALSE); //Close tmp files only delete_tmp_files(FALSE); //Close tmp files only
rt = _arc.backup(dir,_unit,_desc, FALSE);// Backup dei documenti da eliminare, prefix unnecessary if(_floppy)
rt = _arc.backup(dir, _unit, _desc, FALSE); // Backup dei documenti da eliminare, prefix unnecessary
else
rt = _arc.backup(dir, _dirdest, _desc, FALSE); // Backup dei documenti da eliminare, prefix unnecessary
create_tmp_files(FALSE); // Reopen tmp files. create_tmp_files(FALSE); // Reopen tmp files.
doc.open(_excllock); rdoc.open(); clifo.open(); doc.open(_excllock); rdoc.open(); clifo.open();
cfven.open(); tab.open(); occas.open(); cfven.open(); tab.open(); occas.open();
@ -251,7 +290,12 @@ void TDeletedoc_app::restore_doc()
return ; return ;
} }
const char* dir =& _tmp_dir[1]; // Cut out % sign const char* dir =& _tmp_dir[1]; // Cut out % sign
if (_arc.restore(dir,_unit,FALSE, FALSE)) bool ok;
if(_floppy)
ok = _arc.restore(dir, _unit, FALSE, FALSE);
else
ok = _arc.restore(dir, _dirdest, FALSE, FALSE);
if (ok)
{ {
create_tmp_files(FALSE); // In realta' ci sono gia' create_tmp_files(FALSE); // In realta' ci sono gia'
const TRecnotype items = _tdoc->items() + _trdoc->items(); const TRecnotype items = _tdoc->items() + _trdoc->items();
@ -335,13 +379,17 @@ void TDeletedoc_app::main_loop()
{ {
TMask m("ve5100a"); TMask m("ve5100a");
m.set_handler(state_handler); m.set_handler(state_handler);
m.set_handler(F_OPERAZIONE, op_handler);
m.set_handler(F_SALVA, op_handler);
m.set(F_STATUS,_last_std); m.set(F_STATUS,_last_std);
while (m.run() != K_QUIT) while (m.run() != K_QUIT)
{ {
_unit = m.get(F_UNIT)[0]; _dirdest = m.get(F_DESTDIR);
_desc = m.get(F_DESC); _desc = m.get(F_DESC);
_unit = m.get(F_UNIT)[0];
_floppy = m.get(F_SALVA) == "F";
const int scelta = m.get_int(F_OPERAZIONE); const int scelta = m.get_int(F_OPERAZIONE);
const int cosa = m.get_int(F_DOCUMENTI); const int cosa = m.get_int(F_DOCUMENTI);
const bool pack_rows = m.get_bool(F_COMPATTA); const bool pack_rows = m.get_bool(F_COMPATTA);

View File

@ -1,11 +1,13 @@
#define F_STATUS 101 #define F_STATUS 101
#define F_DESC 102 #define F_DESC 102
#define F_UNIT 103 #define F_UNIT 103
#define F_STADESC 104 #define F_DESTDIR 104
#define F_OPERAZIONE 105 #define F_STADESC 105
#define F_DOCUMENTI 106 #define F_OPERAZIONE 106
#define F_COMPATTA 107 #define F_SALVA 107
#define F_ANNO 108 #define F_DOCUMENTI 108
#define F_CODNUM 109 #define F_COMPATTA 109
#define F_DESNUM 110 #define F_ANNO 110
#define F_CODNUM 111
#define F_DESNUM 112

View File

@ -10,13 +10,13 @@ RADIOBUTTON F_OPERAZIONE 1 34
BEGIN BEGIN
PROMPT 1 1 "Operazione" PROMPT 1 1 "Operazione"
ITEM "1|Eliminazione" ITEM "1|Eliminazione"
MESSAGE DISABLE,F_DESC|DISABLE,F_UNIT|ENABLE,F_ANNO|ENABLE,F_CODNUM MESSAGE DISABLE,F_DESC|ENABLE,F_ANNO|ENABLE,F_CODNUM
ITEM "2|Archiviazione" ITEM "2|Archiviazione"
MESSAGE ENABLE,F_DESC|ENABLE,F_UNIT|ENABLE,F_ANNO|ENABLE,F_CODNUM MESSAGE ENABLE,F_DESC|ENABLE,F_ANNO|ENABLE,F_CODNUM
ITEM "3|Eliminazione e archiviazione" ITEM "3|Eliminazione e archiviazione"
MESSAGE ENABLE,F_DESC|ENABLE,F_UNIT|ENABLE,F_ANNO|ENABLE,F_CODNUM MESSAGE ENABLE,F_DESC|ENABLE,F_ANNO|ENABLE,F_CODNUM
ITEM "4|Ripristino" ITEM "4|Ripristino"
MESSAGE DISABLE,F_DESC|ENABLE,F_UNIT|CLEAR,F_ANNO|CLEAR,F_CODNUM MESSAGE DISABLE,F_DESC|CLEAR,F_ANNO|CLEAR,F_CODNUM
END END
RADIOBUTTON F_DOCUMENTI 1 24 RADIOBUTTON F_DOCUMENTI 1 24
@ -30,21 +30,35 @@ BEGIN
MESSAGE ENABLE,F_COMPATTA MESSAGE ENABLE,F_COMPATTA
END END
RADIOBUTTON F_SALVA 2 24
BEGIN
PROMPT 1 7 "Salvare su "
ITEM "F|Floppy"
ITEM "D|File "
FLAGS "Z"
END
LIST F_UNIT 2 LIST F_UNIT 2
BEGIN BEGIN
PROMPT 38 6 "Unita' di backup " PROMPT 30 9 "Unita' di backup"
ITEM "A|A:" ITEM "A|A:"
ITEM "B|B:" ITEM "B|B:"
END END
STRING F_DESTDIR 250 36
BEGIN
PROMPT 2 10 "Percorso di backup "
DSELECT
END
STRING F_DESC 50 36 STRING F_DESC 50 36
BEGIN BEGIN
PROMPT 2 7 "Descrizione backup " PROMPT 2 11 "Descrizione backup "
END END
STRING F_STATUS 1 STRING F_STATUS 1
BEGIN BEGIN
PROMPT 2 8 "Stato eliminabile " PROMPT 2 12 "Stato eliminabile "
USE %STD USE %STD
INPUT CODTAB F_STATUS INPUT CODTAB F_STATUS
DISPLAY "Stato documento" CODTAB DISPLAY "Stato documento" CODTAB
@ -58,25 +72,25 @@ END
STRING F_STADESC 32 STRING F_STADESC 32
BEGIN BEGIN
PROMPT 27 8 "" PROMPT 27 12 ""
FLAGS "D" FLAGS "D"
END END
BOOELAN F_COMPATTA BOOELAN F_COMPATTA
BEGIN BEGIN
PROMPT 2 9 "Elimina la righe evase" PROMPT 2 13 "Elimina la righe evase"
END END
NUMBER F_ANNO 4 NUMBER F_ANNO 4
BEGIN BEGIN
PROMPT 2 10 "Esercizio " PROMPT 2 14 "Esercizio "
FIELD ANNO FIELD ANNO
WARNING "Inserire un anno valido" WARNING "Inserire un anno valido"
END END
STRING F_CODNUM 4 STRING F_CODNUM 4
BEGIN BEGIN
PROMPT 2 11 "Numerazione " PROMPT 2 15 "Numerazione "
FIELD CODNUM FIELD CODNUM
HELP "Codice numerazione" HELP "Codice numerazione"
USE %NUM USE %NUM
@ -92,7 +106,7 @@ END
STRING F_DESNUM 50 42 STRING F_DESNUM 50 42
BEGIN BEGIN
PROMPT 15 12 "" PROMPT 15 16 ""
HELP "Descrizione numerazione" HELP "Descrizione numerazione"
USE %NUM KEY 2 USE %NUM KEY 2
INPUT S0 F_DESNUM INPUT S0 F_DESNUM