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
|
||||
{
|
||||
word _serno;
|
||||
word _serno, _max_users;
|
||||
KeyType _type;
|
||||
word _eprom[64];
|
||||
TDate _last_update;
|
||||
|
||||
#if XVT_OS == XVT_OS_SCOUNIX
|
||||
word _port;
|
||||
@ -48,6 +49,7 @@ public:
|
||||
|
||||
word number() const { return _serno; }
|
||||
bool ok() const { return _serno != 0xFFFF; }
|
||||
word max_users() const { return _max_users; }
|
||||
|
||||
void garble(word data[4]) const;
|
||||
|
||||
@ -56,6 +58,7 @@ public:
|
||||
bool active(word module) const { return _module[module]; }
|
||||
void activate(word module, bool on = TRUE) { _module.set(module, on); _dirty = TRUE; }
|
||||
void deactivate(word module) { activate(module, FALSE); }
|
||||
void set_max_users(word u) { _max_users = u; _dirty = TRUE; }
|
||||
|
||||
bool dirty() const { return _dirty; }
|
||||
bool burn();
|
||||
@ -65,7 +68,7 @@ public:
|
||||
};
|
||||
|
||||
TDongle::TDongle()
|
||||
: _type(_user_key), _serno(0xFFFF), _dirty(FALSE)
|
||||
: _type(_user_key), _serno(0xFFFF), _dirty(FALSE), _max_users(1)
|
||||
{
|
||||
memset(_eprom, 0, sizeof(_eprom));
|
||||
}
|
||||
@ -92,14 +95,14 @@ bool TDongle::already_programmed() const
|
||||
if (data[0] != 0xFACE)
|
||||
return FALSE;
|
||||
|
||||
if (data[1] != _serno)
|
||||
if (data[1] == 0 || data[1] > 255)
|
||||
return FALSE;
|
||||
|
||||
const TDate today(TODAY);
|
||||
const long& giulio = (const long&)data[2];
|
||||
const long yyyymmdd = today.julian2date(giulio);
|
||||
const TDate d(yyyymmdd);
|
||||
if (d.year() < 1997 || d.year() > 2997)
|
||||
if (d.year() < 1997 || d > today)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
@ -150,11 +153,16 @@ bool TDongle::login()
|
||||
if (data[0] == 0xFAE8)
|
||||
_serno = data[1];
|
||||
else
|
||||
{
|
||||
{
|
||||
#ifdef DBG
|
||||
if (data[0] == 0x3283)
|
||||
{
|
||||
_type = _aga_key;
|
||||
_serno = 0;
|
||||
}
|
||||
#endif
|
||||
if (_type == _user_key)
|
||||
ok = FALSE;
|
||||
else
|
||||
_serno = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -162,13 +170,16 @@ bool TDongle::login()
|
||||
{
|
||||
if (_serno > 0)
|
||||
{
|
||||
const bool already = already_programmed();
|
||||
|
||||
_module.reset();
|
||||
_module.set(0, TRUE);
|
||||
|
||||
const int last_word = already_programmed() ? 12 : 4;
|
||||
const int last_word = already ? 12 : 4;
|
||||
word data[4];
|
||||
|
||||
// Legge flag di attivazione dei moduli
|
||||
for (int i = 0; i < last_word; i += 4)
|
||||
{
|
||||
word data[4];
|
||||
memcpy(data, &_eprom[48+i], sizeof(data));
|
||||
garble(data);
|
||||
if (data[3] == _serno) // Validate block
|
||||
@ -176,12 +187,15 @@ bool TDongle::login()
|
||||
for (int j = 0; j < 3; j++)
|
||||
{
|
||||
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;
|
||||
_module.set(bit);
|
||||
if (BITTEST(parola, b))
|
||||
{
|
||||
const word bit = i * 12 + j * 16 + b;
|
||||
_module.set(bit);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -189,11 +203,24 @@ bool TDongle::login()
|
||||
else
|
||||
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
|
||||
{
|
||||
_module.set(MAX_AUT-1);
|
||||
_module.set();
|
||||
_module.set();
|
||||
_max_users = 1;
|
||||
_last_update = TDate(TODAY);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -245,8 +272,8 @@ bool TDongle::burn()
|
||||
garble(data);
|
||||
if (data[0] != 0xFACE)
|
||||
return error_box("Checksum error.");
|
||||
if (data[1] != _serno)
|
||||
return error_box("Bad serial number.");
|
||||
if (data[1] == 0 || data[1] > 255)
|
||||
return error_box("Bad users number.");
|
||||
const long& val = (const long&)data[2];
|
||||
const long yyyymmdd = today.julian2date(val);
|
||||
const TDate date(yyyymmdd);
|
||||
@ -255,11 +282,12 @@ bool TDongle::burn()
|
||||
}
|
||||
|
||||
data[0] = 0xFACE;
|
||||
data[1] = _serno;
|
||||
data[1] = _max_users;
|
||||
long& val = (long&)data[2];
|
||||
val = today.date2julian();
|
||||
garble(data);
|
||||
write_octect(60, data);
|
||||
_last_update = today;
|
||||
|
||||
word module = 0;
|
||||
for (int octect = 0; octect < 3; octect++)
|
||||
@ -298,7 +326,7 @@ TInformazione_moduli::TInformazione_moduli()
|
||||
ifstream in("prassi.aut");
|
||||
while (!in.eof() && in.good())
|
||||
{
|
||||
in.getline(s.get_buffer(256), s.size());
|
||||
in.getline(s.get_buffer(), s.size());
|
||||
s.trim();
|
||||
if (s.empty())
|
||||
break;
|
||||
@ -306,7 +334,7 @@ TInformazione_moduli::TInformazione_moduli()
|
||||
if (l > 2)
|
||||
{
|
||||
// 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));
|
||||
}
|
||||
else
|
||||
@ -389,6 +417,8 @@ protected:
|
||||
|
||||
void garble(word k[4]) const;
|
||||
void garble(word n, TString& str) const;
|
||||
void garble_users(word u, TString& str) const;
|
||||
|
||||
word& serno() { return _serno; }
|
||||
|
||||
void generate_key();
|
||||
@ -396,15 +426,20 @@ protected:
|
||||
void build_key_column();
|
||||
|
||||
bool burn_dongle();
|
||||
TDongle& dongle() { return _dongle; }
|
||||
|
||||
static void keyext(const TString & s, word * v);
|
||||
static void encode_second_key();
|
||||
|
||||
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 decode_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 change_users_handler(TMask_field&, KEY key);
|
||||
static bool maxuser_handler(TMask_field& fld, KEY key);
|
||||
|
||||
public:
|
||||
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
|
||||
{
|
||||
const TDate today(TODAY);
|
||||
const TDate today(_msk->get(F_DT));
|
||||
const long val = today.date2julian();
|
||||
|
||||
word data[4];
|
||||
@ -459,6 +494,18 @@ void TAttivazione_moduli::garble(word n, TString& str) const
|
||||
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()
|
||||
{
|
||||
TSheet_field& sf = (TSheet_field&)_msk->field(F_MODULI);
|
||||
@ -487,7 +534,7 @@ bool TAttivazione_moduli::burn_dongle()
|
||||
{
|
||||
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++)
|
||||
{
|
||||
TToken_string& riga = sf.row(i);
|
||||
@ -528,6 +575,69 @@ bool TAttivazione_moduli::burn_dongle()
|
||||
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()
|
||||
{
|
||||
#if XVT_OS == XVT_OS_SCOUNIX
|
||||
@ -554,14 +664,18 @@ void TAttivazione_moduli::generate_key()
|
||||
nmod = build_sheet();
|
||||
ud[0] = _dongle.number();
|
||||
ud[1] = K1 | (nmod & LBYTEMASK);
|
||||
|
||||
long & l = (long &) ud[2];
|
||||
TDate d(TODAY);
|
||||
|
||||
l = d.year()*10000L + d.month()*100L + d.day();
|
||||
|
||||
garble(ud);
|
||||
_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_DT, d);
|
||||
_msk->set(F_DT, d);
|
||||
|
||||
const int utenti = _dongle.max_users();
|
||||
_msk->set(F_USERS, utenti);
|
||||
}
|
||||
|
||||
int hexdigit(char c)
|
||||
@ -650,6 +764,21 @@ bool TAttivazione_moduli::serno_hnd(TMask_field& f, KEY k)
|
||||
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()
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (k == K_INS)
|
||||
if (k == K_INS || k == K_DEL)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
@ -754,10 +883,12 @@ bool TAttivazione_moduli::create()
|
||||
disable_menu_item(M_FILE_PG_SETUP);
|
||||
|
||||
_msk = new TMask("ba1500a") ;
|
||||
|
||||
TSheet_field& sf = (TSheet_field&) _msk->field(F_MODULI);
|
||||
const int un = _im->unassigned();
|
||||
|
||||
_msk->set_handler(F_CHANGEUSERS, change_users_handler);
|
||||
TSheet_field& sf = _msk->sfield(F_MODULI);
|
||||
sf.set_notify(k_notify);
|
||||
|
||||
const int un = _im->unassigned();
|
||||
|
||||
switch (_dongle.type())
|
||||
{
|
||||
@ -766,6 +897,10 @@ bool TAttivazione_moduli::create()
|
||||
_msk->disable(F_K1);
|
||||
_msk->disable(F_K2);
|
||||
_msk->set_handler(F_K4, user_hnd);
|
||||
|
||||
_msk->enable(F_DT);
|
||||
_msk->set_handler(F_DT, date_hnd);
|
||||
|
||||
generate_key();
|
||||
sf.enable_column(F_ENABLE, FALSE);
|
||||
sf.enable_column(F_KEY, serno() != 0);
|
||||
|
@ -11,6 +11,9 @@
|
||||
#define F_SN 211
|
||||
#define F_DT 212
|
||||
#define F_MODULI 213
|
||||
#define F_USERS 214
|
||||
#define F_CHANGEUSERS 215
|
||||
#define F_REQUEST 216
|
||||
|
||||
#define F_NOMEMOD 101
|
||||
#define F_ENABLE 102
|
||||
|
@ -4,12 +4,17 @@ TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON F_REQUEST 18 2
|
||||
BEGIN
|
||||
PROMPT -11 -1 "~Stampa richiesta"
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
PROMPT -33 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
@ -40,6 +45,18 @@ BEGIN
|
||||
FLAGS "AD"
|
||||
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
|
||||
BEGIN
|
||||
PROMPT 1 3 "Attivazione 2 "
|
||||
|
27
ba/ba1600.h
27
ba/ba1600.h
@ -39,31 +39,4 @@ public:
|
||||
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
|
||||
|
@ -445,7 +445,7 @@ bool TGeneric_table_app::user_create()
|
||||
_ver->put("R5","50500"); _ver->put("R7","200000");
|
||||
_ver->put("R11","88"); _ver->put("R12","88");
|
||||
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);
|
||||
|
||||
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 ind_handler(TMask_field& f, KEY k);
|
||||
|
||||
@ -106,10 +107,15 @@ bool TPersone_app::fax_handler(TMask_field& f, KEY k)
|
||||
bool ok = TRUE;
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
TConfig ini(CONFIG_USER, "Link");
|
||||
TFilename editor = ini.get("Editor", NULL, -1, "notepad");
|
||||
TExternal_app app(editor);
|
||||
ok = app.run(TRUE, FALSE) == 0;
|
||||
// TConfig ini(CONFIG_USER, "Link");
|
||||
// TFilename editor = ini.get("Editor", NULL, -1, "notepad");
|
||||
// TExternal_app app(editor);
|
||||
// ok = app.run(TRUE, FALSE) == 0;
|
||||
TFilename msg; msg.temp(NULL, "txt");
|
||||
ofstream msgf(msg);
|
||||
msgf.close();
|
||||
ok = goto_url(msg);
|
||||
|
||||
if (ok)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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_TITCF, tit_cf);
|
||||
_msk[MSKF]->set_handler(DLG_FAX, fax_handler);
|
||||
_msk[MSKF]->set_handler(DLG_EMAIL, email_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_TITCF, tit_cf);
|
||||
_msk[MSKG]->set_handler(DLG_FAX, fax_handler);
|
||||
_msk[MSKG]->set_handler(DLG_EMAIL, email_handler);
|
||||
|
||||
_msk[MSKG]->set_handler(ba4200_handler);
|
||||
}
|
||||
|
@ -21,6 +21,19 @@ BEGIN
|
||||
PICTURE BMP_FAX
|
||||
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>
|
||||
|
||||
ENDPAGE
|
||||
@ -97,13 +110,6 @@ MESSAGE COPY,3@
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
GOLEM DLG_OGGETTI 4 2
|
||||
BEGIN
|
||||
PROMPT 71 1 ""
|
||||
FIELD OGGETTI
|
||||
FLAG "M"
|
||||
END
|
||||
|
||||
RADIOBUTTON LST_AF1_SESSO 1 12
|
||||
BEGIN
|
||||
PROMPT 0 5 "Sesso"
|
||||
@ -649,7 +655,6 @@ STRING F_MAIL 50
|
||||
BEGIN
|
||||
PROMPT 2 16 "Indirizzo di posta "
|
||||
FIELD MAIL
|
||||
FLAGS "B"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
@ -20,6 +20,19 @@ BEGIN
|
||||
PICTURE BMP_FAX
|
||||
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>
|
||||
ENDPAGE
|
||||
|
||||
@ -79,13 +92,6 @@ BEGIN
|
||||
KEY 2
|
||||
END
|
||||
|
||||
GOLEM DLG_OGGETTI 4 2
|
||||
BEGIN
|
||||
PROMPT 71 1 ""
|
||||
FIELD OGGETTI
|
||||
FLAG "M"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 41 4
|
||||
BEGIN
|
||||
PROMPT 0 4 "Partita IVA "
|
||||
@ -585,7 +591,6 @@ STRING F_MAIL 50
|
||||
BEGIN
|
||||
PROMPT 2 15 "Indirizzo di posta "
|
||||
FIELD MAIL
|
||||
FLAGS "B"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
@ -811,31 +811,20 @@ void TAnaprint_app::set_elenco()
|
||||
case anagiu:
|
||||
if (_pr_what == anafis)
|
||||
{
|
||||
if (_inclditte)
|
||||
set_row(1,"$[b]@pN$[n]@4j#T@55g$[r]@pN$[n]@66g@S",
|
||||
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
||||
&_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);
|
||||
set_row(1,"$[b]@pN$[n]@7g#T",
|
||||
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
||||
&_surname_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_inclditte)
|
||||
set_row(1,"$[b]@pN$[n]@4j@50S@55g$[r]@pN$[n]@66g@S",
|
||||
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
||||
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"));
|
||||
set_row(1,"$[b]@pN$[n]@7g@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;
|
||||
case nditte:
|
||||
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 anagiu:
|
||||
#if XVT_OS != XVT_OS_SCOUNIX
|
||||
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"
|
||||
"@101g @< @110g Pag. @#", _pr_what == anafis ? "FISICHE" :
|
||||
"GIURIDICHE");
|
||||
set_header(3,"@iCodice@55gCodice");
|
||||
set_header(4,"@iAnagr. Ragione sociale/cognome e nome@55gDitta"
|
||||
set_header(3,"@iCodice@58gCodice");
|
||||
set_header(4,"@iAnagr. Ragione sociale/cognome e nome@58gDitta"
|
||||
"@66gDenominazione sociale");
|
||||
set_header(6,"");
|
||||
break;
|
||||
case nditte:
|
||||
#if XVT_OS != XVT_OS_SCOUNIX
|
||||
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"
|
||||
"@101g @< @110g Pag. @#");
|
||||
set_header(3,"@iCodice@50gT");
|
||||
|
151
ba/bacnv.cpp
151
ba/bacnv.cpp
@ -26,7 +26,7 @@
|
||||
#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
|
||||
@ -184,6 +184,9 @@ public:
|
||||
void remove_dta_ndx() const;
|
||||
void convert_ucs() const;
|
||||
void convert_ucc() const;
|
||||
void convert_cap() const;
|
||||
void convert_uue() const;
|
||||
|
||||
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
||||
};
|
||||
|
||||
@ -319,6 +322,12 @@ bool TConversione_archivi::menu(MENU_TAG)
|
||||
convert_ucs();
|
||||
convert_ucc();
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
if (_codditta == 0)
|
||||
convert_uue();
|
||||
convert_cap();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -1332,7 +1341,6 @@ void TConversione_archivi::convert_saldi() const
|
||||
// Effettua il ricalcolo saldi per tutti gli esercizi della ditta corrente
|
||||
{
|
||||
TTable esc("ESC");
|
||||
|
||||
for (esc.first();esc.good();esc.next())
|
||||
{
|
||||
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
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
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);
|
||||
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