ba1?00.cpp Fascicolator
ba3100.cpp Reindenta che ti passa ba4200?.cpp Aggiunta gestione della posta elettronica ba6101.cpp Corretta stampa elenco persone: 006707 bacnv.cpp Aggiunta conversione per i nuouvi CAP ed uffici unici bacnv15?.txt Files di supporto alla suddetta conversione git-svn-id: svn://10.65.10.50/trunk@5649 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5b5ccfae62
commit
9c5da80f5f
191
ba/ba1500.cpp
191
ba/ba1500.cpp
@ -27,9 +27,10 @@ enum KeyType { _user_key, _aga_key, _prassi_key, _procom_key};
|
|||||||
|
|
||||||
class TDongle : public TObject
|
class TDongle : public TObject
|
||||||
{
|
{
|
||||||
word _serno;
|
word _serno, _max_users;
|
||||||
KeyType _type;
|
KeyType _type;
|
||||||
word _eprom[64];
|
word _eprom[64];
|
||||||
|
TDate _last_update;
|
||||||
|
|
||||||
#if XVT_OS == XVT_OS_SCOUNIX
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
word _port;
|
word _port;
|
||||||
@ -48,6 +49,7 @@ public:
|
|||||||
|
|
||||||
word number() const { return _serno; }
|
word number() const { return _serno; }
|
||||||
bool ok() const { return _serno != 0xFFFF; }
|
bool ok() const { return _serno != 0xFFFF; }
|
||||||
|
word max_users() const { return _max_users; }
|
||||||
|
|
||||||
void garble(word data[4]) const;
|
void garble(word data[4]) const;
|
||||||
|
|
||||||
@ -56,6 +58,7 @@ public:
|
|||||||
bool active(word module) const { return _module[module]; }
|
bool active(word module) const { return _module[module]; }
|
||||||
void activate(word module, bool on = TRUE) { _module.set(module, on); _dirty = TRUE; }
|
void activate(word module, bool on = TRUE) { _module.set(module, on); _dirty = TRUE; }
|
||||||
void deactivate(word module) { activate(module, FALSE); }
|
void deactivate(word module) { activate(module, FALSE); }
|
||||||
|
void set_max_users(word u) { _max_users = u; _dirty = TRUE; }
|
||||||
|
|
||||||
bool dirty() const { return _dirty; }
|
bool dirty() const { return _dirty; }
|
||||||
bool burn();
|
bool burn();
|
||||||
@ -65,7 +68,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
TDongle::TDongle()
|
TDongle::TDongle()
|
||||||
: _type(_user_key), _serno(0xFFFF), _dirty(FALSE)
|
: _type(_user_key), _serno(0xFFFF), _dirty(FALSE), _max_users(1)
|
||||||
{
|
{
|
||||||
memset(_eprom, 0, sizeof(_eprom));
|
memset(_eprom, 0, sizeof(_eprom));
|
||||||
}
|
}
|
||||||
@ -92,14 +95,14 @@ bool TDongle::already_programmed() const
|
|||||||
if (data[0] != 0xFACE)
|
if (data[0] != 0xFACE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (data[1] != _serno)
|
if (data[1] == 0 || data[1] > 255)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
const TDate today(TODAY);
|
const TDate today(TODAY);
|
||||||
const long& giulio = (const long&)data[2];
|
const long& giulio = (const long&)data[2];
|
||||||
const long yyyymmdd = today.julian2date(giulio);
|
const long yyyymmdd = today.julian2date(giulio);
|
||||||
const TDate d(yyyymmdd);
|
const TDate d(yyyymmdd);
|
||||||
if (d.year() < 1997 || d.year() > 2997)
|
if (d.year() < 1997 || d > today)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -150,11 +153,16 @@ bool TDongle::login()
|
|||||||
if (data[0] == 0xFAE8)
|
if (data[0] == 0xFAE8)
|
||||||
_serno = data[1];
|
_serno = data[1];
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#ifdef DBG
|
||||||
|
if (data[0] == 0x3283)
|
||||||
|
{
|
||||||
|
_type = _aga_key;
|
||||||
|
_serno = 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (_type == _user_key)
|
if (_type == _user_key)
|
||||||
ok = FALSE;
|
ok = FALSE;
|
||||||
else
|
|
||||||
_serno = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,13 +170,16 @@ bool TDongle::login()
|
|||||||
{
|
{
|
||||||
if (_serno > 0)
|
if (_serno > 0)
|
||||||
{
|
{
|
||||||
|
const bool already = already_programmed();
|
||||||
|
|
||||||
_module.reset();
|
_module.reset();
|
||||||
_module.set(0, TRUE);
|
_module.set(0, TRUE);
|
||||||
|
const int last_word = already ? 12 : 4;
|
||||||
const int last_word = already_programmed() ? 12 : 4;
|
word data[4];
|
||||||
|
|
||||||
|
// Legge flag di attivazione dei moduli
|
||||||
for (int i = 0; i < last_word; i += 4)
|
for (int i = 0; i < last_word; i += 4)
|
||||||
{
|
{
|
||||||
word data[4];
|
|
||||||
memcpy(data, &_eprom[48+i], sizeof(data));
|
memcpy(data, &_eprom[48+i], sizeof(data));
|
||||||
garble(data);
|
garble(data);
|
||||||
if (data[3] == _serno) // Validate block
|
if (data[3] == _serno) // Validate block
|
||||||
@ -176,12 +187,15 @@ bool TDongle::login()
|
|||||||
for (int j = 0; j < 3; j++)
|
for (int j = 0; j < 3; j++)
|
||||||
{
|
{
|
||||||
word parola = data[j] ^ _serno;
|
word parola = data[j] ^ _serno;
|
||||||
for (int b = 15; b >= 0; b--)
|
if (parola)
|
||||||
{
|
{
|
||||||
if (BITTEST(parola, b))
|
for (int b = 15; b >= 0; b--)
|
||||||
{
|
{
|
||||||
const word bit = i * 12 + j * 16 + b;
|
if (BITTEST(parola, b))
|
||||||
_module.set(bit);
|
{
|
||||||
|
const word bit = i * 12 + j * 16 + b;
|
||||||
|
_module.set(bit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -189,11 +203,24 @@ bool TDongle::login()
|
|||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Legge numero massimo di utenti
|
||||||
|
memcpy(data, &_eprom[60], sizeof(data));
|
||||||
|
garble(data);
|
||||||
|
_max_users = data[1];
|
||||||
|
if (_max_users <= 0 || _max_users > 255)
|
||||||
|
_max_users = 1;
|
||||||
|
|
||||||
|
const long& giulio = (const long&)data[2];
|
||||||
|
const long yyyymmdd = _last_update.julian2date(giulio);
|
||||||
|
_last_update = yyyymmdd;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_module.set(MAX_AUT-1);
|
_module.set(MAX_AUT-1);
|
||||||
_module.set();
|
_module.set();
|
||||||
|
_max_users = 1;
|
||||||
|
_last_update = TDate(TODAY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -245,8 +272,8 @@ bool TDongle::burn()
|
|||||||
garble(data);
|
garble(data);
|
||||||
if (data[0] != 0xFACE)
|
if (data[0] != 0xFACE)
|
||||||
return error_box("Checksum error.");
|
return error_box("Checksum error.");
|
||||||
if (data[1] != _serno)
|
if (data[1] == 0 || data[1] > 255)
|
||||||
return error_box("Bad serial number.");
|
return error_box("Bad users number.");
|
||||||
const long& val = (const long&)data[2];
|
const long& val = (const long&)data[2];
|
||||||
const long yyyymmdd = today.julian2date(val);
|
const long yyyymmdd = today.julian2date(val);
|
||||||
const TDate date(yyyymmdd);
|
const TDate date(yyyymmdd);
|
||||||
@ -255,11 +282,12 @@ bool TDongle::burn()
|
|||||||
}
|
}
|
||||||
|
|
||||||
data[0] = 0xFACE;
|
data[0] = 0xFACE;
|
||||||
data[1] = _serno;
|
data[1] = _max_users;
|
||||||
long& val = (long&)data[2];
|
long& val = (long&)data[2];
|
||||||
val = today.date2julian();
|
val = today.date2julian();
|
||||||
garble(data);
|
garble(data);
|
||||||
write_octect(60, data);
|
write_octect(60, data);
|
||||||
|
_last_update = today;
|
||||||
|
|
||||||
word module = 0;
|
word module = 0;
|
||||||
for (int octect = 0; octect < 3; octect++)
|
for (int octect = 0; octect < 3; octect++)
|
||||||
@ -298,7 +326,7 @@ TInformazione_moduli::TInformazione_moduli()
|
|||||||
ifstream in("prassi.aut");
|
ifstream in("prassi.aut");
|
||||||
while (!in.eof() && in.good())
|
while (!in.eof() && in.good())
|
||||||
{
|
{
|
||||||
in.getline(s.get_buffer(256), s.size());
|
in.getline(s.get_buffer(), s.size());
|
||||||
s.trim();
|
s.trim();
|
||||||
if (s.empty())
|
if (s.empty())
|
||||||
break;
|
break;
|
||||||
@ -306,7 +334,7 @@ TInformazione_moduli::TInformazione_moduli()
|
|||||||
if (l > 2)
|
if (l > 2)
|
||||||
{
|
{
|
||||||
// t = format("%-40s", (const char*)s.right(l-3));
|
// t = format("%-40s", (const char*)s.right(l-3));
|
||||||
t = format("%-40s", (const char*)s.mid(3));
|
t = s.mid(3);
|
||||||
t.add(s.left(2));
|
t.add(s.left(2));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -389,6 +417,8 @@ protected:
|
|||||||
|
|
||||||
void garble(word k[4]) const;
|
void garble(word k[4]) const;
|
||||||
void garble(word n, TString& str) const;
|
void garble(word n, TString& str) const;
|
||||||
|
void garble_users(word u, TString& str) const;
|
||||||
|
|
||||||
word& serno() { return _serno; }
|
word& serno() { return _serno; }
|
||||||
|
|
||||||
void generate_key();
|
void generate_key();
|
||||||
@ -396,15 +426,20 @@ protected:
|
|||||||
void build_key_column();
|
void build_key_column();
|
||||||
|
|
||||||
bool burn_dongle();
|
bool burn_dongle();
|
||||||
|
TDongle& dongle() { return _dongle; }
|
||||||
|
|
||||||
static void keyext(const TString & s, word * v);
|
static void keyext(const TString & s, word * v);
|
||||||
static void encode_second_key();
|
static void encode_second_key();
|
||||||
|
|
||||||
static bool user_hnd(TMask_field & f, KEY k);
|
static bool user_hnd(TMask_field & f, KEY k);
|
||||||
|
static bool date_hnd(TMask_field & f, KEY k);
|
||||||
static bool serno_hnd(TMask_field & f, KEY k);
|
static bool serno_hnd(TMask_field & f, KEY k);
|
||||||
static bool decode_hnd(TMask_field & f, KEY k);
|
static bool decode_hnd(TMask_field & f, KEY k);
|
||||||
static bool activate_hnd(TMask_field & f, KEY k);
|
static bool activate_hnd(TMask_field & f, KEY k);
|
||||||
|
|
||||||
static bool k_notify(TSheet_field & f, int r, KEY k);
|
static bool k_notify(TSheet_field & f, int r, KEY k);
|
||||||
|
static bool change_users_handler(TMask_field&, KEY key);
|
||||||
|
static bool maxuser_handler(TMask_field& fld, KEY key);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TAttivazione_moduli() : _msk(NULL) { }
|
TAttivazione_moduli() : _msk(NULL) { }
|
||||||
@ -447,7 +482,7 @@ void TAttivazione_moduli::garble(word k[4]) const
|
|||||||
|
|
||||||
void TAttivazione_moduli::garble(word n, TString& str) const
|
void TAttivazione_moduli::garble(word n, TString& str) const
|
||||||
{
|
{
|
||||||
const TDate today(TODAY);
|
const TDate today(_msk->get(F_DT));
|
||||||
const long val = today.date2julian();
|
const long val = today.date2julian();
|
||||||
|
|
||||||
word data[4];
|
word data[4];
|
||||||
@ -459,6 +494,18 @@ void TAttivazione_moduli::garble(word n, TString& str) const
|
|||||||
str.format("%04X%04X", data[0], data[1]);
|
str.format("%04X%04X", data[0], data[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TAttivazione_moduli::garble_users(word u, TString& str) const
|
||||||
|
{
|
||||||
|
word data[4];
|
||||||
|
data[0] = word(_msk->get_int(F_SN));
|
||||||
|
data[1] = u;
|
||||||
|
data[2] = 0;
|
||||||
|
data[3] = 0;
|
||||||
|
garble(data);
|
||||||
|
str.format("%04X%04X", data[0], data[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void TAttivazione_moduli::build_key_column()
|
void TAttivazione_moduli::build_key_column()
|
||||||
{
|
{
|
||||||
TSheet_field& sf = (TSheet_field&)_msk->field(F_MODULI);
|
TSheet_field& sf = (TSheet_field&)_msk->field(F_MODULI);
|
||||||
@ -487,7 +534,7 @@ bool TAttivazione_moduli::burn_dongle()
|
|||||||
{
|
{
|
||||||
TString16 str, key;
|
TString16 str, key;
|
||||||
|
|
||||||
TSheet_field& sf = (TSheet_field&)_msk->field(F_MODULI);
|
TSheet_field& sf = _msk->sfield(F_MODULI);
|
||||||
for (int i = 0; i < sf.items(); i++)
|
for (int i = 0; i < sf.items(); i++)
|
||||||
{
|
{
|
||||||
TToken_string& riga = sf.row(i);
|
TToken_string& riga = sf.row(i);
|
||||||
@ -528,6 +575,69 @@ bool TAttivazione_moduli::burn_dongle()
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TAttivazione_moduli::maxuser_handler(TMask_field& fld, KEY key)
|
||||||
|
{
|
||||||
|
bool ok = TRUE;
|
||||||
|
if (key == K_TAB && fld.focusdirty())
|
||||||
|
{
|
||||||
|
const int utenti = atoi(fld.get());
|
||||||
|
if (utenti > 0 && utenti <= 255)
|
||||||
|
{
|
||||||
|
TString16 str;
|
||||||
|
app().garble_users(utenti, str);
|
||||||
|
fld.mask().set(102, str);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ok = fld.error_box("Numero di utenti errato");
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAttivazione_moduli::change_users_handler(TMask_field& fld, KEY key)
|
||||||
|
{
|
||||||
|
if (key == K_SPACE)
|
||||||
|
{
|
||||||
|
TMask m("Utenti", 1, 40, 6);
|
||||||
|
m.add_number(101, 0, "Utenti ", 1, 1, 3, "U");
|
||||||
|
m.add_string(102, 0, "Codice ", 1, 2, 8, "U");
|
||||||
|
m.add_button(DLG_OK, 0, "", -12, -1, 10, 2);
|
||||||
|
m.add_button(DLG_CANCEL, 0, "", -22, -1, 10, 2);
|
||||||
|
|
||||||
|
TDongle& dongle = app().dongle();
|
||||||
|
|
||||||
|
m.set(101, dongle.max_users());
|
||||||
|
|
||||||
|
if (dongle.type() != _user_key)
|
||||||
|
{
|
||||||
|
m.set_handler(101, maxuser_handler);
|
||||||
|
m.disable(102);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m.run() == K_ENTER)
|
||||||
|
{
|
||||||
|
if (dongle.type() == _user_key)
|
||||||
|
{
|
||||||
|
const int utenti = m.get_int(101);
|
||||||
|
if (utenti > 0 && utenti <= 255)
|
||||||
|
{
|
||||||
|
TString16 str;
|
||||||
|
app().garble_users(utenti, str);
|
||||||
|
if (str == m.get(102))
|
||||||
|
{
|
||||||
|
dongle.set_max_users(utenti);
|
||||||
|
fld.mask().set(F_USERS, utenti);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
error_box("Codice errato");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
error_box("Numero di utenti errato");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
void TAttivazione_moduli::generate_key()
|
void TAttivazione_moduli::generate_key()
|
||||||
{
|
{
|
||||||
#if XVT_OS == XVT_OS_SCOUNIX
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
@ -554,14 +664,18 @@ void TAttivazione_moduli::generate_key()
|
|||||||
nmod = build_sheet();
|
nmod = build_sheet();
|
||||||
ud[0] = _dongle.number();
|
ud[0] = _dongle.number();
|
||||||
ud[1] = K1 | (nmod & LBYTEMASK);
|
ud[1] = K1 | (nmod & LBYTEMASK);
|
||||||
|
|
||||||
long & l = (long &) ud[2];
|
long & l = (long &) ud[2];
|
||||||
TDate d(TODAY);
|
TDate d(TODAY);
|
||||||
|
|
||||||
l = d.year()*10000L + d.month()*100L + d.day();
|
l = d.year()*10000L + d.month()*100L + d.day();
|
||||||
|
|
||||||
garble(ud);
|
garble(ud);
|
||||||
_msk->set(F_K1, format("%04X%04X%04X%04X", ud[0], ud[1], ud[2], ud[3]));
|
_msk->set(F_K1, format("%04X%04X%04X%04X", ud[0], ud[1], ud[2], ud[3]));
|
||||||
_msk->set(F_SN, _dongle.number());
|
_msk->set(F_SN, _dongle.number());
|
||||||
_msk->set(F_DT, d);
|
_msk->set(F_DT, d);
|
||||||
|
|
||||||
|
const int utenti = _dongle.max_users();
|
||||||
|
_msk->set(F_USERS, utenti);
|
||||||
}
|
}
|
||||||
|
|
||||||
int hexdigit(char c)
|
int hexdigit(char c)
|
||||||
@ -650,6 +764,21 @@ bool TAttivazione_moduli::serno_hnd(TMask_field& f, KEY k)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool TAttivazione_moduli::date_hnd(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
bool ok = TRUE;
|
||||||
|
if (k == K_TAB && f.focusdirty())
|
||||||
|
{
|
||||||
|
const TDate data(f.get());
|
||||||
|
const TDate oggi(TODAY);
|
||||||
|
ok = data <= oggi;
|
||||||
|
if (!ok)
|
||||||
|
f.error_box("La data deve essere antecedente a quella di sistema");
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
void TAttivazione_moduli::encode_second_key()
|
void TAttivazione_moduli::encode_second_key()
|
||||||
{
|
{
|
||||||
TMask * m = app()._msk;
|
TMask * m = app()._msk;
|
||||||
@ -736,7 +865,7 @@ bool TAttivazione_moduli::activate_hnd(TMask_field & f, KEY k)
|
|||||||
|
|
||||||
bool TAttivazione_moduli::k_notify(TSheet_field& f, int r, KEY k)
|
bool TAttivazione_moduli::k_notify(TSheet_field& f, int r, KEY k)
|
||||||
{
|
{
|
||||||
if (k == K_INS)
|
if (k == K_INS || k == K_DEL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -754,10 +883,12 @@ bool TAttivazione_moduli::create()
|
|||||||
disable_menu_item(M_FILE_PG_SETUP);
|
disable_menu_item(M_FILE_PG_SETUP);
|
||||||
|
|
||||||
_msk = new TMask("ba1500a") ;
|
_msk = new TMask("ba1500a") ;
|
||||||
|
|
||||||
TSheet_field& sf = (TSheet_field&) _msk->field(F_MODULI);
|
_msk->set_handler(F_CHANGEUSERS, change_users_handler);
|
||||||
const int un = _im->unassigned();
|
TSheet_field& sf = _msk->sfield(F_MODULI);
|
||||||
sf.set_notify(k_notify);
|
sf.set_notify(k_notify);
|
||||||
|
|
||||||
|
const int un = _im->unassigned();
|
||||||
|
|
||||||
switch (_dongle.type())
|
switch (_dongle.type())
|
||||||
{
|
{
|
||||||
@ -766,6 +897,10 @@ bool TAttivazione_moduli::create()
|
|||||||
_msk->disable(F_K1);
|
_msk->disable(F_K1);
|
||||||
_msk->disable(F_K2);
|
_msk->disable(F_K2);
|
||||||
_msk->set_handler(F_K4, user_hnd);
|
_msk->set_handler(F_K4, user_hnd);
|
||||||
|
|
||||||
|
_msk->enable(F_DT);
|
||||||
|
_msk->set_handler(F_DT, date_hnd);
|
||||||
|
|
||||||
generate_key();
|
generate_key();
|
||||||
sf.enable_column(F_ENABLE, FALSE);
|
sf.enable_column(F_ENABLE, FALSE);
|
||||||
sf.enable_column(F_KEY, serno() != 0);
|
sf.enable_column(F_KEY, serno() != 0);
|
||||||
|
@ -11,6 +11,9 @@
|
|||||||
#define F_SN 211
|
#define F_SN 211
|
||||||
#define F_DT 212
|
#define F_DT 212
|
||||||
#define F_MODULI 213
|
#define F_MODULI 213
|
||||||
|
#define F_USERS 214
|
||||||
|
#define F_CHANGEUSERS 215
|
||||||
|
#define F_REQUEST 216
|
||||||
|
|
||||||
#define F_NOMEMOD 101
|
#define F_NOMEMOD 101
|
||||||
#define F_ENABLE 102
|
#define F_ENABLE 102
|
||||||
|
@ -4,12 +4,17 @@ TOOLBAR "" 0 20 0 2
|
|||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -12 -1 ""
|
PROMPT -13 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON F_REQUEST 18 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -11 -1 "~Stampa richiesta"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_QUIT 10 2
|
BUTTON DLG_QUIT 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -22 -1 ""
|
PROMPT -33 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
@ -40,6 +45,18 @@ BEGIN
|
|||||||
FLAGS "AD"
|
FLAGS "AD"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
NUMBER F_USERS 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 56 3 "Utenti "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON F_CHANGEUSERS 6 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 69 3 "Cambia"
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
STRING F_K3 16
|
STRING F_K3 16
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 3 "Attivazione 2 "
|
PROMPT 1 3 "Attivazione 2 "
|
||||||
|
27
ba/ba1600.h
27
ba/ba1600.h
@ -39,31 +39,4 @@ public:
|
|||||||
virtual ~TAuto_token_string() { }
|
virtual ~TAuto_token_string() { }
|
||||||
};
|
};
|
||||||
|
|
||||||
#define FOR_EACH_ARRAY_ROW(__arr, __r, __riga) \
|
|
||||||
TToken_string* __riga; \
|
|
||||||
for (int __r = __arr.first(); \
|
|
||||||
__riga = (TToken_string*)__arr.objptr(__r); \
|
|
||||||
__r = __arr.succ(__r))
|
|
||||||
|
|
||||||
#define FOR_EACH_ARRAY_ROW_BACK(__arr, __r, __riga) \
|
|
||||||
TToken_string* __riga; \
|
|
||||||
for (int __r = __arr.last(); \
|
|
||||||
__riga = (TToken_string*)__arr.objptr(__r); \
|
|
||||||
__r = __arr.pred(__r))
|
|
||||||
|
|
||||||
#define FOR_EACH_SHEET_ROW(__sheet, __r, __riga) \
|
|
||||||
FOR_EACH_ARRAY_ROW(__sheet.rows_array(), __r, __riga)
|
|
||||||
|
|
||||||
#define FOR_EACH_SHEET_ROW_BACK(__sheet, __r, __riga) \
|
|
||||||
FOR_EACH_ARRAY_ROW_BACK(__sheet.rows_array(), __r, __riga)
|
|
||||||
|
|
||||||
#define FOR_EACH_ASSOC_STRING(__ass, __obj, __key, __str) \
|
|
||||||
const char *__key, *__str; __ass.restart; \
|
|
||||||
for (THash_object* __obj = __ass.get_hashobj(); \
|
|
||||||
__obj && (__str = (const TString&)__obj->obj(), __key = __obj->key()); \
|
|
||||||
__obj = __ass.get_hashobj())
|
|
||||||
|
|
||||||
#define FOR_EACH_TOKEN(__tok, __str) \
|
|
||||||
for (const char* __str = __tok.get(0); __str; __str = __tok.get())
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -445,7 +445,7 @@ bool TGeneric_table_app::user_create()
|
|||||||
_ver->put("R5","50500"); _ver->put("R7","200000");
|
_ver->put("R5","50500"); _ver->put("R7","200000");
|
||||||
_ver->put("R11","88"); _ver->put("R12","88");
|
_ver->put("R11","88"); _ver->put("R12","88");
|
||||||
if (_ver->write() != NOERR)
|
if (_ver->write() != NOERR)
|
||||||
error_box("Errore %d in scrittura sulla tabella %VER",_ver->status());
|
error_box("Errore %d in scrittura sulla tabella versamenti",_ver->status());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,6 +43,7 @@ protected:
|
|||||||
virtual void write_enable(bool on = TRUE);
|
virtual void write_enable(bool on = TRUE);
|
||||||
|
|
||||||
static bool fax_handler(TMask_field& f, KEY k);
|
static bool fax_handler(TMask_field& f, KEY k);
|
||||||
|
static bool email_handler(TMask_field& f, KEY k);
|
||||||
static bool ba4200_handler(TMask& m, KEY k);
|
static bool ba4200_handler(TMask& m, KEY k);
|
||||||
static bool ind_handler(TMask_field& f, KEY k);
|
static bool ind_handler(TMask_field& f, KEY k);
|
||||||
|
|
||||||
@ -106,10 +107,15 @@ bool TPersone_app::fax_handler(TMask_field& f, KEY k)
|
|||||||
bool ok = TRUE;
|
bool ok = TRUE;
|
||||||
if (k == K_SPACE)
|
if (k == K_SPACE)
|
||||||
{
|
{
|
||||||
TConfig ini(CONFIG_USER, "Link");
|
// TConfig ini(CONFIG_USER, "Link");
|
||||||
TFilename editor = ini.get("Editor", NULL, -1, "notepad");
|
// TFilename editor = ini.get("Editor", NULL, -1, "notepad");
|
||||||
TExternal_app app(editor);
|
// TExternal_app app(editor);
|
||||||
ok = app.run(TRUE, FALSE) == 0;
|
// ok = app.run(TRUE, FALSE) == 0;
|
||||||
|
TFilename msg; msg.temp(NULL, "txt");
|
||||||
|
ofstream msgf(msg);
|
||||||
|
msgf.close();
|
||||||
|
ok = goto_url(msg);
|
||||||
|
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
const TPersone_app& app = (const TPersone_app&)main_app();
|
const TPersone_app& app = (const TPersone_app&)main_app();
|
||||||
@ -125,6 +131,16 @@ bool TPersone_app::fax_handler(TMask_field& f, KEY k)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TPersone_app::email_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_SPACE)
|
||||||
|
{
|
||||||
|
TMail_message msg(f.mask().get(F_MAIL));
|
||||||
|
msg.send();
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
bool TPersone_app::ind_handler(TMask_field& f, KEY k)
|
bool TPersone_app::ind_handler(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
TMask & m = f.mask();
|
TMask & m = f.mask();
|
||||||
@ -547,6 +563,7 @@ TMask* TPersone_app::get_mask(int mode)
|
|||||||
_msk[MSKF]->set_handler(F_CODREG96, cod_reg);
|
_msk[MSKF]->set_handler(F_CODREG96, cod_reg);
|
||||||
_msk[MSKF]->set_handler(F_TITCF, tit_cf);
|
_msk[MSKF]->set_handler(F_TITCF, tit_cf);
|
||||||
_msk[MSKF]->set_handler(DLG_FAX, fax_handler);
|
_msk[MSKF]->set_handler(DLG_FAX, fax_handler);
|
||||||
|
_msk[MSKF]->set_handler(DLG_EMAIL, email_handler);
|
||||||
|
|
||||||
_msk[MSKF]->set_handler(ba4200_handler);
|
_msk[MSKF]->set_handler(ba4200_handler);
|
||||||
}
|
}
|
||||||
@ -563,6 +580,7 @@ TMask* TPersone_app::get_mask(int mode)
|
|||||||
_msk[MSKG]->set_handler(F_UFFCONC, uff_conc);
|
_msk[MSKG]->set_handler(F_UFFCONC, uff_conc);
|
||||||
_msk[MSKG]->set_handler(F_TITCF, tit_cf);
|
_msk[MSKG]->set_handler(F_TITCF, tit_cf);
|
||||||
_msk[MSKG]->set_handler(DLG_FAX, fax_handler);
|
_msk[MSKG]->set_handler(DLG_FAX, fax_handler);
|
||||||
|
_msk[MSKG]->set_handler(DLG_EMAIL, email_handler);
|
||||||
|
|
||||||
_msk[MSKG]->set_handler(ba4200_handler);
|
_msk[MSKG]->set_handler(ba4200_handler);
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,19 @@ BEGIN
|
|||||||
PICTURE BMP_FAX
|
PICTURE BMP_FAX
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_EMAIL 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -56 -3 "~Posta"
|
||||||
|
PICTURE BMP_EMAIL
|
||||||
|
END
|
||||||
|
|
||||||
|
GOLEM DLG_OGGETTI 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -66 -3 "~Oggetti"
|
||||||
|
FIELD OGGETTI
|
||||||
|
FLAG "M"
|
||||||
|
END
|
||||||
|
|
||||||
#include <toolbar.h>
|
#include <toolbar.h>
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
@ -97,13 +110,6 @@ MESSAGE COPY,3@
|
|||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
GOLEM DLG_OGGETTI 4 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT 71 1 ""
|
|
||||||
FIELD OGGETTI
|
|
||||||
FLAG "M"
|
|
||||||
END
|
|
||||||
|
|
||||||
RADIOBUTTON LST_AF1_SESSO 1 12
|
RADIOBUTTON LST_AF1_SESSO 1 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 5 "Sesso"
|
PROMPT 0 5 "Sesso"
|
||||||
@ -649,7 +655,6 @@ STRING F_MAIL 50
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 16 "Indirizzo di posta "
|
PROMPT 2 16 "Indirizzo di posta "
|
||||||
FIELD MAIL
|
FIELD MAIL
|
||||||
FLAGS "B"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -20,6 +20,19 @@ BEGIN
|
|||||||
PICTURE BMP_FAX
|
PICTURE BMP_FAX
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_EMAIL 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -56 -3 "~Posta"
|
||||||
|
PICTURE BMP_EMAIL
|
||||||
|
END
|
||||||
|
|
||||||
|
GOLEM DLG_OGGETTI 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -66 -3 "~Oggetti"
|
||||||
|
FIELD OGGETTI
|
||||||
|
FLAG "M"
|
||||||
|
END
|
||||||
|
|
||||||
#include <toolbar.h>
|
#include <toolbar.h>
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
@ -79,13 +92,6 @@ BEGIN
|
|||||||
KEY 2
|
KEY 2
|
||||||
END
|
END
|
||||||
|
|
||||||
GOLEM DLG_OGGETTI 4 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT 71 1 ""
|
|
||||||
FIELD OGGETTI
|
|
||||||
FLAG "M"
|
|
||||||
END
|
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 41 4
|
GROUPBOX DLG_NULL 41 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 4 "Partita IVA "
|
PROMPT 0 4 "Partita IVA "
|
||||||
@ -585,7 +591,6 @@ STRING F_MAIL 50
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 15 "Indirizzo di posta "
|
PROMPT 2 15 "Indirizzo di posta "
|
||||||
FIELD MAIL
|
FIELD MAIL
|
||||||
FLAGS "B"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -811,31 +811,20 @@ void TAnaprint_app::set_elenco()
|
|||||||
case anagiu:
|
case anagiu:
|
||||||
if (_pr_what == anafis)
|
if (_pr_what == anafis)
|
||||||
{
|
{
|
||||||
if (_inclditte)
|
set_row(1,"$[b]@pN$[n]@7g#T",
|
||||||
set_row(1,"$[b]@pN$[n]@4j#T@55g$[r]@pN$[n]@66g@S",
|
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
||||||
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
&_surname_name);
|
||||||
&_surname_name,
|
|
||||||
FLD(LF_NDITTE,"CODDITTA","@@@@@"),
|
|
||||||
FLD(LF_NDITTE,"RAGSOC"));
|
|
||||||
else
|
|
||||||
set_row(1,"$[b]@pN$[n]@4j#T",
|
|
||||||
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
|
||||||
&_surname_name);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (_inclditte)
|
set_row(1,"$[b]@pN$[n]@7g@50S",
|
||||||
set_row(1,"$[b]@pN$[n]@4j@50S@55g$[r]@pN$[n]@66g@S",
|
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
||||||
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
FLD(LF_ANAG,"RAGSOC"));
|
||||||
FLD(LF_ANAG,"RAGSOC"),
|
|
||||||
FLD(LF_NDITTE,"CODDITTA","@@@@@"),
|
|
||||||
FLD(LF_NDITTE,"RAGSOC"));
|
|
||||||
|
|
||||||
else
|
|
||||||
set_row(1,"$[b]@pN$[n]@4j@50S",
|
|
||||||
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
|
||||||
FLD(LF_ANAG,"RAGSOC"));
|
|
||||||
}
|
}
|
||||||
|
if (_inclditte)
|
||||||
|
set_row(1,"@58g$[r]@pN$[n]@66g@S",
|
||||||
|
FLD(LF_NDITTE,"CODDITTA","@@@@@"),
|
||||||
|
FLD(LF_NDITTE,"RAGSOC"));
|
||||||
break;
|
break;
|
||||||
case nditte:
|
case nditte:
|
||||||
set_row(1,"$[r]@pN$[n]@10g@S@50g@S @pN@3j@S",
|
set_row(1,"$[r]@pN$[n]@10g@S@50g@S @pN@3j@S",
|
||||||
@ -870,27 +859,17 @@ void TAnaprint_app::set_headers()
|
|||||||
{
|
{
|
||||||
case anafis:
|
case anafis:
|
||||||
case anagiu:
|
case anagiu:
|
||||||
#if XVT_OS != XVT_OS_SCOUNIX
|
|
||||||
set_background("W1l{1 2 132 2}W4l{1 5 132 5}");
|
set_background("W1l{1 2 132 2}W4l{1 5 132 5}");
|
||||||
#else
|
|
||||||
set_header(2,(const char*)sep);
|
|
||||||
set_header(5,(const char*)sep);
|
|
||||||
#endif
|
|
||||||
set_header(1,"@bELENCO PERSONE %s@82gStudio@96gData"
|
set_header(1,"@bELENCO PERSONE %s@82gStudio@96gData"
|
||||||
"@101g @< @110g Pag. @#", _pr_what == anafis ? "FISICHE" :
|
"@101g @< @110g Pag. @#", _pr_what == anafis ? "FISICHE" :
|
||||||
"GIURIDICHE");
|
"GIURIDICHE");
|
||||||
set_header(3,"@iCodice@55gCodice");
|
set_header(3,"@iCodice@58gCodice");
|
||||||
set_header(4,"@iAnagr. Ragione sociale/cognome e nome@55gDitta"
|
set_header(4,"@iAnagr. Ragione sociale/cognome e nome@58gDitta"
|
||||||
"@66gDenominazione sociale");
|
"@66gDenominazione sociale");
|
||||||
set_header(6,"");
|
set_header(6,"");
|
||||||
break;
|
break;
|
||||||
case nditte:
|
case nditte:
|
||||||
#if XVT_OS != XVT_OS_SCOUNIX
|
|
||||||
set_background("W1l{1 2 132 2}W4l{1 5 132 5}");
|
set_background("W1l{1 2 132 2}W4l{1 5 132 5}");
|
||||||
#else
|
|
||||||
set_header(2,(const char*)sep);
|
|
||||||
set_header(5,(const char*)sep);
|
|
||||||
#endif
|
|
||||||
set_header(1,"@bELENCO DITTE@82gStudio@96gData"
|
set_header(1,"@bELENCO DITTE@82gStudio@96gData"
|
||||||
"@101g @< @110g Pag. @#");
|
"@101g @< @110g Pag. @#");
|
||||||
set_header(3,"@iCodice@50gT");
|
set_header(3,"@iCodice@50gT");
|
||||||
|
151
ba/bacnv.cpp
151
ba/bacnv.cpp
@ -26,7 +26,7 @@
|
|||||||
#include "..\cg\cglib02.h"
|
#include "..\cg\cglib02.h"
|
||||||
|
|
||||||
|
|
||||||
#define usage "Errore - uso : bacnv [1|2|3|4|5|6|7|8|9|10|11|12|13|14] ditta"
|
#define usage "Errore - uso : bacnv [1|2|3|4|5|6|7|8|9|10|11|12|13|14|15] 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
|
||||||
@ -184,6 +184,9 @@ public:
|
|||||||
void remove_dta_ndx() const;
|
void remove_dta_ndx() const;
|
||||||
void convert_ucs() const;
|
void convert_ucs() const;
|
||||||
void convert_ucc() const;
|
void convert_ucc() const;
|
||||||
|
void convert_cap() const;
|
||||||
|
void convert_uue() const;
|
||||||
|
|
||||||
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -319,6 +322,12 @@ bool TConversione_archivi::menu(MENU_TAG)
|
|||||||
convert_ucs();
|
convert_ucs();
|
||||||
convert_ucc();
|
convert_ucc();
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
if (_codditta == 0)
|
||||||
|
convert_uue();
|
||||||
|
convert_cap();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1332,7 +1341,6 @@ void TConversione_archivi::convert_saldi() const
|
|||||||
// Effettua il ricalcolo saldi per tutti gli esercizi della ditta corrente
|
// Effettua il ricalcolo saldi per tutti gli esercizi della ditta corrente
|
||||||
{
|
{
|
||||||
TTable esc("ESC");
|
TTable esc("ESC");
|
||||||
|
|
||||||
for (esc.first();esc.good();esc.next())
|
for (esc.first();esc.good();esc.next())
|
||||||
{
|
{
|
||||||
const int year = atoi(esc.get("CODTAB"));
|
const int year = atoi(esc.get("CODTAB"));
|
||||||
@ -1415,15 +1423,150 @@ void TConversione_archivi::convert_ucc() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Effettua conversioni per uffici unici
|
||||||
|
void TConversione_archivi::convert_uue() const
|
||||||
|
{
|
||||||
|
TProgind pi(0, "Caricamento tabella Uffici Unici", FALSE, FALSE);
|
||||||
|
TSystemisamfile uue(LF_TABCOM);
|
||||||
|
uue.load("bacnv15a.txt");
|
||||||
|
|
||||||
|
pi.set_text("Caricamento Uffici Unici nei comuni");
|
||||||
|
|
||||||
|
TLocalisamfile comuni(LF_COMUNI);
|
||||||
|
TScanner scan15b("bacnv15b.txt");
|
||||||
|
|
||||||
|
TToken_string line;
|
||||||
|
TString16 cod, uff;
|
||||||
|
for (line = scan15b.line(); line.not_empty(); line = scan15b.line())
|
||||||
|
{
|
||||||
|
cod = line.get(0);
|
||||||
|
comuni.put("COM", cod);
|
||||||
|
int err = comuni.read(_isequal, _lock);
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
TString16 fieldname, fieldval;
|
||||||
|
uff = line.get(1);
|
||||||
|
int first_uue = 0;
|
||||||
|
for (int uue = 1; uue <= 10; uue++)
|
||||||
|
{
|
||||||
|
fieldname = "CODUUE"; fieldname << uue;
|
||||||
|
fieldval = comuni.get(fieldname);
|
||||||
|
if (first_uue == 0 && fieldval.empty())
|
||||||
|
first_uue = uue;
|
||||||
|
if (fieldval == uff)
|
||||||
|
{
|
||||||
|
first_uue = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (first_uue > 0)
|
||||||
|
{
|
||||||
|
fieldname = "CODUUE"; fieldname << first_uue;
|
||||||
|
comuni.put(fieldname, uff);
|
||||||
|
err = comuni.rewrite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (err != NOERR)
|
||||||
|
error_box("Impossibile aggiornare l'ufficio unico del comune %s: errore %d",
|
||||||
|
(const char*)cod, err);
|
||||||
|
}
|
||||||
|
scan15b.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Effettua conversioni per nuovi cap
|
||||||
|
void TConversione_archivi::convert_cap() const
|
||||||
|
{
|
||||||
|
TLocalisamfile comuni(LF_COMUNI);
|
||||||
|
|
||||||
|
TScanner scan15c("bacnv15c.txt");
|
||||||
|
TToken_string line;
|
||||||
|
TString16 cod, oldcod, newcod;
|
||||||
|
|
||||||
|
TAssoc_array cap;
|
||||||
|
|
||||||
|
TProgind pi(0, "Aggiornamento CAP sui comuni", FALSE, FALSE);
|
||||||
|
for (line = scan15c.line(); line.not_empty(); line = scan15c.line())
|
||||||
|
{
|
||||||
|
cod = line.get(0);
|
||||||
|
oldcod = line.get();
|
||||||
|
newcod = line.get();
|
||||||
|
cap.add(oldcod, newcod);
|
||||||
|
|
||||||
|
if (_codditta == 0L)
|
||||||
|
{
|
||||||
|
comuni.put("COM", cod);
|
||||||
|
int err = comuni.read(_isequal, _lock);
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
comuni.put("CAPCOM", newcod);
|
||||||
|
err = comuni.rewrite();
|
||||||
|
}
|
||||||
|
if (err != NOERR)
|
||||||
|
error_box("Impossibile aggiornare il cap del comune %s: errore %d",
|
||||||
|
(const char*)cod, err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scan15c.close();
|
||||||
|
|
||||||
|
TString msg;
|
||||||
|
TScanner scan15d("bacnv15d.txt");
|
||||||
|
for (line = scan15d.line(); line.not_empty(); line = scan15d.line())
|
||||||
|
{
|
||||||
|
TString16 cod = line.get(0);
|
||||||
|
const int logicnum = atoi(cod);
|
||||||
|
TLocalisamfile* file = NULL;
|
||||||
|
if (logicnum > 0)
|
||||||
|
file = new TLocalisamfile(logicnum);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_codditta == 0L)
|
||||||
|
file = new TTable(cod);
|
||||||
|
}
|
||||||
|
if (file != NULL)
|
||||||
|
{
|
||||||
|
msg = "Aggiornamento CAP sul file ";
|
||||||
|
msg << cod;
|
||||||
|
pi.set_text(msg);
|
||||||
|
|
||||||
|
file->lock();
|
||||||
|
for (int err = file->first(); err == NOERR; err = file->next())
|
||||||
|
{
|
||||||
|
bool dirty = FALSE;
|
||||||
|
for (cod = line.get(1); cod.not_empty(); cod = line.get())
|
||||||
|
{
|
||||||
|
oldcod = file->get(cod);
|
||||||
|
TString* newcod = (TString*)cap.objptr(oldcod);
|
||||||
|
if (newcod)
|
||||||
|
{
|
||||||
|
file->put(cod, *newcod);
|
||||||
|
dirty = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (dirty)
|
||||||
|
{
|
||||||
|
int err = file->rewrite();
|
||||||
|
if (err != NOERR)
|
||||||
|
error_box("Errore di aggiornamento %d", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file->unlock();
|
||||||
|
delete file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scan15d.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Programma di conversione archivi speciale
|
// Programma di conversione archivi speciale
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
int main(int argc,char** argv)
|
int main(int argc,char** argv)
|
||||||
{
|
{
|
||||||
const int r = (argc > 1) ? atoi(argv[1]) : 0;
|
const int r = (argc > 1) ? abs(atoi(argv[1])) : 0;
|
||||||
|
|
||||||
if (r < 0 || r > 14)
|
if (r < 0 || r > 15)
|
||||||
{
|
{
|
||||||
error_box(usage);
|
error_box(usage);
|
||||||
return 100;
|
return 100;
|
||||||
|
14
ba/bacnv15a.txt
Executable file
14
ba/bacnv15a.txt
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
[Header]
|
||||||
|
Version=199515
|
||||||
|
Fields=COD,3|CODTAB,25|S0,70|S1,70|S3,70|S6,5
|
||||||
|
|
||||||
|
[Data]
|
||||||
|
UUE|795|BOLOGNA 1|VIA MARCO EMILIO LEPIDO|178|A944
|
||||||
|
UUE|796|BOLOGNA 2|VIA PAOLO NANNI COSTA|28|A944
|
||||||
|
UUE|797|BOLOGNA 3|VIA ANDREA DA FORMIGINE|3|A944
|
||||||
|
UUE|798|BOLOGNA 4|VIA LARGA|35|A944
|
||||||
|
UUE|799|IMOLA|VIA EMILIA|115|E289
|
||||||
|
UUE|800|ALESSANDRIA|P.ZZA TURATI|1|A182
|
||||||
|
UUE|801|TRAPANI|VIA VIRGILIO|24|L331
|
||||||
|
UUE|811|RIMINI 1|VIA IV NOVEMBRE|19|H294
|
||||||
|
UUE|812|RIMINI 2|VIA MACANNO (LOC.COLONNELLA)|37|H294
|
124
ba/bacnv15b.txt
Executable file
124
ba/bacnv15b.txt
Executable file
@ -0,0 +1,124 @@
|
|||||||
|
A176|801
|
||||||
|
A182|800
|
||||||
|
A324|795
|
||||||
|
A392|795
|
||||||
|
A558|796
|
||||||
|
A665|797
|
||||||
|
A726|795
|
||||||
|
A747|811
|
||||||
|
A771|796
|
||||||
|
A785|797
|
||||||
|
A793|800
|
||||||
|
A944|795
|
||||||
|
A944|796
|
||||||
|
A944|797
|
||||||
|
A944|798
|
||||||
|
B029|800
|
||||||
|
B044|799
|
||||||
|
B071|800
|
||||||
|
B249|797
|
||||||
|
B288|801
|
||||||
|
B385|801
|
||||||
|
B399|795
|
||||||
|
B572|796
|
||||||
|
B689|796
|
||||||
|
B765|800
|
||||||
|
B870|800
|
||||||
|
B880|795
|
||||||
|
B892|799
|
||||||
|
B969|796
|
||||||
|
C027|800
|
||||||
|
C075|796
|
||||||
|
C086|799
|
||||||
|
C121|799
|
||||||
|
C130|801
|
||||||
|
C148|800
|
||||||
|
C162|800
|
||||||
|
C185|795
|
||||||
|
C191|796
|
||||||
|
C204|795
|
||||||
|
C265|799
|
||||||
|
C274|800
|
||||||
|
C292|797
|
||||||
|
C296|796
|
||||||
|
C357|812
|
||||||
|
D004|812
|
||||||
|
D158|795
|
||||||
|
D166|795
|
||||||
|
D194|800
|
||||||
|
D234|801
|
||||||
|
D360|799
|
||||||
|
D423|801
|
||||||
|
D518|801
|
||||||
|
D528|800
|
||||||
|
D668|799
|
||||||
|
D770|800
|
||||||
|
D797|800
|
||||||
|
D813|800
|
||||||
|
D814|800
|
||||||
|
D847|796
|
||||||
|
D878|795
|
||||||
|
D890|800
|
||||||
|
D961|812
|
||||||
|
E135|796
|
||||||
|
E136|797
|
||||||
|
E187|796
|
||||||
|
E289|799
|
||||||
|
E655|798
|
||||||
|
E712|800
|
||||||
|
E844|797
|
||||||
|
F015|800
|
||||||
|
F083|798
|
||||||
|
F219|797
|
||||||
|
F244|812
|
||||||
|
F288|797
|
||||||
|
F346|812
|
||||||
|
F363|798
|
||||||
|
F455|800
|
||||||
|
F476|812
|
||||||
|
F502|812
|
||||||
|
F523|812
|
||||||
|
F597|798
|
||||||
|
F627|796
|
||||||
|
F641|812
|
||||||
|
F659|796
|
||||||
|
F706|798
|
||||||
|
F715|812
|
||||||
|
F718|799
|
||||||
|
G199|800
|
||||||
|
G205|798
|
||||||
|
G208|801
|
||||||
|
G315|801
|
||||||
|
G319|801
|
||||||
|
G467|795
|
||||||
|
G566|796
|
||||||
|
G570|798
|
||||||
|
G619|800
|
||||||
|
G643|795
|
||||||
|
G755|811
|
||||||
|
G972|796
|
||||||
|
H021|800
|
||||||
|
H104|800
|
||||||
|
H121|800
|
||||||
|
H274|812
|
||||||
|
H294|811
|
||||||
|
H294|812
|
||||||
|
H678|795
|
||||||
|
H724|812
|
||||||
|
H801|812
|
||||||
|
H896|795
|
||||||
|
H921|812
|
||||||
|
H945|798
|
||||||
|
I110|795
|
||||||
|
I144|800
|
||||||
|
I191|795
|
||||||
|
I304|811
|
||||||
|
I407|801
|
||||||
|
I474|796
|
||||||
|
I550|811
|
||||||
|
I711|800
|
||||||
|
I798|800
|
||||||
|
L331|801
|
||||||
|
L762|796
|
||||||
|
L797|811
|
||||||
|
M185|795
|
415
ba/bacnv15c.txt
Executable file
415
ba/bacnv15c.txt
Executable file
@ -0,0 +1,415 @@
|
|||||||
|
A004|20070|26834
|
||||||
|
A005|22050|23821
|
||||||
|
A043|88011|89832
|
||||||
|
A107|13010|13861
|
||||||
|
A112|22050|23881
|
||||||
|
A280|13061|13811
|
||||||
|
A301|22040|23841
|
||||||
|
A317|28030|28841
|
||||||
|
A325|28020|28877
|
||||||
|
A386|88012|89832
|
||||||
|
A409|28050|28811
|
||||||
|
A427|28010|28891
|
||||||
|
A497|28050|28812
|
||||||
|
A534|28031|28861
|
||||||
|
A594|22040|23811
|
||||||
|
A610|28032|28871
|
||||||
|
A683|22061|23890
|
||||||
|
A686|22062|23891
|
||||||
|
A687|22040|23816
|
||||||
|
A725|28042|28831
|
||||||
|
A733|28050|28813
|
||||||
|
A742|28040|28832
|
||||||
|
A745|22051|23822
|
||||||
|
A747|47041|47814
|
||||||
|
A772|88070|88824
|
||||||
|
A784|13030|13871
|
||||||
|
A811|20070|26821
|
||||||
|
A834|28040|28851
|
||||||
|
A859|13051|13900
|
||||||
|
A876|13050|13841
|
||||||
|
A919|20075|26811
|
||||||
|
A925|28033|28842
|
||||||
|
A995|20070|26812
|
||||||
|
B017|20070|26851
|
||||||
|
B058|13050|13872
|
||||||
|
B081|22040|23842
|
||||||
|
B141|20070|26822
|
||||||
|
B169|88031|89817
|
||||||
|
B194|22050|23883
|
||||||
|
B197|88020|89822
|
||||||
|
B207|28010|28833
|
||||||
|
B229|13060|13862
|
||||||
|
B261|22060|23892
|
||||||
|
B319|88070|88833
|
||||||
|
B380|28030|28873
|
||||||
|
B396|22050|23885
|
||||||
|
B417|13060|13821
|
||||||
|
B423|24032|23801
|
||||||
|
B456|20072|26823
|
||||||
|
B457|13050|13821
|
||||||
|
B463|28050|28814
|
||||||
|
B465|13050|13891
|
||||||
|
B508|13060|13812
|
||||||
|
B586|13062|13878
|
||||||
|
B610|28051|28821
|
||||||
|
B615|28052|28822
|
||||||
|
B626|50040|59025
|
||||||
|
B655|88020|89818
|
||||||
|
B694|28050|28815
|
||||||
|
B708|13015|13864
|
||||||
|
B763|24030|23802
|
||||||
|
B771|88070|88817
|
||||||
|
B794|50042|59015
|
||||||
|
B857|88070|88822
|
||||||
|
B876|28022|28881
|
||||||
|
B887|20090|26852
|
||||||
|
B899|20070|26831
|
||||||
|
B910|20071|26841
|
||||||
|
B933|13060|13823
|
||||||
|
B937|22050|23831
|
||||||
|
B943|22064|23880
|
||||||
|
B958|20080|26853
|
||||||
|
B961|20070|26842
|
||||||
|
B968|88070|88834
|
||||||
|
B996|22065|23893
|
||||||
|
C024|22040|23814
|
||||||
|
C155|13040|13851
|
||||||
|
C187|22040|23884
|
||||||
|
C228|20070|26843
|
||||||
|
C304|20072|26823
|
||||||
|
C329|20079|26866
|
||||||
|
C357|47033|47841
|
||||||
|
C362|20070|26844
|
||||||
|
C363|13042|13881
|
||||||
|
C367|28052|28825
|
||||||
|
C394|20070|26824
|
||||||
|
C478|28030|28875
|
||||||
|
C501|88070|88833
|
||||||
|
C521|22052|23870
|
||||||
|
C526|13060|13852
|
||||||
|
C532|13060|13882
|
||||||
|
C555|20060|26832
|
||||||
|
C563|22030|23861
|
||||||
|
C567|28010|28891
|
||||||
|
C581|88010|89816
|
||||||
|
C725|88071|88813
|
||||||
|
C726|88072|88811
|
||||||
|
C752|22040|23862
|
||||||
|
C816|20073|26845
|
||||||
|
C819|13013|13863
|
||||||
|
C839|22050|23823
|
||||||
|
C851|22050|23886
|
||||||
|
C917|20060|26833
|
||||||
|
D004|47040|47853
|
||||||
|
D021|20070|26854
|
||||||
|
D028|20070|26846
|
||||||
|
D029|20076|26847
|
||||||
|
D065|22040|23813
|
||||||
|
D068|20070|26834
|
||||||
|
D094|13014|13836
|
||||||
|
D099|28054|28801
|
||||||
|
D112|22041|23845
|
||||||
|
D122|88074|88900
|
||||||
|
D123|88073|88836
|
||||||
|
D131|22050|23832
|
||||||
|
D134|28034|28852
|
||||||
|
D143|22060|23894
|
||||||
|
D145|22040|23814
|
||||||
|
D159|20070|26835
|
||||||
|
D165|13015|13864
|
||||||
|
D168|28053|28865
|
||||||
|
D177|28036|28862
|
||||||
|
D182|13060|13853
|
||||||
|
D189|88070|88812
|
||||||
|
D219|13060|13865
|
||||||
|
D225|28050|28825
|
||||||
|
D236|88075|88842
|
||||||
|
D253|88013|89832
|
||||||
|
D280|22050|23824
|
||||||
|
D303|88010|89833
|
||||||
|
D327|22042|23843
|
||||||
|
D332|28037|28845
|
||||||
|
D339|13050|13893
|
||||||
|
D346|22050|23824
|
||||||
|
D350|13042|13881
|
||||||
|
D364|88030|89862
|
||||||
|
D374|28030|28853
|
||||||
|
D398|22040|23853
|
||||||
|
D428|24030|23803
|
||||||
|
D436|22050|23825
|
||||||
|
D453|88020|89823
|
||||||
|
D481|28050|28825
|
||||||
|
D587|88023|89814
|
||||||
|
D589|88010|89851
|
||||||
|
D596|88010|89843
|
||||||
|
D660|20070|26861
|
||||||
|
D706|28030|28863
|
||||||
|
D762|88020|89815
|
||||||
|
D767|88010|89851
|
||||||
|
D848|13052|13894
|
||||||
|
D865|22043|23851
|
||||||
|
D868|20060|26832
|
||||||
|
D913|22040|23846
|
||||||
|
D926|22050|23852
|
||||||
|
D961|47040|47855
|
||||||
|
D984|28026|28887
|
||||||
|
D988|88010|89831
|
||||||
|
E003|28055|28823
|
||||||
|
E024|13030|13874
|
||||||
|
E028|28040|28836
|
||||||
|
E127|20074|26813
|
||||||
|
E130|13050|13895
|
||||||
|
E153|28025|28883
|
||||||
|
E238|20070|26862
|
||||||
|
E269|28050|28825
|
||||||
|
E287|22050|23898
|
||||||
|
E304|28050|28816
|
||||||
|
E305|22040|23815
|
||||||
|
E308|22050|23835
|
||||||
|
E321|88010|89851
|
||||||
|
E339|88076|88841
|
||||||
|
E389|88030|89863
|
||||||
|
E507|22053|23900
|
||||||
|
E552|13060|13853
|
||||||
|
E581|22050|23827
|
||||||
|
E590|88030|89844
|
||||||
|
E627|20070|26814
|
||||||
|
E648|20075|26900
|
||||||
|
E651|20090|26855
|
||||||
|
E656|22050|23871
|
||||||
|
E685|28020|28893
|
||||||
|
E777|20070|26843
|
||||||
|
E790|28030|28876
|
||||||
|
E795|28010|28894
|
||||||
|
E821|13050|13887
|
||||||
|
E836|88010|89843
|
||||||
|
E840|20070|26825
|
||||||
|
E852|20076|26847
|
||||||
|
E853|28030|28854
|
||||||
|
E858|22040|23864
|
||||||
|
E879|22054|23826
|
||||||
|
E947|22050|23832
|
||||||
|
E994|20079|26866
|
||||||
|
F010|28030|28855
|
||||||
|
F028|20070|26815
|
||||||
|
F037|13030|13873
|
||||||
|
F042|13063|13866
|
||||||
|
F048|28020|28895
|
||||||
|
F102|20070|26843
|
||||||
|
F108|88070|88817
|
||||||
|
F133|22055|23807
|
||||||
|
F146|28040|28802
|
||||||
|
F149|20067|26833
|
||||||
|
F157|88052|88838
|
||||||
|
F167|13050|13831
|
||||||
|
F189|13060|13816
|
||||||
|
F192|28056|28817
|
||||||
|
F207|88014|89852
|
||||||
|
F244|47046|47843
|
||||||
|
F248|22067|23873
|
||||||
|
F260|20080|26838
|
||||||
|
F265|22040|23817
|
||||||
|
F304|22047|23847
|
||||||
|
F346|47040|47836
|
||||||
|
F364|88020|89823
|
||||||
|
F369|13053|13888
|
||||||
|
F423|20075|26836
|
||||||
|
F476|47040|47854
|
||||||
|
F483|28030|28864
|
||||||
|
F502|47040|47834
|
||||||
|
F523|47040|47837
|
||||||
|
F537|88018|89900
|
||||||
|
F561|24030|23804
|
||||||
|
F572|50045|59013
|
||||||
|
F607|88020|89819
|
||||||
|
F639|28030|28843
|
||||||
|
F641|47040|47854
|
||||||
|
F657|22050|23874
|
||||||
|
F674|22068|23876
|
||||||
|
F715|47047|47833
|
||||||
|
F758|22040|23811
|
||||||
|
F769|13054|13822
|
||||||
|
F776|13030|13874
|
||||||
|
F801|20060|26837
|
||||||
|
F833|13050|13895
|
||||||
|
F843|88020|89824
|
||||||
|
F878|13050|13896
|
||||||
|
F887|22060|23895
|
||||||
|
F893|88034|89844
|
||||||
|
F932|28010|28891
|
||||||
|
F992|13055|13897
|
||||||
|
F993|13056|13898
|
||||||
|
G007|28050|28824
|
||||||
|
G009|22048|23848
|
||||||
|
G026|22056|23887
|
||||||
|
G030|22057|23854
|
||||||
|
G040|22030|23865
|
||||||
|
G062|28026|28887
|
||||||
|
G096|20070|26854
|
||||||
|
G107|20080|26863
|
||||||
|
G117|28027|28877
|
||||||
|
G161|22058|23875
|
||||||
|
G166|20080|26864
|
||||||
|
G171|20070|26816
|
||||||
|
G218|22050|23877
|
||||||
|
G223|22059|23899
|
||||||
|
G241|22050|23833
|
||||||
|
G278|88070|88818
|
||||||
|
G280|28020|28884
|
||||||
|
G335|88035|89861
|
||||||
|
G336|22040|23837
|
||||||
|
G368|22040|23818
|
||||||
|
G448|22050|23888
|
||||||
|
G456|22050|23828
|
||||||
|
G485|22050|23855
|
||||||
|
G508|88053|88837
|
||||||
|
G521|13050|13843
|
||||||
|
G577|13050|13844
|
||||||
|
G594|13060|13812
|
||||||
|
G600|28020|28885
|
||||||
|
G658|28020|28886
|
||||||
|
G714|13054|13822
|
||||||
|
G722|88026|89812
|
||||||
|
G728|88010|89834
|
||||||
|
G754|50046|59016
|
||||||
|
G755|47030|47824
|
||||||
|
G785|88027|89813
|
||||||
|
G798|13057|13814
|
||||||
|
G820|13058|13875
|
||||||
|
G927|13050|13833
|
||||||
|
G974|13016|13867
|
||||||
|
G980|13050|13899
|
||||||
|
G999|50047|59100
|
||||||
|
H028|22050|23834
|
||||||
|
H030|28057|28818
|
||||||
|
H033|28030|28866
|
||||||
|
H037|28020|28803
|
||||||
|
H063|22040|23819
|
||||||
|
H103|13010|13854
|
||||||
|
H106|28020|28896
|
||||||
|
H107|28020|28896
|
||||||
|
H145|13060|13812
|
||||||
|
H203|28030|28856
|
||||||
|
H271|88036|89866
|
||||||
|
H274|47036|47838
|
||||||
|
H294|47037|47900
|
||||||
|
H383|88070|88835
|
||||||
|
H403|88070|88821
|
||||||
|
H486|22040|23849
|
||||||
|
H516|88015|89841
|
||||||
|
H538|13050|13845
|
||||||
|
H553|13040|13883
|
||||||
|
H561|13060|13815
|
||||||
|
H596|22050|23888
|
||||||
|
H662|13065|13816
|
||||||
|
H681|13050|13884
|
||||||
|
H701|20090|26857
|
||||||
|
H724|47040|47835
|
||||||
|
H726|13060|13885
|
||||||
|
H777|28059|28804
|
||||||
|
H785|88010|89842
|
||||||
|
H801|47040|47832
|
||||||
|
H807|88010|89851
|
||||||
|
H821|13060|13876
|
||||||
|
H844|20070|26848
|
||||||
|
H921|47048|47842
|
||||||
|
H941|88010|89900
|
||||||
|
I012|20070|26817
|
||||||
|
I026|88070|88831
|
||||||
|
I057|88070|88817
|
||||||
|
I058|88020|89821
|
||||||
|
I074|13060|13812
|
||||||
|
I140|20070|26865
|
||||||
|
I243|22050|23889
|
||||||
|
I249|28038|28857
|
||||||
|
I274|20079|26866
|
||||||
|
I304|47038|47822
|
||||||
|
I308|88070|88832
|
||||||
|
I350|88016|89843
|
||||||
|
I362|20070|26849
|
||||||
|
I468|88077|88825
|
||||||
|
I494|88070|88831
|
||||||
|
I550|47030|47825
|
||||||
|
I561|20070|26826
|
||||||
|
I596|13061|13811
|
||||||
|
I612|20080|26856
|
||||||
|
I619|28030|28843
|
||||||
|
I639|88029|89822
|
||||||
|
I744|88020|89822
|
||||||
|
I759|22040|23844
|
||||||
|
I761|22060|23896
|
||||||
|
I815|20070|26867
|
||||||
|
I835|13050|13834
|
||||||
|
I847|13050|13817
|
||||||
|
I848|20077|26858
|
||||||
|
I853|88010|89831
|
||||||
|
I854|88017|89831
|
||||||
|
I868|13029|13868
|
||||||
|
I884|88020|89822
|
||||||
|
I905|88037|89864
|
||||||
|
I945|88010|89843
|
||||||
|
I976|28049|28838
|
||||||
|
I980|13066|13823
|
||||||
|
I982|88078|88816
|
||||||
|
I994|22050|23835
|
||||||
|
I996|22030|23867
|
||||||
|
L022|22040|23837
|
||||||
|
L075|13060|13811
|
||||||
|
L116|13050|13844
|
||||||
|
L125|20071|26827
|
||||||
|
L187|28030|28858
|
||||||
|
L193|13067|13818
|
||||||
|
L239|13050|13884
|
||||||
|
L257|24030|23806
|
||||||
|
L333|28050|28826
|
||||||
|
L336|28030|28868
|
||||||
|
L368|22050|23836
|
||||||
|
L436|13059|13835
|
||||||
|
L450|28030|28859
|
||||||
|
L452|88038|89861
|
||||||
|
L469|20070|26828
|
||||||
|
L492|88070|88823
|
||||||
|
L537|50049|59021
|
||||||
|
L556|13060|13855
|
||||||
|
L572|20080|26859
|
||||||
|
L581|22050|23857
|
||||||
|
L586|13050|13847
|
||||||
|
L606|13068|13825
|
||||||
|
L607|88020|89821
|
||||||
|
L620|13050|13847
|
||||||
|
L634|22049|23868
|
||||||
|
L651|28020|28897
|
||||||
|
L666|28030|28879
|
||||||
|
L680|22050|23829
|
||||||
|
L691|28039|28868
|
||||||
|
L699|88010|89834
|
||||||
|
L712|13050|13824
|
||||||
|
L731|22050|23838
|
||||||
|
L746|28058|28900
|
||||||
|
L751|24030|23808
|
||||||
|
L755|22050|23879
|
||||||
|
L756|22050|23878
|
||||||
|
L775|50048|59024
|
||||||
|
L785|13030|13871
|
||||||
|
L797|47040|47826
|
||||||
|
L802|88070|88819
|
||||||
|
L813|22050|23835
|
||||||
|
L864|28030|28841
|
||||||
|
L866|22060|23897
|
||||||
|
L880|13069|13856
|
||||||
|
L889|28050|28819
|
||||||
|
L906|28029|28844
|
||||||
|
L933|13060|13868
|
||||||
|
L977|20070|26818
|
||||||
|
L978|13030|13877
|
||||||
|
M042|28030|28856
|
||||||
|
M098|13040|13886
|
||||||
|
M111|28020|28805
|
||||||
|
M138|88030|89867
|
||||||
|
M143|88030|89868
|
||||||
|
M158|20060|26839
|
||||||
|
M179|13040|13887
|
||||||
|
M196|13050|13888
|
||||||
|
M201|13050|13848
|
||||||
|
M204|88030|89867
|
15
ba/bacnv15d.txt
Executable file
15
ba/bacnv15d.txt
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
6|CAPRES|CAPRF|CAPCORR
|
||||||
|
9|CAPAA
|
||||||
|
10|CAPCS
|
||||||
|
11|CAPULC|CAPTRIB
|
||||||
|
16|CAP
|
||||||
|
18|CAP
|
||||||
|
20|CAPCF
|
||||||
|
%BAN|S3
|
||||||
|
%UCC|S7
|
||||||
|
%UCS|S7
|
||||||
|
%UES|S7
|
||||||
|
%UID|S7
|
||||||
|
%UIV|S7
|
||||||
|
%URE|S7
|
||||||
|
%VET|S7
|
Loading…
x
Reference in New Issue
Block a user