Aggiunta nuova gestione registri per cespiti ed analisi di bilancio

git-svn-id: svn://10.65.10.50/trunk@3622 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
simona 1996-09-19 10:09:03 +00:00
parent 6e195b6adc
commit ca63d21e80
7 changed files with 1164 additions and 282 deletions

View File

@ -1,287 +1,26 @@
#include <applicat.h>
#include <mask.h>
#include <isam.h>
#include <relation.h>
#include <sheet.h>
#include <utility.h>
#include <urldefid.h>
#include <xvt.h>
#include <strings.h>
#include <checks.h>
#include "ba4600.h"
///////////////////////////////////////////////////////////
// TSoci_sheet
///////////////////////////////////////////////////////////
const char* const PHYSICAL_HEAD = "Codice|Cognome@30|Nome@20";
const char* const JURASSIC_HEAD = "Codice|Ragione sociale@50";
class TSoci_sheet : public TArray_sheet
{
bool _physical;
protected:
const char* lastcode();
public:
TSoci_sheet(bool);
void add_socio(const TString& codice, const TString& ragione, int elem = -1);
};
TSoci_sheet::TSoci_sheet(bool fis)
: TArray_sheet(-1,-1, -4, -4, "Soci", fis ? PHYSICAL_HEAD : JURASSIC_HEAD),
_physical(fis)
{}
const char* TSoci_sheet::lastcode()
{
if (items() < 1) return "";
return data(items()-1).get(0);
}
void TSoci_sheet::add_socio(const TString& codice,
const TString& ragione,
int elem)
{
if (elem == -1 && codice == lastcode()) return;
TToken_string t(60);
t.add(codice);
if (_physical)
{
t.add(ragione.left(30));
t.add(ragione.mid(30));
} else t.add(ragione);
if (elem < 0) add(t);
else
row(elem) = (TString&) t;
}
///////////////////////////////////////////////////////////
// TQuery_socio
///////////////////////////////////////////////////////////
class TQuery_socio
{
TString16 _tipo; // tipo = F | G
TString16 _attprec; // {A}ttuale / {P}recedente
TString16 _carica; // codice carica
TString16 _qualifica; // richiesta qualifica
TString16 _q740; // quadro 740
TString16 _q750; // quadro 750
public:
TQuery_socio(const TMask* mask);
const TString& tipo() const { return _tipo; }
int test(const TRectype& rec) const;
};
TQuery_socio::TQuery_socio(const TMask* mask)
{
_tipo = mask->get(LST_SC1_TIPOASOC);
_attprec = mask->get(FLD_SC1_ANNO);
_carica = mask->get(FLD_SC1_CODCAR);
_qualifica = mask->get(LST_SC1_RICQUAL);
_q740 = mask->get(LST_SC2_Q740);
_q750 = mask->get(LST_SC2_QUATTPREV);
}
int TQuery_socio::test(const TRectype& r) const
{
if (_tipo != r.get("TIPOASOC")) return 1;
if (_attprec.not_empty()&& _attprec != r.get("ATTPREC")) return 2;
if (_carica.not_empty() && _carica != r.get("CODCAR")) return 3;
if (_qualifica.not_empty() && _qualifica != r.get("RICQUAL")) return 4;
if (_q740.not_empty() && _q740 != r.get("Q740")) return 5;
if (_q750.not_empty() && _q750 != r.get("QUATTPREV")) return 6;
return 0;
}
///////////////////////////////////////////////////////////
// TQuery_application
///////////////////////////////////////////////////////////
class TQuery_application : public TApplication
{
TRelation* _soci;
TLocalisamfile* _anag;
TLocalisamfile* _ditte;
TMask* _mask;
void create_files();
void create_masks();
void destroy_masks();
void destroy_files();
protected:
virtual bool create();
virtual bool destroy();
virtual bool menu(MENU_TAG m);
bool do_query();
public:
TQuery_application();
};
TQuery_application::TQuery_application() : _mask(NULL)
{}
void TQuery_application::create_files()
{
_soci = new TRelation(LF_SOCI); _soci->lfile().setkey(3);
_anag = new TLocalisamfile(LF_ANAG);
_ditte = new TLocalisamfile(LF_NDITTE);
}
void TQuery_application::destroy_files()
{
delete _ditte;
delete _anag;
delete _soci;
}
void TQuery_application::create_masks()
{
_mask = new TMask("ba5000");
}
void TQuery_application::destroy_masks()
{
delete _mask;
}
bool TQuery_application::create()
{
TApplication::create();
create_files();
create_masks();
dispatch_e_menu(MENU_ITEM(1));
return TRUE;
}
bool TQuery_application::destroy()
{
destroy_masks();
destroy_files();
return TApplication::destroy();
}
bool TQuery_application::menu(MENU_TAG m)
{
while (do_query());
return FALSE;
}
const char* head(const TRectype& r, const char* name,
const char* title)
{
if (title == NULL) title = name;
if (r.exist(name))
{
TString h(r.length(name));
h.spaces();
h.overwrite(title, 0);
strcpy(__tmp_string, h);
}
else strcpy(__tmp_string, title);
return __tmp_string;
}
bool TQuery_application::do_query()
{
if (_mask->run() != K_F9) return FALSE;
TQuery_socio query(_mask);
TSoci_sheet s(query.tipo() == "F"); // Create sheet
TRectype& soci = _soci->curr();
TRectype& anag = _anag->curr();
TRectype& ditte = _ditte->curr();
soci.zero();
_mask->autosave(*_soci);
for (_soci->read(_isgteq); !_soci->eof(); _soci->next()) // Fill sheet
{
if (query.test(soci) == 0)
{
TString cur_codice = soci.get("CODANAGRSO"), ragsoc(80);
anag.zero();
anag.put("TIPOA", query.tipo());
anag.put("CODANAGR", cur_codice);
if (_anag->read() != NOERR) ragsoc = "Anagrafica assente";
else ragsoc = _anag->curr().get("RAGSOC");
s.add_socio(cur_codice, ragsoc);
}
}
if (s.items() == 0)
{
warning_box("Nessuna corrispondenza");
return TRUE;
}
while(s.run() == K_ENTER)
{
TToken_string& r = s.row();
r.restart();
TString codice(r.get());
TString nome(r.get());
TToken_string h(128);
h.add("A/P ");
h.add(head(ditte, "CODDITTA", "Codice"));
h.add(head(ditte, "RAGSOC", "Ragione sociale"));
h.add("Carica|Qualifica|740|750");
h.add(head(soci, "PERCQUAZ", "% Quote"));
TArray_sheet d(-1,-1, -4, -4, nome, h);
soci.zero();
soci.put("TIPOASOC", query.tipo());
soci.put("CODANAGRSO", codice);
TToken_string row(128);
for (_soci->read(_isgteq); !_soci->eof(); _soci->next())
{
if (codice != soci.get("CODANAGRSO")) break;
if (query.test(soci) != 0) continue;
row = soci.get("ATTPREC");
ditte.zero();
row.add(soci.get("CODDITTA"));
ditte.put("CODDITTA", row.get(1));
if (_ditte->read() != NOERR)
row.add("Ditta assente");
else
row.add(ditte.get("RAGSOC"));
row.add(soci.get("CODCAR"));
row.add(soci.get("RICQUAL"));
row.add(soci.get("Q740"));
row.add(soci.get("QUATTPREV"));
row.add(soci.get("PERCQUAZ"));
d.add(row);
}
d.run();
}
return TRUE;
}
#include "ba5.h"
#define usage "Error - usage : %s -{0|1}"
int main(int argc,char** argv)
{
TQuery_application qa;
qa.run(argc, argv, "Ricerca Soci");
return TRUE;
int rt = -1 ;
const int r = (argc > 1) ? atoi(&argv[1][1]) : -1;
switch (r)
{
case 0:
rt = ba5100(argc,argv) ; break;
case 1:
rt = ba5200(argc,argv) ; break;
default:
error_box(usage, argv[0]) ; break;
}
return rt;
}

