diff --git a/build/ba8.vcxproj b/build/ba8.vcxproj index 53c71cbc7..96cd2a854 100644 --- a/build/ba8.vcxproj +++ b/build/ba8.vcxproj @@ -69,14 +69,13 @@ MaxSpeed OnlyExplicitInline - ..\src\include;..\src\xvaga;..\src\xi;%(AdditionalIncludeDirectories) + ..\src\include;..\src\xvaga;..\src\xi;..\src\xvtdb;%(AdditionalIncludeDirectories) NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) true MultiThreaded true Level3 true - ProgramDatabase $(IntDir)$(TargetName).pdb true @@ -129,9 +128,9 @@ MultiThreadedDebug Level3 true - EditAndContinue $(IntDir)$(TargetName).pdb true + EditAndContinue _DEBUG;%(PreprocessorDefinitions) diff --git a/build/f90.vcxproj b/build/f90.vcxproj index e0bf92062..50f9d289a 100644 --- a/build/f90.vcxproj +++ b/build/f90.vcxproj @@ -116,7 +116,7 @@ MaxSpeed Default - ..\src\xvtdb\;..\src\cg;..\src\include;..\src\xvaga;%(AdditionalIncludeDirectories) + ..\src\xvtdb\;..\src\cg;..\src\include;..\src\xvaga;..\src\f1;%(AdditionalIncludeDirectories) NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) true MultiThreaded @@ -232,6 +232,7 @@ true + true diff --git a/cd/test/ba0972.txt b/cd/test/ba0972.txt new file mode 100644 index 000000000..2eaf10cb4 --- /dev/null +++ b/cd/test/ba0972.txt @@ -0,0 +1,3 @@ +ba8.exe + +Corretta classe record sqlite: i datatype erano sempre sbagliati perche' presi dalla prima riga del set e quasi sempre i campi erano considerati real per i TVariant solitamente dovuto a un guessing di campi vuoti. diff --git a/cd/test/ba0972a.ini b/cd/test/ba0972a.ini new file mode 100644 index 000000000..7e6adcac5 --- /dev/null +++ b/cd/test/ba0972a.ini @@ -0,0 +1,31 @@ +[Main] +Demo=0 + +[ba8] +File(503) = ba8.exe|X +Patch = 0972 +Versione = 21511200 + +[ba99] +Kill(0) = batbsce.txt|x +Kill(1) = wxmsw240.dll|x +Kill(2) = bastcms.rep|x +Kill(3) = bastcms.msk|x +Kill(4) = bastfsc.msk|x +Kill(5) = bastfsc.rep|x +Kill(6) = bastuue.msk|x +Kill(7) = bastuue.rep|x + +[ba] +Data = 23-06-2020 +Descrizione = Base +Dischi = 1 +Moduli = sy +OEM = +Patch = 0972 +PostProcess = bainst -0 BA +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/ba0972a1.zip b/cd/test/ba0972a1.zip new file mode 100644 index 000000000..8b0541f8b Binary files /dev/null and b/cd/test/ba0972a1.zip differ diff --git a/cd/test/f90968.txt b/cd/test/f90968.txt index f36df247d..3a96398e1 100644 --- a/cd/test/f90968.txt +++ b/cd/test/f90968.txt @@ -1,12 +1,12 @@ -f90200a.msk f90.exe f90100a.msk -f90100d.msk -fpmenu.men f90100b.msk f90100c.msk +f90100d.msk +f90200a.msk f90300a.msk f90300b.msk +fpmenu.men f9prospintegr.rep sql\f90\f90104.sql diff --git a/cd/test/f90968a.ini b/cd/test/f90968a.ini index 6cbadd6b9..a02ed624d 100644 --- a/cd/test/f90968a.ini +++ b/cd/test/f90968a.ini @@ -3,21 +3,21 @@ Demo=0 [f90] File(0) = f90.exe|X -File(1) = f90100a.msk|X -File(2) = f90100b.msk|X -File(3) = f90100c.msk|X -File(4) = f90100d.msk|X -File(5) = fpmenu.men|X -File(9) = f90200a.msk|X -File(10) = f90300a.msk|X -File(11) = f90300b.msk|X -File(12) = f9prospintegr.rep|X +File(2) = f90100a.msk|X +File(3) = f90100b.msk|X +File(4) = f90100c.msk|X +File(5) = f90100d.msk|X +File(6) = f90200a.msk|X +File(7) = f90300a.msk|X +File(8) = f90300b.msk|X +File(9) = f9prospintegr.rep|X +File(10) = fpmenu.men|X File(13) = sql\f90\f90104.sql|X -Patch = 0968 +Patch = 968 Versione = 21511200 [f9] -Data = 17-06-2020 +Data = 23-06-2020 Descrizione = Archiviazione Sostitutiva Dischi = 1 Moduli = fp,cg diff --git a/cd/test/f90968a1.zip b/cd/test/f90968a1.zip index 39f3b2784..381ac7336 100644 Binary files a/cd/test/f90968a1.zip and b/cd/test/f90968a1.zip differ diff --git a/src/f9/f90100.cpp b/src/f9/f90100.cpp index 8dc626b57..23cc5fd59 100644 --- a/src/f9/f90100.cpp +++ b/src/f9/f90100.cpp @@ -51,6 +51,7 @@ const TString& recset_get_string(const TRecordset& rec, const char* field, int int recset_get_int(const TRecordset& rec, const char* field, int zero_filled = -1); bool recset_get_bool(const TRecordset& rec, const char* field); real recset_get_real(const TRecordset& rec, const char* field); +TDate recset_get_date(const TRecordset& rec, const char* field); TMask& descr_msk() { @@ -113,7 +114,10 @@ real recset_get_real(const TRecordset& rec, const char* field) return rec.get(rec.find_column(field)).as_real(); } - +TDate recset_get_date(const TRecordset& rec, const char* field) +{ + return rec.get(rec.find_column(field)).as_date(); +} //////////////////////////////////////////////////////// @@ -175,8 +179,8 @@ int TEstrai_mask::estrai() movimento_t t; t.err = false; t.numreg = recset_get_int(mov, MOV_NUMREG); - t.datareg = recset_get_string(mov, MOV_DATAREG); - t.datadoc = recset_get_string(mov, MOV_DATADOC); + t.datareg = recset_get_date(mov, MOV_DATAREG); + t.datadoc = recset_get_date(mov, MOV_DATADOC); t.codcaus = recset_get_string(mov, MOV_CODCAUS, 3); t.meseliq = recset_get_int(mov, MOV_MESELIQ); t.numdoc = recset_get_string(mov, MOV_NUMDOC); @@ -1210,13 +1214,15 @@ void TF9_app::open_esclusi() m.add(movs.get_date(MOV_DATADOC)); m.add(movs.get(MOV_CODCAUS)); m.add(movs.get(MOV_MESELIQ)); - m.add(movs.get(MOV_NUMDOC)); + TString numdoc; numdoc << movs.get(MOV_NUMDOCEXT); + m.add(numdoc.full() ? numdoc : movs.get(MOV_NUMDOC)); const real imptot = movs.get_real(MOV_TOTDOC) + movs.get_real(MOV_RITFIS) + movs.get_real(MOV_RITSOC); m.add(imptot); m.add(movs.get_int(MOV_CODCF)); TLocalisamfile clifo(LF_CLIFO); - TString ragsoc; ragsoc = clifo.get(CLI_RAGSOC); - m.add(ragsoc); + clifo.put(CLI_TIPOCF, movs.get(MOV_TIPO)); + clifo.put(CLI_CODCF, movs.get(MOV_CODCF)); + m.add(clifo.read() == NOERR ? clifo.get(CLI_RAGSOC) : ""); m.add(TString(movs.get(MOV_REG)) << "/" << movs.get(MOV_PROTIVA)); m.add(movs.get(MOV_DESCR)); f9_app()._esclusi_vect.insert(f9_app()._esclusi_vect.end(), m); diff --git a/src/f9/f90300.cpp b/src/f9/f90300.cpp index c4464ae87..53192a29c 100644 --- a/src/f9/f90300.cpp +++ b/src/f9/f90300.cpp @@ -459,7 +459,9 @@ void TGestione_doc_cartacei_f9_msk::fill() void TGestione_doc_cartacei_f9_msk::fill_annessi() { std::set file_err; - + TSheet_field& sf = sfield(S_ANNESSI); + sf.hide(); + sf.destroy(); TLocalisamfile ann(LF_F9ANNESSI); if(ann.first() == NOERR) { @@ -469,9 +471,6 @@ void TGestione_doc_cartacei_f9_msk::fill_annessi() file_err.insert(namefile); TLocalisamfile mov(LF_MOV); - TSheet_field& sf = sfield(S_ANNESSI); - sf.hide(); - sf.destroy(); do { TToken_string& row = sf.row(-1); @@ -494,9 +493,9 @@ void TGestione_doc_cartacei_f9_msk::fill_annessi() _list_ann.insert({ namefile, { numreg, namefile, ann.get(F9A_CATDOCPAD), ann.get(F9A_CATDOCANN), ann.get(F9C_LOADDATE), ann.get(F9C_USER) } }); } while (ann.next() == NOERR); - sf.force_update(); - sf.show(); } + sf.force_update(); + sf.show(); if (!file_err.empty()) { @@ -563,9 +562,11 @@ void TGestione_doc_cartacei_f9_msk::fill_docs() _list_file.insert({ namefile, { namefile, files.get(F9C_LOADDATE), numreg, files.get(F9C_USER) } }); } while (files.next() == NOERR); - sf.force_update(); + } + sf.force_update(); sf.show(); + if (!file_err.empty()) { int count = 0; diff --git a/src/f9/f9ProspIntegr.rep b/src/f9/f9ProspIntegr.rep index e0dfcbb9d..63065c436 100644 --- a/src/f9/f9ProspIntegr.rep +++ b/src/f9/f9ProspIntegr.rep @@ -30,27 +30,34 @@ - + CODFISC - + PARTIVA - + - + - + DATADOC + + + + + + NDOC + @@ -58,13 +65,6 @@ CODFORN - - - - - - NDOC - RAGSOCFORN @@ -88,7 +88,7 @@ - + PARTIVAFORN @@ -148,10 +148,10 @@ + - TOTALE @@ -171,14 +171,14 @@ - + + -
#ATTESTA @ diff --git a/src/f9/f9lib01.cpp b/src/f9/f9lib01.cpp index d873d5fe3..519acffdb 100644 --- a/src/f9/f9lib01.cpp +++ b/src/f9/f9lib01.cpp @@ -289,8 +289,6 @@ bool TEstrazione::is_integr_rev(const int numreg, _Out_ TString& numreg_rev_vend { movcoll = mov_rs.get(MOV_NUMREG).as_int(); curr.put(MOV_MOVCOLL, numreg); - TLocalisamfile& f = TLocalisamfile(LF_MOV); - curr.rewrite(f); break; } } diff --git a/src/include/sqlset.cpp b/src/include/sqlset.cpp index 2d4056f70..185a69195 100755 --- a/src/include/sqlset.cpp +++ b/src/include/sqlset.cpp @@ -93,7 +93,7 @@ sqlite3* TSQLite::open(const char* fname) const char* errmsg = sqlite3_errmsg(_handle); // Stringa di sitema: inutile sqlite3_free(errmsg) error_box(errmsg); _handle = NULL; - } + } return _handle; } @@ -386,7 +386,7 @@ bool TSQLite::parse_select_from(const char* szSql) { table.cut(i); break; } } - const int logicnum = (table == "MAG") ? LF_MAG : table2logic(table); + const int logicnum = (table == "MAG") ? LF_MAG : table2logic(table); if (logicnum >= LF_USER) { pi.set_text(table); @@ -428,11 +428,11 @@ int TSQL_recordset::on_get_items(int argc, char** values, char** columns) for (int i = 0; i < argc; i++) { TRecordset_column_info* info = new TRecordset_column_info; - info->_name = columns[i]; - info->_width = 1; - info->_type = _alfafld; + info->_name = columns[i]; + info->_width = 1; + info->_type = _alfafld; - const char* fldtype = columns[argc+i]; + /*const char* fldtype = columns[argc+i]; if (fldtype != NULL) { if (xvt_str_same(fldtype, "DATE")) @@ -449,7 +449,7 @@ int TSQL_recordset::on_get_items(int argc, char** values, char** columns) info->_type = _memofld; info->_width = 50; } - } + }*/ _column.add(info); } } @@ -471,9 +471,9 @@ int TSQL_recordset::on_get_items(int argc, char** values, char** columns) { info._type = _datefld; info._width = 10; - } else + }/* else if (real::is_real(values[i])) - info._type = _realfld; + info._type = _realfld;*/ } } } @@ -502,9 +502,9 @@ TRecnotype TSQL_recordset::items() const { TString sql; parsed_text(sql); TPerformance_profiler prof("SQL query"); - _TheDataBase.exec("PRAGMA show_datatypes=ON;", NULL, NULL); + //_TheDataBase.exec("PRAGMA show_datatypes=ON;", NULL, NULL); _TheDataBase.exec(sql, query_get_items, (TSQL_recordset*)this); - _TheDataBase.exec("PRAGMA show_datatypes=OFF;", NULL, NULL); + //_TheDataBase.exec("PRAGMA show_datatypes=OFF;", NULL, NULL); } return _items; } @@ -634,4 +634,3 @@ TSQL_recordset::TSQL_recordset(const char* sql) { set(sql); } - diff --git a/src/include/strings.h b/src/include/strings.h index 8c242d598..ad9953e08 100755 --- a/src/include/strings.h +++ b/src/include/strings.h @@ -671,7 +671,7 @@ public: void add(int n, int pos = -1); // @cmember Aggiunge un reale void add(const real r, int pos = -1); - // @cmember Aggiunge un reale + // @cmember Aggiunge una data void add(const TDate d, int pos = -1); // @cmember Aggiunge un booleano void add(bool on, int pos = -1) { add(on ? "X" : ""); }