Patch level : 2.2 94

Files correlati     : ci0.exe ve0.exe
Ricompilazione Demo : [ ]
Commento            :

Aggiunta possibilità di rimanere in modifica o in inserimento do  Registra


git-svn-id: svn://10.65.10.50/trunk@13066 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2005-05-08 11:47:35 +00:00
parent 22264e22d6
commit d52d8167eb
7 changed files with 54 additions and 23 deletions

View File

@ -161,6 +161,8 @@ void TConfigurazioneIndustriale_app::file_to_sheet()
TToken_string t; TToken_string t;
t.add(configfile.get("Filter", NULL,item, "F01")); t.add(configfile.get("Filter", NULL,item, "F01"));
t.add(configfile.get("Descr", NULL,item, "Fatture")); t.add(configfile.get("Descr", NULL,item, "Fatture"));
t.add(configfile.get("InsertRemain", NULL,item, ""));
t.add(configfile.get("ModifyRemain", NULL,item, ""));
mask().add_element(t); mask().add_element(t);
item++; item++;
} }
@ -187,6 +189,8 @@ void TConfigurazioneIndustriale_app::sheet_to_file()
TString currdesc(mask().row(i).get(1)); TString currdesc(mask().row(i).get(1));
configfile.set("Filter", mask().row(i).get(0), NULL, true, i); configfile.set("Filter", mask().row(i).get(0), NULL, true, i);
configfile.set("Descr", currdesc, NULL, true, i); configfile.set("Descr", currdesc, NULL, true, i);
configfile.set("InsertRemain", mask().row(i).get(2), NULL, true, i);
configfile.set("ModifyRemain", mask().row(i).get(3), NULL, true, i);
totlen+=currdesc.len(); totlen+=currdesc.len();
} }

View File

@ -18,11 +18,13 @@ ENDPAGE
PAGE "Configurazione" -1 -1 78 23 PAGE "Configurazione" -1 -1 78 23
SPREADSHEET F_SHEET 50 16 SPREADSHEET F_SHEET 74 16
BEGIN BEGIN
PROMPT 15 1 "" PROMPT 3 1 ""
ITEM "Filtro@4" ITEM "Filtro@4"
ITEM "Descrizione@30" ITEM "Descrizione@30"
ITEM "Rimani in\nInserimento@14"
ITEM "Rimani in\nModifica@14"
END END
BUTTON F_MOVEUP 2 2 BUTTON F_MOVEUP 2 2
@ -41,7 +43,7 @@ ENDPAGE
ENDMASK ENDMASK
PAGE "Tipologia Documento" -1 -1 50 6 PAGE "Tipologia Documento" -1 -1 50 8
STRING 101 4 STRING 101 4
BEGIN BEGIN
@ -50,6 +52,7 @@ BEGIN
INPUT CODTAB 101 INPUT CODTAB 101
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT 101 CODTAB OUTPUT 101 CODTAB
OUTPUT 102 S0 OUTPUT 102 S0
CHECKTYPE NORMAL CHECKTYPE NORMAL
@ -61,6 +64,16 @@ BEGIN
PROMPT 1 2 "Descrizione " PROMPT 1 2 "Descrizione "
END END
BOOLEAN 103
BEGIN
PROMPT 1 3 "Rimani in inserimento"
END
BOOLEAN 104
BEGIN
PROMPT 1 4 "Rimani in inserimento"
END
BUTTON DLG_CANCEL 10 2 BUTTON DLG_CANCEL 10 2
BEGIN BEGIN
PROMPT -13 -1 "" PROMPT -13 -1 ""

View File

