Patch level : 2..0 452

Files correlati     :  ab0.exe
Ricompilazione Demo : [ ]
Commento            :
Aggiunto il supporto delle lingue a ab
fare la patch man mano che ci sono spedizioni


git-svn-id: svn://10.65.10.50/trunk@11007 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2003-04-14 15:45:48 +00:00
parent 85fdfecfac
commit 6126e3356e
27 changed files with 1174 additions and 378 deletions

View File

@ -3,7 +3,7 @@
#include "ab0.h"
#define usage "Error - usage : %s -{0|1|2|3|4|5}"
#define usage "Error - usage : %s -{0|1|2|3}"
int main(int argc,char** argv)
{
@ -12,19 +12,15 @@ int main(int argc,char** argv)
switch (n)
{
case 0:
ab0100(argc,argv); break; //Gestione Tabelle: Sintassi ab0 -0 tab_name -utente
ab0100(argc,argv); break;
case 1:
ab0200(argc,argv); break; //Sintassi ab0 -1 -utente
ab0200(argc,argv); break;
case 2:
//ab0300(argc,argv); break;
// case 3:
// m71310(argc,argv); break;
// case 4:
// m71295(argc,argv); break;
// case 5:
// m71230(argc,argv); break;
ab0300(argc,argv); break;
case 3:
ab0400(argc,argv); break;
default:
error_box(usage, argv[0]) ;
}
return 0;
exit(0);
}

View File

@ -2,4 +2,5 @@
extern int ab0100 (int argc, char* argv[]); //Tabella periodi di bilancio
extern int ab0200 (int argc, char* argv[]); //Piano dei conti analisi di bilancio
extern int ab0300 (int argc, char* argv[]); //Compatta il Piano dei Conti
extern int ab0400 (int argc, char* argv[]); //Riclassifica ed esporta i saldi

View File

@ -34,20 +34,20 @@ bool Tabanabil_application::giorno_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.mask().is_running())
{
int giorno = atoi(f.get());
const int giorno = atoi(f.get());
if (giorno > 31)
return f.warning_box("Valore non valido per il giorno");
return f.warning_box(TR("Valore non valido per il giorno"));
int mese = (f.dlg() == F_GIORNO_INI ? f.mask().get_int(F_MESE_INI) : f.mask().get_int(F_MESE_FINE));
const int mese = (f.dlg() == F_GIORNO_INI ? f.mask().get_int(F_MESE_INI) : f.mask().get_int(F_MESE_FINE));
if (mese == 2)
if (giorno > 29)
return f.warning_box("Valore non valido per il giorno");
return f.warning_box(TR("Valore non valido per il giorno"));
if (mese == 11 || mese == 4 || mese == 6 || mese == 9)
if (giorno > 30)
return f.warning_box("Valore non valido per il giorno");
return f.warning_box(TR("Valore non valido per il giorno"));
}
return TRUE;
@ -57,20 +57,20 @@ bool Tabanabil_application::mese_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.mask().is_running())
{
int mese = atoi(f.get());
const int mese = atoi(f.get());
if (mese < 1 || mese > 12)
return f.warning_box("Valore non valido per il mese");
return f.warning_box(TR("Valore non valido per il mese"));
int giorno = (f.dlg() == F_MESE_INI ? f.mask().get_int(F_GIORNO_INI) : f.mask().get_int(F_GIORNO_FINE));
const int giorno = (f.dlg() == F_MESE_INI ? f.mask().get_int(F_GIORNO_INI) : f.mask().get_int(F_GIORNO_FINE));
if (mese == 2)
if (giorno > 28)
return f.warning_box("Valore non valido per il giorno");
return f.warning_box(TR("Valore non valido per il giorno"));
if (mese == 11 || mese == 4 || mese == 6 || mese == 9)
if (giorno > 30)
return f.warning_box("Valore non valido per il giorno");
return f.warning_box(TR("Valore non valido per il giorno"));
}
return TRUE;
@ -81,16 +81,16 @@ bool Tabanabil_application::anni_handler(TMask_field& f, KEY k)
if (k == K_ENTER)
{
TMask & m=f.mask();
TDate inizio(m.get_int(F_GIORNO_INI),m.get_int(F_MESE_INI),1993);
const TDate inizio(m.get_int(F_GIORNO_INI),m.get_int(F_MESE_INI),1993);
if (inizio.empty())
return TRUE;
TDate fine(m.get_int(F_GIORNO_FINE),m.get_int(F_MESE_FINE),1993+m.get_int(F_NUM_ANNI));
const TDate fine(m.get_int(F_GIORNO_FINE),m.get_int(F_MESE_FINE),1993+m.get_int(F_NUM_ANNI));
if (fine.empty())
return TRUE;
if (fine==inizio)
return f.error_box("Date uguali: specificare il numero di anni");
return f.error_box(TR("Date uguali: specificare il numero di anni"));
if (fine<inizio)
return f.error_box("Data finale inferiore alla iniziale: specificare il numero di anni");
return f.error_box(TR("Data finale inferiore alla iniziale: specificare il numero di anni"));
}
return TRUE;
@ -123,7 +123,7 @@ ab0100(int argc, char* argv[])
{
Tabanabil_application a;
a.run(argc,argv, "Tabelle");
a.run(argc,argv, TR("Tabelle"));
return 0;
}

View File

