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;
t.add(configfile.get("Filter", NULL,item, "F01"));
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);
item++;
}
@ -187,6 +189,8 @@ void TConfigurazioneIndustriale_app::sheet_to_file()
TString currdesc(mask().row(i).get(1));
configfile.set("Filter", mask().row(i).get(0), 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();
}

View File

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

View File

@ -35,7 +35,9 @@ void TImmissioneDocumenti_app::init_tabs()
{
pagenames.add(configfile.get("Descr", NULL,items, "Fatture"));
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++;
}
m.disable_page(items);
@ -175,7 +177,7 @@ void TImmissioneDocumenti_mask::open_day_mask(TDate date)
switch(exitval)
{
case K_ENTER:
call_ve0(exitval, relation, date, codnum);
call_ve0(exitval, relation, date, codnum, EMPTY_STRING, currpage);
break;
case K_DEL:
call_ve0(exitval, relation, date, codnum);
@ -184,7 +186,7 @@ void TImmissioneDocumenti_mask::open_day_mask(TDate date)
{
const TString16 tipo(sheet.get(101));
call_ve0(exitval, relation, date, codnum, tipo);
call_ve0(exitval, relation, date, codnum, tipo, currpage);
}
break;
case K_ESC:
@ -192,26 +194,28 @@ void TImmissioneDocumenti_mask::open_day_mask(TDate date)
default:
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])
{
TDate caput_anni(1, 1, date.year());
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();
caput_anni += dayfl.last_one();
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;
tempfile.tempdir();
@ -224,6 +228,8 @@ void TImmissioneDocumenti_mask::call_ve0(int exitval, TRelation& relation, TDate
{
case K_ENTER:
configfile.set("Action", "Modify", "Transaction");
if (_modify[currpage])
configfile.set("Mode", "R", "Transaction");
configfile.set("NDOC", relation.lfile().get(DOC_NDOC), "33");
break;
case K_DEL:
@ -232,6 +238,8 @@ void TImmissioneDocumenti_mask::call_ve0(int exitval, TRelation& relation, TDate
break;
case K_INS:
configfile.set("Action", "Insert", "Transaction");
if (_insert[currpage])
configfile.set("Mode", "R", "Transaction");
configfile.set("DATADOC", date.string(), "33");
break;
default:

View File

@ -10,6 +10,9 @@ class TImmissioneDocumenti_mask : public TAlmanac_mask
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
TBit_array _ordered;
TBit_array _insert;
TBit_array _modify;
protected:
@ -26,6 +29,8 @@ public:
TString_array & filters() { return _filters;}
TArray & flags() { return _flags;}
TBit_array & ordered() { return _ordered;}
TBit_array & insert() { return _insert;}
TBit_array & modify() { return _modify;}
public:
// apertura del foglio interno di gestione dei documenti
@ -33,7 +38,7 @@ public:
private:
// 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:
// Costruttore

View File

@ -65,7 +65,6 @@ class TAlmanac_field : public TWindowed_field
protected:
// override da TWindowed_field
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
public:
@ -91,6 +90,7 @@ public:
void set_selected_year(int nyear);
// @cmember Gestione del giorno correntemente selezionato: setta il giorno selezionato
void set_selected_date(TDate& sdate) { _selecteddate = sdate; }
void force_update(bool update_image = false);
// @access Public Member
public:

View File

@ -1335,7 +1335,7 @@ void TRelation_application::main_loop()
case K_SAVE:
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;
}

View File

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