@ -35,7 +35,9 @@ void TImmissioneDocumenti_app::init_tabs()
{ {
pagenames.add(configfile.get("Descr", NULL,items, "Fatture")); pagenames.add(configfile.get("Descr", NULL,items, "Fatture"));
m.filters().add(configfile.get("Filter", NULL,items, "F01")); m.filters().add(configfile.get("Filter", NULL,items, "F01"));
m.activate_almanac(F_AL01 + items, items, TDate(TODAY)); m.insert().set(items, configfile.get_bool("InsertRemain", NULL, items));
m.modify().set(items, configfile.get_bool("ModifyRemain", NULL, items));
m.activate_almanac(F_AL01 + items, items, TDate(TODAY));
items++; items++;
} }
m.disable_page(items); m.disable_page(items);
@ -175,7 +177,7 @@ void TImmissioneDocumenti_mask::open_day_mask(TDate date)
switch(exitval) switch(exitval)
{ {
case K_ENTER: case K_ENTER:
call_ve0(exitval, relation, date, codnum); call_ve0(exitval, relation, date, codnum, EMPTY_STRING, currpage);
break; break;
case K_DEL: case K_DEL:
call_ve0(exitval, relation, date, codnum); call_ve0(exitval, relation, date, codnum);
@ -184,7 +186,7 @@ void TImmissioneDocumenti_mask::open_day_mask(TDate date)
{ {
const TString16 tipo(sheet.get(101)); const TString16 tipo(sheet.get(101));
call_ve0(exitval, relation, date, codnum, tipo); call_ve0(exitval, relation, date, codnum, tipo, currpage);
} }
break; break;
case K_ESC: case K_ESC:
@ -192,26 +194,28 @@ void TImmissioneDocumenti_mask::open_day_mask(TDate date)
default: default:
break; break;
} }
TDate caput_anni(1, 1, date.year());
TBit_array & dayfl = (TBit_array&) flags()[currpage];
dayfl.reset();
filter.cut(0);
filter << "(ANNO==\"" << date.year() << "\")" << "&&" << "(CODNUM==\"" << filters().row(currpage) << "\")";
cursor.setfilter(filter);
const int doc_items = cursor.items();
for (cursor = 0; cursor.pos() < doc_items; ++cursor)
dayfl.set(relation.lfile().get_date(DOC_DATADOC) - caput_anni, 1);
if (ordered()[currpage]) if (ordered()[currpage])
{ {
TDate caput_anni(1, 1, date.year()); caput_anni += dayfl.last_one();
TBit_array & fl = (TBit_array&) flags()[currpage];
filter.cut(0);
filter << "(ANNO==\"" << date.year() << "\")" << "&&" << "(CODNUM==\"" << filters().row(currpage) << "\")";
cursor.setfilter(filter);
const int items = cursor.items();
for (cursor = 0; cursor.pos() < items; ++cursor)
fl.set(relation.lfile().get_date(DOC_DATADOC) - caput_anni, 1);
caput_anni += fl.last_one();
almanac(currpage).set_insert_date(caput_anni); almanac(currpage).set_insert_date(caput_anni);
} }
almanac().force_update();
} }
void TImmissioneDocumenti_mask::call_ve0(int exitval, TRelation& relation, TDate& date, const TString& codnum, const TString& doctype) void TImmissioneDocumenti_mask::call_ve0(int exitval, TRelation& relation, TDate& date, const TString& codnum, const TString& doctype, byte currpage)
{ {
TFilename tempfile; TFilename tempfile;
tempfile.tempdir(); tempfile.tempdir();
@ -224,6 +228,8 @@ void TImmissioneDocumenti_mask::call_ve0(int exitval, TRelation& relation, TDate
{ {
case K_ENTER: case K_ENTER:
configfile.set("Action", "Modify", "Transaction"); configfile.set("Action", "Modify", "Transaction");
if (_modify[currpage])
configfile.set("Mode", "R", "Transaction");
configfile.set("NDOC", relation.lfile().get(DOC_NDOC), "33"); configfile.set("NDOC", relation.lfile().get(DOC_NDOC), "33");
break; break;
case K_DEL: case K_DEL:
@ -232,6 +238,8 @@ void TImmissioneDocumenti_mask::call_ve0(int exitval, TRelation& relation, TDate
break; break;
case K_INS: case K_INS:
configfile.set("Action", "Insert", "Transaction"); configfile.set("Action", "Insert", "Transaction");
if (_insert[currpage])
configfile.set("Mode", "R", "Transaction");
configfile.set("DATADOC", date.string(), "33"); configfile.set("DATADOC", date.string(), "33");
break; break;
default: default:

View File

@ -10,6 +10,9 @@ class TImmissioneDocumenti_mask : public TAlmanac_mask
TString_array _filters; // filtri tipodoc per ogni tab TString_array _filters; // filtri tipodoc per ogni tab
TArray _flags; // array di TBit_array. Ognuno di essi è lungo 366 e rappresenta i flag di presenza documenti per ogni giorno dell'anno. Ogni page della maschera ha bisogno di un bitarray diverso TArray _flags; // array di TBit_array. Ognuno di essi è lungo 366 e rappresenta i flag di presenza documenti per ogni giorno dell'anno. Ogni page della maschera ha bisogno di un bitarray diverso
TBit_array _ordered; TBit_array _ordered;
TBit_array _insert;
TBit_array _modify;
protected: protected:
@ -26,6 +29,8 @@ public:
TString_array & filters() { return _filters;} TString_array & filters() { return _filters;}
TArray & flags() { return _flags;} TArray & flags() { return _flags;}
TBit_array & ordered() { return _ordered;} TBit_array & ordered() { return _ordered;}
TBit_array & insert() { return _insert;}
TBit_array & modify() { return _modify;}
public: public:
// apertura del foglio interno di gestione dei documenti // apertura del foglio interno di gestione dei documenti
@ -33,7 +38,7 @@ public:
private: private:
// chiamata del programma ve0 // chiamata del programma ve0
void call_ve0(int exitval, TRelation& relation, TDate& date, const TString& codnum, const TString& doctype = EMPTY_STRING); void call_ve0(int exitval, TRelation& relation, TDate& date, const TString& codnum, const TString& doctype = EMPTY_STRING, byte currpage = 0);
public: public:
// Costruttore // Costruttore

View File

@ -65,7 +65,6 @@ class TAlmanac_field : public TWindowed_field
protected: protected:
// override da TWindowed_field // override da TWindowed_field
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent); virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
void force_update(bool update_image = false);
// @access Public Member // @access Public Member
public: public:
@ -91,6 +90,7 @@ public:
void set_selected_year(int nyear); void set_selected_year(int nyear);
// @cmember Gestione del giorno correntemente selezionato: setta il giorno selezionato // @cmember Gestione del giorno correntemente selezionato: setta il giorno selezionato
void set_selected_date(TDate& sdate) { _selecteddate = sdate; } void set_selected_date(TDate& sdate) { _selecteddate = sdate; }
void force_update(bool update_image = false);
// @access Public Member // @access Public Member
public: public:

View File

@ -1335,7 +1335,7 @@ void TRelation_application::main_loop()
case K_SAVE: case K_SAVE:
if (save(FALSE)) if (save(FALSE))
{ {
if (_autoins_caller.not_empty() || is_transaction()) if ((_autoins_caller.not_empty() || is_transaction()) && _curr_trans_mode != TM_REMAIN)
{ {
k = K_QUIT; k = K_QUIT;
} }

View File

@ -24,6 +24,7 @@
#define TRANSACTION_LINK "LINK" // Load an existing record and interactively edit it #define TRANSACTION_LINK "LINK" // Load an existing record and interactively edit it
#define TM_INTERACTIVE 'I' #define TM_INTERACTIVE 'I'
#define TM_AUTOMATIC 'A' #define TM_AUTOMATIC 'A'
#define TM_REMAIN 'R'
// @doc EXTERNAL // @doc EXTERNAL
// @class TRelation_application | Classe per la gestione di una applicazione di manutenzione di uno // @class TRelation_application | Classe per la gestione di una applicazione di manutenzione di uno