@ -1,13 +1,14 @@
#include <applicat.h>
#include <modaut.h>
#include <prefix.h>
#include <recarray.h>
#include <relapp.h>
#include <tabapp.h>
#include <strings.h>
#include <stdtypes.h>
#include <tabutil.h>
#include <utility.h>
#include <modaut.h>
#include <prefix.h>
#include "ab0200.h"
@ -15,7 +16,6 @@ class TPconAb : public TRelation_application
{
TMask* _msk;
TRelation* _rel;
TLocalisamfile* _pcon;
TString _codice;
int _indbil,_newindbil;
@ -23,8 +23,6 @@ class TPconAb : public TRelation_application
static bool ContoSezBilOpp(TMask_field& f, KEY key);
static bool IndBil (TMask_field& f, KEY key);
// static bool LivelloStrutt (TMask_field& f, KEY key);
// const char * extra_modules() const { return format("%d",CGAUT); }
void ScriviContoSezOpp (const TString& codice, const TString& val);
protected:
@ -43,11 +41,6 @@ protected:
public:
TPconAb() {} ;
};
/*
TPconAb::TPconAb(const char* codice, char indbil): _codice(codice), _indbil(indbil)
{
}
*/
// Handler che controlla, nel caso venga scelto un conto di sezione opposta gia' esistente,
// l'indicatore di bilancio del conto di sezione opposta e' "opposto" rispetto al conto
// "di partenza". Controlla inoltre, nel caso il conto di sezione opposta abbia a sua volta
@ -55,38 +48,34 @@ public:
bool TPconAb::ContoSezBilOpp(TMask_field& f, KEY k)
{
if ( (k == K_TAB && f.mask().is_running()) || k == K_ENTER)
if (f.to_check(k))
{
TLocalisamfile pcon (LF_ABPCON);
const TString16 codice (f.get());
if (codice.not_empty())
{
const TRectype & pcon = cache().get(LF_ABPCON, codice);
const int indbilI = f.mask().get_int(F_INDBIL);
const int indbilII = pcon.get_int("INDBIL");
if (indbilI == 1 && indbilII != 2)
return f.warning_box(TR("L'indicatore di bilancio del conto di sezione opposta deve essere una passivita'"));
TString16 codice (f.get());
if (indbilI == 2 && indbilII != 1)
return f.warning_box(TR("L'indicatore di bilancio del conto di sezione opposta deve essere un'attivita'"));
pcon.setkey(1);
pcon.zero();
pcon.put("CODCBL", codice);
if (pcon.read() == NOERR)
{
int indbilI = f.mask().get_int(F_INDBIL);
int indbilII = pcon.get_int("INDBIL");
if (indbilI == 3 && indbilII != 4)
return f.warning_box(TR("L'indicatore di bilancio del conto di sezione opposta deve essere un ricavo"));
if (indbilI == 1 && indbilII != 2)
return f.warning_box("L'indicatore di bilancio del conto di sezione opposta deve essere una passivita'");
if (indbilI == 4 && indbilII != 3)
return f.warning_box(TR("L'indicatore di bilancio del conto di sezione opposta deve essere un costo"));
if (indbilI == 2 && indbilII != 1)
return f.warning_box("L'indicatore di bilancio del conto di sezione opposta deve essere un'attivita'");
if (indbilI == 3 && indbilII != 4)
return f.warning_box("L'indicatore di bilancio del conto di sezione opposta deve essere un ricavo");
if (indbilI == 4 && indbilII != 3)
return f.warning_box("L'indicatore di bilancio del conto di sezione opposta deve essere un costo");
TString16 codice1 (f.mask().get(F_CODICE));
TString16 codice2 (pcon.get("CODCONTR"));
if (codice2 != "" && codice1 != codice2)
return f.warning_box("Il conto di sezione opposta risulta diverso dal conto di sezione di partenza");
}
const TString16 codopp(pcon.get("CODCONTR"));
if (codopp.not_empty() && (codopp != f.mask().get(F_CODICE)))
return f.warning_box(TR("Il conto di sezione opposta risulta diverso dal conto di sezione di partenza"));
}
}
return TRUE;
@ -109,23 +98,7 @@ bool TPconAb::IndBil(TMask_field& f, KEY k)
return TRUE;
}
/*
// Handler che controlla la validita' del campo "Livello di struttura":
// il suo valore deve essere >= 1 e <= 99.
bool TPconAb::LivelloStrutt(TMask_field& f, KEY k)
{
if (k == K_TAB && f.mask().is_running())
{
int livello = atoi(f.get());
if (livello < 1 || livello > 99)
return f.warning_box("Valore non valido per livello struttura");
}
return TRUE;
}
*/
void TPconAb::init_query_mode(TMask&)
{
if (_isparametri)
@ -161,7 +134,7 @@ void TPconAb::init_insert_mode(TMask&)
void TPconAb::ScriviContoSezOpp(const TString& codice, const TString& val)
{
TLocalisamfile pcon (LF_ABPCON);
TLocalisamfile pcon(LF_ABPCON);
pcon.setkey(1);
pcon.zero();
@ -209,18 +182,14 @@ bool TPconAb::remove()
bool TPconAb::user_create()
{
_pcon = new TLocalisamfile (LF_ABPCON);
open_files(LF_TAB, LF_TABCOM, LF_ABPCON, 0);
_rel = new TRelation (LF_ABPCON);
_msk = new TMask("ab0200a") ;
_pcon->zero();
_pcon->read(_isgteq);
_msk->set_handler(F_CODCONTR, ContoSezBilOpp);
_msk->set_handler(F_INDBIL, IndBil);
// _msk->set_handler(F_LIVELLO, LivelloStrutt);
_isparametri = FALSE;
@ -253,7 +222,6 @@ bool TPconAb::user_destroy()
{
delete _msk;
delete _rel;
delete _pcon;
return TRUE;
}
@ -262,7 +230,7 @@ int ab0200(int argc, char* argv[])
{
TPconAb a;
a.run(argc, argv, "Piano dei Conti");
a.run(argc, argv, TR("Piano dei Conti"));
return TRUE;
}

View File

@ -5,57 +5,31 @@
#include <mask.h>
#include <utility.h>
#include <config.h>
#include <urldefid.h>
#include "ab0.h"
class Comp_abpcon : public TApplication
class TComp_abpcon : public TSkeleton_application
{
//TSystemisamfile* _abpcon;
TLocalisamfile* _abpcon;
public:
virtual bool create();
virtual bool destroy();
virtual bool menu(MENU_TAG m);
virtual void main_loop() {};
Comp_abpcon() {}
TComp_abpcon() {}
};
bool Comp_abpcon::create()
bool TComp_abpcon::create()
{
TApplication::create();
//_abpcon = new TSystemisamfile (LF_ABPCON);
_abpcon = new TLocalisamfile (LF_ABPCON);
//_abpcon->packfile();
//_abpcon->packindex();
dispatch_e_menu (BAR_ITEM(1));
open_files(LF_TAB, LF_TABCOM, 0);
return TRUE;
return TSkeleton_application::create();
}
bool Comp_abpcon::destroy()
{
delete _abpcon;
return TApplication::destroy();
}
bool Comp_abpcon::menu(MENU_TAG m)
{
if (m == BAR_ITEM(1))
return FALSE;
return FALSE;
}
int ab0300 (int argc, char* argv[])
{
Comp_abpcon main_app;
main_app.run(argc, argv, "Compatta");
TComp_abpcon main_app;
main_app.run(argc, argv, TR("Compatta"));
return TRUE;
}

608
ab/ab0400.cpp Executable file
View File

@ -0,0 +1,608 @@
#include "abpcon.h"
#include <automask.h>
#include <applicat.h>
#include <config.h>
#include <mask.h>
#include <pconti.h>
#include <progind.h>
#include <relation.h>
#include <rmov.h>
#include <utility.h>
#include "../cg/cglib01.h"
#include "../cg/cglib02.h"
#include "ab0.h"
#include "ab0400.h"
///////////////////////////////////////////////////////////
// TRicl_mask
///////////////////////////////////////////////////////////
class TRicl_mask : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TRicl_mask() : TAutomask("ab0400a") { }
virtual ~TRicl_mask() { }
};
bool TRicl_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
const short id = o.dlg();
switch (id)
{
case F_ESER:
case F_PDB:
if (e == fe_modify)
{
TMask & m = o.mask();
const TString16 codpdb = m.get(F_PDB);
const int eser = m.get_int(F_ESER);
if (eser == 0 || codpdb.empty())
{
m.set(F_DAL, "");
m.set(F_AL, "");
}
else
{
TEsercizi_contabili es;
es.update();
const int anno = es.esercizio(eser).inizio().year();
const TRectype & pdb = cache().get("%PDB", codpdb);
TDate dal(pdb.get_int("I0"), pdb.get_int("I1"), anno);
TDate al(pdb.get_int("I2"), pdb.get_int("I3"), anno);
if (al < dal)
al.addyear(1);
m.set(F_DAL, dal);
m.set(F_AL, al);
}
}
break;
default:
break;
}
return TRUE;
}
enum TCalc_type { _ivdircee = 1, _ricl } ;
class TRiga_calcolo : public TObject
{
int _gruppo;
int _conto;
long _sottoconto;
int _indbil;
real _saldo_iniziale;
real _prog_dare;
real _prog_avere;
virtual TObject* dup() const { return new TRiga_calcolo(*this);}
public:
void set_conto(int g, int c, long s, int i) { _gruppo = g; _conto = c; _sottoconto = s; _indbil = i;}
void set_saldi(const real & si, const real & pd, const real & pa) { _saldo_iniziale = si;
_prog_dare = pd;
_prog_avere = pa;}
const int gruppo() const { return _gruppo;}
const int conto() const { return _conto;}
const long sottoconto() const { return _sottoconto;}
const int indicatore_bilancio() const { return _indbil;}
real saldo_iniziale() const { return _saldo_iniziale;}
real prog_dare() const { return _prog_dare;}
real prog_avere() const { return _prog_avere;}
real saldo() const { return _saldo_iniziale + _prog_dare - _prog_avere;}
bool sezione_opposta() const;
TRiga_calcolo& copy(const TRiga_calcolo& c);
TRiga_calcolo(const TRiga_calcolo& c);
TRiga_calcolo() {}
virtual ~TRiga_calcolo() {}
};
bool TRiga_calcolo::sezione_opposta() const
{
bool reverse = FALSE;
const real s = saldo();
if (s != ZERO)
{
char sezione = s > ZERO ? 'D' : 'A';
if (_indbil == 1 || _indbil == 3)
reverse = sezione == 'A';
else
if (_indbil == 2 || _indbil == 4)
reverse = sezione == 'D';
}
return reverse;
}
TRiga_calcolo & TRiga_calcolo::copy(const TRiga_calcolo & c)
{
_gruppo = c._gruppo;
_conto = c._conto;
_sottoconto = c._sottoconto;
_indbil = c._indbil;
_saldo_iniziale = c._saldo_iniziale;
_prog_dare = c._prog_dare;
_prog_avere = c._prog_avere;
return *this;
}
TRiga_calcolo::TRiga_calcolo(const TRiga_calcolo & c)
{
copy(c);
}
class TRiga_output : public TObject
{
TString _code;
real _saldo_iniziale;
real _prog_dare;
real _prog_avere;
virtual TObject* dup() const { return new TRiga_output(*this);}
public:
TRiga_output & operator +=(const TRiga_calcolo & c);
const TString & code() const { return _code;}
real saldo_iniziale() const { return _saldo_iniziale;}
real prog_dare() const { return _prog_dare;}
real prog_avere() const { return _prog_avere;}
real saldo() const { return _saldo_iniziale + _prog_dare - _prog_avere;}
char sezione_saldo() const { return saldo() > 0 ? 'D' : 'A';}
TRiga_output& copy(const TRiga_output& o);
TRiga_output(const TRiga_output& o);
TRiga_output(const char * code) : _code(code) {}
virtual ~TRiga_output() {}
};
TRiga_output & TRiga_output::operator += (const TRiga_calcolo & c)
{
_saldo_iniziale += c.saldo_iniziale();
_prog_dare += c.prog_dare();
_prog_avere += c.prog_avere();
return *this;
}
TRiga_output & TRiga_output::copy(const TRiga_output & o)
{
_code = o._code;
_saldo_iniziale = o._saldo_iniziale;
_prog_dare = o._prog_dare;
_prog_avere = o._prog_avere;
return *this;
}
TRiga_output::TRiga_output(const TRiga_output& o)
{
copy(o);
}
enum TFile_type { _textfile, _csvfile, _dbffile } ;
class TRicl_saldi : public TSkeleton_application
{
TRicl_mask *_mask;
TFilename _output_file;
TCalc_type _calc_type;
int _codes;
TDate _dal;
TDate _al;
bool _provv;
TString _codpdb;
TArray _risultati;
TAssoc_array _output;
TString_array _output_keys;
bool _clear;
ofstream * _file;
TExternisamfile * _dbf;
#ifdef DBG
protected:
FILE * _log;
void open_log();
void write_log(const char * line);
void close_log();
#endif
public:
virtual bool create();
virtual bool destroy();
void mask2parms(const TMask & m);
void calculate();
void transform();
void get_code(const TRectype & rec, bool cee, bool reverse, TString & code);
void map(int gruppo, int conto, long sottoconto, bool reverse, TString & code);
void output();
virtual void main_loop();
TFile_type open_output();
void output_line(TFile_type t, const char * key, TRiga_output & r);
void close_output(TFile_type t);
TRicl_saldi() {}
virtual ~TRicl_saldi() {}
};
#ifdef DBG
void TRicl_saldi::open_log()
{
TFilename log("ab0400.log");
_log = fopen(log,"a");
if (_log == NULL)
fatal_box(FR("Non posso aprire il file di log della conversione(%s)"), (const char *) log);
}
void TRicl_saldi::write_log(const char * line)
{
fprintf(_log,"%s\n", line);
}
void TRicl_saldi::close_log()
{
fclose(_log);
}
#endif
bool TRicl_saldi::create()
{
open_files(LF_TAB, LF_TABCOM, LF_ABPCON, LF_ABSALDI, LF_SALDI, LF_RMOV, LF_MOV,
LF_PCON, 0);
_mask = new TRicl_mask();
return TSkeleton_application::create();
}
bool TRicl_saldi::destroy()
{
delete _mask;
return TSkeleton_application::destroy();
}
void TRicl_saldi::mask2parms(const TMask & m)
{
_calc_type = (TCalc_type) m.get_int(F_TIPO);
_codes = m.get_int(F_ESER);
_dal = m.get(F_DAL);
_al = m.get(F_AL);
if (_dal.ok() && !_al.ok())
{
const TDate oggi(TODAY);
if (oggi > _dal)
_al = oggi;
else
{
_al.set_year(_dal.year());
_al.set_month(12);
_al.set_day(31);
}
}
_provv = m.get_bool(F_PROVV);
_output_file = m.get(F_OUTPUT);
_codpdb = m.get(F_PDB);
_clear = m.get_bool(F_CLEAR);
#ifdef DBG
TString line ;
write_log("---------------------------------------------------");
line = TR("Tipo di calcolo : "); line << (_calc_type ? TR("IV Direttiva CEE") : TR("Analisi"));
write_log(line);
line = TR("Esercizio : "); line << _codes;
write_log(line);
line = TR("Codice periodo : "); line << _codpdb;
write_log(line);
line = TR("Dal : "); line << _dal.string();
write_log(line);
line = TR("Al : "); line << _al.string();
write_log(line);
line = TR("Movimenti provv.: "); line << (_provv ? "Si" : "No");
write_log(line);
line = TR("Output : "); line << ((const char *) _output_file) << " da ricreare : " << (_clear ? "Si" : "No");
write_log(line);
write_log("");
#endif
}
void TRicl_saldi::calculate()
{
TRelation relpcon(LF_PCON);
const TRectype & pcon = relpcon.curr();
TCursor cur(&relpcon, "CONTO!=0");
int gruppo;
int conto;
long sottoconto;
int indbil;
TSaldo sal;
TRiga_calcolo r;
const bool saldi_attuali = !_dal.ok() && !_al.ok();
const TRecnotype items = cur.items();
cur.freeze();
TProgind p(items, TR("Ricalcolo saldi"), FALSE);
for (cur = 0L; !p.iscancelled() && cur.pos() < items; ++cur)
{
gruppo = pcon.get_int(PCN_GRUPPO);
conto = pcon.get_int(PCN_CONTO);
sottoconto = pcon.get_long(PCN_SOTTOCONTO);
if (sottoconto == 0L)
indbil = pcon.get_int(PCN_INDBIL);
else
{
if (saldi_attuali)
sal.ultima_immissione_bilancio(_codes, gruppo, conto, sottoconto, indbil, _provv ? 2 :1, FALSE);
else
sal.valore_al(gruppo, conto, sottoconto, _dal, _al, indbil, _provv);
r.set_conto(gruppo, conto, sottoconto, indbil);
r.set_saldi(sal.saldoini(), sal.prgdare(), sal.prgavere());
#ifdef DBG
TString line ;
line.format(FR("Conto %03d.%03d.%06ld - "), gruppo, conto, sottoconto);
line << TR("Saldo iniziale ") << sal.saldoini().stringa(18, 3);
line << TR(" Prog.Dare ") << sal.prgdare().stringa(18, 3);
line << TR(" Prog.Avere ") << sal.prgavere().stringa(18, 3);
line << TR(" Saldo ") << sal.saldo().stringa(18, 3);
write_log(line);
#endif
_risultati.add(r);
}
}
}
void TRicl_saldi::get_code(const TRectype &rec, bool cee, bool reverse, TString & code)
{
if (cee)
{
bool opp = reverse && rec.get_int(PCN_SEZIVDOPP) != 0;
code = rec.get(opp ? PCN_SEZIVDOPP : PCN_SEZIVD);
if (code == "0")
code.cut(0);
else
{
code << rec.get(opp ? PCN_LETTIVDOPP : PCN_LETTIVD);
code << format("%4s", (const char *) rec.get(opp ? PCN_NUMRIVDOPP : PCN_NUMRIVD));
const int numrivd = rec.get_int(opp ? PCN_NUMIVDOPP : PCN_NUMIVD);
if (numrivd != 0)
code << format("%02d", numrivd);
code.trim();
}
}
else
code = rec.get(PCN_CODCBL);
}
void TRicl_saldi::map(int gruppo, int conto, long sottoconto, bool reverse, TString & code)
{
const bool cee =_calc_type == _ivdircee;
code.format("%d|%d|%ld", gruppo, conto, sottoconto);
const TRectype & recs = cache().get(LF_PCON, code);
get_code(recs, cee, reverse, code);
if (code.empty())
{
code.format("%d|%d", gruppo, conto);
const TRectype & recc = cache().get(LF_PCON, code);
get_code(recc, cee, reverse, code);
if (code.empty())
{
code.format("%d", gruppo);
const TRectype & recg = cache().get(LF_PCON, code);
get_code(recg, cee, reverse, code);
}
}
}
void TRicl_saldi::transform()
{
const int items = _risultati.items();
TString80 key;
for (int i = 0; i < items; i++)
{
const TRiga_calcolo & c = (const TRiga_calcolo &) _risultati[i];
const int gruppo = c.gruppo();
const int conto = c.conto();
const long sottoconto = c.sottoconto();
const bool reverse = c.sezione_opposta();
map(gruppo, conto, sottoconto, reverse, key);
if (key.not_empty())
{
TRiga_output * r = (TRiga_output *)_output.objptr(key);
if (r == NULL)
{
r = new TRiga_output(key);
_output.add(key, r);
}
*r += c;
}
}
}
TFile_type TRicl_saldi::open_output()
{
TString16 ext = _output_file.ext();
TFile_type t;
if (ext == "dbf")
t = _dbffile;
else
if (ext == "csv")
t = _csvfile;
else
t = _textfile;
if (t == _dbffile)
_dbf = _clear ? new TExternisamfile(_output_file, "ab0400.trr") : new TExternisamfile(_output_file);
else
_file = new ofstream(_output_file, _clear ? ios::trunc : ios::app);
return t;
}
void TRicl_saldi::output_line(TFile_type t, const char * key, TRiga_output & r)
{
TString descr;
if (_calc_type == _ivdircee)
descr = cache().get("%IVD", key, "S0");
else
descr = cache().get(LF_ABPCON, key, ABPC_DESCRIZ);
real si = r.saldo_iniziale();
char fsi = 'D';
real s = r.saldo();
char fs = 'D';
real pd = r.prog_dare();
real pa = r.prog_avere();
if (si < ZERO)
{
si = -si;
fsi = 'A';
}
if (s < ZERO)
{
s = -s;
fs = 'A';
}
#ifdef DBG
TString line ;
line.format(FR("Chiave %s"), key);
line << TR("Saldo iniziale ") << si.stringa(18, 3) << " " << fsi;
line << TR(" Prog.Dare ") << pd.stringa(18, 3);
line << TR(" Prog.Avere ") << pa.stringa(18, 3);
line << TR(" Saldo ") << s.stringa(18, 3) << " " << fs;
write_log(line);
#endif
if (t == _dbffile)
{
TRectype & r = _dbf->curr();
r.put("ANNOES", _codes);
r.put("KEY", key);
r.put("DESCR", descr);
r.put("SALDOI", si);
r.put("FLAGSI", fsi);
r.put("PDARE", pd);
r.put("PAVERE", pa);
r.put("SALDO", s);
r.put("FLAGS", fs);
r.put("DATAI", _dal);
r.put("DATAF", _al);
r.put("CODPDB", _codpdb);
if (_dbf->write(r) != NOERR)
_dbf->rewrite(r);
}
else
if (t == _csvfile)
{
*_file << _codes << ";";
*_file << "\""<< key << "\";";
*_file << "\"" << descr << "\";";
*_file << si.string() << ";";
*_file << fsi << ";";
*_file << pd.string() << ";";
*_file << pa.string() << ";";
*_file << s.string() << ";";
*_file << fs << ";";
*_file << _dal << ";";
*_file << _al << ";";
*_file << _codpdb << "\n";
}
else
{
*_file << _codes << "\t";
*_file << key << "\t";
*_file << descr << "\t";
*_file << si.string() << "\t";
*_file << fsi << "\t";
*_file << pd.string() << "\t";
*_file << pa.string() << "\t";
*_file << s.string() << "\t";
*_file << fs << "\t";
*_file << _dal << "\t";
*_file << _al << "\t";
*_file << _codpdb << "\n";
}
}
void TRicl_saldi::close_output(TFile_type t)
{
if (t == _dbffile)
{
delete _dbf;
_dbf = NULL;
}
else
{
delete _file;
_file = NULL;
}
}
void TRicl_saldi::output()
{
_output_keys.destroy();
_output.get_keys(_output_keys);
_output_keys.sort();
const int items = _output_keys.items();
TFile_type t = open_output();
for (int i = 0; i < items; i++)
{
TString & key = _output_keys.row(i);
TRiga_output & r = (TRiga_output &) _output[key];
output_line(t, key, r);
}
close_output(t);
}
void TRicl_saldi::main_loop()
{
while (_mask->run() != K_QUIT)
{
#ifdef DBG
open_log();
#endif
mask2parms(*_mask);
calculate();
transform();
output();
#ifdef DBG
close_log();
#endif
}
}
int ab0400 (int argc, char* argv[])
{
TRicl_saldi main_app;
main_app.run(argc, argv, "Riclassifica saldi");
return TRUE;
}

10
ab/ab0400.h Executable file
View File

@ -0,0 +1,10 @@
// campi maschera ab0400a.uml
#define F_TIPO 101
#define F_ESER 102
#define F_PDB 103
#define F_DAL 104
#define F_AL 105
#define F_PROVV 106
#define F_OUTPUT 107
#define F_CLEAR 108

16
ab/ab0400.trr Executable file
View File

@ -0,0 +1,16 @@
-1
12
ANNOES|9|4|0|Codice esercizio
KEY|1|20|0|Chiave
DESCR|1|70|0|Descrizione
FLAGSI|1|1|0|Saldo iniziale in <D>are, <A>vere
SALDOI|4|18|2|Saldo iniziale
PDARE|4|18|2|Progressivo dare
PAVERE|4|18|2|Progressivo avere
FLAGS|1|1|0|Saldo in <D>are, <A>vere
SALDO|4|18|2|Saldo
DATAI|5|8|0|Data inizio
DATAF|5|8|0|Data fine
CODPDB|1|3|0|Codice
1
ANNOES+KEY+CODPDB+DATAI+DATAF|

85
ab/ab0400a.uml Executable file
View File

@ -0,0 +1,85 @@
#include "ab0400.h"
PAGE "Riclassificazione" -1 -1 76 17
LIST F_TIPO 20
BEGIN
PROMPT 2 1 "Tipo di calcolo "
ITEM "1|IV Direttiva CEE"
ITEM "2|Analisi"
END
NUMBER F_ESER 4
BEGIN
PROMPT 2 3 "Esercizio "
HELP "Codice d'esercizio da assegnare"
FLAGS "ZR"
USE ESC
INPUT CODTAB F_ESER
DISPLAY "Codice esercizio" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
DISPLAY "Data di scarico" D2
DISPLAY "Data chiusura esercizio" D3
OUTPUT F_ESER CODTAB
CHECKTYPE NORMAL
END
STRING F_PDB 2
BEGIN
PROMPT 2 5 "Codice periodo "
HELP "Codice della tabella periodi di bilancio"
FLAGS "U_"
USE %PDB
INPUT CODTAB F_PDB
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@40" S0
DISPLAY "gg.inizio" I0
DISPLAY "mm.inizio" I1
DISPLAY "gg.fine" I2
DISPLAY "mm.fine" I3
OUTPUT F_PDB CODTAB
CHECKTYPE NORMAL
END
DATE F_DAL
BEGIN
PROMPT 2 7 "Dal "
END
DATE F_AL
BEGIN
PROMPT 2 9 "Al "
VALIDATE DATE_CMP_FUNC > F_DAL
WARNING "La data finale deve essere maggiore alla data iniziale"
END
BOOLEAN F_PROVV
BEGIN
PROMPT 2 11 "Anche i movimenti provvisori"
END
STRING F_OUTPUT 50 30
BEGIN
PROMPT 2 13 "File di output "
FSELECT ""
END
BOOLEAN F_CLEAR
BEGIN
PROMPT 55 13 "Azzera"
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -6,6 +6,7 @@
#include <mask.h>
#include <printapp.h>
#include <recarray.h>
#include <utility.h>
#include <nditte.h>
@ -143,17 +144,8 @@ bool AB1100_application::preprocess_page(int , int)
}
}
// Stampa tabella registri. Calcolo: pagine residue = pagine - stampate
/* if (_stampa_registri)
{
const int pagine = _cur->file().get_int("I2");
const int stampate = _cur->file().get_int("I1");
const int residue = pagine - stampate;
if (residue > 0)
set_row(1, "@126g%4d", residue);
else
set_row(1, "@126g%4s", " ");
} */
return TRUE;
return TRUE;
}
void AB1100_application::set_headers()
@ -184,25 +176,14 @@ void AB1100_application::set_headers()
{
const long codditta = get_firm();
TString80 ragsoc;
TLocalisamfile nditte(LF_NDITTE);
const TRectype & nditta = cache().get(LF_NDITTE, codditta);
nditte.zero();
nditte.put(NDT_CODDITTA, codditta);
if (nditte.read() == NOERR)
{
ragsoc = nditte.get(NDT_RAGSOC);
if (LungRiga < 100) ragsoc.cut(40);
}
riga.overwrite(format("Ditta %4ld %s", codditta,(const char *)ragsoc));
ragsoc = nditta.get(NDT_RAGSOC);
if (LungRiga < 100) ragsoc.cut(40);
riga.overwrite(format(FR("Ditta %4ld %s"), codditta,(const char *)ragsoc));
}
/* if (_stampa_ca7)
{
TDate d (_msk->get(F_DATASTAMPA));
printer().setdate(d);
} */
riga.overwrite ("Data @< Pag. @#", riga.len()-22);
riga.overwrite (FR("Data @< Pag. @#"), riga.len()-22);
set_header (last_riga++, "%s", (const char *)riga);
@ -211,17 +192,9 @@ void AB1100_application::set_headers()
// Lo lascio anche per le altre stampe
// if (_stampa_registri)
NomeTabella.left_just (LungRiga);
/* else
NomeTabella.center_just (LungRiga); */
/* if (_stampa_ca7)
NomeTabella.center_just (LungRiga); */
set_header (last_riga++, "@b%s", (const char *)NomeTabella);
// Aggiungo una riga vuota per separare prima intestazione
//sep.fill ('-', LungRiga);
//set_header (last_riga, "%s", (const char *)sep);
line = rpt.line();
while ( (line != "") && (line[0] != '[') )
{
@ -407,8 +380,6 @@ bool AB1100_application::user_create()
// Flag per la stampa tabella registri
_tabname.upper();
// _stampa_registri = (_tabname == "REG");
// _stampa_ca7 = (_tabname == "%CA7");
_rel = new TRelation (_tabname);
_cur = new TCursor (_rel);
@ -452,6 +423,6 @@ bool AB1100_application::user_destroy()
int ab1100(int argc, char** argv)
{
AB1100_application a;
a.run(argc, argv, "Stampa tabella");
a.run(argc, argv, TR("Stampa tabella"));
return 0;
}

View File

@ -30,7 +30,7 @@ void AB1200_application::main_loop()
//Dati validi: (cod_from <= cod_to) and (cod_to = "vuoto")
bool err = ((cod_from > cod_to) && (cod_to != "") );
if (err)
error_box("Il campo iniziale deve essere vuoto o minore del campo finale");
error_box(TR("Il campo iniziale deve essere vuoto o minore del campo finale"));
else
{
TCursor* cur = f.cursor(); //Ritorna il cursore corrente (oggetto)
@ -52,6 +52,6 @@ void AB1200_application::main_loop()
int ab1200(int argc, char** argv)
{
AB1200_application a;
a.run(argc, argv, "Stampa Piano dei Conti");
a.run(argc, argv, TR("Stampa Piano dei Conti"));
return 0;
}

View File

@ -51,7 +51,7 @@ int ab2100(int argc, char **argv)
break;
}
default:
error_box ("Sintassi: \n -0 -R -<utente> per ricezione \n -0 -T -<utente> per trasferimetno");
error_box (TR("Sintassi: \n -0 -R -<utente> per ricezione \n -0 -T -<utente> per trasferimenTo"));
}
return 0;
}

