diff --git a/build/fp010.vcxproj b/build/fp010.vcxproj
index 9cebf450e..a17a7eec7 100644
--- a/build/fp010.vcxproj
+++ b/build/fp010.vcxproj
@@ -193,27 +193,27 @@
-
-
-
-
-
+
+
+
+
+
-
+
false
-
-
-
+
+
+
-
+
Document
-
+
diff --git a/build/fp010.vcxproj.filters b/build/fp010.vcxproj.filters
index f9177f3f8..91beccd3b 100644
--- a/build/fp010.vcxproj.filters
+++ b/build/fp010.vcxproj.filters
@@ -41,44 +41,39 @@
Headers
-
+
Headers
-
+
Headers
-
+
Headers
-
+
Headers
-
+
Headers
-
+
Masks
-
+
Masks
-
+
Masks
-
+
Masks
-
+
Masks
-
-
- Menu
-
-
Reports
@@ -90,4 +85,9 @@
+
+
+ Menu
+
+
\ No newline at end of file
diff --git a/build/fp011.vcxproj b/build/fp011.vcxproj
index 8e2966d55..7df323db1 100644
--- a/build/fp011.vcxproj
+++ b/build/fp011.vcxproj
@@ -192,14 +192,14 @@
-
-
+
+
-
+
Document
-
+
diff --git a/build/fp011.vcxproj.filters b/build/fp011.vcxproj.filters
index 8c9a1a928..7cc2bf456 100644
--- a/build/fp011.vcxproj.filters
+++ b/build/fp011.vcxproj.filters
@@ -26,18 +26,18 @@
Headers
-
+
Headers
-
+
Headers
-
+
Masks
-
+
Masks
diff --git a/build/ve011.vcxproj b/build/ve011.vcxproj
index 423b3c0eb..bbfea24d7 100644
--- a/build/ve011.vcxproj
+++ b/build/ve011.vcxproj
@@ -198,7 +198,7 @@
-
+
@@ -209,7 +209,7 @@
-
+
diff --git a/build/ve011.vcxproj.filters b/build/ve011.vcxproj.filters
index 3d0661162..b108f8fca 100644
--- a/build/ve011.vcxproj.filters
+++ b/build/ve011.vcxproj.filters
@@ -77,9 +77,6 @@
Masks
-
- Masks
-
Masks
@@ -95,6 +92,9 @@
Masks
+
+ Masks
+
@@ -106,9 +106,6 @@
Headers
-
- Headers
-
Headers
@@ -136,6 +133,9 @@
Headers
+
+ Headers
+
diff --git a/libraries/wx28X/lib/vc_lib/mswd/wx/msw/rcdefs.h b/libraries/wx28X/lib/vc_lib/mswd/wx/msw/rcdefs.h
index a5b583c61..08a4c60db 100644
--- a/libraries/wx28X/lib/vc_lib/mswd/wx/msw/rcdefs.h
+++ b/libraries/wx28X/lib/vc_lib/mswd/wx/msw/rcdefs.h
@@ -14,7 +14,7 @@
#define _WX_RCDEFS_H
-#define WX_MSC_FULL_VER 160030319
+#define WX_MSC_FULL_VER 191627051
diff --git a/src/cg/cg1500a1.rep b/src/cg/cg1500a1.rep
index 92fd7dcb0..73f284deb 100644
--- a/src/cg/cg1500a1.rep
+++ b/src/cg/cg1500a1.rep
@@ -1,23 +1,23 @@
-
+
Stampa bilancio a sezioni contrapposte
-
-
-
+
+
+
#SYSTEM.FIRM
-
+
#SYSTEM.RAGSOC
-
-
- "Stampa bilancio a sezioni contrapposte"
+
+
+ "Stampa bilancio a sezioni contrapposte"
#CODES @
0
-<>
+C;E;
IF
-" esercizio "
+" esercizio "
+
#CODES @
+
@@ -25,92 +25,92 @@ THEN
#THIS !
-
-
+
+
-
+
DATASTAMPA
-
-
+
+
-
+
#PAGE
-
- "!INDIR"
+
+ "!INDIR"
GET_FIRM_DATA
-
-
+
+
DATAINI
-
-
+
+
DATALIM
-
+
TIPOST
-
-
+
+
-
-
- "!CF"
+
+
+ "!CF"
GET_FIRM_DATA
-
-
- "!IVA"
+
+
+ "!IVA"
GET_FIRM_DATA
-
+
TIPOCONTI
-
-
-
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
GRUPPO1
-
+
CONTO1
-
+
SOTTOCONTO1
-
+
DESCR1
-
+
SALDO1
#102 @
0
-=
+C;E;
#103 @
0
=
@@ -121,23 +121,23 @@ IF
+!
THEN
-
+
GRUPPO2
-
+
CONTO2
-
+
SOTTOCONTO2
-
+
DESCR2
-
+
SALDO2
#202 @
0
-=
+C;E;
#203 @
0
=
@@ -149,81 +149,81 @@ IF
THEN
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
#305-#306
-
+
SBILPREC
- #THIS @ 0 >
+ #THIS @ 0 E;
IF
#THIS @
#457 !
-"#354" HIDE
-"#454" SHOW
+"#354" HIDE
+"#454" SHOW
ELSE
-#THIS @ 0 <
+#THIS @ 0 C;
IF
0
#THIS @
-
#357 !
-"#354" SHOW
-"#454" HIDE
+"#354" SHOW
+"#454" HIDE
ELSE
#THIS @
#357 !
#THIS @
#457 !
-"#354" HIDE
-"#454" HIDE
+"#354" HIDE
+"#454" HIDE
THEN
THEN
-
+
#307-#308
#THIS @
0
->
+E;
IF
#THIS @
#F1.456 !
-"#353" HIDE
-"#453" SHOW
+"#353" HIDE
+"#453" SHOW
ELSE
#THIS @
0
-<
+C;
IF
0
#THIS @
-
#F1.356 !
-"#353" SHOW
-"#453" HIDE
+"#353" SHOW
+"#453" HIDE
ELSE
#THIS @
#F1.356 !
#THIS @
#F1.456 !
-"#353" HIDE
-"#453" HIDE
+"#353" HIDE
+"#453" HIDE
THEN
THEN
-
-
-
-
-
+
+
+
+
+
#305 @
#356 @
+
@@ -231,11 +231,11 @@ THEN
+
#THIS !
-
-
-
-
-
+
+
+
+
+
#306 @
#456 @
+
@@ -244,5 +244,5 @@ THEN
#THIS !
-
+
\ No newline at end of file
diff --git a/src/cg/cg1500a2.rep b/src/cg/cg1500a2.rep
index b127d441c..6b42a76d2 100644
--- a/src/cg/cg1500a2.rep
+++ b/src/cg/cg1500a2.rep
@@ -1,23 +1,23 @@
-
+
Stampa bilancio a sezioni contrapposte 2
-
-
-
+
+
+
#SYSTEM.FIRM
-
+
#SYSTEM.RAGSOC
-
-
- "Stampa bilancio a sezioni contrapposte"
+
+
+ "Stampa bilancio a sezioni contrapposte"
#CODES @
0
-<>
+C;E;
IF
-" esercizio "
+" esercizio "
+
#CODES @
+
@@ -25,92 +25,92 @@ THEN
#THIS !
-
-
+
+
-
+
DATASTAMPA
-
-
+
+
-
+
#PAGE
-
- "!INDIR"
+
+ "!INDIR"
GET_FIRM_DATA
-
-
+
+
DATAINI
-
-
+
+
DATALIM
-
+
TIPOST
-
-
+
+
-
-
- "!CF"
+
+
+ "!CF"
GET_FIRM_DATA
-
-
- "!IVA"
+
+
+ "!IVA"
GET_FIRM_DATA
-
+
TIPOCONTI
-
-
-
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
GRUPPO1
-
+
CONTO1
-
+
SOTTOCONTO1
-
+
DESCR1
-
+
SALDO1
#102 @
0
-=
+C;E;
#103 @
0
=
@@ -121,23 +121,23 @@ IF
+!
THEN
-
+
GRUPPO2
-
+
CONTO2
-
+
SOTTOCONTO2
-
+
DESCR2
-
+
SALDO2
#202 @
0
-=
+C;E;
#203 @
0
=
@@ -149,81 +149,81 @@ IF
THEN
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
#305-#306
-
+
SBILPREC
- #THIS @ 0 >
+ #THIS @ 0 E;
IF
#THIS @
#457 !
-"#354" HIDE
-"#454" SHOW
+"#354" HIDE
+"#454" SHOW
ELSE
-#THIS @ 0 <
+#THIS @ 0 C;
IF
0
#THIS @
-
#357 !
-"#354" SHOW
-"#454" HIDE
+"#354" SHOW
+"#454" HIDE
ELSE
#THIS @
#357 !
#THIS @
#457 !
-"#354" HIDE
-"#454" HIDE
+"#354" HIDE
+"#454" HIDE
THEN
THEN
-
+
#307+#308
#THIS @
0
->
+E;
IF
#THIS @
#F1.456 !
-"#353" HIDE
-"#453" SHOW
+"#353" HIDE
+"#453" SHOW
ELSE
#THIS @
0
-<
+C;
IF
0
#THIS @
-
#F1.356 !
-"#353" SHOW
-"#453" HIDE
+"#353" SHOW
+"#453" HIDE
ELSE
#THIS @
#F1.356 !
#THIS @
#F1.456 !
-"#353" HIDE
-"#453" HIDE
+"#353" HIDE
+"#453" HIDE
THEN
THEN
-
-
-
-
-
+
+
+
+
+
#305 @
#356 @
+
@@ -231,11 +231,11 @@ THEN
+
#THIS !
-
-
-
-
-
+
+
+
+
+
#306 @
#456 @
+
@@ -244,5 +244,5 @@ THEN
#THIS !
-
+
\ No newline at end of file
diff --git a/src/cg/cg1500a3.rep b/src/cg/cg1500a3.rep
index 3eeefb29f..1db70fd75 100644
--- a/src/cg/cg1500a3.rep
+++ b/src/cg/cg1500a3.rep
@@ -1,23 +1,23 @@
-
+
Stampa bilancio a sezioni contrapposte 3
-
-
-
+
+
+
#SYSTEM.FIRM
-
+
#SYSTEM.RAGSOC
-
-
- "Stampa bilancio a sezioni contrapposte"
+
+
+ "Stampa bilancio a sezioni contrapposte"
#CODES @
0
-<>
+C;E;
IF
-" esercizio "
+" esercizio "
+
#CODES @
+
@@ -25,86 +25,86 @@ THEN
#THIS !
-
-
+
+
-
+
DATASTAMPA
-
-
+
+
-
+
#PAGE
-
- "!INDIR"
+
+ "!INDIR"
GET_FIRM_DATA
-
-
+
+
DATAINI
-
-
+
+
DATALIM
-
+
TIPOST
-
-
+
+
-
-
- "!CF"
+
+
+ "!CF"
GET_FIRM_DATA
-
-
- "!IVA"
+
+
+ "!IVA"
GET_FIRM_DATA
-
+
TIPOCONTI
-
-
-
+
+
+
-
+
-
-
-
-
+
+
-
-
-
-
+
+
+
+
GRUPPO1
-
+
CONTO1
-
+
SOTTOCONTO1
-
+
DESCR1
-
+
SALDO1
#102 @
0
-=
+C;E;
#103 @
0
=
@@ -115,23 +115,23 @@ IF
+!
THEN
-
+
GRUPPO2
-
+
CONTO2
-
+
SOTTOCONTO2
-
+
DESCR2
-
+
SALDO2
#202 @
0
-=
+C;E;
#203 @
0
=
@@ -143,81 +143,81 @@ IF
THEN
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
#305-#306
-
+
SBILPREC
- #THIS @ 0 >
+ #THIS @ 0 E;
IF
#THIS @
#457 !
-"#354" HIDE
-"#454" SHOW
+"#354" HIDE
+"#454" SHOW
ELSE
-#THIS @ 0 <
+#THIS @ 0 C;
IF
0
#THIS @
-
#357 !
-"#354" SHOW
-"#454" HIDE
+"#354" SHOW
+"#454" HIDE
ELSE
#THIS @
#357 !
#THIS @
#457 !
-"#354" HIDE
-"#454" HIDE
+"#354" HIDE
+"#454" HIDE
THEN
THEN
-
+
#307-#308
#THIS @
0
->
+E;
IF
#THIS @
#F1.456 !
-"#353" HIDE
-"#453" SHOW
+"#353" HIDE
+"#453" SHOW
ELSE
#THIS @
0
-<
+C;
IF
0
#THIS @
-
#F1.356 !
-"#353" SHOW
-"#453" HIDE
+"#353" SHOW
+"#453" HIDE
ELSE
#THIS @
#F1.356 !
#THIS @
#F1.456 !
-"#353" HIDE
-"#453" HIDE
+"#353" HIDE
+"#453" HIDE
THEN
THEN
-
-
-
-
-
+
+
+
+
+
#305 @
#356 @
+
@@ -225,11 +225,11 @@ THEN
+
#THIS !
-
-
-
-
-
+
+
+
+
+
#306 @
#456 @
+
@@ -238,5 +238,5 @@ THEN
#THIS !
-
+
\ No newline at end of file
diff --git a/src/fp01/fp0100.cpp b/src/fp01/fp0100.cpp
index 12e1d0490..a9368c86d 100644
--- a/src/fp01/fp0100.cpp
+++ b/src/fp01/fp0100.cpp
@@ -5,7 +5,7 @@
#include // ID Bottoni
#include "fp0.h"
-#include "fp0100a.h"
+#include "fp0100a01.h"
#include
#include "recset.h"
#include "progind.h"
@@ -312,7 +312,7 @@ bool TParametri_ditta::create()
void TParametri_ditta::main_loop()
{
- TParametri_mask pm("fp0100a");
+ TParametri_mask pm("fp0100a01");
while (pm.run() == K_ENTER)
pm.save_all();
}
diff --git a/src/fp01/fp0100a.h b/src/fp01/fp0100a01.h
similarity index 100%
rename from src/fp01/fp0100a.h
rename to src/fp01/fp0100a01.h
diff --git a/src/fp01/fp0100a.uml b/src/fp01/fp0100a01.uml
similarity index 99%
rename from src/fp01/fp0100a.uml
rename to src/fp01/fp0100a01.uml
index 88e3724fd..09421888e 100644
--- a/src/fp01/fp0100a.uml
+++ b/src/fp01/fp0100a01.uml
@@ -1,4 +1,4 @@
-#include "fp0100a.h"
+#include "fp0100a01.h"
TOOLBAR "topbar" 0 0 0 2
#include
diff --git a/src/fp01/fp0200.cpp b/src/fp01/fp0200.cpp
index 52e9f3c0f..a5c49bffc 100644
--- a/src/fp01/fp0200.cpp
+++ b/src/fp01/fp0200.cpp
@@ -9,7 +9,7 @@
#include "../ve01/velib05.h"
#include "fp0.h"
-#include "fp0200a.h"
+#include "fp0200a01.h"
/////////////////////////////////////////////////////////////////////////////////////
// TCC_mask
@@ -24,7 +24,7 @@ protected:
void save_all();
public:
- TCC_mask() : TAutomask("fp0200a") {}
+ TCC_mask() : TAutomask("fp0200a01") {}
};
bool TCC_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
diff --git a/src/fp01/fp0200a.h b/src/fp01/fp0200a01.h
similarity index 100%
rename from src/fp01/fp0200a.h
rename to src/fp01/fp0200a01.h
diff --git a/src/fp01/fp0200a.uml b/src/fp01/fp0200a01.uml
similarity index 99%
rename from src/fp01/fp0200a.uml
rename to src/fp01/fp0200a01.uml
index 27a0b28f0..8390b4350 100644
--- a/src/fp01/fp0200a.uml
+++ b/src/fp01/fp0200a01.uml
@@ -1,4 +1,4 @@
-#include "fp0200a.h"
+#include "fp0200a01.h"
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_RECALC 2 2
diff --git a/src/fp01/fp0300.cpp b/src/fp01/fp0300.cpp
index 6dc945d60..02913b252 100644
--- a/src/fp01/fp0300.cpp
+++ b/src/fp01/fp0300.cpp
@@ -11,8 +11,8 @@
#include "fp0.h"
-#include "fp0300a.h"
-#include "fp0100a.h"
+#include "fp0300a01.h"
+#include "fp0100a01.h"
/////////////////////////////////////////////////////////////////////////////////////
// Globals
@@ -419,7 +419,7 @@ bool TPA_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
doc.put(DOC_ANNO, docs.get_int_row_cell(row, S_ANNO));
doc.put(DOC_CODNUM, docs.get_str_row_cell(row, S_CODNUM));
doc.put(DOC_NDOC, docs.get_long_row_cell(row, S_NDOC));
- if (doc.edit(LF_DOC, "", "ve0")) // Perchè prima andava senza dovergli mettere nulla? perchè era in install.ini la chiamata
+ if (doc.edit(LF_DOC, "", "ve010 -0")) // Perchè prima andava senza dovergli mettere nulla? perchè era in install.ini la chiamata
fill_docs();
}
break;
@@ -494,7 +494,7 @@ bool TPA_mask::check_full_fields() const
return true;
}
-TPA_mask::TPA_mask() : TAutomask("fp0300a"), _dirty(true)
+TPA_mask::TPA_mask() : TAutomask("fp0300a01"), _dirty(true)
{
disable(DLG_OK);
disable(DLG_FINDREC);
diff --git a/src/fp01/fp0300a.h b/src/fp01/fp0300a01.h
similarity index 100%
rename from src/fp01/fp0300a.h
rename to src/fp01/fp0300a01.h
diff --git a/src/fp01/fp0300a.uml b/src/fp01/fp0300a01.uml
similarity index 99%
rename from src/fp01/fp0300a.uml
rename to src/fp01/fp0300a01.uml
index 55f3b063d..67a84c4a7 100644
--- a/src/fp01/fp0300a.uml
+++ b/src/fp01/fp0300a01.uml
@@ -1,4 +1,4 @@
-#include "fp0300a.h"
+#include "fp0300a01.h"
TOOLBAR "topbar" 0 0 0 2
diff --git a/src/fp01/fp0400.cpp b/src/fp01/fp0400.cpp
index c18b1eb39..c6d861ee4 100644
--- a/src/fp01/fp0400.cpp
+++ b/src/fp01/fp0400.cpp
@@ -8,7 +8,7 @@
#include
#include
-#include "fp0400a.h"
+#include "fp0400a01.h"
#include "fplib.h"
#include "../ve01/velib.h"
#include "../ve01/vepriv.h"
@@ -113,7 +113,7 @@ bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long joll
doc.put(DOC_ANNO, sf.get_int_row_cell(row, S_ANNO));
doc.put(DOC_CODNUM, sf.get_str_row_cell(row, S_CODNUM));
doc.put(DOC_NDOC, ndoc);
- doc.edit();
+ doc.edit(LF_DOC, "", "ve010 -0");
doc.read();
TDocumento d(doc);
@@ -1397,7 +1397,7 @@ void TPassive_mask::filter()
}
}
-TPassive_mask::TPassive_mask() : TAutomask("fp0400a"), _filter_changed(true)
+TPassive_mask::TPassive_mask() : TAutomask("fp0400a01"), _filter_changed(true)
{
TList_field & stile = lfield(F_STILE_SDI);
TToken_string codes;
@@ -1436,14 +1436,12 @@ void TPassive_app::main_loop()
{
TPassive_mask mask;
- if (has_module(F1AUT))
- {
- load_mask(mask);
- mask.first_focus(F_DATAINI);
- check_acquisti();
- while (mask.run() == K_ENTER) {}
- save_field(mask);
- }
+ load_mask(mask);
+ mask.first_focus(F_DATAINI);
+ check_acquisti();
+ while (mask.run() == K_ENTER) {}
+ save_field(mask);
+
}
bool TPassive_app::create()
diff --git a/src/fp01/fp0400a.h b/src/fp01/fp0400a01.h
similarity index 100%
rename from src/fp01/fp0400a.h
rename to src/fp01/fp0400a01.h
diff --git a/src/fp01/fp0400a.uml b/src/fp01/fp0400a01.uml
similarity index 99%
rename from src/fp01/fp0400a.uml
rename to src/fp01/fp0400a01.uml
index 5122d91e0..e92788605 100644
--- a/src/fp01/fp0400a.uml
+++ b/src/fp01/fp0400a01.uml
@@ -1,4 +1,4 @@
-#include "fp0400a.h"
+#include "fp0400a01.h"
TOOLBAR "topbar" 0 0 0 2
diff --git a/src/fp01/fp0700.cpp b/src/fp01/fp0700.cpp
index e1aac8f82..8fdae6265 100644
--- a/src/fp01/fp0700.cpp
+++ b/src/fp01/fp0700.cpp
@@ -16,8 +16,8 @@
#include "fplib.h"
#include "fp0.h"
-#include "fp0700a.h"
-#include "fp0100a.h"
+#include "fp0700a01.h"
+#include "fp0100a01.h"
/////////////////////////////////////////////////////////////////////////////////////
// TPAR_mask
@@ -480,7 +480,7 @@ bool TPAR_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
TToken_string& row = regs.row(regs.selected());
TMovimento_contabile mov(regs.get_long_row_cell(regs.selected(), S_NUMREG));
- if (mov.edit())
+ if (mov.edit(LF_MOV, "", "cg012 -0"))
fill();
}
break;
@@ -557,7 +557,7 @@ bool TPAR_mask::on_key(KEY key)
return ok;
}
-TPAR_mask::TPAR_mask() : TAutomask("fp0700a"), _dirty(true)
+TPAR_mask::TPAR_mask() : TAutomask("fp0700a01"), _dirty(true)
{
disable(DLG_OK);
disable(DLG_PDF);
diff --git a/src/fp01/fp0700a.h b/src/fp01/fp0700a01.h
similarity index 100%
rename from src/fp01/fp0700a.h
rename to src/fp01/fp0700a01.h
diff --git a/src/fp01/fp0700a.uml b/src/fp01/fp0700a01.uml
similarity index 99%
rename from src/fp01/fp0700a.uml
rename to src/fp01/fp0700a01.uml
index 931a383c7..6e594dbf6 100644
--- a/src/fp01/fp0700a.uml
+++ b/src/fp01/fp0700a01.uml
@@ -1,4 +1,4 @@
-#include "fp0700a.h"
+#include "fp0700a01.h"
TOOLBAR "topbar" 0 0 0 2
diff --git a/src/fp01/fp1100.cpp b/src/fp01/fp1100.cpp
index b974ea79e..8574f4f51 100644
--- a/src/fp01/fp1100.cpp
+++ b/src/fp01/fp1100.cpp
@@ -5,7 +5,7 @@
#include // ID Bottoni
#include "fp1.h"
-#include "fp1100a.h"
+#include "fp1100a01.h"
#include
#include "recset.h"
#include "progind.h"
@@ -18,7 +18,7 @@ protected:
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
void fill();
public:
- TBolliinfatt_mask() : TAutomask("fp1100a"){};
+ TBolliinfatt_mask() : TAutomask("fp1100a01"){};
};
bool TBolliinfatt_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
diff --git a/src/fp01/fp1100a.h b/src/fp01/fp1100a01.h
similarity index 100%
rename from src/fp01/fp1100a.h
rename to src/fp01/fp1100a01.h
diff --git a/src/fp01/fp1100a.uml b/src/fp01/fp1100a01.uml
similarity index 99%
rename from src/fp01/fp1100a.uml
rename to src/fp01/fp1100a01.uml
index 3d717ff2d..890e7e881 100644
--- a/src/fp01/fp1100a.uml
+++ b/src/fp01/fp1100a01.uml
@@ -1,4 +1,4 @@
-#include "fp1100a.h"
+#include "fp1100a01.h"
TOOLBAR "topbar" 0 0 0 2
diff --git a/src/fp01/fp1200.cpp b/src/fp01/fp1200.cpp
index 247c11438..81b36cd39 100644
--- a/src/fp01/fp1200.cpp
+++ b/src/fp01/fp1200.cpp
@@ -10,7 +10,7 @@
#include "../fe/felib.h"
#include "fp0.h"
-#include "fp1200a.h"
+#include "fp1200a01.h"
/////////////////////////////////////////////////////////////////////////////////////
// Globals
@@ -43,7 +43,7 @@ protected:
bool _filter_changed;
friend class TMancati_app;
public:
- TMancati_mask() : TAutomask("fp1200a"), _filter_changed(true)
+ TMancati_mask() : TAutomask("fp1200a01"), _filter_changed(true)
{
disable(DLG_OK);
_idx = -1;
diff --git a/src/fp01/fp1200a.h b/src/fp01/fp1200a01.h
similarity index 100%
rename from src/fp01/fp1200a.h
rename to src/fp01/fp1200a01.h
diff --git a/src/fp01/fp1200a.uml b/src/fp01/fp1200a01.uml
similarity index 99%
rename from src/fp01/fp1200a.uml
rename to src/fp01/fp1200a01.uml
index e75427694..dce6d87b4 100644
--- a/src/fp01/fp1200a.uml
+++ b/src/fp01/fp1200a01.uml
@@ -1,4 +1,4 @@
-#include "fp1200a.h"
+#include "fp1200a01.h"
TOOLBAR "topbar" 0 0 0 2
diff --git a/src/fp01/fpmenu.men b/src/fp01/fpmenu.men
deleted file mode 100644
index 9ad52a98f..000000000
--- a/src/fp01/fpmenu.men
+++ /dev/null
@@ -1,28 +0,0 @@
-[FPMENU_001]
-Caption = "Trasferimento Fatture"
-Picture =
-Module = fp
-Flags = ""
-Item_01 = "Manutenzione modulo", [FPMENU_003]
-Item_02 = "Invio fatture", "fp0 -2", ""
-Item_03 = "Invio Integrazioni", "fp0 -6", ""
-Item_04 = "Monitor Fatture Passive", "fp0 -3", ""
-Item_05 = "FEPA", "fepa\fepa.exe", ""
-Item_06 = "Stampe", [FPMENU_002]
-
-[FPMENU_002]
-Caption = "Stampe"
-Picture =
-Module = fp
-Flags = ""
-Item_01 = "Elenco Mancata Consegna", "fp1 -1", ""
-Item_02 = "Elenco bolli in fattura", "fp1 -0", ""
-
-[FPMENU_003]
-Caption = "Manutenzione"
-Picture =
-Module = fp
-Flags = ""
-Item_01 = "Configurazione", "fp0 -0", "", 10210
-Item_02 = "Inserimento riferimenti C/F", "fp0 -1", ""
-Item_03 = "Causali per numerazione", "ba3 -0 %cnt", ""
diff --git a/src/fp01/fpmenuf.men b/src/fp01/fpmenuf.men
new file mode 100644
index 000000000..7abf9fd73
--- /dev/null
+++ b/src/fp01/fpmenuf.men
@@ -0,0 +1,30 @@
+[FPMENUF_001]
+Caption = "Trasferimento Fatture"
+Picture =
+Module = fp
+Flags = ""
+Item_01 = "Manutenzione modulo", [FPMENUF_002]
+Item_02 = "Invio fatture", "fp010 -2", ""
+Item_03 = "Invio Integrazioni", "fp010 -6", ""
+Item_04 = "Monitor Fatture Passive", "fp010 -3", ""
+Item_04 = "Ducumenti interattivi (FEPA)", "ve010 -0", ""
+Item_04 = "Prima nota (FEPA)", "cg012 -0", ""
+Item_05 = "FEPA", "fepa\fepa.exe", ""
+Item_06 = "Stampe", [FPMENUF_003]
+
+[FPMENUF_003]
+Caption = "Stampe"
+Picture =
+Module = fp
+Flags = ""
+Item_01 = "Elenco Mancata Consegna", "fp011 -1", ""
+Item_02 = "Elenco bolli in fattura", "fp011 -0", ""
+
+[FPMENUF_002]
+Caption = "Manutenzione"
+Picture =
+Module = fp
+Flags = ""
+Item_01 = "Configurazione", "fp010 -0", "", 10210
+Item_02 = "Inserimento riferimenti C/F", "fp010 -1", ""
+Item_03 = "Causali per numerazione", "ve0 -4 %cnt", ""
diff --git a/src/include/defmask.h b/src/include/defmask.h
index ec876b31f..26d67a58b 100755
--- a/src/include/defmask.h
+++ b/src/include/defmask.h
@@ -60,6 +60,7 @@
#define DLG_REPORT 56 /* TAG del campo */
#define DLG_OGGETTI 57 /* TAG del campo */
#define DLG_CARTACEI 58 /* TAG del campo */
+#define DLG_RESTORE 59 /* TAG del bottone restore */
#define DLG_USER 100 /* TAG del primo controllo definito dall'utente */
@@ -124,6 +125,7 @@
#define CHECK_IBAN_FUNC 24 10
#define CHECK_BBAN_FUNC 25 5
#define NOT_EMPTY_CHECK_TARGET 21 1
+#define VAL_IBAN_FUNC 26 0
#define VALEXPR VALIDATE EXPR_FUNC
#define NUM_EXPR VALEXPR 0
diff --git a/src/include/urldefid.h b/src/include/urldefid.h
index 7b01aa5e0..5bae0e883 100755
--- a/src/include/urldefid.h
+++ b/src/include/urldefid.h
@@ -103,6 +103,8 @@
#define BMP_FONT 179
#define BMP_COPY 180
#define BMP_PASTE 181
+#define BMP_GENERA 183
+#define BMP_XML 184
#define BMP_DARROWU 185
#define BMP_DARROWD 186
@@ -118,9 +120,9 @@
#define BMP_DARROWD2 196
#define BMP_SARROWU 197
#define BMP_SARROWD 198
-
#define BMP_PAGAMENTO 224
#define BMP_INSOLUTO 225
+#define BMP_CHECK2 231
//immagini bottoni barre strumenti principali
//-------------------------------------------
@@ -147,6 +149,13 @@
#define TOOL_LASTREC 125
#define TOOL_FINDREC 126
+#define TOOL_MOVEUP 240
+#define TOOL_MOVEDN 241
+#define TOOL_COPYROW 242
+#define TOOL_COPYALLROW 243
+#define TOOL_PASTEROW 244
+#define TOOL_TEMPLATE 245
+
#define TOOL_CHECK 131
#define TOOL_OLE 135
#define TOOL_EMAIL 139
@@ -173,6 +182,8 @@
#define TOOL_PASTE 181
#define TOOL_EXCEL 183
#define TOOL_RESET 184
+#define TOOL_GENERA 185
+#define TOOL_XML 186
#define TOOL_ALT 201
#define TOOL_QUESTION 202
#define TOOL_WARNING 203
diff --git a/src/include01/alex.cpp b/src/include01/alex.cpp
index e130202bb..3afa10c24 100644
--- a/src/include01/alex.cpp
+++ b/src/include01/alex.cpp
@@ -1233,14 +1233,9 @@ bool TAlex_virtual_machine::get_usr_val(const TString& name, TVariant& var) cons
if (n == "RAGSOC")
{
const long code = prefix().get_codditta();
- TString ragsoc;
const TRectype & ditta = cache().get(LF_NDITTE, code);
- TDate data_var = ditta.get(NDT_DATAVAR);
+ const TString ragsoc = ditta.get(NDT_RAGSOC);
- if (data_var.ok() && data_var < avm_date())
- ragsoc = ditta.get(NDT_NRAGSOC);
- if (ragsoc.blank())
- ragsoc = ditta.get(NDT_RAGSOC);
var.set(ragsoc);
return true;
}
@@ -1249,22 +1244,9 @@ bool TAlex_virtual_machine::get_usr_val(const TString& name, TVariant& var) cons
const long code = prefix().get_codditta();
const TRectype& ditta = cache().get(LF_NDITTE, code);
TToken_string key;
- TString ragsoc;
- TString4 tipoa;
- long codanagr = 0L;
-
- TDate data_var = ditta.get(NDT_DATAVAR);
+ const TString4 tipoa = ditta.get(NDT_TIPOA);
+ const long codanagr = ditta.get_long(NDT_CODANAGR);
- if (data_var.ok() && data_var < avm_date())
- {
- tipoa = ditta.get(NDT_NTIPOA);
- codanagr = ditta.get_long(NDT_NCODANAGR);
- }
- if (codanagr == 0L)
- {
- tipoa = ditta.get(NDT_TIPOA);
- codanagr = ditta.get_long(NDT_CODANAGR);
- }
key.add(tipoa);
key.add(codanagr);
diff --git a/src/include01/bagn001a.h b/src/include01/bagn001a.h
index 4a71d9c11..28586504c 100644
--- a/src/include01/bagn001a.h
+++ b/src/include01/bagn001a.h
@@ -5,7 +5,6 @@
#define MSK_PRINTERS 103
#define MSK_DEFAULT 104
#define MSK_ORIENTATION 333
-#define MSK_ISGRAPHICS 334
#define MSK_SIZE 335
#define MSK_LINES 336
#define MSK_FONT 338
diff --git a/src/include01/bagn001a.uml b/src/include01/bagn001a.uml
index 6b07e2cde..8f9a27999 100644
--- a/src/include01/bagn001a.uml
+++ b/src/include01/bagn001a.uml
@@ -87,12 +87,6 @@ BEGIN
GROUP 1
END
-BOOLEAN MSK_ISGRAPHICS
-BEGIN
- PROMPT 46 8 "Elementi grafici"
- GROUP 1
-END
-
ENDPAGE
TOOLBAR "bottombar" 0 0 0 2
diff --git a/src/include01/bagn003.h b/src/include01/bagn003.h
index 6a38cebd8..ba8a40fc5 100644
--- a/src/include01/bagn003.h
+++ b/src/include01/bagn003.h
@@ -1,7 +1,6 @@
#define F_PRINTER 101
#define F_FONT 102
#define F_SIZE 103
-#define F_ISGRAPHICS 104
#define F_COPIES 105
#define F_FROMPAGE 106
#define F_TOPAGE 107
diff --git a/src/include01/bagn003.uml b/src/include01/bagn003.uml
index 75aa06fb5..080e0265f 100644
--- a/src/include01/bagn003.uml
+++ b/src/include01/bagn003.uml
@@ -55,12 +55,6 @@ BEGIN
FLAGS "D"
END
-BOOLEAN F_ISGRAPHICS
-BEGIN
- PROMPT 44 7 "Elementi grafici"
- FLAGS "D"
-END
-
GROUPBOX DLG_NULL 72 4
BEGIN
PROMPT 1 9 "@bSelezione"
diff --git a/src/include01/form.cpp b/src/include01/form.cpp
index 95ab7d6ad..6e65cf1f3 100644
--- a/src/include01/form.cpp
+++ b/src/include01/form.cpp
@@ -4244,23 +4244,13 @@ bool TForm::validate(TForm_item &cf, TToken_string &s)
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di residenza fiscale
const TRectype& firm = cache().get(LF_NDITTE, main_app().get_firm());
- TString tipoa;
- long codanagr = 0L ;
+ const TString tipoa = firm.get(NDT_TIPOA);
+ const long codanagr = firm.get_long(NDT_CODANAGR);
TToken_string key;
- const bool variata = firm.get_date(NDT_DATAVAR) < form_date();
-
- if (variata)
- {
- tipoa = firm.get(NDT_NTIPOA);
- codanagr = firm.get_long(NDT_NCODANAGR);
- }
- if (codanagr == 0L)
- {
- tipoa = firm.get(NDT_TIPOA);
- codanagr = firm.get_long(NDT_CODANAGR);
- }
+
key.add(tipoa);
key.add(codanagr);
+
const TRectype& anag = cache().get(LF_ANAG, key);
TString in(s.get());
@@ -4272,7 +4262,7 @@ bool TForm::validate(TForm_item &cf, TToken_string &s)
valore = firm.get(NDT_CODDITTA);
else
if (in==NDT_RAGSOC)
- valore = variata ? firm.get(NDT_NRAGSOC): firm.get(NDT_RAGSOC);
+ valore = firm.get(NDT_RAGSOC);
else
if (in=="IND")
{
diff --git a/src/include01/maskfld.cpp b/src/include01/maskfld.cpp
index 733ecc82e..46c897943 100644
--- a/src/include01/maskfld.cpp
+++ b/src/include01/maskfld.cpp
@@ -1,4 +1,4 @@
-// Disble annoying vsprintf warnings
+// Disable annoying vsprintf warnings
#define _CRT_SECURE_NO_WARNINGS
#include
@@ -216,15 +216,15 @@ void TMask_field::update_flags(const char* f, bool reset)
}
TMask_field::TMask_field(TMask* m)
- : _mask(m), _groups(nullptr), _modules(nullptr), _ctl(nullptr), _x(0), _y(0)
+ : _mask(m), _groups(NULL), _modules(NULL), _ctl(NULL), _x(0), _y(0)
{ }
// Certified 100%
TMask_field::~TMask_field()
{
- safe_delete(_ctl);
- safe_delete(_groups);
- safe_delete(_modules);
+ if (_ctl) delete _ctl;
+ if (_groups) delete _groups;
+ if (_modules) delete _modules;
}
// Certified 100%
@@ -429,7 +429,6 @@ void TMask_field::construct(TScanner& scanner, WINDOW parent)
for (; mod > BAAUT; mod--)
{
const word m = (word)mod;
-
if (in_module(m) && main_app().has_module(m))
break;
}
@@ -448,7 +447,7 @@ void TMask_field::destroy()
void TMask_field::set_group(byte group)
{
- if (_groups == nullptr)
+ if (_groups == NULL)
_groups = new TBit_array;
_groups->set(long(group));
_groups->set(0L);
@@ -496,7 +495,7 @@ bool TMask_field::parse_item(TScanner& scanner)
if (scanner.key() == "GR") // GROUPS
{
- if (_groups == nullptr)
+ if (_groups == NULL)
_groups = new TBit_array;
_groups->set(scanner.line());
@@ -944,7 +943,7 @@ void TGroup_field::create(WINDOW parent)
///////////////////////////////////////////////////////////
TOperable_field::TOperable_field(TMask* m)
- : TMask_field(m), _message(nullptr), _handler(nullptr), _help(nullptr)
+ : TMask_field(m), _message(NULL), _handler(NULL), _help(NULL)
{ }
TOperable_field::~TOperable_field()
@@ -955,9 +954,8 @@ TOperable_field::~TOperable_field()
TToken_string* TOperable_field::message(int m, bool crea)
{
- TToken_string* msg = _message ? _message->rowptr(m) : nullptr;
-
- if (msg == nullptr && crea)
+ TToken_string* msg = _message ? _message->rowptr(m) : NULL;
+ if (msg == NULL && crea)
{
if (_message == nullptr)
_message = new TString_array(2);
@@ -1034,13 +1032,12 @@ bool TOperable_field::on_key(
p.add_prop(TR("Personalizzata"), fn.find("custom") > 0 ? "Si" : "No");
if (mask().get_sheet() != nullptr)
p.add_prop(TR("Spreadsheet"), mask().get_sheet()->dlg());
-
p.add_cat(TR("Informazioni"));
TString16 id; id << dlg();
// p.add_prop(TR("Tipo"), class_name()); // Per ora ritorna sempre "Field"!
p.add_prop(TR("Identificatore"), id);
p.add_prop(TR("Lunghezza"), long(size()));
- if (_help != nullptr)
+ if (_help != NULL)
p.add_prop(TR("Help"), *_help);
p.add_prop(TR("Obbligatorio"), required() ? TR("Si") : TR("No"));
@@ -1069,7 +1066,6 @@ bool TOperable_field::on_key(
{
const TEdit_field& ef = (TEdit_field&)*this;
const TBrowse* b = ef.browse();
-
if (b != nullptr && b->cursor() != nullptr)
id = b->cursor()->file(0).name();
}
@@ -1122,7 +1118,7 @@ HIDDEN const char* copy_value(TToken_string& msg, const TString& val)
int to = -1;
if (from < 0) from = 0;
else to = msg.get_int();
- return get_tmp_string() = val.sub(from, to);
+ return get_tmp_string() = val.ssub(from, to);
}
HIDDEN void run_app(TMask& mask, TToken_string& msg)
@@ -1178,7 +1174,6 @@ bool TOperable_field::do_message(int num)
};
TToken_string* mess = message(num);
-
if (mess == nullptr || mess->empty())
return false;
@@ -1555,15 +1550,14 @@ void TButton_field::set_central_icon(unsigned icon)
///////////////////////////////////////////////////////////
TEditable_field::TEditable_field(TMask* m)
- : TLoadable_field(m), _field(nullptr), _prompt(nullptr), _keys(nullptr),
- _warning(nullptr), _drivers(nullptr), _userdata(nullptr), _validate(nullptr)
+ : TLoadable_field(m), _field(NULL), _prompt(NULL), _keys(NULL),
+ _warning(NULL), _drivers(NULL), _userdata(NULL), _validate(NULL)
{ }
TEditable_field::~TEditable_field()
{
safe_delete(_prompt);
- safe_delete(_field);
safe_delete(_keys);
safe_delete(_validate);
safe_delete(_warning);
@@ -1579,7 +1573,7 @@ void TEditable_field::set_warning(const char* w)
else
_warning = new TString(w);
if (_warning->empty())
- safe_delete(_warning);
+ safe_delete(_warning);
}
// Certified 100%
@@ -1599,7 +1593,6 @@ void TEditable_field::reset_driver(short id)
for (int f = _drivers->last(); f >= 0; f--)
{
const short fid = (short)_drivers->get_long(f);
-
if (fid == id)
_drivers->destroy(f, true);
}
@@ -1615,18 +1608,18 @@ bool TEditable_field::add_driver(short id)
_drivers = new TPointer_array;
_drivers->add_long(id);
}
-
return id != 0;
}
TOperable_field* TEditable_field::get_driver(int n, bool test) const
{
TOperable_field* driver = nullptr;
-
- if (_drivers != nullptr)
+
+ if (_drivers != nullptr)
{
const short id = (short)_drivers->get_long(n);
- if (id != 0)
+
+ if (id != 0)
{
if (id < 0)
{
@@ -1648,8 +1641,7 @@ TOperable_field* TEditable_field::get_driver(int n, bool test) const
{
TString16 msg; msg.format("CHECK,%d", dlg());
TToken_string* tok = driver->message(0, false);
-
- if (tok == nullptr || tok->get_pos(msg) < 0)
+ if (tok == NULL || tok->get_pos(msg) < 0)
driver->message(0, true)->add(msg);
}
}
@@ -1683,10 +1675,10 @@ const char* TEditable_field::get_warning() const
while ((pos = str.find("#")) >= 0)
{
if (pos > 0)
- msg << str.left(pos);
+ msg << str.sleft(pos);
int space_pos = str.find(" ", pos);
- short fld = atoi(str.mid(pos + 1, space_pos - pos - 1));
+ short fld = atoi(str.smid(pos + 1, space_pos - pos - 1));
if (fld == 0)
msg << get();
@@ -1814,8 +1806,10 @@ word TEditable_field::first_key() const
{
if (_keys == nullptr)
return 0;
+
const int last = last_key();
int i;
+
for (i = 1; i <= last; i++)
if (in_key(i) == true)
break;
@@ -1863,7 +1857,7 @@ void TEditable_field::reset_key(byte key)
{
_keys->reset(long(key));
if (key == 0 || last_key() == 0)
- safe_delete(_keys); // Se non ci sono piu' chiavi azzera tutto
+ safe_delete(_keys); // Se non ci sono piu' chiavi azzera tutto
}
}
@@ -2014,7 +2008,7 @@ bool TEditable_field::autosave(TRelation& r)
{
if (_field)
_field->write(get(), r);
- return _field != nullptr;
+ return _field != NULL;
}
bool TEditable_field::autoload(const TRelation& r)
@@ -2063,7 +2057,7 @@ void TBoolean_field::set_window_data(const char* data)
TString& TBoolean_field::get_window_data()
{
- const bool on = _ctl != nullptr && ((TCheckbox_control*)_ctl)->checked();
+ const bool on = _ctl != NULL && ((TCheckbox_control*)_ctl)->checked();
_str = on ? "X" : "";
return _str;
}
@@ -2161,12 +2155,12 @@ TCheckbutton_field::TCheckbutton_field(TMask* mask) : TBoolean_field(mask)
TEdit_field::TEdit_field(TMask* mask)
: TEditable_field(mask), _check(CHECK_NONE),
- _forced(false), _check_enabled(false), _browse(nullptr)
+ _forced(false), _check_enabled(false), _browse(nullptr), _autobrowse(true)
{ }
TEdit_field::~TEdit_field()
{
- safe_delete(_browse);
+ safe_delete(_browse);
}
word TEdit_field::class_id() const
@@ -2208,26 +2202,31 @@ void TEdit_field::parse_head(TScanner& scanner)
const TBrowse* TEdit_field::parse_browse(TScanner& scanner) const
{
- const TBrowse* b = nullptr;
+ const TBrowse* b = nullptr;
short id = scanner.integer();
if (id != 0)
{
const TMask* m = &mask();
- if (id < 0)
+
+ if (id < 0)
{
TSheet_field* sh = m->get_sheet();
+
if (sh != nullptr)
{
m = &sh->mask();
id = -id;
}
}
- const int pos = m->id2pos(id);
- if (pos >= 0)
+
+ const int pos = m->id2pos(id);
+
+ if (pos >= 0)
{
const TMask_field& f = m->fld(pos);
- if (f.is_edit())
+
+ if (f.is_edit())
b = ((TEdit_field&)f).browse();
}
}
@@ -2284,7 +2283,7 @@ bool TEdit_field::parse_item(TScanner& scanner)
#endif
int key = 1, altkey = 0;
- TRelation* r = nullptr;
+ TRelation* r = NULL;
TString16 tablename = scanner.pop();
const int logicnum = table2logic(tablename);
@@ -2316,7 +2315,7 @@ bool TEdit_field::parse_item(TScanner& scanner)
const TString& k = scanner.pop();
key = atoi(k);
- const int maxkey = r ? r->curr().rec_des().NKeys : MAX_KEYS;
+ const int maxkey = r ? r->curr().rec_des().nkeys() : MAX_KEYS;
if (key <= 0 || key > maxkey)
{
#ifdef DBG
@@ -2329,7 +2328,7 @@ bool TEdit_field::parse_item(TScanner& scanner)
{
const int par = k.find('(');
if (par > 0)
- altkey = atoi(k.mid(par+1));
+ altkey = atoi(k.smid(par+1));
if (altkey <= 2 || altkey > maxkey)
{
@@ -2423,6 +2422,7 @@ bool TEdit_field::parse_item(TScanner& scanner)
{
const TString8 what = scanner.popkey();
const TBrowse* b = parse_browse(scanner);
+
if (b)
{
if (what == "US" || what == "AL")
@@ -2534,7 +2534,8 @@ bool TEdit_field::parse_item(TScanner& scanner)
{
TString& l = scanner.line().strip_spaces();
int m = 0;
- if (l[0] == '0')
+
+ if (l[0] == '0')
{
l.ltrim(1);
l.ltrim();
@@ -2550,6 +2551,7 @@ bool TEdit_field::parse_item(TScanner& scanner)
void TEdit_field::set_background()
{
COLOR c = NORMAL_BACK_COLOR;
+
if (enabled())
{
int status = required() ? 1 : 0;
@@ -2588,7 +2590,9 @@ void TEdit_field::set_read_only(bool r)
if (r != read_only())
{
TMask_field::set_read_only(r);
+
const bool ok = r == read_only();
+
if (ok)
{
set_background();
@@ -2596,6 +2600,7 @@ void TEdit_field::set_read_only(bool r)
{
TToken_string out_ids(((TBrowse*)_browse)->get_output_fields());
TMask& m = mask();
+
FOR_EACH_TOKEN(out_ids, fld)
m.field(atoi(fld)).set_read_only(r);
}
@@ -2794,12 +2799,10 @@ bool TEdit_field::on_key(KEY key)
if (class_id() == CLASS_EDIT_FIELD) // Altrimenti l'ha gia' fatto
{
const TString& raw = get_window_data();
-
set_window_data(raw2win(raw));
}
bool ok = validate(key); // Check validation expression
-
if (!ok)
{
if (has_warning())
@@ -2821,7 +2824,7 @@ bool TEdit_field::on_key(KEY key)
if (!query || forced())
{
ok = _browse->check();
- if (autobrowse() && !ok && m.is_running())
+ if (!ok && m.is_running())
{
do_events();
ok = on_key(K_F9);
@@ -2867,7 +2870,7 @@ bool TEdit_field::on_key(KEY key)
}
break;
case K_ENTER:
-// if (field() != nullptr || mask().mode() == NO_MODE)
+// if (field() != NULL || mask().mode() == NO_MODE)
{
bool ok = validate(K_ENTER); // Check validation expression
if (!ok)
@@ -2998,7 +3001,6 @@ bool TEdit_field::on_key(KEY key)
bool TEdit_field::has_check() const
{
bool ok = false;
-
if (_browse)
ok = browse() == nullptr || check_type() != CHECK_NONE;
return ok;
@@ -3105,9 +3107,9 @@ const char* TDate_field::win2raw(
switch(items)
{
case 1:
- d = atoi(s.left(2));
- m = atoi(s.mid(2, 2));
- y = atoi(s.mid(4));
+ d = atoi(s.sleft(2));
+ m = atoi(s.smid(2, 2));
+ y = atoi(s.smid(4));
break;
case 2:
y = 0;
@@ -3263,7 +3265,6 @@ bool TDate_field::autosave(TRelation& r)
if (field() != nullptr)
{
const char* td = get();
-
if (right_justified())
{
TDate d(td);
@@ -3308,11 +3309,10 @@ void TReal_field::create(WINDOW w)
int anno = oggi.year(); // Anno solare o ...
if (previous())
anno--;
- if (has_query_button() && browse() != nullptr && browse()->cursor() != nullptr)
+ if (has_query_button() && browse() != NULL && browse()->cursor() != NULL)
{
TCursor& cur = *browse()->cursor();
const TRecnotype ne = cur.items();
-
if (ne > 0 && xvt_str_same(cur.file(0).name(), "ESC")) // ... codice esercizio?
{
const TRectype& esc = cur.curr();
@@ -3320,7 +3320,8 @@ void TReal_field::create(WINDOW w)
{
const TDate dataini = esc.get("D0");
const TDate datafin = esc.get("D1");
- if (oggi >= dataini && oggi <= datafin)
+
+ if (oggi >= dataini && oggi <= datafin)
{
anno = esc.get_int("CODTAB");
break;
@@ -3433,9 +3434,9 @@ bool TReal_field::on_key(KEY key)
break;
default :
if (_flags.roman)
- ok = strchr("0123456789IVXLCDMivxlcdm", key) != nullptr;
+ ok = strchr("0123456789IVXLCDMivxlcdm", key) != NULL;
else
- ok = strchr("0123456789", key) != nullptr;
+ ok = strchr("0123456789", key) != NULL;
break;
}
if (!ok)
@@ -3614,11 +3615,14 @@ TCurrency& TCurrency_field::get_currency(TCurrency& cur) const
const char* value = nullptr;
real exchange;
const TMask_field* d0 = driver(0);
+
if (d0)
{
value = d0->get();
- const TMask_field* d1 = driver(1);
- if (d1)
+
+ const TMask_field* d1 = driver(1);
+
+ if (d1)
exchange = real(d1->get());
}
@@ -3631,9 +3635,13 @@ TCurrency& TCurrency_field::get_currency(TCurrency& cur) const
void TCurrency_field::set(const TCurrency& cur, bool hit)
{
TMask_field* d0 = (TMask_field*)driver(0);
- if (d0) d0->set(cur.get_value());
- const real& num = cur.get_num();
- if (num.is_zero())
+
+ if (d0)
+ d0->set(cur.get_value());
+
+ const real& num = cur.get_num();
+
+ if (num.is_zero())
TEdit_field::set("");
else
TEdit_field::set(num.string());
@@ -3652,7 +3660,7 @@ const char* TCurrency_field::raw2win(const char* data) const
if (num == ZERO)
return "";
const TMask_field* d0 = driver(0);
- const char* value = d0 ? (const char*)d0->get() : nullptr;
+ const char* value = d0 ? (const char*)d0->get() : NULL;
const bool price = _flags.uppercase != 0;
TCurrency cur(num, value, ZERO, price);
@@ -3680,6 +3688,7 @@ const char* TCurrency_field::win2raw(const char* data) const
}
real num;
+
if (is_formula)
{
TExpression e(str, _numexpr, true);
@@ -3701,6 +3710,7 @@ const char* TCurrency_field::win2raw(const char* data) const
const char* value = d0 ? (const char*)d0->get() : nullptr;
const bool price = _flags.uppercase != 0;
TCurrency cur(num, value, ZERO, price);
+
str = cur.get_num().string();
}
return str;
@@ -3711,6 +3721,7 @@ bool TCurrency_field::on_key(KEY key)
if (key == K_TAB && focusdirty())
{
const TString& raw = get_window_data();
+
set_window_data(raw2win(raw));
}
else
@@ -3730,7 +3741,7 @@ bool TCurrency_field::on_key(KEY key)
return true;
break;
default :
- ok = strchr("0123456789.,+*-/()", key) != nullptr;
+ ok = strchr("0123456789.,+*-/()", key) != NULL;
break;
}
if (!ok)
@@ -4236,38 +4247,19 @@ const char* TMemo_field::reformat(const char* data) const
const char* TMemo_field::raw2win(const char* data) const
{
-//#ifdef XI_R4
if (strchr(data, '\r') == nullptr)
- return data;
+ return data;
+
TString& s = _ctl_data._park;
- s = data;
+
+ s = data;
s.replace('\r', '\n');
-/* #else
- if (strchr(data, '\n') == nullptr)
- return data;
-
- TString& s = _ctl_data._park;
- s = data;
- for (int i = 0; s[i]; i++)
- if (s[i] == '\n') s[i] = '\r';
-#endif */
return s;
}
const char* TMemo_field::win2raw(const char* data) const
{
-//#ifdef XI_R4
return data;
-/*
-#else
- if (strchr(data, '\r') == nullptr)
- return data;
- _ctl_data._park = data;
- for (char* s = (char*)(const char*)_ctl_data._park; *s; s++)
- if (*s == '\r') *s = '\n';
- return _ctl_data._park;
-#endif
-*/
}
bool TMemo_field::on_key(KEY k)
@@ -4349,7 +4341,7 @@ bool TZoom_field::on_key( KEY key )
get_window_data();
break;
case K_F9:
- if (browse() != nullptr)
+ if (browse() != NULL)
break;
case K_F8:
{
@@ -4440,6 +4432,3 @@ const char* TZoom_field::win2raw(const char* data) const
const char* TZoom_field::get_first_line() const
{ return raw2win(_str); }
-
-
-
diff --git a/src/include01/maskfld.h b/src/include01/maskfld.h
index 20672ab9b..322cc540c 100644
--- a/src/include01/maskfld.h
+++ b/src/include01/maskfld.h
@@ -567,7 +567,7 @@ public:
// @cmember Controlla se il campo ha un messaggio
virtual bool has_message() const
- { return _message != nullptr; }
+ { return _message != NULL; }
// @cmember Setta l'handler del controllo
virtual void set_handler(CONTROL_HANDLER handler)
@@ -903,7 +903,7 @@ public:
// @cmember Scrive il valore del campo direttamente sulla finestra del controllo
virtual void set_window_data(const char* data);
- // @cmember Setta il flag read-only
+ // @cmember Setta il flag read-only
virtual void set_read_only(bool r);
// @cmember Setta il flag autobrowse
void set_autobrowse(bool on = true) { _autobrowse = on; }
@@ -926,7 +926,7 @@ public:
virtual bool has_check() const;
// @cmember Controlla se il campo ha una ricerca
virtual bool has_query_button() const
- { return _browse != nullptr || _flags.button; }
+ { return _browse != NULL || _flags.button; }
// @cmember Imposta la ricerca del campo
virtual void set_query_button(TBrowse_button* );
@@ -965,17 +965,17 @@ public:
virtual bool check(CheckTime = RUNNING_CHECK);
// @cmember Ritorna l'oggetto browse
- TBrowse * browse() const { return (_browse && _browse->is_browse()) ? (TBrowse *)_browse : NULL; }
+ TBrowse * browse() const { return (_browse && _browse->is_browse()) ? (TBrowse *)_browse : nullptr; }
// @cmember Ritorna l'oggetto sheet
- TList_sheet * sheet() const { return (_browse && _browse->is_sheet()) ? (TList_sheet *)_browse : NULL;}
+ TList_sheet * sheet() const { return (_browse && _browse->is_sheet()) ? (TList_sheet *)_browse : nullptr;}
// @cmember Ritorna l'oggetto dir sheet
- TFile_select * filesel() const { return (_browse && _browse->is_filesel()) ? (TFile_select*)_browse : NULL;}
+ TFile_select * filesel() const { return (_browse && _browse->is_filesel()) ? (TFile_select*)_browse : nullptr;}
// @cmember Ritorna l'oggetto report sheet
- TReport_select * reportsel() const{ return (_browse && _browse->is_reportsel()) ? (TReport_select *)_browse : NULL;
- }
+ TReport_select * reportsel() const{ return (_browse && _browse->is_reportsel()) ? (TReport_select *)_browse : nullptr; }
+
// @cmember Permette di abilitare/disabilitare il campo
virtual void enable(bool on = true);
diff --git a/src/include01/prefix.cpp b/src/include01/prefix.cpp
index 276061c60..35dbdf8cd 100644
--- a/src/include01/prefix.cpp
+++ b/src/include01/prefix.cpp
@@ -959,12 +959,8 @@ const TString& TFirm::ragione_sociale() const
{
TString & rag_soc = get_tmp_string();
const TRectype & recditta = cache().get(LF_NDITTE, codice());
- TDate data_var = recditta.get(NDT_DATAVAR);
- if (data_var.ok() && data_var < today)
- rag_soc = recditta.get(NDT_NRAGSOC);
- if (rag_soc.blank())
- rag_soc = recditta.get(NDT_RAGSOC);
+ rag_soc = recditta.get(NDT_RAGSOC);
return rag_soc;
}
diff --git a/src/include01/printer.cpp b/src/include01/printer.cpp
index fd7bbd83e..e97345617 100644
--- a/src/include01/printer.cpp
+++ b/src/include01/printer.cpp
@@ -276,7 +276,6 @@ TPrinter_setup_mask::TPrinter_setup_mask()
set(MSK_SIZE, pr._ch_size); // Fare solo quando la lista e' piena
set(MSK_LINES, pr._lines_per_inch);
- set(MSK_ISGRAPHICS, pr.isgraphics() ? "X" : "");
set(MSK_DEFAULT, pr.forced_default_printer() ? "X" : "");
TButton_tool& sp = (TButton_tool&)field(DLG_SETPRINT);
@@ -499,7 +498,6 @@ bool TPrint_txt_info::edit()
msk.set(F_SIZE, p.get_char_size());
msk.set(F_LINES, p.get_lines_per_inch());
msk.set(F_ORIENT, p.is_portrait() ? 1 : 2);
- msk.set(F_ISGRAPHICS, p.isgraphics());
msk.set(F_FROMPAGE, _pagefrom);
msk.set(F_TOPAGE, _lastpage);
msk.set(F_COPIES, _copies);
@@ -561,18 +559,6 @@ bool TPrinter::is_pdf() const
return xvt_print_is_pdf(_print_rcd) != 0;
}
-// @cmember Ritorna vero se sono attivati gli elementi grafici
-bool TPrinter::isgraphics() const
-{
- return _isgraphics;
-}
-
-// @cmember Attivati gli elementi grafici se possibile
-bool TPrinter::set_graphics(bool g)
-{
- _isgraphics = g && !is_generic();
- return _isgraphics;
-}
BOOLEAN TPrinter::start_print(long data)
{
@@ -705,15 +691,12 @@ void TPrinter::parse_background(const char* bg_desc, TString_array& background)
read_int(bg_desc, x2, cnt); if (x2 <= 0) x2 = formwidth();
read_int(bg_desc, y2, cnt); if (y2 <= 0) y2 = formlen();
cnt++;
- if (_isgraphics)
- {
- tt << op;
- tt.add(id);
- tt.add(x1);
- tt.add(y1);
- tt.add(x2);
- tt.add(y2);
- }
+ tt << op;
+ tt.add(id);
+ tt.add(x1);
+ tt.add(y1);
+ tt.add(x2);
+ tt.add(y2);
break;
case 'l': // line
@@ -726,7 +709,7 @@ void TPrinter::parse_background(const char* bg_desc, TString_array& background)
read_int (bg_desc, x2, cnt);
read_int (bg_desc, y2, cnt);
cnt++; // skip separator
- if (_isgraphics && _fink_mode)
+ if (_fink_mode)
{
tt << op;
tt.add (x1 - 1);
@@ -1301,7 +1284,7 @@ void TPrinter::init_formlen(
TPrinter::TPrinter()
: _vf(NULL), _ch_size (12), _date (TODAY), _multiple_link (false),
- _isgraphics (true), _frozen (false), _print_rcd(NULL), _lines_per_inch (6),
+ _frozen (false), _print_rcd(NULL), _lines_per_inch (6),
_l_offset(0), _c_offset(0), _export_header(false), _export_header_len(0),
_appendfile(false), _manual_setup(false)
@@ -1329,7 +1312,7 @@ TPrinter::TPrinter()
set_fincatura("+++++++++-|");
set_fink_mode(true);
- _finker = _isgraphics && _fink_mode ? NULL : new TPrint_intersector(_fink, _formlen);
+ _finker = _fink_mode ? NULL : new TPrint_intersector(_fink, _formlen);
}
// @doc EXTERNAL
@@ -1365,7 +1348,6 @@ void TPrinter::read_configuration(
set_fontname(iniptr->get("Font", NULL, -1, XVT_FFN_FIXED)); // Nome del font
_ch_size = iniptr->get_int("Size", NULL, -1, 10); // Dimensione del font
_lines_per_inch = iniptr->get_int("Lines", NULL, -1, 6); // Linee per pollice
- set_graphics(iniptr->get_bool("Graphic", NULL, -1, true)); // Grafica attiva
_force_default = iniptr->get_bool("Default", NULL, -1, false); // Forza stampante di default
bool read_rcd = false;
@@ -1465,7 +1447,7 @@ void TPrinter::save_configuration(const char* para)
prini.set("Font", _fontname); // Nome del font
prini.set("Size", _ch_size); // Dimensione del font
prini.set("Lines", _lines_per_inch); // Linee per pollice
- prini.set("Graphic", _isgraphics ? "X" : ""); // Grafica attiva
+ prini.set("Graphic", "X" ); // Grafica attiva
prini.set("Default", _force_default ? "X" : ""); // Forza stampante default
char hostname[256];
@@ -1739,7 +1721,7 @@ void TPrinter::set_fink_mode(
// oppure non ha il flag di stampa elementi grafici attivato, la fincatura sara'
// in modo testo.
{
- _fink_mode = f && isgraphics();
+ _fink_mode = f;
}
// @doc EXTERNAL
@@ -1869,7 +1851,6 @@ bool TPrinter::set()
if (cs > 4) _ch_size = cs;
_lines_per_inch = mask.get_int (MSK_LINES);
- _isgraphics = mask.get_bool (MSK_ISGRAPHICS);
_force_default = mask.get_bool(MSK_DEFAULT);
init_formlen ();
diff --git a/src/include01/printer.h b/src/include01/printer.h
index c971848e9..e6feb47cb 100644
--- a/src/include01/printer.h
+++ b/src/include01/printer.h
@@ -248,8 +248,6 @@ class TPrinter : public TObject
// @cmember:(INTERNAL) Nomi dei file delle immagini da stampare
TString_array _image_names;
- // @cmember:(INTERNAL) Indica se la stampante e' abilitata a trattare grafica
- bool _isgraphics;
// @cmember:(INTERNAL) Indica se la stampante e' stata momentaneamente interrotta
bool _frozen;
// @cmember:(INTERNAL) Descrizione completa dello stato della stampante
@@ -579,10 +577,6 @@ public:
{ return _c_offset; }
// @cmember Ritorna la definizione di stampa in punti per linea
int get_dots_per_line() const { return _dots_per_line; }
- // @cmember Ritorna se la stampante e' abilitata a stampare grafica
- bool isgraphics() const;
- // @cmember Setta la stampante per l'abilitazione a stampare in grafica
- bool set_graphics(bool g);
// @cmember Setta l'offset verticale e orizzontale in caratteri
void set_offset(int a, int b) { _l_offset=a; _c_offset=b;}
// @cmember ritorna la riga di background se si stampa in modo testo
diff --git a/src/include01/printwin.cpp b/src/include01/printwin.cpp
index e375ff7dd..486ba2535 100644
--- a/src/include01/printwin.cpp
+++ b/src/include01/printwin.cpp
@@ -26,7 +26,7 @@ HIDDEN int LEN_SPACES(WINDOW win, int x)
void TPrintwin::paint_background(long j)
{
TPrinter& pr = printer();
- const bool isbackground = _bg->items() > 0 && pr.isgraphics();
+ const bool isbackground = _bg->items() > 0;
const bool fink_mode = pr.get_fink_mode();
const int rw = (int)(j % _formlen);
int cnt = 0; char ch;
diff --git a/src/include01/reprint.cpp b/src/include01/reprint.cpp
index 7fbde63ab..99f06a8f7 100644
--- a/src/include01/reprint.cpp
+++ b/src/include01/reprint.cpp
@@ -43,7 +43,7 @@ static void advanced_draw_justified_text_line(WINDOW w, const char* text, short
for (int i = 0; txt[i]; i++) if (isspace(txt[i]))
{
const bool last_word = txt[i+1] == '\0';
- const TString& parola = txt.sub(start, i + (last_word ? 0 : 1));
+ const TString& parola = txt.ssub(start, i + (last_word ? 0 : 1));
const int lw = xvt_dwin_get_text_width(w, parola, -1);
if (last_word) // ultima parola
kx = x+dx-lw;
@@ -925,12 +925,12 @@ int TBook::compute_text_frame(const TString& tmp, const TReport_font& font, TRep
}
if (i == para.items() - 1)
- para.add(row.mid(good_len));
+ para.add(row.smid(good_len));
else
{
TString& next_row = para.row(i + 1);
- next_row.insert(row.mid(good_len));
+ next_row.insert(row.smid(good_len));
next_row.ltrim();
}
row.cut(good_len);
@@ -976,7 +976,7 @@ bool TBook::open_page()
}
_page++;
- _index.add_long((long)_out->tellp(), page()); // Scrive alla posizione 1 l'inizio di pagina 1
+ _index.add(new TFilepos(*_out), page()); // Scrive alla posizione 1 l'inizio di pagina 1
*_out << " apicia)
{
- value = line.sub(apicia+1, apicic);
+ value = line.ssub(apicia+1, apicic);
return true;
}
}
@@ -1253,7 +1253,7 @@ bool get_xml_string(const TString& line, const char* attr, TString& value)
const int space = line.find(' ', apicia);
if (space > 0)
{
- value = line.sub(apicia, space);
+ value = line.ssub(apicia, space);
return true;
}
}
@@ -1337,7 +1337,7 @@ bool TBook::print_page(TWindow& win, size_t page)
RCT rct_riga; win.log2dev(rect_riga, rct_riga);
const int default_10row_height = rct_riga.bottom - rct_riga.top;
- const streampos pos = _index.get_long(page);
+ const streampos pos = ((const TFilepos &)_index[page]).pos();
ifstream ifs(_file);
ifs.seekg(pos);
@@ -1415,7 +1415,7 @@ bool TBook::print_page(TWindow& win, size_t page)
const int inizio = str.find('>')+1;
const int fine = str.rfind('<');
- const TString& stringona = str.sub(inizio, fine);
+ const TString& stringona = str.ssub(inizio, fine);
rl->set(field, stringona);
rl->add_rect(rct);
@@ -1896,6 +1896,7 @@ bool TBook::export_dbase(TFilename& fname, TTrec * desc, bool signature, bool go
TExternisamfile dbf(fname, *desc);
ifstream ifstream(temp);
+ const int nflds = desc->nfields();
while (!ifstream.eof())
{
@@ -1906,29 +1907,33 @@ bool TBook::export_dbase(TFilename& fname, TTrec * desc, bool signature, bool go
{
dbf.zero();
FOR_EACH_STR_TOKEN(line, val)
- if (*desc->rec().Fd[i].Name != '\0')
- switch (desc->rec().Fd[i].TypeF)
{
+ if (desc->field(i).name().full())
+ switch (desc->field(i).type())
+ {
case _alfafld:
case _charfld:
case _boolfld:
case _memofld:
- dbf.put(desc->rec().Fd[i++].Name, val);
+ dbf.put(desc->field(i).name(), val);
break;
- case _intfld :
- case _longfld :
- case _realfld :
- case _wordfld :
- case _intzerofld :
- case _longzerofld :
- dbf.put(desc->rec().Fd[i++].Name, real::ita2eng(val));
+ case _intfld:
+ case _longfld:
+ case _realfld:
+ case _wordfld:
+ case _intzerofld:
+ case _longzerofld:
+ dbf.put(desc->field(i).name(), real::ita2eng(val));
break;
- case _datefld :
- dbf.put(desc->rec().Fd[i++].Name, TDate(atoi(val.left(2)), atoi(val.mid(3,2)), 2000 + atoi(val.right(2))));
+ case _datefld:
+ dbf.put(desc->field(i).name(), TDate(atoi(val.sleft(2)), atoi(val.smid(3, 2)), 2000 + atoi(val.sright(2))));
break;
- default :
+ default:
break;
}
+ if (++i >= nflds)
+ break;
+ }
dbf.write();
}
}
@@ -2144,7 +2149,7 @@ void TBook::split_file(int colonne)
TFilename temp; temp.temp("bck");
ofstream out(temp);
- TPointer_array index;
+ TArray index;
close_output(); // Chiudo file di stampa eventualmente aperto
ifstream ifs(_file); // Apro file di stampa da splittare
@@ -2154,7 +2159,7 @@ void TBook::split_file(int colonne)
{
if (!pi.setstatus(page))
break;
- const streampos pos = _index.get_long(page);
+ const streampos pos = ((const TFilepos &)_index[page]).pos();
for (int c = 0; c < colonne; c++)
{
const TRectangle rct_page(c*_page_size.x, 0, _page_size.x, _page_size.y);
@@ -2167,7 +2172,7 @@ void TBook::split_file(int colonne)
if (str.starts_with("", p);
} else
if (str.starts_with("", out_page);
}
else
@@ -2378,7 +2383,6 @@ bool TBook::print(size_t pagefrom, size_t pageto, word copies)
msk.set(F_SIZE, p.get_char_size());
msk.set(F_LINES, p.get_lines_per_inch());
msk.set(F_ORIENT, p.is_portrait() ? 1 : 2);
- msk.set(F_ISGRAPHICS, p.isgraphics());
msk.set(F_FROMPAGE, 1);
msk.set(F_TOPAGE, pages());
msk.set(F_COPIES, 1);
@@ -3301,7 +3305,6 @@ bool TReport_book::print(size_t pagefrom, size_t pageto, word copies)
}
msk.set(F_LINES, lpi());
msk.set(F_ORIENT, p.is_portrait() ? 1 : 2);
- msk.set(F_ISGRAPHICS, p.isgraphics());
msk.set(F_FROMPAGE, 1);
msk.set(F_TOPAGE, pages());
msk.set(F_COPIES, 1);
diff --git a/src/include01/variant.cpp b/src/include01/variant.cpp
index 23f7d0c9a..3c4d34a12 100644
--- a/src/include01/variant.cpp
+++ b/src/include01/variant.cpp
@@ -258,7 +258,7 @@ int TVariant::compare(const TSortable& s) const
switch (_type)
{
case _datefld: cmp = as_date() - var.as_date(); break;
- case _boolfld:
+ case _boolfld: cmp = as_bool() - var.as_bool(); break;
case _longfld: cmp = as_int() - var.as_int(); break;
case _realfld:
{
diff --git a/src/include01/viswin.cpp b/src/include01/viswin.cpp
index 3b82277ea..24d2794d6 100644
--- a/src/include01/viswin.cpp
+++ b/src/include01/viswin.cpp
@@ -710,7 +710,7 @@ void TViswin::paint_background(
_bg = &pr.getbgdesc(page);
}
- const bool isbackground = _bg->items() > 0 && pr.isgraphics();
+ const bool isbackground = _bg->items() > 0;
const bool fink_mode = pr.get_fink_mode();
const int rw = (int)(j % (long)_formlen);
const int ox = (int)origin().x;
diff --git a/src/include01/xvtility.cpp b/src/include01/xvtility.cpp
index 79ea218ce..301f747a5 100644
--- a/src/include01/xvtility.cpp
+++ b/src/include01/xvtility.cpp
@@ -637,14 +637,10 @@ void xvtil_statbar_set(
t.add(text);
TApplication& a = main_app();
- TString rag_soc;
+
const TRectype & recditta = cache().get(LF_NDITTE, a.get_firm());
- TDate data_var = recditta.get(NDT_DATAVAR);
+ const TString rag_soc = recditta.get(NDT_RAGSOC);
- if (data_var.ok() && data_var < today)
- rag_soc = recditta.get(NDT_NRAGSOC);
- if (rag_soc.blank())
- rag_soc = recditta.get(NDT_RAGSOC);
t.add(rag_soc);
t.add(a.title());
if (def)
diff --git a/src/res/resource.ini b/src/res/resource.ini
index 822ecc542..cede69412 100755
--- a/src/res/resource.ini
+++ b/src/res/resource.ini
@@ -6,9 +6,9 @@
8883=fly.ico
[Icons]
-9012=gest.ico
-9013=gestsrv.ico
-9014=gestcln.ico
+9012=campo.ico
+9013=camposrv.ico
+9014=campocln.ico
10108=combo.ico
10109=search.ico
10110=checkon.ico
diff --git a/src/ve01/ve0100.cpp b/src/ve01/ve0100.cpp
index 287781b35..207e9f8b5 100644
--- a/src/ve01/ve0100.cpp
+++ b/src/ve01/ve0100.cpp
@@ -1317,22 +1317,12 @@ bool TMotore_application::save_and_print(bool savedoc, TPrtype mode)
const TTipo_documento& tipo = doc.tipo();
TFilename rep;
- int filter = has_module(RSAUT) ? 2 : 1;
- while (filter > 0 && !tipo.main_print_profile(rep, filter))
- filter--;
-
- if (filter > 0)
- {
const bool da_stampare = doc.stampabile();
const char old_stato = doc.stato();
TString commandline;
- commandline = "ve1 -";
- if (filter == 2)
- commandline << 2; // Esiste il nuovo report :-)
- else
- commandline << 0; // Esiste il vecchio form :-(
-
+
+ commandline = "ve011 -2"; // Esiste il nuovo report :-)
commandline << ' ' << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_ANNO)
<< ' ' << doc.get(DOC_PROVV) << ' ' << doc.get(DOC_NDOC) << ' ';
switch (mode)
@@ -1348,34 +1338,27 @@ bool TMotore_application::save_and_print(bool savedoc, TPrtype mode)
if (ncopie > 0)
commandline << ' ' << ncopie;
- TExternal_app interattivo( commandline );
- if (interattivo.run() == NOERR)
- {
- TDocumento_mask& m = edit_mask();
- TDocumento& maindoc = m.doc();
+ TExternal_app interattivo( commandline );
- if (da_stampare) // Aggiorna stato documento se necessario
- {
- maindoc.read(); // Aggiorna STATO e MOVMAG generati da ve1
+ if (interattivo.run() == NOERR)
+ {
+ TDocumento_mask& m = edit_mask();
+ TDocumento& maindoc = m.doc();
- // Lo stato del documento vive di vita propria
- const char sfs = maindoc.tipo().stato_finale_stampa();
- const char new_stato = old_stato > sfs ? old_stato : sfs;
- maindoc.stato(new_stato);
- const char ss[2] = { new_stato, '\0' };
- m.set(F_STATO, ss, true);
- init_modify_mode(m);
- }
- do_elab(maindoc, true);
+ if (da_stampare) // Aggiorna stato documento se necessario
+ {
+ maindoc.read(); // Aggiorna STATO e MOVMAG generati da ve1
+
+ // Lo stato del documento vive di vita propria
+ const char sfs = maindoc.tipo().stato_finale_stampa();
+ const char new_stato = old_stato > sfs ? old_stato : sfs;
+ maindoc.stato(new_stato);
+ const char ss[2] = { new_stato, '\0' };
+ m.set(F_STATO, ss, true);
+ init_modify_mode(m);
}
+ do_elab(maindoc, true);
}
- else
- {
- rep.ext("");
- cantread_box(rep);
- return already_printing = false;
- }
-
already_printing = false;
return true;
}
diff --git a/src/ve01/ve1300.cpp b/src/ve01/ve1300.cpp
index 146649333..040547092 100644
--- a/src/ve01/ve1300.cpp
+++ b/src/ve01/ve1300.cpp
@@ -1,5 +1,5 @@
#include "velib05.h"
-#include "ve1300a.h"
+#include "ve1300af.h"
#include
#include
@@ -1130,7 +1130,7 @@ bool TReport_doc_mask::on_field_event(TOperable_field& o, TField_event e, long j
return true;
}
-TReport_doc_mask::TReport_doc_mask() : TAutomask("ve1300a")
+TReport_doc_mask::TReport_doc_mask() : TAutomask("ve1300af")
{
hide(F_PROVV);
@@ -1376,9 +1376,6 @@ void TReport_doc_app::add_filter(TString& query, bool from) const
bool TReport_doc_app::create()
{
- if (!has_module(RSAUT))
- return error_box(FR("Modulo non autorizzato: %s"), (const char *) dongle().module_code2desc(RSAUT));
-
_msk = new TReport_doc_mask;
return TSkeleton_application::create();
}
@@ -1720,20 +1717,17 @@ TReport_doc_app::TOutput_mode TReport_doc_app::key2mode(KEY k) const
k -= ' '; // toupper dei poveri
if (k == 'A')
k = K_VISUALIZE;
- if (has_module(RSAUT))
- switch (k)
- {
- case K_VISUALIZE: mode = out_preview; break;
- case 'E': mode = out_mail; break;
- case 'e': mode = out_signed_mail; break;
- case 'P': mode = out_pdf; break;
- case 'X': mode = out_disk; break;
- case 'p': mode = out_signed_pdf; break;
- case 'S':
- default: mode = out_print; break;
- }
- else
- mode = out_preview;
+ switch (k)
+ {
+ case K_VISUALIZE: mode = out_preview; break;
+ case 'E': mode = out_mail; break;
+ case 'e': mode = out_signed_mail; break;
+ case 'P': mode = out_pdf; break;
+ case 'X': mode = out_disk; break;
+ case 'p': mode = out_signed_pdf; break;
+ case 'S':
+ default: mode = out_print; break;
+ }
return mode;
}
diff --git a/src/ve01/ve1300a.h b/src/ve01/ve1300a.h
deleted file mode 100644
index ee70119c0..000000000
--- a/src/ve01/ve1300a.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#define F_CODNUM 121
-#define F_ANNO 122
-#define F_PROVV 123
-#define F_NCOPIE 124
-
-#define F_ORDERING 125
-
-#define F_DA_NDOC 126
-#define F_A_NDOC 127
-
-#define F_DA_DATADOC 128
-#define F_A_DATADOC 129
-#define F_TIPOST 130
-
-#define F_TIPOCFD 131
-#define F_DA_CLIFO 132
-#define F_A_CLIFO 133
-#define F_DA_RAGSOC 134
-#define F_A_RAGSOC 135
-
diff --git a/src/ve01/ve1300a.uml b/src/ve01/ve1300a.uml
deleted file mode 100644
index a1866d1fe..000000000
--- a/src/ve01/ve1300a.uml
+++ /dev/null
@@ -1,292 +0,0 @@
-#include "ve1300a.h"
-
-TOOLBAR "" 0 0 0 2
-
-BUTTON DLG_PRINT 10 2
-BEGIN
- PROMPT 1 1 "~Stampa"
- MESSAGE EXIT,K_ENTER
-END
-
-BUTTON DLG_SETPRINT 10 2
-BEGIN
- PROMPT 2 1 "~Imposta"
-END
-
-BUTTON DLG_PREVIEW 10 2
-BEGIN
- PROMPT 3 1 "~Anteprima"
- PICTURE TOOL_PREVIEW
- MESSAGE EXIT,K_VISUALIZE
-END
-
-BUTTON DLG_NULL 10 2
-BEGIN
- PROMPT 4 1 ""
- PICTURE 0
-END
-
-BUTTON DLG_EMAIL 10 2
-BEGIN
- PROMPT 5 1 "Mail"
- PICTURE TOOL_EMAIL
- MESSAGE EXIT,69
- FLAGS "D"
-END
-
-BUTTON DLG_SIGNMAIL 10 2
-BEGIN
- PROMPT 6 1 "Firmata"
- PICTURE TOOL_SIGNMAIL
- MESSAGE EXIT,101
- FLAGS "D"
-END
-
-BUTTON DLG_CONFIG 10 2
-BEGIN
- PROMPT 7 1 "~Imposta"
- PICTURE TOOL_CONFIG
-END
-
-BUTTON DLG_NULL 10 2
-BEGIN
- PROMPT 7 1 ""
- PICTURE 0
-END
-
-BUTTON DLG_PDF 10 2
-BEGIN
- PROMPT 8 1 "Pdf"
- PICTURE TOOL_PDF
- MESSAGE EXIT,80
- FLAGS "D"
-END
-
-BUTTON DLG_SIGNPDF 10 2
-BEGIN
- PROMPT 9 1 "Firmato"
- PICTURE TOOL_SIGNPDF
- MESSAGE EXIT,112
- FLAGS "D"
-END
-
-#include
-
-ENDPAGE
-
-
-TOOLBAR "bottombar" 0 -1 0 1
-#include
-ENDPAGE
-
-
-PAGE "Stampa Documenti Vendita" 0 0 0 0
-
-STRING F_CODNUM 4 4
-BEGIN
- PROMPT 1 1 "Codice numerazione "
- FLAG "UP"
- USE %NUM
- INPUT CODTAB F_CODNUM
- DISPLAY "Cod. Num." CODTAB
- DISPLAY "Descrizione@50" S0
- OUTPUT F_CODNUM CODTAB
- CHECKTYPE NORMAL
-END
-
-NUMBER F_ANNO 4 0
-BEGIN
- PROMPT 38 1 "Anno "
- FLAG "AP"
- CHECKTYPE REQUIRED
-END
-
-LIST F_PROVV 12
-BEGIN
- PROMPT 1 2 "Tipo numerazione "
- ITEM "D|Definitiva"
- ITEM "P|Provvisoria"
- FLAG "P"
-END
-
-NUMBER F_NCOPIE 2
-BEGIN
- PROMPT 38 2 "Numero copie "
- FLAG "UP"
- WARNING "Il numero di copie deve essere positivo"
-END
-
-RADIOBUTTON F_ORDERING 68
-BEGIN
- PROMPT 1 4 "Selezione per "
- ITEM "N|Numero documento" MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
- ITEM "D|Data documento" MESSAGE SHOW,2@|HIDE,1@|HIDE,3@
- ITEM "C|Cliente/Fornitore" MESSAGE SHOW,3@|HIDE,1@|HIDE,2@
- FLAG "P"
-END
-
-GROUPBOX DLG_NULL 68 5
-BEGIN
- PROMPT 1 9 "Selezione per numero"
- GROUP 1
-END
-
-NUMBER F_DA_NDOC 7
-BEGIN
- PROMPT 2 10 "Dal "
- USE 33
- JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
- JOIN 13 TO 20 INTO COM=COMCF
- INPUT PROVV F_PROVV SELECT
- INPUT ANNO F_ANNO SELECT
- INPUT CODNUM F_CODNUM SELECT
- INPUT NDOC F_DA_NDOC
- DISPLAY "Data@10" DATADOC
- DISPLAY "Numero@7" NDOC
- DISPLAY "Stato" STATO
- DISPLAY "Cliente/Fornitore@40" 20->RAGSOC
- DISPLAY "Comune@20" 13->DENCOM
- DISPLAY "E-Mail per fatture@40" 20->DOCMAIL
- OUTPUT F_DA_NDOC NDOC
- GROUP 1
- ADD RUN ve0 -0
-END
-
-NUMBER F_A_NDOC 7
-BEGIN
- PROMPT 2 12 "Al "
- USE 33
- JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
- JOIN 13 TO 20 INTO COM=COMCF
- INPUT PROVV F_PROVV SELECT
- INPUT ANNO F_ANNO SELECT
- INPUT CODNUM F_CODNUM SELECT
- INPUT NDOC F_A_NDOC
- COPY DISPLAY F_DA_NDOC
- OUTPUT F_A_NDOC NDOC
- WARNING "Il numero documento deve essere superiore al limite inferiore"
- GROUP 1
- ADD RUN ve0 -0
-END
-
-GROUPBOX DLG_NULL 68 5
-BEGIN
- PROMPT 1 9 "Selezione per data"
- GROUP 2
-END
-
-DATE F_DA_DATADOC
-BEGIN
- PROMPT 2 10 "Dal "
- USE 33 KEY 3 SELECT (PROVV==#F_PROVV) && (ANNO==#F_ANNO) && (CODNUM==#F_CODNUM)
- JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
- JOIN 13 TO 20 INTO COM=COMCF
- INPUT DATADOC F_DA_DATADOC
- INPUT PROVV F_PROVV
- INPUT ANNO F_ANNO
- INPUT CODNUM F_CODNUM
- DISPLAY "Data@10" DATADOC
- DISPLAY "Numero@7" NDOC
- DISPLAY "Cliente/Fornitore@40" 20->RAGSOC
- DISPLAY "Comune@20" 13->DENCOM
- OUTPUT F_DA_NDOC NDOC
- OUTPUT F_DA_DATADOC DATADOC
- GROUP 2
-END
-
-DATE F_A_DATADOC
-BEGIN
- PROMPT 2 12 "Al "
- USE LF_DOC KEY 3 SELECT (PROVV==#F_PROVV) && (ANNO==#F_ANNO) && (CODNUM==#F_CODNUM)
- JOIN LF_CLIFO INTO CODCF=CODCF TIPOCF=TIPOCF
- JOIN LF_COMUNI TO LF_CLIFO INTO COM=COMCF
- INPUT DATADOC F_A_DATADOC
- INPUT PROVV F_PROVV
- INPUT ANNO F_ANNO
- INPUT CODNUM F_CODNUM
- COPY DISPLAY F_DA_DATADOC
- OUTPUT F_A_NDOC NDOC
- OUTPUT F_A_DATADOC DATADOC
- GROUP 2
-END
-
-GROUPBOX DLG_NULL 68 5
-BEGIN
- PROMPT 1 9 "Selezione per Cliente/Fornitore"
- GROUP 3
-END
-
-LIST F_TIPOCFD 1 12
-BEGIN
- PROMPT 2 10 "Tipo "
- ITEM "C|Cliente"
- ITEM "F|Fornitore"
- GROUP 3
-END
-
-NUMBER F_DA_CLIFO 7
-BEGIN
- PROMPT 2 11 "Dal "
- USE LF_CLIFO
- JOIN LF_COMUNI INTO COM==COMCF
- INPUT TIPOCF F_TIPOCFD SELECT
- INPUT CODCF F_DA_CLIFO
- DISPLAY "Codice@7" CODCF
- DISPLAY "Ragione Sociale@50" RAGSOC
- DISPLAY "Comune@20" 13->DENCOM
- OUTPUT F_DA_CLIFO CODCF
- OUTPUT F_DA_RAGSOC RAGSOC
- CHECKTYPE SEARCH
- GROUP 3
-END
-
-STRING F_DA_RAGSOC 50 45
-BEGIN
- PROMPT 18 11 ""
- USE LF_CLIFO KEY 2
- JOIN LF_COMUNI INTO COM==COMCF
- INPUT TIPOCF F_TIPOCFD SELECT
- INPUT RAGSOC F_DA_RAGSOC
- DISPLAY "Ragione Sociale@50" RAGSOC
- DISPLAY "Codice@7" CODCF
- DISPLAY "Comune@20" 13->DENCOM
- COPY OUTPUT F_DA_CLIFO
- CHECKTYPE SEARCH
- GROUP 3
-END
-
-NUMBER F_A_CLIFO 7
-BEGIN
- PROMPT 2 12 "Al "
- COPY USE F_DA_CLIFO
- INPUT TIPOCF F_TIPOCFD SELECT
- INPUT CODCF F_A_CLIFO
- COPY DISPLAY F_DA_CLIFO
- OUTPUT F_A_CLIFO CODCF
- OUTPUT F_A_RAGSOC RAGSOC
- CHECKTYPE SEARCH
- GROUP 3
-END
-
-STRING F_A_RAGSOC 50 45
-BEGIN
- PROMPT 18 12 ""
- COPY USE F_DA_RAGSOC
- INPUT TIPOCF F_TIPOCFD SELECT
- INPUT RAGSOC F_A_RAGSOC
- COPY DISPLAY F_DA_RAGSOC
- COPY OUTPUT F_A_CLIFO
- CHECKTYPE SEARCH
- GROUP 3
-END
-
-RADIOBUTTON F_TIPOST 68
-BEGIN
- PROMPT 1 14 "Stampa"
- ITEM "D|Definitiva (Solo i documenti non stampati in definitiva)"
- ITEM "P|Provvisoria (Tutti i documenti selezionati senza cambio stato)"
- FLAG "P"
-END
-
-ENDPAGE
-ENDMASK
diff --git a/src/ve01/velib06.cpp b/src/ve01/velib06.cpp
index d5bc73b58..6844e15ef 100644
--- a/src/ve01/velib06.cpp
+++ b/src/ve01/velib06.cpp
@@ -3751,7 +3751,7 @@ bool TElabora_mask::on_field_event(TOperable_field& o, TField_event e, long joll
TString commandline;
- commandline.format("ve0 -0 /i%s",(const char*)tempfile);
+ commandline.format("ve010 -0 /i%s",(const char*)tempfile);
TExternal_app ve(commandline);
ve.run();
diff --git a/src/ve01/velib06a.cpp b/src/ve01/velib06a.cpp
index e5790ad8b..02066c8ab 100644
--- a/src/ve01/velib06a.cpp
+++ b/src/ve01/velib06a.cpp
@@ -2775,7 +2775,7 @@ bool link_handler( TMask_field& f, KEY key )
const TMask & row_mask = f.mask();
if (r.linked())
- r.edit(LF_DOC, "DAPROVV|DAANNO|DACODNUM|DANDOC");
+ r.edit(LF_DOC, "DAPROVV|DAANNO|DACODNUM|DANDOC", "ve010 -0");
else
if (!row_mask.is_running() && row_mask.id2pos(FR_CODART) >= 0)
{
diff --git a/src/ve01/velib08.cpp b/src/ve01/velib08.cpp
index 281eaacfc..ccef31bad 100644
--- a/src/ve01/velib08.cpp
+++ b/src/ve01/velib08.cpp
@@ -2243,36 +2243,38 @@ bool TDocumento::add_allegati(TXmlItem & body)
if (get_fp_bool_var(FP_ALLEG_FAT))
{
- if (!dongle().active(RSAUT))
- get_xml_log()->log(1, "Impossibile generare la fattura, il modulo RS non abilitato!");
+ if (!tipo().main_print_profile(rep, 2))
+ get_xml_log()->log(1, "Impossibile generare la fattura, non disponibile un profilo di stampa per questo tipo documento!");
else
- if (!tipo().main_print_profile(rep, 2))
- get_xml_log()->log(1, "Impossibile generare la fattura, non disponibile un profilo di stampa per questo tipo documento!");
- else
+ {
+ //ve1 -2 {CODNUM} {ANNO} {PROVV} {NDOC}(-{ANDOC}) {TIPO_ELABORAZIONE} {TIPO_STAMPA} {NUM_COPIE} {ARCHIVIAZIONE}
+ // Costruisco la chiamata
+ TString commandline = "ve011 -2 ";
+
+ commandline << get(DOC_CODNUM) << ' ' << get(DOC_ANNO) << ' ' << get(DOC_PROVV) << ' ' << get(DOC_NDOC) << " X P 1 D"; // X: stampa su disco, P: provvisorio, 1: 1 copia, D: disabilita archiviazione
+
+ TExternal_app interattivo(commandline);
+
+#ifdef DBG
+ interattivo.run(); // non terminano in debug da sistemare
+#else
+ if (interattivo.run() != NOERR)
+
{
- //ve1 -2 {CODNUM} {ANNO} {PROVV} {NDOC}(-{ANDOC}) {TIPO_ELABORAZIONE} {TIPO_STAMPA} {NUM_COPIE} {ARCHIVIAZIONE}
- // Costruisco la chiamata
- TString commandline = "ve1 -2 ";
-
- commandline << get(DOC_CODNUM) << ' ' << get(DOC_ANNO) << ' ' << get(DOC_PROVV) << ' ' << get(DOC_NDOC) << " X P 1 D"; // X: stampa su disco, P: provvisorio, 1: 1 copia, D: disabilita archiviazione
-
- TExternal_app interattivo(commandline);
-
- if (interattivo.run() != NOERR)
- {
- TString msgerr = "Fallita generazione PDF documento ";
- msgerr << get(DOC_CODNUM) << ' ' << get(DOC_ANNO) << ' ' << get(DOC_PROVV) << ' ' << get(DOC_NDOC);
- error_box(msgerr);
- }
- else
- {
- TFilename pdf; pdf.tempdir();
- pdf << SLASH << get(DOC_ANNO) << '_' << get(DOC_CODNUM) << '_' << get(DOC_NDOC) << ".pdf";
- if (!pdf.exist() && !yesno_box("Attenzione! Non stato possibile creare il pdf, continuare?"))
- return false;
- add_allegato(body, pdf, "Fattura di cortesia");
- }
+ TString msgerr = "Fallita generazione PDF documento ";
+ msgerr << get(DOC_CODNUM) << ' ' << get(DOC_ANNO) << ' ' << get(DOC_PROVV) << ' ' << get(DOC_NDOC);
+ error_box(msgerr);
}
+ else
+#endif
+ {
+ TFilename pdf; pdf.tempdir();
+ pdf << SLASH << get(DOC_ANNO) << '_' << get(DOC_CODNUM) << '_' << get(DOC_NDOC) << ".pdf";
+ if (!pdf.exist() && !yesno_box("Attenzione! Non stato possibile creare il pdf, continuare?"))
+ return false;
+ add_allegato(body, pdf, "Fattura di cortesia");
+ }
+ }
}
TToken_string allegati(get(DOC_CARTACEI), '\n');
diff --git a/src/ve01/vetbcnt.h b/src/ve01/vetbcnt.h
deleted file mode 100644
index 3f09b0a51..000000000
--- a/src/ve01/vetbcnt.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#define FC_CODNUM 101
-#define FC_DESNUM 102
-#define FC_TIPODOC 103
-#define FC_DESTIPODOC 104
-#define FC_CAUS 105
-#define FC_DESCAUS 106
-#define FC_CAUSANT 107
-#define FC_DESCAUSANT 108
diff --git a/src/ve01/vetbcnt.uml b/src/ve01/vetbcnt.uml
deleted file mode 100644
index 035c442dc..000000000
--- a/src/ve01/vetbcnt.uml
+++ /dev/null
@@ -1,138 +0,0 @@
-#include "vetbcnt.h"
-
-TOOLBAR "Toolbar" 0 0 0 2
-
-#include
-
-BUTTON DLG_NULL 2 2
-BEGIN
-END
-
-#include
-
-ENDPAGE
-
-PAGE "Causali per numerazione" 0 2 0 0
-
-GROUPBOX DLG_NULL 78 4
-BEGIN
- PROMPT 1 1 ""
- FLAGS "R"
-END
-
-STRING FC_CODNUM 4
-BEGIN
- PROMPT 2 2 "Numerazione "
- FIELD CODTAB[1,4]
- HELP "Codice numerazione"
- USE %NUM
- INPUT CODTAB FC_CODNUM
- DISPLAY "Codice" CODTAB
- DISPLAY "Descrizione@50" S0
- OUTPUT FC_CODNUM CODTAB
- OUTPUT FC_DESNUM S0
- CHECKTYPE FORCED
- FLAG "UPA"
- KEY 1
- WARNING Numerazione #F_CODNUM assente
-END
-
-STRING FC_DESNUM 50
-BEGIN
- PROMPT 24 2 ""
- HELP "Descrizione numerazione"
- USE %NUM KEY 2
- INPUT S0 FC_DESNUM
- DISPLAY "Descrizione@60" S0
- DISPLAY "Codice" CODTAB
- COPY OUTPUT FC_CODNUM
- KEY 1
- GROUP 1
-END
-
-STRING FC_TIPODOC 4
-BEGIN
- PROMPT 2 3 "Tipo "
- FIELD CODTAB[5,8]
- HELP "Codice tipo documento"
- USE %TIP
- INPUT CODTAB FC_TIPODOC
- DISPLAY "Codice" CODTAB
- DISPLAY "Descrizione@50" S0
- OUTPUT FC_TIPODOC CODTAB
- OUTPUT FC_DESTIPODOC S0
- CHECKTYPE FORCED
- FLAG "UP"
- KEY 1
- WARNING Tipo documento #F_TIPODOC assente
-END
-
-STRING FC_DESTIPODOC 50
-BEGIN
- PROMPT 24 3 ""
- HELP "Descrizione tipo documento"
- USE %TIP KEY 2
- INPUT S0 FC_DESTIPODOC
- DISPLAY "Descrizione@60" S0
- DISPLAY "Codice" CODTAB
- COPY OUTPUT FC_TIPODOC
- KEY 1
-END
-
-STRING FC_CAUS 3
-BEGIN
- PROMPT 2 6 "Causale "
- FIELD S5
- USE LF_CAUSALI
- INPUT CODCAUS FC_CAUS
- DISPLAY "Codice" CODCAUS
- DISPLAY "Descrizione@50" DESCR
- OUTPUT FC_CAUS CODCAUS
- OUTPUT FC_DESCAUS DESCR
- CHECKTYPE NORMAL
- FLAG "U"
- GROUP 2
- ADD RUN CG0 -4
-END
-
-STRING FC_DESCAUS 50
-BEGIN
- PROMPT 24 6 ""
- USE LF_CAUSALI KEY 2
- INPUT DESCR FC_DESCAUS
- DISPLAY "Descrizione@50" DESCR
- DISPLAY "Codice" CODCAUS
- COPY OUTPUT FC_CAUS
- CHECKTYPE NORMAL
- GROUP 2
-END
-
-STRING FC_CAUSANT 3
-BEGIN
- PROMPT 2 7 "Causale ant. "
- FIELD S6
- USE LF_CAUSALI SELECT REG ==""
- INPUT CODCAUS FC_CAUSANT
- DISPLAY "Codice" CODCAUS
- DISPLAY "Descrizione@50" DESCR
- OUTPUT FC_CAUSANT CODCAUS
- OUTPUT FC_DESCAUSANT DESCR
- CHECKTYPE NORMAL
- FLAG "U"
- GROUP 2
-END
-
-STRING FC_DESCAUSANT 50
-BEGIN
- PROMPT 24 7 ""
- USE LF_CAUSALI KEY 2
- INPUT DESCR FC_DESCAUSANT
- DISPLAY "Descrizione@50" DESCR
- DISPLAY "Codice" CODCAUS
- COPY OUTPUT FC_CAUSANT
- CHECKTYPE NORMAL
- GROUP 2
-END
-
-ENDPAGE
-ENDMASK