This commit was generated by cvs2svn to compensate for changes in r1834,

which included commits to RCS files with non-trunk default branches.

git-svn-id: svn://10.65.10.50/trunk@1835 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1995-09-15 14:15:18 +00:00
parent 2f9b35286a
commit 41cad56e5e
10 changed files with 728 additions and 0 deletions

30
ab/ab0.cpp Executable file
View File

@ -0,0 +1,30 @@
#include <xvt.h>
#include <checks.h>
#include "ab0.h"
#define usage "Error - usage : %s -{0|1|2|3|4|5}"
int main(int argc,char** argv)
{
int n = (argc > 1) ? atoi(argv[1]+1) : -1;
switch (n)
{
case 0:
ab0100(argc,argv); break;
case 1:
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;
default:
error_box(usage, argv[0]) ;
}
return 0;
}

5
ab/ab0.h Executable file
View File

@ -0,0 +1,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

22
ab/ab0.url Executable file
View File

@ -0,0 +1,22 @@
#include <default.url>
MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(1)
MENU MENU_BAR(1)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(2)
MENU MENU_BAR(2)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(3)
MENU MENU_BAR(3)
SUBMENU MENU_FILE "~File"

102
ab/ab0100.cpp Executable file
View File

@ -0,0 +1,102 @@
#include <applicat.h>
#include <tabapp.h>
#include <strings.h>
#include <stdtypes.h>
#include <tabutil.h>
#include <utility.h>
#include <prefix.h>
#include "batbpdb.h"
class Tabanabil_application : public Tab_application
{
private:
TMask* _msk;
TString _tabname;
public:
bool user_create();
static bool giorno_handler(TMask_field& f, KEY k);
static bool mese_handler (TMask_field& f, KEY k);
Tabanabil_application() {}
virtual ~Tabanabil_application() {}
};
HIDDEN inline Tabanabil_application& app() {return (Tabanabil_application&) main_app();}
bool Tabanabil_application::giorno_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.mask().is_running())
{
int giorno = atoi(f.get());
if (giorno > 31)
return f.warning_box("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));
if (mese == 2)
if (giorno > 29)
return f.warning_box("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 TRUE;
}
bool Tabanabil_application::mese_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.mask().is_running())
{
int mese = atoi(f.get());
if (mese < 1 || mese > 12)
return f.warning_box("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));
if (mese == 2)
if (giorno > 29)
return f.warning_box("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 TRUE;
}
bool Tabanabil_application::user_create()
{
Tab_application::user_create();
_msk = get_mask();
_tabname = get_tabname();
if (_tabname == "%PDB")
{
_msk->set_handler(F_GIORNO_INI, giorno_handler);
_msk->set_handler(F_MESE_INI, mese_handler);
_msk->set_handler(F_GIORNO_FINE, giorno_handler);
_msk->set_handler(F_MESE_FINE, mese_handler);
}
return TRUE;
}
ab0100(int argc, char* argv[])
{
Tabanabil_application a;
a.run(argc,argv, "Tabelle");
return 0;
}

264
ab/ab0200.cpp Executable file
View File

@ -0,0 +1,264 @@
#include <applicat.h>
#include <relapp.h>
#include <tabapp.h>
#include <strings.h>
#include <stdtypes.h>
#include <tabutil.h>
#include <utility.h>
#include <prefix.h>
#include "ab0200.h"
class TPconAb : public TRelation_application
{
TMask* _msk;
TRelation* _rel;
TLocalisamfile* _pcon;
TString _codice;
int _indbil,_newindbil;
bool _isparametri;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) {return _msk;}
virtual bool changing_mask(int mode) {return FALSE;}
virtual void init_query_mode (TMask&);
virtual void init_modify_mode (TMask&);
virtual void init_insert_mode (TMask&);
public:
static bool ContoSezBilOpp(TMask_field& f, KEY key);
static bool IndBil (TMask_field& f, KEY key);
static bool LivelloStrutt (TMask_field& f, KEY key);
void ScriviContoSezOpp (const TString& codice, const TString& val);
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
// un conto di sezione opposta significativo, che quest'ultimo coincida con il conto "di partenza".
bool TPconAb::ContoSezBilOpp(TMask_field& f, KEY k)
{
if ( (k == K_TAB && f.mask().is_running()) || k == K_ENTER)
{
TLocalisamfile pcon (LF_ABPCON);
TString16 codice (f.get());
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 == 1 && indbilII != 2)
return f.warning_box("L'indicatore di bilancio del conto di sezione opposta deve essere una passivita'");
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");
}
}
return TRUE;
}
// Handler che abilita il campo "Conto di sezione opposta" se l'indicatore
// di bilancio e' compreso tra 1 e 4, e lo disabilita in tutti gli altri casi.
bool TPconAb::IndBil(TMask_field& f, KEY k)
{
if (k == K_SPACE)
{
int indbil = atoi(f.get());
if (indbil == 1 || indbil == 2 || indbil == 3 || indbil == 4)
f.mask().enable(F_CODCONTR);
else
f.mask().disable(F_CODCONTR);
}
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)
{
_msk->set(F_CODCONTR, _codice);
_msk->set(F_INDBIL, _newindbil);
_msk->disable(F_CODCONTR);
_msk->disable(F_INDBIL);
}
}
void TPconAb::init_modify_mode(TMask&)
{
if (_isparametri)
{
_msk->set(F_CODCONTR, _codice);
_msk->set(F_INDBIL, _newindbil);
_msk->disable(F_CODCONTR);
_msk->disable(F_INDBIL);
}
}
void TPconAb::init_insert_mode(TMask&)
{
if (_isparametri)
{
_msk->set(F_CODCONTR, _codice);
_msk->set(F_INDBIL, _newindbil);
_msk->disable(F_CODCONTR);
_msk->disable(F_INDBIL);
}
}
void TPconAb::ScriviContoSezOpp(const TString& codice, const TString& val)
{
TLocalisamfile pcon (LF_ABPCON);
pcon.setkey(1);
pcon.zero();
pcon.put("CODCBL", codice);
if (pcon.read() == NOERR)
{
pcon.put("CODCONTR", val);
pcon.rewrite();
}
}
int TPconAb::rewrite(const TMask& m)
{
TString16 codopp = _rel->curr(LF_ABPCON).get("CODCONTR");
ScriviContoSezOpp(codopp,"");
m.autosave(_rel);
codopp = m.get(F_CODCONTR);
TString16 val (m.get(F_CODICE));
ScriviContoSezOpp(codopp,val);
return _rel->rewrite();
}
int TPconAb::write(const TMask& m)
{
TString16 codopp (m.get(F_CODCONTR));
TString16 val (m.get(F_CODICE));
ScriviContoSezOpp(codopp,val);
m.autosave(_rel);
return _rel->write();
}
bool TPconAb::remove()
{
TString16 codopp = _rel->curr(LF_ABPCON).get("CODCONTR");
ScriviContoSezOpp(codopp,"");
return TRelation_application::remove();
}
bool TPconAb::user_create()
{
_pcon = new TLocalisamfile (LF_ABPCON);
_rel = new TRelation (LF_ABPCON);
_msk = new TMask("ab0200a") ;
_msk->set_handler(F_CODCONTR, ContoSezBilOpp);
_msk->set_handler(F_INDBIL, IndBil);
_msk->set_handler(F_LIVELLO, LivelloStrutt);
_isparametri = FALSE;
if (argv(2) != "" && argv(3) != "")
{
_codice = argv(2);
if (_codice != "-uPRASSI")
{
_indbil = atoi(argv(3));
if (_indbil == 1) _newindbil = 2;
if (_indbil == 2) _newindbil = 1;
if (_indbil == 3) _newindbil = 4;
if (_indbil == 4) _newindbil = 3;
_isparametri = TRUE;
}
}
set_search_field(F_CODICE);
return TRUE;
}
bool TPconAb::user_destroy()
{
delete _msk;
delete _rel;
delete _pcon;
return TRUE;
}
int ab0200(int argc, char* argv[])
{
TPconAb a;
a.run(argc, argv, "Piano dei Conti");
return TRUE;
}