View File

@ -1,22 +1,18 @@
//AB2100.H: Classe principale e definizione di costanti
#ifndef _AB2100_H
#ifndef __FILETEXT_H
#include <filetext.h>
#endif // __FILETEXT_H
#ifndef __APPLICAT_H
#include <applicat.h> //Definizione della classe TApplication
#endif //__APPLICAT_H
#endif
#ifndef __FILETEXT_H
#include <filetext.h>
#endif
#ifndef __MASK_H
#include <mask.h> //Definizione della maschera
#endif //__MASK_H
#endif
#ifndef __URLDEFID_H
#include <urldefid.h> //Definizione di BAR_ITEM(1)
#endif //__URLDEFID_H
#define ID_NULLO 0
//Costanti di definizione dei tipi record
@ -176,7 +172,9 @@ class TRicezione_AS400 : public TObject_reception
TFile_text_AS400 *trasfile() {return (TFile_text_AS400 *)_trasfile;}
virtual void leggi_temp_link(TRectype& cur_rec,TToken_string& k);
//Questa funzione è da usare solo in fase di debug
//void print_ana_tree(int & level, TRectype&,FILE * stream);
#ifdef DBG
void print_ana_tree(int & level, TRectype&,FILE * stream);
#endif
public:
virtual void ricevi(TMask &);
TRicezione_AS400(const TFilename &percorso);