3
ba/ba5.h Executable file
View File

@ -0,0 +1,3 @@
int ba5100(int argc, char* argv[]);
int ba5200(int argc, char* argv[]);

View File

@ -1,5 +1,10 @@
#include <default.url>
MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File"
SUBMENU MENU_FILE "~File"
MENUBAR TASK_MENUBAR + 1
MENU TASK_MENUBAR + 1
SUBMENU MENU_FILE "~File"

287
ba/ba5100.cpp Executable file
View File

@ -0,0 +1,287 @@
#include <applicat.h>
#include <mask.h>
#include <isam.h>
#include <relation.h>
#include <sheet.h>
#include <utility.h>
#include <urldefid.h>
#include "ba4600.h"
///////////////////////////////////////////////////////////
// TSoci_sheet
///////////////////////////////////////////////////////////
const char* const PHYSICAL_HEAD = "Codice|Cognome@30|Nome@20";
const char* const JURASSIC_HEAD = "Codice|Ragione sociale@50";
class TSoci_sheet : public TArray_sheet
{
bool _physical;
protected:
const char* lastcode();
public:
TSoci_sheet(bool);
void add_socio(const TString& codice, const TString& ragione, int elem = -1);
};
TSoci_sheet::TSoci_sheet(bool fis)
: TArray_sheet(-1,-1, -4, -4, "Soci", fis ? PHYSICAL_HEAD : JURASSIC_HEAD),
_physical(fis)
{}
const char* TSoci_sheet::lastcode()
{
if (items() < 1) return "";
return data(items()-1).get(0);
}
void TSoci_sheet::add_socio(const TString& codice,
const TString& ragione,
int elem)
{
if (elem == -1 && codice == lastcode()) return;
TToken_string t(60);
t.add(codice);
if (_physical)
{
t.add(ragione.left(30));
t.add(ragione.mid(30));
} else t.add(ragione);
if (elem < 0) add(t);
else
row(elem) = (TString&) t;
}
///////////////////////////////////////////////////////////
// TQuery_socio
///////////////////////////////////////////////////////////
class TQuery_socio
{
TString16 _tipo; // tipo = F | G
TString16 _attprec; // {A}ttuale / {P}recedente
TString16 _carica; // codice carica
TString16 _qualifica; // richiesta qualifica
TString16 _q740; // quadro 740
TString16 _q750; // quadro 750
public:
TQuery_socio(const TMask* mask);
const TString& tipo() const { return _tipo; }
int test(const TRectype& rec) const;
};
TQuery_socio::TQuery_socio(const TMask* mask)
{
_tipo = mask->get(LST_SC1_TIPOASOC);
_attprec = mask->get(FLD_SC1_ANNO);
_carica = mask->get(FLD_SC1_CODCAR);
_qualifica = mask->get(LST_SC1_RICQUAL);
_q740 = mask->get(LST_SC2_Q740);
_q750 = mask->get(LST_SC2_QUATTPREV);
}
int TQuery_socio::test(const TRectype& r) const
{
if (_tipo != r.get("TIPOASOC")) return 1;
if (_attprec.not_empty()&& _attprec != r.get("ATTPREC")) return 2;
if (_carica.not_empty() && _carica != r.get("CODCAR")) return 3;
if (_qualifica.not_empty() && _qualifica != r.get("RICQUAL")) return 4;
if (_q740.not_empty() && _q740 != r.get("Q740")) return 5;
if (_q750.not_empty() && _q750 != r.get("QUATTPREV")) return 6;
return 0;
}
///////////////////////////////////////////////////////////
// TQuery_application
///////////////////////////////////////////////////////////
class TQuery_application : public TApplication
{
TRelation* _soci;
TLocalisamfile* _anag;
TLocalisamfile* _ditte;
TMask* _mask;
void create_files();
void create_masks();
void destroy_masks();
void destroy_files();
protected:
virtual bool create();
virtual bool destroy();
virtual bool menu(MENU_TAG m);
bool do_query();
public:
TQuery_application();
};
TQuery_application::TQuery_application() : _mask(NULL)
{}
void TQuery_application::create_files()
{
_soci = new TRelation(LF_SOCI); _soci->lfile().setkey(3);
_anag = new TLocalisamfile(LF_ANAG);
_ditte = new TLocalisamfile(LF_NDITTE);
}
void TQuery_application::destroy_files()
{
delete _ditte;
delete _anag;
delete _soci;
}
void TQuery_application::create_masks()
{
_mask = new TMask("ba5000");
}
void TQuery_application::destroy_masks()
{
delete _mask;
}
bool TQuery_application::create()
{
TApplication::create();
create_files();
create_masks();
dispatch_e_menu(MENU_ITEM(1));
return TRUE;
}
bool TQuery_application::destroy()
{
destroy_masks();
destroy_files();
return TApplication::destroy();
}
bool TQuery_application::menu(MENU_TAG m)
{
while (do_query());
return FALSE;
}
const char* head(const TRectype& r, const char* name,
const char* title)
{
if (title == NULL) title = name;
if (r.exist(name))
{
TString h(r.length(name));
h.spaces();
h.overwrite(title, 0);
strcpy(__tmp_string, h);
}
else strcpy(__tmp_string, title);
return __tmp_string;
}
bool TQuery_application::do_query()
{
if (_mask->run() != K_F9) return FALSE;
TQuery_socio query(_mask);
TSoci_sheet s(query.tipo() == "F"); // Create sheet
TRectype& soci = _soci->curr();
TRectype& anag = _anag->curr();
TRectype& ditte = _ditte->curr();
soci.zero();
_mask->autosave(*_soci);
for (_soci->read(_isgteq); !_soci->eof(); _soci->next()) // Fill sheet
{
if (query.test(soci) == 0)
{
TString cur_codice = soci.get("CODANAGRSO"), ragsoc(80);
anag.zero();
anag.put("TIPOA", query.tipo());
anag.put("CODANAGR", cur_codice);
if (_anag->read() != NOERR) ragsoc = "Anagrafica assente";
else ragsoc = _anag->curr().get("RAGSOC");
s.add_socio(cur_codice, ragsoc);
}
}
if (s.items() == 0)
{
warning_box("Nessuna corrispondenza");
return TRUE;
}
while(s.run() == K_ENTER)
{
TToken_string& r = s.row();
r.restart();
TString codice(r.get());
TString nome(r.get());
TToken_string h(128);
h.add("A/P ");
h.add(head(ditte, "CODDITTA", "Codice"));
h.add(head(ditte, "RAGSOC", "Ragione sociale"));
h.add("Carica|Qualifica|740|750");
h.add(head(soci, "PERCQUAZ", "% Quote"));
TArray_sheet d(-1,-1, -4, -4, nome, h);
soci.zero();
soci.put("TIPOASOC", query.tipo());
soci.put("CODANAGRSO", codice);
TToken_string row(128);
for (_soci->read(_isgteq); !_soci->eof(); _soci->next())
{
if (codice != soci.get("CODANAGRSO")) break;
if (query.test(soci) != 0) continue;
row = soci.get("ATTPREC");
ditte.zero();
row.add(soci.get("CODDITTA"));
ditte.put("CODDITTA", row.get(1));
if (_ditte->read() != NOERR)
row.add("Ditta assente");
else
row.add(ditte.get("RAGSOC"));
row.add(soci.get("CODCAR"));
row.add(soci.get("RICQUAL"));
row.add(soci.get("Q740"));
row.add(soci.get("QUATTPREV"));
row.add(soci.get("PERCQUAZ"));
d.add(row);
}
d.run();
}
return TRUE;
}
int ba5100(int argc,char* argv[])
{
TQuery_application qa;
qa.run(argc, argv, "Ricerca Soci");
return 0;
}

