Aggiunta specifica not deleted per eliminare i problemi di FoxPro con gli indic\
i unique git-svn-id: svn://10.65.10.50/trunk@2163 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b1f7a1ddf2
commit
0245a5243a
79
ba/bacnv.cpp
79
ba/bacnv.cpp
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include <rmov.h>
|
#include <rmov.h>
|
||||||
|
|
||||||
#define usage "Errore - uso : bacnv [1|2|3|4|5|6|7] ditta"
|
#define usage "Errore - uso : bacnv [1|2|3|4|5|6|7|8] ditta"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Applicazione di conversione archivi XBase, valida per tutti e 4 i tipi di DLL
|
// Applicazione di conversione archivi XBase, valida per tutti e 4 i tipi di DLL
|
||||||
@ -163,6 +163,8 @@ public:
|
|||||||
void convert_codconc(void);
|
void convert_codconc(void);
|
||||||
void convert_profili(void);
|
void convert_profili(void);
|
||||||
void convert_caus_attiv(void);
|
void convert_caus_attiv(void);
|
||||||
|
void rebuild_indexes(void);
|
||||||
|
void rebuild_dir_indexes(void);
|
||||||
|
|
||||||
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
||||||
};
|
};
|
||||||
@ -257,6 +259,12 @@ bool TConversione_archivi::menu(MENU_TAG)
|
|||||||
convert_caus_attiv();
|
convert_caus_attiv();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 8:
|
||||||
|
{
|
||||||
|
if (_codditta == 0)
|
||||||
|
rebuild_indexes();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -768,6 +776,73 @@ void TConversione_archivi::convert_codconc()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TConversione_archivi::rebuild_indexes()
|
||||||
|
{
|
||||||
|
do_events();
|
||||||
|
begin_wait();
|
||||||
|
prefix().set("com");
|
||||||
|
rebuild_dir_indexes();
|
||||||
|
TSystemisamfile ditte(LF_NDITTE);
|
||||||
|
ditte.open();
|
||||||
|
|
||||||
|
for (ditte.first(); !ditte.eof(); ditte.next())
|
||||||
|
{
|
||||||
|
const long codditta = ditte.get_long("CODDITTA");
|
||||||
|
const TRecnotype rec = ditte.recno();
|
||||||
|
|
||||||
|
if (prefix().exist(codditta))
|
||||||
|
{
|
||||||
|
ditte.close();
|
||||||
|
set_firm(codditta);
|
||||||
|
rebuild_dir_indexes();
|
||||||
|
ditte.open();
|
||||||
|
}
|
||||||
|
ditte.readat(rec);
|
||||||
|
}
|
||||||
|
ditte.close();
|
||||||
|
end_wait();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TConversione_archivi::rebuild_dir_indexes()
|
||||||
|
{
|
||||||
|
const TString pref(prefix().name());
|
||||||
|
const bool is_com = prefix().is_com();
|
||||||
|
TDir d;
|
||||||
|
|
||||||
|
d.get(LF_DIR);
|
||||||
|
const int items = (int)d.eod();
|
||||||
|
TString80 s("Ricostruzione indici ");
|
||||||
|
|
||||||
|
if (is_com) s << "comuni";
|
||||||
|
else s << " della ditta " << atol (pref);
|
||||||
|
|
||||||
|
TProgind p(items ? items : 1, s, TRUE, TRUE, 70);
|
||||||
|
|
||||||
|
p.setstatus(1);
|
||||||
|
|
||||||
|
for (int i = 2; i <= items; i++)
|
||||||
|
{
|
||||||
|
p.addstatus(1);
|
||||||
|
if (d.len() > 0)
|
||||||
|
{
|
||||||
|
d.get(i, _nolock, _nordir, _sysdirop);
|
||||||
|
bool to_create = (is_com ? d.is_com() : d.is_firm());
|
||||||
|
|
||||||
|
if (to_create)
|
||||||
|
{
|
||||||
|
d.get(i);
|
||||||
|
TFilename s(d.name());
|
||||||
|
s.ext("dbf");
|
||||||
|
if (fexist(s))
|
||||||
|
{
|
||||||
|
TSystemisamfile f(i);
|
||||||
|
f.packindex();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Programma di conversione archivi speciale
|
// Programma di conversione archivi speciale
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -776,7 +851,7 @@ int main(int argc,char** argv)
|
|||||||
{
|
{
|
||||||
const int r = (argc > 1) ? atoi(argv[1]) : 0;
|
const int r = (argc > 1) ? atoi(argv[1]) : 0;
|
||||||
|
|
||||||
if (r < 0 || r > 7)
|
if (r < 0 || r > 8)
|
||||||
{
|
{
|
||||||
error_box(usage);
|
error_box(usage);
|
||||||
return 100;
|
return 100;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user