View File

@ -1,5 +1,3 @@
//AB2101.CPP: Ricezione tabelle
#include <utility.h> //Definizione di fexit
#include "movdett.h" //Contiene le definizioni di costanti relative ai nomi dei campi di LF_MOVDETT
#include "saldi.h" //Contiene le definizioni di costanti relative ai nomi dei campi di LF_SALDI
#include "voci.h" //Contiene le definizioni di costanti relative ai nomi dei cmapi di LF_VOCI
@ -9,8 +7,10 @@
#include "colldich.h" //Contiene le definizioni di costanti relative ai nomi dei cmapi di LF_COLLDICH
#include "ab2100.h" //Definizione della classe principale e di constanti che indicano l'indice nel file di configurazione
#include "ab2100a.h" //Campi della maschera
#include <progind.h>
#include <assoc.h>
#include <progind.h>
#include <utility.h> //Definizione di fexit
TToken_string TAlbero_record ::wrk_string;
@ -432,7 +432,7 @@ bool TTrasfer::inseriscipercorso(TMask_field& f, KEY k)
TString percorso =f.get(); //Leggo il contenuto del campo
bool esiste=fexist(percorso); //Controllo l'esistenza del file
if (!esiste)
return f.error_box("Il percorso o il file specificato non esiste.");
return f.error_box(TR("Il percorso o il file specificato non esiste."));
modificato=TRUE;
}
@ -442,7 +442,7 @@ bool TTrasfer::inseriscipercorso(TMask_field& f, KEY k)
TString percorso =f.mask().get(F_PERCORSO); //Leggo il contenuto del campo
bool esiste=fexist(percorso); //Controllo l'esistenza del file
if (!esiste)
return f.error_box("Il percorso o il file specificato non esiste.");
return f.error_box(TR("Il percorso o il file specificato non esiste."));
modificato=TRUE;
}
@ -483,7 +483,7 @@ bool TTrasfer::inseriscipercorso(TMask_field& f, KEY k)
f.mask().enable(F_MOVIMENTI,abilita_saldi_movimenti);
}
else //non sono riuscito a trovare la testato o il tipo record dove me lo aspettavo
error_box ("Non ho trovato il record di testata o non riesco a leggere il file di configurazione");
error_box (TR("Non ho trovato il record di testata o non riesco a leggere il file di configurazione"));
file_temp->close();
delete file_temp;
file_temp =NULL;
@ -503,29 +503,8 @@ bool TTrasfer::inseriscipercorso(TMask_field& f, KEY k)
}// Non sono sul campo F_PERCORSO
return TRUE;
}
/* ********************************************************************************************************* */
/* TRicezione */
/*********************************************************************************************************** */
/*
bool TRicezione::create()
{
_files.add(new TLocalisamfile(LF_CARADD),1);
_files.add(new TLocalisamfile(LF_COLLDICH),2);
dispatch_e_menu(BAR_ITEM(1)); //Simula la scelta di una voce di menu
return TRUE;
}
bool TRicezione::destroy() //Distruttore
{
return TRUE;
} */
//Funzione membro che effettua la conversione
//bool TRicezione::menu(MENU_TAG)
void TRicezione::main_loop()
{
_files.add(new TLocalisamfile(LF_CARADD),1);
@ -542,7 +521,7 @@ void TRicezione::main_loop()
if (msk.run()== K_ENTER) //Eseguo la maschera
{
//Visualizza una finestra di attesa
TIndwin idle(0,"Attendere: aggiornamento della tabella in corso. \n L'operazione potrebbe richiedere qualche minuto ... ",FALSE,FALSE,60);
TIndwin idle(0,TR("Attendere: aggiornamento della tabella in corso. \n L'operazione potrebbe richiedere qualche minuto ... "),FALSE,FALSE,60);
percorso=msk.get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO
@ -571,7 +550,7 @@ void TRicezione::main_loop()
/* if (msk.get_bool(F_SRELAZ))
build_relana(config_file,msk,percorso); */
//messaggio finale
message_box(" ... aggiornamento delle tabelle selezionate effettuato");
message_box(TR(" ... aggiornamento delle tabelle selezionate effettuato"));
} //end if (msk.run())
// return FALSE;
}
@ -677,7 +656,7 @@ void TAlbero_record::dept_first(TToken_string key, TRectype * padre, TRectype *
else
{// ... questa situazione non dovrebbe accadere: se succede si è verificata una
//inconsistenza nei dati
fatal_box("Si è verificato una inconsistenza nei dati: \n controllare che tutti i movimenti abbiano il relativo saldo");
fatal_box(TR("Si è verificato una inconsistenza nei dati: \n controllare che tutti i movimenti abbiano il relativo saldo"));
}
}
TToken_string key_figlio, key_fratello;
@ -877,7 +856,7 @@ void TRicezione_AS400::scrivi_array(TAssoc_array &s_rec, int logic_num)
//non dovrebbe mai succedere
if (err != NOERR)
{
message_box("Si è verificato un errore nella costruzione dell'albero");
message_box(TR("Si è verificato un errore nella costruzione dell'albero"));
err = rel->write();
}
rec=(TRectype*)s_rec.succ_item();
@ -983,18 +962,15 @@ void TRicezione_AS400::build_relana(TString& config_file, const TMask &msk, cons
tabtree.destroy(); //Azzero l'assoc_array
long currid=1;
#ifdef DBG
// Questa parte stampa in un file di testo la struttura ad albro
// dell'analisi: da usare solo in fase di debug
// ***************
// ***************
/* int level=0;
int level=0;
FILE * stream=fopen("\\st1.txt","w");
print_ana_tree(level,radici.curr(),stream);
fclose(stream); */
// ***************
// ***************
fclose(stream);
#endif
build_ana_tree(currid,radici.curr(),NULL,NULL,tabtree); // costruisce l'albero in memoria
@ -1121,9 +1097,9 @@ void TRicezione_AS400::build_ana_tree(long &currid, TRectype & nodo, TRectype *
ana_node->put(ABRA_IDSUCC, ID_NULLO);
}
/*
// Questa funzione serve solo in fase di debug:
// naviga per ricostruire il numero di sottorelazione
#ifdef DBG
void TRicezione_AS400::print_ana_tree(int &level,TRectype & nodo,FILE * stream)
{
TToken_string key;
@ -1156,7 +1132,7 @@ void TRicezione_AS400::print_ana_tree(int &level,TRectype & nodo,FILE * stream)
print_ana_tree(level,relvoci.curr(),stream);
}
}
*/
#endif
void TRicezione_AS400::ricevi(TMask & msk)
{
@ -1191,9 +1167,8 @@ TObject_reception::TObject_reception(const TFilename &percorso)
{
if (_trasfile != NULL)
delete _trasfile;
_trasfile = new TFile_text(percorso, "C:/SAURO/TEMP/AB2100B.INI"); /*DA CAMBIARE*/
_trasfile = new TFile_text(percorso, "ab2100b.ini"); /*DA CAMBIARE*/
_trasfile->open('r'); //apro il TFile_text in lettura
//_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione
}
TRicezione_AS400::TRicezione_AS400(const TFilename &percorso)
@ -1220,6 +1195,6 @@ TRicezione_userdef ::TRicezione_userdef(const TString & config, const TFilename
int ab2101(int argc, char **argv)
{
TRicezione a;
a.run(argc,argv,"Ricezione da file di testo");
a.run(argc,argv,TR("Ricezione da file di testo"));
return 0;
}

View File

@ -261,7 +261,7 @@ void TObject_send::converti(int logic_num)
//Leggo il numero di records da convertire
long items =cur->items();
//Barra scorrevole di attesa
TProgind idle(items,"Attendere: conversione in corso ...",TRUE,TRUE,60);
TProgind idle(items,TR("Attendere: conversione in corso ..."),TRUE,TRUE,60);
//Ciclo principale di conversione
for (*cur=0;cur->pos()<items;++*cur)
@ -285,7 +285,7 @@ void TObject_send::converti(int main_file, const char * tabname)
//Leggo il numero di records da convertire
long items =cur->items();
//Barra scorrevole di attesa
TProgind idle(items,"Attendere: conversione in corso ...",TRUE,TRUE,60);
TProgind idle(items,TR("Attendere: conversione in corso ..."),TRUE,TRUE,60);
//Ciclo principale di conversione
for (*cur=0;cur->pos()<items;++*cur)
@ -328,7 +328,7 @@ void TInvio_AS400::converti(int logic_num)
//Leggo il numero di records da convertire
long items =cur->items();
//Barra scorrevole di attesa
TProgind idle(items,"Attendere: conversione in corso ...",TRUE,TRUE,60);
TProgind idle(items,TR("Attendere: conversione in corso ..."),TRUE,TRUE,60);
//Ciclo principale di conversione
for (*cur=0;cur->pos()<items;++*cur)
@ -390,7 +390,7 @@ void TInvio::main_loop()
(msk.get_bool(F_RELAZ) == TRUE) ||
(msk.get_bool(F_SRELAZ) == TRUE))
{
message_box("L'ivio a AS400 delle VOCI, RELAZIONI e SOTTORELAZIONI non è attualmente previsto");
message_box(TR("L'invio a AS400 delle VOCI, RELAZIONI e SOTTORELAZIONI non è attualmente previsto"));
}
_invio = new TInvio_AS400(percorso);
}
@ -474,7 +474,7 @@ void TInvio::main_loop()
int ab2102(int argc, char **argv)
{
TInvio a;
a.run(argc,argv,"Trasferimento su file di testo");
a.run(argc,argv,TR("Trasferimento su file di testo"));
return 0;
}
@ -482,7 +482,7 @@ TObject_send::TObject_send(const TFilename &percorso)
{
if (_trasfile != NULL)
delete _trasfile;
_trasfile = new TFile_text(percorso, "AB2100B.INI"); /*DA CAMBIARE*/
_trasfile = new TFile_text(percorso, "ab2100b.ini"); /*DA CAMBIARE*/
_trasfile->open('w'); //apro il TFile_text in lettura
}
@ -490,7 +490,7 @@ TInvio_AS400::TInvio_AS400(const TFilename &percorso)
{
if (_trasfile != NULL)
delete _trasfile;
_trasfile = new TFile_text(percorso, "AB2100A.INI"); /*DA CAMBIARE*/
_trasfile = new TFile_text(percorso, "ab2100a.ini"); /*DA CAMBIARE*/
_trasfile->open('w'); //apro il TFile_text in lettura
}

View File

@ -155,27 +155,6 @@ bool naviga_tree(TMask_field& f, KEY k)
return TRUE;
}
/*
void TGestione_tree::gestione_saldi()
{
TLocalisamfile saldo(LF_ABSALDI);
// TRecnotype nrec = 96; //Abilitare questa riga per testare la readat
saldo.set_curr(new TABsaldo());
saldo.put(ABMD_CODDITTA,"00001");
saldo.put(ABMD_ANNO,"1996");
saldo.put(ABMD_CODPDB,"001");
saldo.put(ABMD_TIPOBIL,"E2");
saldo.put(ABMD_CODCBL,"000000000200");
// saldo.readat(nrec); //Se si abilita il test della readat, commentare le righe che riguardano la read
int err=saldo.read();
if (err!=NOERR)
CHECK (FALSE,"Errore nella letture del record di testata");
//saldo.write();
//saldo.remove();
} */
TRectype ricava_colldich(TMask & msk)
{
TRectype coll (LF_COLLDICH);
@ -319,7 +298,7 @@ bool aggiorna_id_caradd(TMask_field& f, KEY k)
}
else
{
error_box ("Voce non presente nell'archivio voci");
error_box (TR("Voce non presente nell'archivio voci"));
}
}
aggiorna_caradd(sheet_msk);
@ -333,7 +312,7 @@ bool aggiorna_id_caradd(TMask_field& f, KEY k)
bool TGestione_tree::user_create()
{
_msk = new TMask("AB3100A");
_msk = new TMask("ab3100a");
_anas = new TRelation(LF_ANALISI);
TAnalisi_bil *tree = new TAnalisi_bil();
@ -365,5 +344,5 @@ bool TGestione_tree::user_destroy()
void ab3100(int argc, char **argv)
{
TGestione_tree a;
a.run(argc,argv, "Gestione dati");
a.run(argc,argv, TR("Gestione dati"));
}

7
ab/abpcon.h Executable file
View File

@ -0,0 +1,7 @@
#define ABPC_CODCBL "CODCBL"
#define ABPC_LIVELLO "LIVELLO"
#define ABPC_DESCRIZ "DESCRIZ"
#define ABPC_INDBIL "INDBIL"
#define ABPC_CODCONTR "CODCONTR"
#define ABPC_SOSPESO "SOSPESO"
#define ABPC_DETT "DETT"

63
projects/ab.dsp Executable file
View File

@ -0,0 +1,63 @@
# Microsoft Developer Studio Project File - Name="ab" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Generic Project" 0x010a
CFG=ab - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "ab.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "ab.mak" CFG="ab - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ab - Win32 Release" (based on "Win32 (x86) Generic Project")
!MESSAGE "ab - Win32 Debug" (based on "Win32 (x86) Generic Project")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
MTL=midl.exe
!IF "$(CFG)" == "ab - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "ab - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "ab___Win32_Debug"
# PROP BASE Intermediate_Dir "ab___Win32_Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "ab___Win32_Debug"
# PROP Intermediate_Dir "ab___Win32_Debug"
# PROP Target_Dir ""
!ENDIF
# Begin Target
# Name "ab - Win32 Release"
# Name "ab - Win32 Debug"
# End Target
# End Project

View File

@ -3,6 +3,42 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
###############################################################################
Project: "AgaLib"=.\AgaLib.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "ab"=.\ab.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name ab0
End Project Dependency
Begin Project Dependency
Project_Dep_Name ab1
End Project Dependency
Begin Project Dependency
Project_Dep_Name ab2
End Project Dependency
Begin Project Dependency
Project_Dep_Name ab3
End Project Dependency
}}}
###############################################################################
Project: "ab0"=.\ab0.dsp - Package Owner=<4>
Package=<5>
@ -11,6 +47,9 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name AgaLib
End Project Dependency
}}}
###############################################################################
@ -23,6 +62,9 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name AgaLib
End Project Dependency
}}}
###############################################################################
@ -35,6 +77,9 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name AgaLib
End Project Dependency
}}}
###############################################################################
@ -47,18 +92,9 @@ Package=<5>
Package=<4>
{{{
}}}
###############################################################################
Project: "ab_masktab"=.\ab_masktab.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name AgaLib
End Project Dependency
}}}
###############################################################################