11
ab/ab0200.h Executable file
View File

@ -0,0 +1,11 @@
// campi maschera ab0200a.uml
#define F_CODICE 101
#define F_DESCRIZ1 102
#define F_DESCRIZ2 103
#define F_LIVELLO 104
#define F_INDBIL 105
#define F_CODCONTR 106
#define F_DETTAGLIO 107
#define F_DESCRCONTR1 108
#define F_DESCRCONTR2 109

119
ab/ab0200a.uml Executable file
View File

@ -0,0 +1,119 @@
#include "ab0200.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "Piano dei Conti" 0 -1 0 19
GROUPBOX DLG_NULL 76 5
BEGIN
PROMPT 1 0 ""
FLAGS "R"
END
NUMBER F_CODICE 10
BEGIN
PROMPT 2 1 "Codice tabella "
HELP "Codice della tabella Piano dei Conti"
FIELD LF_ABPCON->CODCBL
KEY 1
USE LF_ABPCON KEY 1
INPUT CODCBL F_CODICE
DISPLAY "Codice@10" CODCBL
DISPLAY "Descrizione@80" DESCRIZ
OUTPUT F_CODICE CODCBL
OUTPUT F_DESCRIZ1 DESCRIZ[1,40]
OUTPUT F_DESCRIZ2 DESCRIZ[41,]
CHECKTYPE REQUIRED
FLAGS "R"
END
STRING F_DESCRIZ1 40
BEGIN
PROMPT 2 2 "I parte descrizione "
FIELD LF_ABPCON->DESCRIZ[1,40]
KEY 2
USE LF_ABPCON KEY 2
INPUT DESCRIZ[1,40] F_DESCRIZ1
DISPLAY "Descrizione@80" DESCRIZ
DISPLAY "Codice@10" CODCBL
COPY OUTPUT F_CODICE
HELP "Prima parte della descrizione"
WARNING "Manca la descrizione"
CHECKTYPE REQUIRED // Guy: perche' non cosi'?
END
STRING F_DESCRIZ2 40
BEGIN
PROMPT 2 3 "II parte descrizione "
FIELD LF_ABPCON->DESCRIZ[41,]
KEY 2
HELP "Seconda parte della descrizione"
END
NUMBER F_LIVELLO 2
BEGIN
PROMPT 2 6 "Livello di struttura "
HELP "Inserire il livello di struttura: il valore deve essere compreso fra 1 e 99"
FIELD LF_ABPCON->LIVELLO
FLAGS "R"
CHECKTYPE REQUIRED
END
LIST F_INDBIL 14
BEGIN
PROMPT 2 8 "Indicatore di bilancio "
FIELD LF_ABPCON->INDBIL
ITEM "1|Attivita'"
ITEM "2|Passivita'"
ITEM "3|Costi"
ITEM "4|Ricavi"
ITEM "5|Conti d'ordine"
ITEM "9|Varie"
END
NUMBER F_CODCONTR 10
BEGIN
PROMPT 2 10 "Conto di sez.bil.opposta "
HELP "Inserire il conto di sezione di bilancio opposta"
FIELD LF_ABPCON->CODCONTR
USE LF_ABPCON KEY 1
INPUT CODCBL F_CODCONTR
DISPLAY "Codice@10" CODCBL
DISPLAY "Ind.bil" INDBIL
DISPLAY "Descrizione@80" DESCRIZ
OUTPUT F_CODCONTR CODCBL
OUTPUT F_DESCRCONTR1 DESCRIZ[1,33]
OUTPUT F_DESCRCONTR2 DESCRIZ[34,]
CHECKTYPE NORMAL
ADD RUN AB0 -1 #F_CODICE #F_INDBIL
FLAGS "R"
END
STRING F_DESCRCONTR1 33
BEGIN
PROMPT 41 10 ""
FLAGS "D"
END
STRING F_DESCRCONTR2 47
BEGIN
PROMPT 27 11 ""
FLAGS "D"
END
LIST F_DETTAGLIO 10
BEGIN
PROMPT 2 13 "Dettaglio/Movimenti "
FIELD LF_ABPCON->DETT
ITEM " |Nessuno"
ITEM "D|Dettaglio"
ITEM "M|Movimenti"
END
ENDPAGE
ENDMASK