157
ba/ba5200.cpp Executable file
View File

@ -0,0 +1,157 @@
#include <config.h>
#include <printer.h>
#include <relapp.h>
#include <tabutil.h>
#include "batbreg.h"
#include "tabreg.h"
#define REG_JOURNAL 5
class TRegister_app : public TRelation_application
{
TMask *_msk;
TRelation *_rel;
long _oldditta;
int _oldanno;
bool _exist_journal;
bool _stampa_intest;
protected: // TRelation_application
virtual TMask* get_mask(int) { return _msk;}
virtual TRelation* get_relation() const { return _rel;}
virtual bool changing_mask(int) { return FALSE; }
virtual bool user_create() ;
virtual bool user_destroy();
virtual void init_insert_mode(TMask& m) ;
virtual void init_modify_mode(TMask& m);
virtual int rewrite(const TMask& m);
public:
bool exist_journal() {return _exist_journal;}
TRegister_app() : _exist_journal(FALSE), _stampa_intest(FALSE) {}
virtual ~TRegister_app() {}
};
HIDDEN inline TRegister_app& app() { return (TRegister_app&) main_app();}
void TRegister_app::init_insert_mode(TMask& m)
{
const long ditta = get_firm();
const int anno = atoi(m.get(F_ANNO));
m.set(F_STAMPA_INTESTAZIONE, _stampa_intest ? "X" : "");
if (ditta != _oldditta || anno != _oldanno)
{
_oldditta = ditta;
_oldanno = anno;
TLocalisamfile tabreg(LF_TABREG);
tabreg.zero();
tabreg.put(DITTA, ditta);
tabreg.put(ANNO, anno);
TRectype to(tabreg.curr());
_exist_journal = FALSE;
for (tabreg.read(_isgteq); !_exist_journal && tabreg.good() && tabreg.curr() <= to; tabreg.next())
_exist_journal = (tabreg.get_long(TIPO) == REG_JOURNAL);
}
}
void TRegister_app::init_modify_mode(TMask& m)
{
TRelation_application::init_modify_mode(m);
TString16 config;
config.format("REG%05ld", m.get_long(F_CODDITTA));
config << m.get(F_CODICE);
TConfig ini(CONFIG_STAMPE, config);
const int what = ini.get_int("Type", NULL, -1, -1);
m.set(F_CONFIG, what >= 0 ? "X" : "");
m.enable(F_CONFIG, what >= 0);
}
HIDDEN bool tiporeg_handler(TMask_field& f, KEY k)
{
if ((k == K_TAB || k == K_ENTER) && app().exist_journal() &&
(atoi(f.get()) == REG_JOURNAL)
)
return f.error_box("Non e' possibile avere due registri giornale nello stesso anno");
return TRUE;
}
HIDDEN bool printer_handler(TMask_field& f, KEY k)
{
if (k == K_SPACE)
{
TMask& m = f.mask();
if (!m.query_mode())
{
TString16 config;
config.format("REG%05ld", m.get_long(F_CODDITTA));
config << m.get(F_CODICE);
if (config.len() > 8) // REG+ANNO+CODICE di tre caratteri
{
TPrinter& p = printer();
p.set_printtype(normprinter); // Force configuration update
p.read_configuration(config);
if (p.set())
{
m.enable(F_CONFIG);
m.set(F_CONFIG, "X");
}
p.read_configuration();
}
else
return f.error_box("Nessun registro selezionato");
}
}
return TRUE;
}
bool TRegister_app::user_create()
{
_msk = new TMask("ba5200a");
_rel = new TRelation(LF_TABREG);
_msk->set_handler(F_TIPO, tiporeg_handler);
_msk->set_handler(F_PRINTER, printer_handler);
TConfig st(CONFIG_STUDIO, "cg");
_stampa_intest = st.get_bool("StiReg");
return TRUE;
}
bool TRegister_app::user_destroy()
{
delete _msk ;
delete _rel ;
return TRUE ;
}
int TRegister_app::rewrite(const TMask& m)
{
if (!m.get_bool(F_CONFIG))
{
TString16 config;
config.format("REG%05ld", m.get_long(F_CODDITTA));
config << m.get(F_CODICE);
TConfig ini(CONFIG_STAMPE, config);
const int what = ini.get_int("Type", NULL, -1, -1);
if (what >= 0)
ini.set("Type", -1);
}
return TRelation_application::rewrite(m);
}
int ba5200(int argc, char* argv[])
{
TRegister_app a ;
a.run(argc, argv, "Gestione registri");
return 0;
}