View File

@ -110,6 +110,18 @@ SOURCE=..\ab\ab0200.cpp
SOURCE=..\ab\ab0300.cpp
# End Source File
# Begin Source File
SOURCE=..\ab\ab0400.cpp
# End Source File
# Begin Source File
SOURCE=..\cg\cglib01.cpp
# End Source File
# Begin Source File
SOURCE=..\cg\cglib02.cpp
# End Source File
# End Group
# Begin Group "Headers"
@ -118,6 +130,69 @@ SOURCE=..\ab\ab0300.cpp
# Begin Group "Forms"
# PROP Default_Filter "frm"
# Begin Source File
SOURCE=..\ab\batbarb.rpt
!IF "$(CFG)" == "ab0 - Win32 Release"
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# Begin Custom Build - Compiling rpt $(InputPath)...
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\batbarb.rpt
InputName=batbarb
"$(TargetDir)\$(InputName).rpt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
rpt32 $(InputPath) $(TargetDir)\$(InputName).rpt
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\ab\batbntb.rpt
!IF "$(CFG)" == "ab0 - Win32 Release"
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# Begin Custom Build - Compiling rpt $(InputPath)...
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\batbntb.rpt
InputName=batbntb
"$(TargetDir)\$(InputName).rpt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
rpt32 $(InputPath) $(TargetDir)\$(InputName).rpt
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\ab\batbpdb.rpt
!IF "$(CFG)" == "ab0 - Win32 Release"
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# Begin Custom Build - Compiling rpt $(InputPath)...
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\batbpdb.rpt
InputName=batbpdb
"$(TargetDir)\$(InputName).rpt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
rpt32 $(InputPath) $(TargetDir)\$(InputName).rpt
# End Custom Build
!ENDIF
# End Source File
# End Group
# Begin Group "Masks"
@ -129,7 +204,7 @@ SOURCE=..\ab\ab0200a.uml
!IF "$(CFG)" == "ab0 - Win32 Release"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\U\Luca\r020200.aga\exe
TargetDir=\P.32\P_02_00\exe
InputPath=..\ab\ab0200a.uml
InputName=ab0200a
@ -141,7 +216,7 @@ InputName=ab0200a
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\U\Luca\r020200.aga\exed
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\ab0200a.uml
InputName=ab0200a
@ -152,6 +227,132 @@ InputName=ab0200a
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\ab\bastarb.uml
!IF "$(CFG)" == "ab0 - Win32 Release"
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\bastarb.uml
InputName=bastarb
"$(TargetDir)\$(InputName).msk" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
msk32 $(InputPath) $(TargetDir)\$(InputName).msk
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\ab\bastntb.uml
!IF "$(CFG)" == "ab0 - Win32 Release"
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\bastntb.uml
InputName=bastntb
"$(TargetDir)\$(InputName).msk" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
msk32 $(InputPath) $(TargetDir)\$(InputName).msk
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\ab\bastpdb.uml
!IF "$(CFG)" == "ab0 - Win32 Release"
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\bastpdb.uml
InputName=bastpdb
"$(TargetDir)\$(InputName).msk" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
msk32 $(InputPath) $(TargetDir)\$(InputName).msk
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\ab\batbarb.uml
!IF "$(CFG)" == "ab0 - Win32 Release"
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\batbarb.uml
InputName=batbarb
"$(TargetDir)\$(InputName).msk" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
msk32 $(InputPath) $(TargetDir)\$(InputName).msk
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\ab\batbntb.uml
!IF "$(CFG)" == "ab0 - Win32 Release"
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\batbntb.uml
InputName=batbntb
"$(TargetDir)\$(InputName).msk" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
msk32 $(InputPath) $(TargetDir)\$(InputName).msk
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\ab\batbpdb.uml
!IF "$(CFG)" == "ab0 - Win32 Release"
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\batbpdb.uml
InputName=batbpdb
"$(TargetDir)\$(InputName).msk" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
msk32 $(InputPath) $(TargetDir)\$(InputName).msk
# End Custom Build
!ENDIF
# End Source File
# End Group
# Begin Source File
@ -170,33 +371,6 @@ SOURCE=.\ab0.rc
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\Lib\AgaLib.lib
!IF "$(CFG)" == "ab0 - Win32 Release"
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
# PROP Intermediate_Dir "..\lib\agalib.lib"
# PROP Exclude_From_Build 1
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\Lib\AgaLibD.lib
!IF "$(CFG)" == "ab0 - Win32 Release"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "ab0 - Win32 Debug"
!ENDIF
# End Source File
# End Target
# End Project