67
ab/ab0300.cpp Executable file
View File

@ -0,0 +1,67 @@
// Compatta Piano dei Conti Analisi di Bilancio
#include <applicat.h>
#include <isam.h>
#include <mask.h>
#include <utility.h>
#include <config.h>
#include <urldefid.h>
#include "ab0.h"
class Comp_abpcon : public TApplication
{
//TSystemisamfile* _abpcon;
TLocalisamfile* _abpcon;
public:
virtual bool create();
virtual bool destroy();
virtual bool menu(MENU_TAG m);
Comp_abpcon() {}
};
bool Comp_abpcon::create()
{
TApplication::create();
//_abpcon = new TSystemisamfile (LF_ABPCON);
_abpcon = new TLocalisamfile (LF_ABPCON);
//_abpcon->packfile();
//_abpcon->packindex();
dispatch_e_menu (BAR_ITEM(1));
return TRUE;
}
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");
return TRUE;
}

9
ab/batbpdb.h Executable file
View File

@ -0,0 +1,9 @@
// campi maschera batbpdb.uml
#define F_CODTAB 101
#define F_DESCR 102
#define F_GIORNO_INI 103
#define F_MESE_INI 104
#define F_GIORNO_FINE 105
#define F_MESE_FINE 106
#define F_DESCRAGG 107

