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>
|
||||
|
||||
#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
|
||||
@ -163,6 +163,8 @@ public:
|
||||
void convert_codconc(void);
|
||||
void convert_profili(void);
|
||||
void convert_caus_attiv(void);
|
||||
void rebuild_indexes(void);
|
||||
void rebuild_dir_indexes(void);
|
||||
|
||||
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
||||
};
|
||||
@ -257,6 +259,12 @@ bool TConversione_archivi::menu(MENU_TAG)
|
||||
convert_caus_attiv();
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
if (_codditta == 0)
|
||||
rebuild_indexes();
|
||||
break;
|
||||
}
|
||||
}
|
||||
default:
|
||||
break;
|
||||
@ -768,6 +776,73 @@ void TConversione_archivi::convert_codconc()
|
||||
#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
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -776,7 +851,7 @@ int main(int argc,char** argv)
|
||||
{
|
||||
const int r = (argc > 1) ? atoi(argv[1]) : 0;
|
||||
|
||||
if (r < 0 || r > 7)
|
||||
if (r < 0 || r > 8)
|
||||
{
|
||||
error_box(usage);
|
||||
return 100;
|
||||
|
Loading…
x
Reference in New Issue
Block a user