65
ba/ba5200a.h Executable file
View File

@ -0,0 +1,65 @@
// campi maschera batbreg.msk
#define F_CODICE 131
#define F_ANNO 132
#define F_DESCR 133
#define F_CODLIB 134
#define F_TIPO 135
#define F_CONSPRESSO 136
#define F_PAGSTAMP 137
#define F_PAGNUM 138
#define F_DATAVID 139
#define F_DATASCAD 140
#define F_REGSOSP 141
#define F_CODDITTA 142
#define F_ATTIVITA 143
#define F_CORRISP 144
#define F_STAMPA_SULLO_STESSO_REGISTRO 145
#define F_ULTIMO_NUM_RIGA_STAMPATO 146
#define F_PROG_DARE 147
#define F_PROG_AVERE 148
#define F_STAMPA_RIEPIL_SUL_REGISTRO 149
#define F_STAMPA_LIQUIDAZIONE 150
#define F_ULTIMO_NUM_PROT 151
#define F_MESE_STAMPA_ULTIMA_LIQ 152
#define F_ULTIMA_DATA_DI_REGISTR 153
#define F_VENTIL 154
#define F_STAMPA_CREDITO_ANNO_PREC 155
#define F_STAMPA_INDIRIZZI_COMPLETI 156
#define F_STAMPA_INTESTAZIONE 157
#define F_FREQUENZA_STAMPA 158
#define F_STAMPA_COSTI_RICAVI 159
#define F_TIPO_DESC_COSTI_RICAVI 160
#define F_TOT_INCASSI 161
#define F_TOT_PAGAMENTI 162
#define F_ULTIMA_DATA_DI_STAMPA 170
#define F_CODULC 163
#define F_CODLBU 164
#define F_RAGSOC 165
#define F_CODGRUP 176
#define F_CODGRUPDESCR 177
#define F_CODSPEC 178
#define F_CODSPECDESCR 179
#define F_DENS_STAMPA 180
#define F_MOD_12 181
#define F_STAMPA_BILINV 182
#define F_STAMPA_INT 183
#define F_PROSPVAR 184
#define F_CLIFOR 185
#define F_ST1COL 186
#define F_PROFST 187
#define F_CODANST 188
#define F_DATASTAB 189
#define F_CODPDBST 190
#define F_PRINTER 201
#define F_CONFIG 202