99
ab/batbpdb.uml Executable file
View File

@ -0,0 +1,99 @@
#include "batbpdb.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "Tabella periodi di bilancio" 0 -1 0 19
GROUPBOX DLG_NULL 76 4
BEGIN
PROMPT 1 0 ""
FLAGS "R"
END
STRING F_CODTAB 2
BEGIN
PROMPT 2 1 "Codice tabella "
HELP "Codice della tabella periodi di bilancio"
FIELD %PDB->CODTAB
KEY 1
USE %PDB KEY 1
INPUT CODTAB F_CODTAB
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Giorno inizio" I0
DISPLAY "Mese inizio" I1
DISPLAY "Giorno fine" I2
DISPLAY "Mese fine" I3
OUTPUT F_CODTAB CODTAB
OUTPUT F_DESCR S0
CHECKTYPE REQUIRED
END
STRING F_DESCR 50
BEGIN
PROMPT 2 2 "Descrizione "
HELP "Descrizione del codice tabella periodi di bilancio"
CHECKTYPE REQUIRED
FIELD %PDB->S0
END
NUMBER F_GIORNO_INI 2
BEGIN
PROMPT 2 5 "Inizio periodo "
HELP "Inserire il giorno relativo al periodo di inizio"
FIELD %PDB->I0
FLAGS "R"
CHECKTYPE REQUIRED
END
NUMBER F_MESE_INI 2
BEGIN
PROMPT 21 5 ""
HELP "Inserire il mese relativo al periodo di inizio"
FIELD %PDB->I1
FLAGS "R"
CHECKTYPE REQUIRED
END
TEXT DLG_NULL
BEGIN
PROMPT 25 5 "gg/mm"
END
NUMBER F_GIORNO_FINE 2
BEGIN
PROMPT 2 7 "Fine periodo "
HELP "Inserire il giorno relativo alla fine del periodo"
FIELD %PDB->I2
FLAGS "R"
CHECKTYPE REQUIRED
END
NUMBER F_MESE_FINE 2
BEGIN
PROMPT 21 7 ""
HELP "Inserire il mese relativo alla fine del periodo"
FIELD %PDB->I3
FLAGS "R"
CHECKTYPE REQUIRED
END
TEXT DLG_NULL
BEGIN
PROMPT 25 7 "gg/mm"
END
STRING F_DESCRAGG 50
BEGIN
PROMPT 2 9 "Descrizione "
FLAGS "D"
FIELD %PDB->S1
END
ENDPAGE
ENDMASK