4
projects/ab0.rc Executable file
View File

@ -0,0 +1,4 @@
"9012" ICON DISCARDABLE "../exe/res/campo.ico"
rcinclude ../../wx240/include/wx/msw/wx.rc

View File

@ -121,7 +121,7 @@ SOURCE=..\ab\ab1200.frm
!IF "$(CFG)" == "ab1 - Win32 Release"
# Begin Custom Build - Compiling form $(InputPath)...
TargetDir=\U\Luca\r020200.aga\exe
TargetDir=\P.32\P_02_00\exe
InputPath=..\ab\ab1200.frm
InputName=ab1200
@ -133,7 +133,7 @@ InputName=ab1200
!ELSEIF "$(CFG)" == "ab1 - Win32 Debug"
# Begin Custom Build - Compiling form $(InputPath)...
TargetDir=\U\Luca\r020200.aga\exed
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\ab1200.frm
InputName=ab1200
@ -156,7 +156,7 @@ SOURCE=..\ab\ab1200.uml
!IF "$(CFG)" == "ab1 - Win32 Release"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\U\Luca\r020200.aga\exe
TargetDir=\P.32\P_02_00\exe
InputPath=..\ab\ab1200.uml
InputName=ab1200
@ -168,7 +168,7 @@ InputName=ab1200
!ELSEIF "$(CFG)" == "ab1 - Win32 Debug"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\U\Luca\r020200.aga\exed
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\ab1200.uml
InputName=ab1200
@ -197,33 +197,6 @@ SOURCE=.\ab1.rc
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\Lib\AgaLib.lib
!IF "$(CFG)" == "ab1 - Win32 Release"
!ELSEIF "$(CFG)" == "ab1 - Win32 Debug"
# PROP Intermediate_Dir "..\lib\agalib.lib"
# PROP Exclude_From_Build 1
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\Lib\AgaLibD.lib
!IF "$(CFG)" == "ab1 - Win32 Release"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "ab1 - Win32 Debug"
!ENDIF
# End Source File
# End Target
# End Project