626
ba/ba5200a.uml Executable file
View File

@ -0,0 +1,626 @@
#include "ba5200a.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "Registri" -1 -1 78 18
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "FRDG"
KEY 1
FIELD CODDITTA
USE LF_NDITTE
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOC RAGSOC
OUTPUT F_ATTIVITA CODATTPREV
CHECKTYPE NORMAL
MESSAGE COPY,18@
MESSAGE FALSE COPY,18@
END
STRING F_RAGSOC 50
BEGIN
PROMPT 20 1 ""
FLAGS "DG"
MESSAGE COPY,19@
MESSAGE FALSE COPY,19@
END
NUMBER F_ANNO 4
BEGIN
PROMPT 1 2 "Anno "
HELP "Anno a cui fa riferimento il registro"
FIELD ANNO
FLAGS "GAZ"
KEY 1
GROUP 1
USE LF_TABREG
INPUT ANNO F_ANNO
INPUT CODREG F_CODICE
DISPLAY "Anno" ANNO
DISPLAY "Codice" CODREG
DISPLAY "Descrizione @50" DESCR
DISPLAY "Tipo" TIPO
OUTPUT F_CODICE CODREG
OUTPUT F_ANNO ANNO
OUTPUT F_DESCR DESCR
CHECKTYPE REQUIRED
MESSAGE COPY,20@
MESSAGE FALSE COPY,20@
END
STRING F_CODICE 3
BEGIN
PROMPT 49 2 "Codice registro "
Help "Codice del registro"
FIELD CODREG
USE LF_TABREG
COPY ALL F_ANNO
FLAGS "GUZ"
KEY 1
GROUP 1
CHECKTYPE REQUIRED
MESSAGE COPY,21@
END
STRING F_DESCR 50
BEGIN
PROMPT 1 3 "Descrizione "
FIELD DESCR
KEY 2
GROUP 1
USE LF_TABREG KEY 2
INPUT DESCR F_DESCR
DISPLAY "Descrizione @50" DESCR
DISPLAY "Anno" ANNO
DISPLAY "Codice" CODREG
DISPLAY "Tipo" TIPO
COPY OUTPUT F_CODICE
CHECKTYPE REQUIRED
MESSAGE COPY,22@
HELP "Descrizione del registro"
WARNING "La descrizione e' obbligatoria"
END
NUMBER F_CODLIB 2
BEGIN
PROMPT 1 5 "Codice libro "
FIELD CODLIB
FLAGS "Z"
GROUP 1
USE %ITL
INPUT CODTAB F_CODLIB
DISPLAY "Codice libro" CODTAB
DISPLAY "Descrizione @50" S0
OUTPUT F_CODLIB CODTAB
OUTPUT F_DESCR S0
CHECKTYPE NORMAL
HELP "Codice del libro sociale a cui fa riferimento il registro"
END
LIST F_TIPO 1 28
BEGIN
PROMPT 30 5 "Tipo "
HELP "Tipo di registro"
FIELD TIPO
FLAGS "G"
GROUP 1 GR_MODIFY_PROTECTED
ITEM "1|1) Vendite"
MESSAGE HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,2@|SHOW,F_PRINTER|SHOW,F_CONFIG
ITEM "2|2) Acquisti"
MESSAGE HIDE,2@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,3@|SHOW,F_PRINTER|SHOW,F_CONFIG
ITEM "3|3) Libro IVA riepilogativo"
MESSAGE HIDE,2@|HIDE,3@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,4@|SHOW,F_PRINTER|SHOW,F_CONFIG
// ITEM "4|4) Libro Incassi e pagamenti"
// MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,6@|HIDE,7@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,5@|SHOW,F_PRINTER|SHOW,F_CONFIG
ITEM "5|5) Libro Giornale"
MESSAGE HIDE,2@|HIDE,4@|HIDE,5@|HIDE,7@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,6@|SHOW,F_PRINTER|SHOW,F_CONFIG
ITEM "6|6) Libri Sociali"
MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,7@|SHOW,F_PRINTER|SHOW,F_CONFIG
ITEM "7|7) Libro Cespiti"
MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,9@|HIDE,10@|SHOW,8@|HIDE,F_PRINTER|SHOW,F_CODLBU|HIDE,F_CONFIG
ITEM "8|8) Libro Inventari"
MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,8@|HIDE,10@|SHOW,9@|SHOW,F_PRINTER|SHOW,F_CONFIG
ITEM "9|9) Libro delle Procedure"
MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,8@|HIDE,9@|SHOW,10@|SHOW,F_PRINTER|SHOW,F_CONFIG
END
STRING F_CONSPRESSO 50
BEGIN
PROMPT 1 7 "Conservato presso "
HELP "Luogo dove verra' conservato il registro"
FIELD CONSERV
GROUP 1
END
STRING F_ATTIVITA 5
BEGIN
PROMPT 1 9 "Codice attivita "
FIELD CODATT
FLAGS "URZ"
GROUP 2 3 4
USE LF_ATTIV
INPUT CODDITTA F_CODDITTA SELECT
INPUT CODATT F_ATTIVITA
DISPLAY "Codice" CODATT
DISPLAY "Descrizione@50" DESCR
OUTPUT F_ATTIVITA CODATT
HELP "Codice dell'attivita' della ditta"
CHECKTYPE REQUIRED
WARNING "Attivita' non prevista per questa ditta"
ADD RUN ba4 -4
END
NUMBER F_CODGRUP 2
BEGIN
PROMPT 1 9 "Codice Gruppo "
FLAGS "URZ"
GROUP 8
USE LF_DITCB SELECT (LEFT(ANSI(CBDTF),4)==#F_ANNO) && (CBCDD==#F_CODDITTA)
JOIN LF_TABGR TO LF_DITCB INTO G0CGR=CBCGR
FIELD CODGR
INPUT CBCGR F_CODGRUP
//DISPLAY "Codice Specie" CBCSP
DISPLAY "Codice Gruppo" CBCGR
DISPLAY "Data inizio esercizio" CBDTI
DISPLAY "Data fine esercizio" CBDTF
DISPLAY "Descrizione@50" LF_TABGR->G0DCT
OUTPUT F_CODGRUP CBCGR
//OUTPUT F_CODSPEC CBCSP
OUTPUT F_CODGRUPDESCR LF_TABGR->G0DCT
HELP "Codice Gruppo"
WARNING "Codice Gruppo non previsto per questa ditta"
END
STRING F_CODGRUPDESCR 60 45
BEGIN
PROMPT 24 9 ""
GROUP 8
FLAG "D"
END
STRING F_CODSPEC 4
BEGIN
PROMPT 1 10 "Codice Specie "
FLAGS "URZ"
GROUP 8
USE LF_DITCB SELECT (LEFT(ANSI(CBDTF),4)==#F_ANNO) && (CBCDD==#F_CODDITTA)
JOIN LF_TABAT TO LF_DITCB INTO TACGR=CBCGR TACSP=CBCSP
FIELD CODSP
INPUT CBCSP F_CODSPEC
INPUT CBCGR F_CODGRUP
DISPLAY "Codice Gruppo" CBCGR
DISPLAY "Codice Specie" CBCSP
DISPLAY "Data inizio esercizio" CBDTI
DISPLAY "Data fine esercizio" CBDTF
DISPLAY "Descrizione@50" LF_TABAT->TADCT
OUTPUT F_CODGRUP CBCGR
OUTPUT F_CODSPEC CBCSP
OUTPUT F_CODSPECDESCR LF_TABAT->TADCT
WARNING "Codice Specie non previsto per questa ditta"
END
STRING F_CODSPECDESCR 60 45
BEGIN
PROMPT 24 10 ""
GROUP 8
FLAG "D"
END
NUMBER F_CODULC 3
BEGIN
PROMPT 35 9 "Unita' locale "
FLAGS "R"
GROUP 2 3 4 5 6 7 10
FIELD CODULC
USE LF_UNLOC
JOIN LF_COMUNI TO LF_UNLOC KEY 1 INTO COM=COMULC
INPUT CODDITTA F_CODDITTA SELECT
INPUT CODULC F_CODULC
DISPLAY "Codice" CODDITTA
DISPLAY "Un.Loc" CODULC
DISPLAY "Localita'@50" LF_COMUNI->DENCOM
DISPLAY "Indirizzo@35" INDULC
DISPLAY "N.ro civico@35" CIVULC
OUTPUT F_CODULC CODULC
HELP "Codice dell'unita' locale della ditta"
WARNING "Unita' locale non prevista per questa ditta"
CHECKTYPE NORMAL
ADD RUN ba4 -3
END
NUMBER F_PAGSTAMP 5
BEGIN
PROMPT 1 12 "Pagine stampate "
HELP "Numero di pagine gia' stampate"
FIELD PAGST
FLAGS "R"
GROUP 1
END
NUMBER F_PAGNUM 5
BEGIN
PROMPT 35 12 "Pagine numerate "
HELP "numero di pagine di cui e' stata stampata la numerazione"
FIELD PAGNUM
FLAGS "R"
GROUP 1
END
DATE F_DATAVID
BEGIN
PROMPT 1 13 "Data vidimazione "
HELP "Data di vidimazione del registro"
FIELD DATAVID
GROUP 1
END
DATE F_DATASCAD
BEGIN
PROMPT 35 13 "Data scadenza "
HELP "Data fino a cui rimane in vigore il registro"
FIELD DATASCAD
GROUP 1
END
STRING F_CODLBU 3
BEGIN
PROMPT 1 15 "Cod. libro unico "
FIELD CODLBU
HELP "Codice del libro unico a cui fa riferimento"
FLAGS "UZ"
GROUP 2 3 4 8
USE %LBU
INPUT CODTAB[1,4] F_ANNO
INPUT CODTAB[5,7] F_CODLBU
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Codice" CODTAB[5,7]
DISPLAY "Descrizione@50" S0
OUTPUT F_ANNO CODTAB[1,4]
OUTPUT F_CODLBU CODTAB[5,7]
WARNING "Libro unico assente"
CHECKTYPE NORMAL
VALIDATE NOT_EMPTY_CHECK_FIELD
END
BOOLEAN F_CONFIG
BEGIN
PROMPT 1 17 "Stampante configurata"
END
BUTTON F_PRINTER 30 2
BEGIN
PROMPT 40 17 "Configurazione ~stampante"
END
ENDPAGE
PAGE "Opzioni" -1 -1 78 18
NUMBER DLG_NULL 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "DR"
GROUP 18
END
STRING DLG_NULL 50
BEGIN
PROMPT 20 1 ""
FLAGS "D"
GROUP 19
END
NUMBER DLG_NULL 4
BEGIN
PROMPT 1 2 "Anno "
FLAGS "DP"
GROUP 20
END
STRING DLG_NULL 3
BEGIN
PROMPT 49 2 "Codice registro "
FLAGS "D"
GROUP 21
END
STRING DLG_NULL 50
BEGIN
PROMPT 1 3 "Descrizione "
GROUP 22
FLAGS "D"
END
BOOLEAN F_REGSOSP
BEGIN
PROMPT 1 5 "Registro in sospensione "
FIELD REGSOS
GROUP 2 3
HELP "Indicare se il registro e' in sospensione d'imposta"
END
BOOLEAN F_STAMPA_CREDITO_ANNO_PREC
BEGIN
PROMPT 46 5 "Stampa credito anno precedente"
HELP "Indicare se si vuole la stampa del credito IVA dell'anno precedente"
FIELD STCREDPREC
GROUP 3
END
BOOLEAN F_CORRISP
BEGIN
PROMPT 46 5 "Registro corrispettivi"
HELP "Indicare se si tratta di registro dei corrispettivi"
FIELD REGCORR
GROUP 2
END
LIST F_TIPO_DESC_COSTI_RICAVI 1 10
BEGIN
PROMPT 1 5 "Tipo descrizione costi/ricavi "
HELP "Livello a cui stampare la descrizione costi/ricavi"
FIELD TIPODCR
GROUP 5
ITEM "1|Gruppo"
ITEM "2|Conto"
END
NUMBER F_ULTIMO_NUM_RIGA_STAMPATO 7
BEGIN
PROMPT 1 5 "Ultima riga stampata "
FIELD ULTRIGAST
HELP "Ultimo numero della riga stampata"
FLAGS "R"
GROUP 5 6
END
BOOLEAN F_STAMPA_INDIRIZZI_COMPLETI
BEGIN
PROMPT 1 7 "Stampa indirizzi completi"
HELP "Indicare se stampare gli indirizzi completi"
FIELD INDCOMPL
GROUP 2 3
END
LIST F_FREQUENZA_STAMPA 1 16
BEGIN
PROMPT 1 7 "Stampa reg. riepilogativo "
HELP "Intervallo per fare il riepilogo"
FIELD FREQSTRIEP
GROUP 4
ITEM "M|Mensile"
ITEM "T|Trimestrale"
END
NUMBER F_PROG_DARE 15
BEGIN
PROMPT 1 7 "Progressivo dare "
HELP "Progressivo dare del giornale"
FIELD PROGDARE
PICTURE "."
FLAGS "R"
GROUP 6
END
NUMBER F_TOT_INCASSI 15
BEGIN
PROMPT 1 7 "Totale incassi "
HELP "Progressivo degli incassi effettuati"
FIELD TOTINC
FLAGS "R"
PICTURE "."
GROUP 5
END
BOOLEAN F_STAMPA_RIEPIL_SUL_REGISTRO
BEGIN
PROMPT 46 7 "Stampa riepilogo liquidazione"
FIELD RIEPLIQ
GROUP 2 3 4
HELP "Indicare se stampare il riepilogo IVA delle aliquote utilizzate"
MESSAGE FALSE ENABLE,F_STAMPA_LIQUIDAZIONE
MESSAGE TRUE DISABLE,F_STAMPA_LIQUIDAZIONE|"X",F_STAMPA_LIQUIDAZIONE
END
NUMBER F_TOT_PAGAMENTI 15
BEGIN
PROMPT 42 7 "Totale pagamenti "
HELP "Progressivo dei pagamenti effettuati"
FIELD TOTPAG
FLAGS "R"
PICTURE "."
GROUP 5
END
BOOLEAN F_STAMPA_LIQUIDAZIONE
BEGIN
PROMPT 1 9 "Stampa liquidazione"
FIELD STLIQ
GROUP 2 3 4
HELP "Indicare se stampare a fine periodo la liquidazione"
END
NUMBER F_PROG_AVERE 15
BEGIN
PROMPT 1 9 "Progressivo avere "
HELP "Progressivo avere del giornale"
FIELD PROGAVERE
FLAGS "R"
PICTURE "."
GROUP 6
END
BOOLEAN F_STAMPA_COSTI_RICAVI
BEGIN
PROMPT 42 9 "Stampa costi/ricavi su libro cronologico "
FIELD STCOSRIC
GROUP 5
END
BOOLEAN F_VENTIL
BEGIN
PROMPT 46 9 "Attivita' con ventilazione"
HELP "Indicare se vengono registrate operazioni con ventilazione IVA"
FIELD VENT
GROUP 3
END
LIST F_MESE_STAMPA_ULTIMA_LIQ 10
BEGIN
PROMPT 1 11 "Mese stampa ultima liquidazione "
HELP "Mese in cui e' stata stampata l'ultima liquidazione"
FIELD MESEULLIQ
FLAGS "M"
ITEM "00|Nessuno"
ITEM "13|Annuale"
GROUP 2 3 4
END
BOOLEAN F_STAMPA_SULLO_STESSO_REGISTRO
BEGIN
PROMPT 1 11 "Stampa sullo stesso registro"
HELP "Indicare se il nuovo esercizio viene stampato sullo stesso registro"
FIELD STESSOREG
GROUP 6
END
NUMBER F_ULTIMO_NUM_PROT 7
BEGIN
PROMPT 1 13 "Ultimo numero di protocollo "
FIELD ULTPROT
FLAGS "R"
GROUP 2 3
HELP "Ultimo numero di protocollo"
END
DATE F_ULTIMA_DATA_DI_REGISTR
BEGIN
PROMPT 1 15 "Ultima data di registrazione "
HELP "Date dell'ultima registrazione stampata"
FIELD ULTDATAREG
GROUP 2 3 5 6
END
DATE F_ULTIMA_DATA_DI_STAMPA
BEGIN
PROMPT 1 17 "Ultima data di stampa "
HELP "Data dell'ultima stampa effettuata"
FIELD ULTDATAST
END
BOOLEAN F_STAMPA_INTESTAZIONE
BEGIN
PROMPT 46 17 "Stampa intestazione ditta"
HELP "Indicare se stampare l'intestazione della ditta"
FIELD STINTDITTA
GROUP 1
END
LISTBOX F_DENS_STAMPA 15
BEGIN
PROMPT 1, 18 "Densita' di stampa "
FIELD DENSSTA
GROUP 8
ITEM "0| Normale"
ITEM "1| Elite"
ITEM "2| Compresso"
HELP "Indicare la densita' di stampa"
END
BOOLEAN F_MOD_12
BEGIN
PROMPT 46 18 "Modulo 12"
HELP "Indicare se impiegare il modulo 12"
FIELD MOD12
GROUP 8
END
BOOLEAN F_STAMPA_BILINV
BEGIN
PROMPT 1 6 "Stampa bilancio dopo inventario"
HELP "Indicare se stampare il bilancio dopo l'inventario"
FIELD BILINV
GROUP 9
END
LISTBOX F_STAMPA_INT 25
BEGIN
PROMPT 1 7 "Stampa intestazione "
HELP "Indicare se stampare intestazione"
FIELD STINT
ITEM "1| No"
ITEM "2| Su tutte le pagine"
ITEM "3| Solo sulla prima pagina"
GROUP 9
END
BOOLEAN F_PROSPVAR
BEGIN
PROMPT 1 8 "Stampa con prospetto di variazione"
HELP "Indicare se stampare il prospetto di variazione"
FIELD PROSPVAR
GROUP 9
END
LISTBOX F_CLIFOR 25
BEGIN
PROMPT 1 9 "Stampa clienti fornitori "
HELP "Indicare se stampare i clienti fornitori"
FIELD CLIFOR
ITEM "1| No"
ITEM "2| Si"
ITEM "3| Stampa con indirizzo"
GROUP 9
END
BOOLEAN F_ST1COL
BEGIN
PROMPT 1 10 "Stampa ad una colonna"
HELP "Indicare se effettuare una stampa ad una colonna"
FIELD ST1COL
GROUP 9
END
STRING F_PROFST 2
BEGIN
PROMPT 1 11 "Codice profilo di stampa "
HELP "Indicare il codice del profilo di stampa"
FIELD PROFST
GROUP 9
END
STRING F_CODANST 2
BEGIN
PROMPT 1 13 "Dati ultima stampa: Codice Analisi "
HELP "Indicare se stampare il prospetto di variazione"
FIELD CODANST
GROUP 9
END
NUMBER F_DATASTAB 4
BEGIN
PROMPT 1 14 "Dati ultima stampa: Anno di Bilancio "
HELP "Indicare se stampare il prospetto di variazione"
FIELD DATASTAB
GROUP 9
END
STRING F_CODPDBST 2
BEGIN
PROMPT 1 15 "Dati ultima stampa: Codice Periodo Bilancio "
HELP "Indicare se stampare il prospetto di variazione"
FIELD CODPDBST
GROUP 9
END
ENDPAGE
ENDMASK