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