4
projects/ab1.rc Executable file
View File

@ -0,0 +1,4 @@
"9012" ICON DISCARDABLE "../exe/res/campo.ico"
rcinclude ../../wx240/include/wx/msw/wx.rc

View File

@ -125,7 +125,7 @@ SOURCE=..\ab\ab2100a.uml
!IF "$(CFG)" == "ab2 - Win32 Release"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\U\Luca\r020200.aga\exe
TargetDir=\P.32\P_02_00\exe
InputPath=..\ab\ab2100a.uml
InputName=ab2100a
@ -137,7 +137,7 @@ InputName=ab2100a
!ELSEIF "$(CFG)" == "ab2 - Win32 Debug"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\U\Luca\r020200.aga\exed
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\ab2100a.uml
InputName=ab2100a
@ -166,33 +166,6 @@ SOURCE=.\ab2.rc
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\Lib\AgaLib.lib
!IF "$(CFG)" == "ab2 - Win32 Release"
!ELSEIF "$(CFG)" == "ab2 - Win32 Debug"
# PROP Intermediate_Dir "..\lib\agalib.lib"
# PROP Exclude_From_Build 1
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\Lib\AgaLibD.lib
!IF "$(CFG)" == "ab2 - Win32 Release"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "ab2 - Win32 Debug"
!ENDIF
# End Source File
# End Target
# End Project

4
projects/ab2.rc Executable file
View File

@ -0,0 +1,4 @@
"9012" ICON DISCARDABLE "../exe/res/campo.ico"
rcinclude ../../wx240/include/wx/msw/wx.rc

View File

@ -117,7 +117,7 @@ SOURCE=..\ab\ab3100a.uml
!IF "$(CFG)" == "ab3 - Win32 Release"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\U\Luca\r020200.aga\exe
TargetDir=\P.32\P_02_00\exe
InputPath=..\ab\ab3100a.uml
InputName=ab3100a
@ -129,7 +129,7 @@ InputName=ab3100a
!ELSEIF "$(CFG)" == "ab3 - Win32 Debug"
# Begin Custom Build - Compiling mask $(InputPath)...
TargetDir=\U\Luca\r020200.aga\exed
TargetDir=\P.32\P_02_00\exed
InputPath=..\ab\ab3100a.uml
InputName=ab3100a
@ -158,33 +158,6 @@ SOURCE=.\ab3.rc
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\Lib\AgaLib.lib
!IF "$(CFG)" == "ab3 - Win32 Release"
!ELSEIF "$(CFG)" == "ab3 - Win32 Debug"
# PROP Intermediate_Dir "..\lib\agalib.lib"
# PROP Exclude_From_Build 1
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\Lib\AgaLibD.lib
!IF "$(CFG)" == "ab3 - Win32 Release"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "ab3 - Win32 Debug"
!ENDIF
# End Source File
# End Target
# End Project

4
projects/ab3.rc Executable file
View File

@ -0,0 +1,4 @@
"9012" ICON DISCARDABLE "../exe/res/campo.ico"
rcinclude ../../wx240/include/wx/msw/wx.rc