Ho fatto troppe modifiche per poterle descrivere tutte in codesto luogo
pertanto rimando chi fosse interessato ai dettagli, alla consultazione del documento crono.doc sulla mia macchina. git-svn-id: svn://10.65.10.50/trunk@4134 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d18a572f45
commit
6449f498db
@ -42,7 +42,8 @@ class TDati_anagrafici : public TApplication
|
||||
static bool fisica_handler(TMask_field&, KEY);
|
||||
static bool giuridica_handler(TMask_field&, KEY);
|
||||
static bool anagrafica_handler(TMask_field&, KEY);
|
||||
static bool anagr_dich_handler(TMask_field&, KEY);
|
||||
static bool anagr_dich_handler(TMask_field&, KEY);
|
||||
|
||||
// bottone ditta in DatiCAAF
|
||||
static bool DCditta_handler(TMask_field&, KEY);
|
||||
TMask* _msk;
|
||||
@ -94,6 +95,7 @@ TDati_anagrafici::TDati_anagrafici(char anagrafica) : _titolo(50), _ana(toupper(
|
||||
|
||||
HIDDEN TDati_anagrafici& app() { return (TDati_anagrafici &) main_app(); }
|
||||
|
||||
|
||||
bool TDati_anagrafici::codditta_hnd(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && !(f.mask().is_running()) )
|
||||
@ -124,15 +126,15 @@ bool TDati_anagrafici::attivita_handler(TMask_field& m, KEY k)
|
||||
|
||||
body << "1" << "|";
|
||||
body << m.mask().get(F_CODDITTA) << "|";
|
||||
// body << m.mask().get(F_ATTIV) << "|";
|
||||
// body << m.mask().get(F_ATTIV);
|
||||
body << m.mask().get(F_ATTIV) << "|";
|
||||
body << m.mask().get(F_ATTIV);
|
||||
|
||||
TMessage msg(cmd2name(appname), MSG_LN, (const char*) body);
|
||||
|
||||
TMailbox mb;
|
||||
mb.send(msg);
|
||||
TMessage msg(appname, MSG_LN, (const char*) body);
|
||||
msg.send();
|
||||
|
||||
TExternal_app a(appname);
|
||||
a.run();
|
||||
a.run();
|
||||
|
||||
m.set_focus();
|
||||
xvt_statbar_set("");
|
||||
|
||||
@ -154,7 +156,7 @@ bool TDati_anagrafici::DCditta_handler(TMask_field& f, KEY k)
|
||||
body.add(lDittaCaaf); // ditta per il campo codice ditta
|
||||
body.add(lDittaCaaf); // ditta per il secondo campo codice ditta
|
||||
TString16 cmd("ba4 -2");
|
||||
TMessage msg(cmd2name(cmd), MSG_LN, (const char*) body);
|
||||
TMessage msg(cmd, MSG_LN, (const char*) body);
|
||||
msg.send();
|
||||
TExternal_app a(cmd);
|
||||
a.run();
|
||||
@ -512,15 +514,19 @@ bool TDati_anagrafici::create()
|
||||
if (Rappresentante())
|
||||
{
|
||||
_msk = new TMask ("771100c");
|
||||
_msk->set_handler(F_FISICA, fisica_handler);
|
||||
_msk->set_handler(F_FISICA, fisica_handler);
|
||||
|
||||
}
|
||||
|
||||
if (ScrittureContabili())
|
||||
{
|
||||
_msk = new TMask ("771100d");
|
||||
_msk->set_handler(F_ANAGR, indirizzo);
|
||||
_msk->set_handler(F_ATTIVITA, attivita_handler);
|
||||
_msk->set_handler(F_ANAGRAFICA, anagrafica_handler);
|
||||
_msk->set_handler(F_ANAGR, indirizzo);
|
||||
_msk->set_handler(F_ATTIVITA, attivita_handler);
|
||||
_msk->set_handler(F_FISICA, anagrafica_handler);
|
||||
_msk->set_handler(F_GIURIDICA,anagrafica_handler);
|
||||
_msk->disable(DLG_SAVEREC);
|
||||
_msk->disable(DLG_CANCEL);
|
||||
}
|
||||
|
||||
if (DatiCAAF())
|
||||
@ -528,8 +534,7 @@ bool TDati_anagrafici::create()
|
||||
_msk = new TMask ("771100e");
|
||||
_msk->set_handler(F_ANAGR, niscraa);
|
||||
_msk->set_handler(F_GIURIDICA, giuridica_handler);
|
||||
_msk->set_handler(F_DITTACAAF, ditta_caaf);
|
||||
// bottone ditte
|
||||
_msk->set_handler(F_DITTACAAF, ditta_caaf);
|
||||
_msk->set_handler(DCF_DITTA, DCditta_handler);
|
||||
}
|
||||
|
||||
@ -574,7 +579,12 @@ bool TDati_anagrafici::main_loop()
|
||||
{
|
||||
_rel->lfile().put("CODDITTA", _codditta);
|
||||
_rel->read();
|
||||
_msk->autoload(*_rel);
|
||||
_msk->autoload(*_rel);
|
||||
|
||||
// controllo se indicato rappresentante
|
||||
if (Rappresentante() && (_msk->get_long(F_ANAGR) == 0L))
|
||||
message_box("Il rappresentante non e' stato indicato.");
|
||||
|
||||
tasto = _msk->run();
|
||||
|
||||
switch (tasto)
|
||||
|
@ -65,8 +65,7 @@
|
||||
#define F_PROVCS 261
|
||||
#define F_PTELCS 262
|
||||
#define F_TELCS 263
|
||||
#define F_ATTIVITA 264
|
||||
#define F_ANAGRAFICA 265
|
||||
#define F_ATTIVITA 264
|
||||
|
||||
// Campi maschera dati CAAF 771100e.uml
|
||||
|
||||
|
@ -1,22 +1,16 @@
|
||||
// 771100c.uml - Dati rappresentante
|
||||
#include "771100.h"
|
||||
|
||||
//
|
||||
// Lista modifiche
|
||||
//
|
||||
// 2.4.96 Aggiunto numero di telefono
|
||||
//
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON F_FISICA 10 2
|
||||
BEGIN
|
||||
PROMPT -14 -1 "~Fisiche"
|
||||
PROMPT -14 -1 "F~isiche"
|
||||
END
|
||||
|
||||
BUTTON DLG_SAVEREC 10 2
|
||||
BEGIN
|
||||
PROMPT -24 -1 ""
|
||||
PROMPT -24 -1 "~Registra"
|
||||
MESSAGE EXIT,K_SAVE
|
||||
PICTURE BMP_SAVEREC
|
||||
PICTURE BMP_SAVERECDN
|
||||
@ -36,7 +30,7 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Dati relativi al rappresentante" -1 -1 78 18
|
||||
PAGE "Rappresentante" -1 -1 78 18
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
@ -64,11 +58,10 @@ END
|
||||
NUMBER F_ANAGR 5
|
||||
BEGIN
|
||||
PROMPT 1 4 "Codice rappresentante "
|
||||
FLAGS "D"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
FIELD LF_NDITTE->RAPPR
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "D"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
FIELD LF_NDITTE->RAPPR
|
||||
JOIN LF_ANAG INTO CODANAGR=RAPPR TIPOA="F"
|
||||
JOIN LF_ANAGFIS TO LF_ANAG INTO CODANAGR=CODANAGR
|
||||
JOIN LF_COMUNI TO LF_ANAGFIS INTO COM==COMNASC
|
||||
@ -94,47 +87,9 @@ BEGIN
|
||||
OUTPUT F_DOMFISC LF_ANAG->VARSLORES
|
||||
OUTPUT F_ANAGR LF_ANAGFIS->CODANAGR
|
||||
OUTPUT F_PTELRF LF_ANAG->PTELRF
|
||||
OUTPUT F_TELRF LF_ANAG->TELRF
|
||||
OUTPUT F_TELRF LF_ANAG->TELRF
|
||||
END
|
||||
|
||||
/*
|
||||
NUMBER F_ANAGR 5
|
||||
BEGIN
|
||||
PROMPT 1 4 "Codice rappresentante "
|
||||
USE LF_ANAGFIS KEY 1
|
||||
INPUT CODANAGR F_ANAGR
|
||||
JOIN LF_ANAG TO LF_ANAGFIS INTO CODANAGR=CODANAGR TIPOA="F"
|
||||
JOIN LF_COMUNI TO LF_ANAGFIS INTO COM==COMNASC
|
||||
JOIN LF_COMUNI TO LF_ANAG ALIAS 1 INTO COM==COMRES
|
||||
JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF
|
||||
DISPLAY "Codice" CODANAGR
|
||||
DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC
|
||||
OUTPUT F_COFI LF_ANAG->COFI
|
||||
OUTPUT F_COGNOME LF_ANAG->RAGSOC[1,30]
|
||||
OUTPUT F_NOME LF_ANAG->RAGSOC[31,50]
|
||||
OUTPUT F_SESSO SESSO
|
||||
OUTPUT F_DATANASC DATANASC
|
||||
OUTPUT F_COMNASC LF_COMUNI->DENCOM
|
||||
OUTPUT F_PROVNASC LF_COMUNI->PROVCOM
|
||||
OUTPUT F_INDRES LF_ANAG->INDRES
|
||||
OUTPUT F_CIVRES LF_ANAG->CIVRES
|
||||
OUTPUT F_CAPRES LF_ANAG->CAPRES
|
||||
OUTPUT F_INDRF LF_ANAG->INDRF
|
||||
OUTPUT F_CIVRF LF_ANAG->CIVRF
|
||||
OUTPUT F_CAPRF LF_ANAG->CAPRF
|
||||
OUTPUT F_COMRES 1@->DENCOM
|
||||
OUTPUT F_PROVRES 1@->PROVCOM
|
||||
OUTPUT F_COMRF 2@->DENCOM
|
||||
OUTPUT F_PROVRF 2@->PROVCOM
|
||||
OUTPUT F_DOMFISC LF_ANAG->VARSLORES
|
||||
OUTPUT F_ANAGR LF_ANAGFIS->CODANAGR
|
||||
OUTPUT F_PTELRF LF_ANAG->PTELRF
|
||||
OUTPUT F_TELRF LF_ANAG->TELRF
|
||||
FIELD LF_BASE->RAPPR
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "R"
|
||||
END
|
||||
*/
|
||||
STRING F_COFI 16
|
||||
BEGIN
|
||||
PROMPT 1 5 "Codice fiscale "
|
||||
|
@ -2,11 +2,16 @@
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON F_ANAGRAFICA 10 2
|
||||
BUTTON F_FISICA 10 2
|
||||
BEGIN
|
||||
PROMPT -15 -1 "~Anagrafica"
|
||||
PROMPT -15 -1 "F~isiche"
|
||||
END
|
||||
|
||||
|
||||
BUTTON F_GIURIDICA 10 2
|
||||
BEGIN
|
||||
PROMPT -15 -1 "~Giuridiche"
|
||||
END
|
||||
|
||||
BUTTON F_ATTIVITA 10 2
|
||||
BEGIN
|
||||
PROMPT -25 -1 "~Attività"
|
||||
@ -81,7 +86,9 @@ LIST ASCF_TIPOA 9
|
||||
BEGIN
|
||||
PROMPT 1 5 "Tipo persona "
|
||||
ITEMS "G|Societa'"
|
||||
MESSAGE HIDE,F_FISICA|SHOW,F_GIURIDICA
|
||||
ITEMS "F|Fisica"
|
||||
MESSAGE SHOW,F_FISICA|HIDE,F_GIURIDICA
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
@ -8,14 +8,15 @@ BUTTON F_BTN_GIURIDICA 10 2
|
||||
BEGIN
|
||||
PROMPT -14 -1 "~Giuridiche"
|
||||
END
|
||||
|
||||
BUTTON F_BTN_FISICA 10 2
|
||||
BEGIN
|
||||
PROMPT -14 -1 "~Fisiche"
|
||||
PROMPT -14 -1 "F~isiche"
|
||||
END
|
||||
|
||||
BUTTON DLG_SAVEREC 10 2
|
||||
BEGIN
|
||||
PROMPT -24 -1 ""
|
||||
PROMPT -24 -1 "~Registra"
|
||||
MESSAGE EXIT,K_SAVE
|
||||
PICTURE BMP_SAVEREC
|
||||
PICTURE BMP_SAVERECDN
|
||||
|
@ -21,7 +21,7 @@ END
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 1 "Ditta "
|
||||
FLAGS "GRD"
|
||||
FLAGS "GRDP"
|
||||
KEY 1
|
||||
CHECKTYPE REQUIRED
|
||||
USE LF_NDITTE KEY 1
|
||||
@ -33,13 +33,13 @@ END
|
||||
STRING F_RAGDITTA 50
|
||||
BEGIN
|
||||
PROMPT 17 1 "Ragione "
|
||||
FLAGS "D"
|
||||
FLAGS "DP"
|
||||
END
|
||||
|
||||
NUMBER F_ANNODIC 4
|
||||
BEGIN
|
||||
PROMPT 52 3 "Anno dichiarazione "
|
||||
FLAGS "DR"
|
||||
FLAGS "DRP"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
|
@ -27,7 +27,7 @@ END
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 1 "Ditta "
|
||||
FLAGS "GRD"
|
||||
FLAGS "GRDP"
|
||||
KEY 1
|
||||
CHECKTYPE REQUIRED
|
||||
USE LF_NDITTE KEY 1
|
||||
@ -39,13 +39,13 @@ END
|
||||
STRING F_RAGDITTA 50
|
||||
BEGIN
|
||||
PROMPT 17 1 "Ragione "
|
||||
FLAGS "D"
|
||||
FLAGS "DP"
|
||||
END
|
||||
|
||||
NUMBER F_ANNODIC 4
|
||||
BEGIN
|
||||
PROMPT 52 3 "Anno dichiarazione "
|
||||
FLAGS "DR"
|
||||
FLAGS "DRP"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
@ -103,7 +103,7 @@ END
|
||||
|
||||
NUMBER F_CODANAGRCOM 5
|
||||
BEGIN
|
||||
PROMPT 15 8 ""
|
||||
PROMPT 16 8 ""
|
||||
USE LF_ANAG
|
||||
INPUT TIPOA F_TIPOA SELECT
|
||||
INPUT CODANAGR F_CODANAGRCOM
|
||||
|
@ -13,7 +13,7 @@ END
|
||||
NUMBER PE1F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 1 "Ditta "
|
||||
FLAGS "GRD"
|
||||
FLAGS "GRDP"
|
||||
KEY 1
|
||||
CHECKTYPE REQUIRED
|
||||
USE LF_NDITTE KEY 1
|
||||
@ -25,7 +25,7 @@ END
|
||||
STRING PE1F_RAGDITTA 50
|
||||
BEGIN
|
||||
PROMPT 17 1 "Ragione "
|
||||
FLAGS "D"
|
||||
FLAGS "DP"
|
||||
END
|
||||
|
||||
STRING PE1F_CODCAUS 2
|
||||
|
@ -88,8 +88,7 @@ class TQuadroF : public TRelation_application
|
||||
void init_mask (TMask&);
|
||||
void fill_ss(TMask& m);
|
||||
void riempi_prospetto(TMask& m, const char prosp);
|
||||
int re_write(const TMask& m, bool re);
|
||||
int elimina();
|
||||
int re_write(const TMask& m, bool re);
|
||||
|
||||
public:
|
||||
TString16 _quadro, _aliq_caus;
|
||||
@ -162,7 +161,7 @@ void TQuadroF::init_insert_mode (TMask& m)
|
||||
|
||||
void TQuadroF::init_modify_mode (TMask& m)
|
||||
{
|
||||
m.disable(DLG_DELREC); // disabilito Elimina nella toolbar
|
||||
// m.disable(DLG_DELREC); // disabilito Elimina nella toolbar
|
||||
}
|
||||
|
||||
void TQuadroF::init_query_mode (TMask& m)
|
||||
@ -656,43 +655,27 @@ int TQuadroF::re_write(const TMask& m, bool re)
|
||||
}
|
||||
else
|
||||
return err_b;
|
||||
}
|
||||
|
||||
int TQuadroF::elimina()
|
||||
{
|
||||
int err;
|
||||
|
||||
// eliminazione righe del quadro
|
||||
TRectype& recrf = _rf->curr();
|
||||
recrf.zero();
|
||||
recrf.put("CODDITTA",_codditta);
|
||||
_rf->setkey(1);
|
||||
for (err = _rf->read(_isequal, _lock); // stato iniziale
|
||||
err == NOERR; // condizione di uscita
|
||||
err = _rf->read(_isequal, _lock)) // incremento
|
||||
{
|
||||
_rf->remove(); // eliminazione riga quadro
|
||||
}
|
||||
if (err == _iskeynotfound)
|
||||
_rf->reread();
|
||||
return err;
|
||||
}
|
||||
|
||||
bool TQuadroF::remove()
|
||||
{
|
||||
bool ok, ok_a, ok_b, ok_c, ok_d;
|
||||
ok = TRelation_application::remove();
|
||||
ok_b = _prosp_b->remove();
|
||||
ok_b = _prosp_b->remove() == NOERR;
|
||||
_prosp_b->destroy_rows();
|
||||
|
||||
if (_quadro == "F")
|
||||
{
|
||||
ok_a = _prosp_a->remove();
|
||||
ok_c = _prosp_c->remove();
|
||||
ok_d = _prosp_d->remove();
|
||||
return ok && ok_a && ok_b && ok_c && ok_d;
|
||||
ok_a = _prosp_a->remove() == NOERR;
|
||||
_prosp_a->destroy_rows();
|
||||
ok_c = _prosp_c->remove() == NOERR;
|
||||
_prosp_c->destroy_rows();
|
||||
ok_d = _prosp_d->remove() == NOERR;
|
||||
_prosp_d->destroy_rows();
|
||||
return _registra = ok && ok_a && ok_b && ok_c && ok_d;
|
||||
}
|
||||
else
|
||||
return ok && ok_b;
|
||||
return _registra = ok && ok_b;
|
||||
}
|
||||
|
||||
bool TQuadroF::a_notify(TSheet_field& s, int r, KEY k)
|
||||
|
@ -128,7 +128,7 @@ void TQuadroG::init_insert_mode (TMask& m)
|
||||
|
||||
void TQuadroG::init_modify_mode (TMask& m)
|
||||
{
|
||||
m.disable(DLG_DELREC);
|
||||
|
||||
}
|
||||
|
||||
void TQuadroG::init_query_mode (TMask& m)
|
||||
@ -303,6 +303,7 @@ bool TQuadroG::user_create()
|
||||
_msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar
|
||||
_msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar
|
||||
_msk->set_handler(DLG_DISTINTA, exec_distinta);
|
||||
_msk->set_handler(mainmsk_handler);
|
||||
TSheet_field& p1 = (TSheet_field&) _msk->field(F_P1);
|
||||
p1.set_notify(p1_notify);
|
||||
p1.sheet_mask().set_handler(NUM_AZ, calc_amm);
|
||||
@ -670,8 +671,8 @@ int TQuadroG::rewrite(const TMask& m)
|
||||
|
||||
bool TQuadroG::remove()
|
||||
{
|
||||
const bool ok = TRelation_application::remove();
|
||||
return ok;
|
||||
_registra = TRelation_application::remove();
|
||||
return _registra;
|
||||
}
|
||||
|
||||
bool TQuadroG::p1_notify(TSheet_field& s, int r, KEY k)
|
||||
@ -773,3 +774,12 @@ bool TQuadroG::pIII_notify(TSheet_field& s, int r, KEY k)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TQuadroG::mainmsk_handler(TMask& m, KEY k)
|
||||
{
|
||||
if (k == K_ESC)
|
||||
{
|
||||
TOperable_field& f = m.focus_field();
|
||||
m.set_focus_field(f.dlg());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
@ -31,7 +31,8 @@ class TQuadroG : public TRelation_application
|
||||
static bool pIII_notify(TSheet_field& s, int r, KEY k);
|
||||
static bool calc_amm(TMask_field& f, KEY k);
|
||||
static bool exec_distinta(TMask_field& f, KEY k);
|
||||
static void update_totals(TSheet_field& f, int ss);
|
||||
static void update_totals(TSheet_field& f, int ss);
|
||||
static bool mainmsk_handler(TMask& m, KEY k);
|
||||
protected:
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
@ -113,8 +114,9 @@ class TQuadroG1 : public TRelation_application
|
||||
TString16 _quadro;
|
||||
TString80 _title;
|
||||
bool _registra;
|
||||
static bool p1_notify(TSheet_field& s, int r, KEY k);
|
||||
static void update_totals(TSheet_field& f);
|
||||
static bool p1_notify(TSheet_field& s, int r, KEY k);
|
||||
static void update_totals(TSheet_field& f);
|
||||
static bool mainmsk_handler(TMask& m, KEY k);
|
||||
protected:
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
|
@ -188,4 +188,4 @@
|
||||
#define F_DATADELIB 293
|
||||
#define F_DATADISTR 294
|
||||
|
||||
|
||||
#define DLG_AZZERA 295
|
||||
|
@ -50,9 +50,9 @@ BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_NULL 9 2
|
||||
BUTTON DLG_AZZERA 9 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 "Azzera"
|
||||
PROMPT -33 -1 "A~zzera"
|
||||
MESSAGE RESET,1@
|
||||
END
|
||||
|
||||
|
@ -53,9 +53,9 @@ BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_NULL 9 2
|
||||
BUTTON DLG_AZZERA 9 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 "Azzera"
|
||||
PROMPT -33 -1 "A~zzera"
|
||||
MESSAGE RESET,1@
|
||||
END
|
||||
|
||||
|
4414
m770/774200.cpp
4414
m770/774200.cpp
File diff suppressed because it is too large
Load Diff
@ -25,7 +25,7 @@
|
||||
|
||||
HIDDEN TString80 __tmp;
|
||||
HIDDEN const int NUM_QUADRI = 26;
|
||||
HIDDEN const int QUADRO_L = 30;
|
||||
HIDDEN const int QUADRO_L = 27;
|
||||
|
||||
typedef enum { grassetto=0, sottolineato, piano } stile;
|
||||
|
||||
@ -38,7 +38,8 @@ class TManutenzione_quadri : public TApplication
|
||||
TLocalisamfile* _base, *_basebis;
|
||||
int _anno_dic;
|
||||
bool _soci;
|
||||
long _codditta, _coddic;
|
||||
long _codditta, _coddic;
|
||||
TString _qcomp_prev;
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
@ -192,7 +193,10 @@ bool TManutenzione_quadri::create()
|
||||
_base = new TLocalisamfile(LF_BASE);
|
||||
_basebis = new TLocalisamfile(LF_BASEBIS);
|
||||
_rel = new TRelation(LF_BASE);
|
||||
_rel->add(LF_BASEBIS, "CODDITTA=CODDITTA");
|
||||
_rel->add(LF_BASEBIS, "CODDITTA=CODDITTA");
|
||||
|
||||
// inizializza stato precedente quadri per ottimizzazione enphasize
|
||||
_qcomp_prev.spaces(NUM_QUADRI+1);
|
||||
|
||||
load_mask(0);
|
||||
dispatch_e_menu (BAR_ITEM(1));
|
||||
@ -327,36 +331,50 @@ void TManutenzione_quadri::inibith(TString& qric, TMask& m)
|
||||
}
|
||||
|
||||
//
|
||||
// Metto in grassetto i quadri gia' compilati
|
||||
// Metto in grassetto i quadri gia' compilati
|
||||
// ma solo quelli variati dal ciclo precedente
|
||||
// Il quadro L non ha il flag di compilato sul base.
|
||||
//
|
||||
void TManutenzione_quadri::enphasize(TString& qcomp, TMask& m)
|
||||
void TManutenzione_quadri::enphasize(TString& qcomp,TMask& m)
|
||||
{
|
||||
int start_dlg = DLG_NULL_A;
|
||||
const char* prompt;
|
||||
const int L = 19;
|
||||
int dlg = 0;
|
||||
int start_dlg = DLG_NULL_A;
|
||||
const char* prompt;
|
||||
const int L = 19;
|
||||
int dlg = 0;
|
||||
char qcompL;
|
||||
|
||||
// quadri fino al quadro L non compreso
|
||||
for (int i = 0; i < L; i++)
|
||||
{
|
||||
dlg = start_dlg + (i * 2);
|
||||
prompt = make_prompt(i, qcomp[i] == 'X' ? grassetto : piano);
|
||||
m.field(dlg).set_prompt(prompt);
|
||||
}
|
||||
|
||||
prompt = esiste_record_L(get_firm_770(), _anno_dic) ?
|
||||
make_prompt(QUADRO_L, grassetto) :
|
||||
make_prompt(QUADRO_L, piano);
|
||||
|
||||
dlg = start_dlg + (i * 2);
|
||||
m.field(dlg).set_prompt(prompt);
|
||||
if (qcomp[i] != _qcomp_prev[i])
|
||||
{
|
||||
dlg = start_dlg + (i * 2);
|
||||
prompt = make_prompt(i, qcomp[i] == 'X' ? grassetto : piano);
|
||||
m.field(dlg).set_prompt(prompt);
|
||||
_qcomp_prev[i] = qcomp[i];
|
||||
}
|
||||
}
|
||||
|
||||
// quadro L
|
||||
qcompL = esiste_record_L(get_firm_770(), _anno_dic) ? 'X' : ' ';
|
||||
if (qcompL != _qcomp_prev[QUADRO_L])
|
||||
{
|
||||
dlg = start_dlg + (i * 2);
|
||||
prompt = make_prompt(QUADRO_L, qcompL == 'X' ? grassetto : piano);
|
||||
m.field(dlg).set_prompt(prompt);
|
||||
_qcomp_prev[QUADRO_L] = qcompL;
|
||||
}
|
||||
|
||||
// rimanenti quadri
|
||||
for (i = L+1; i < NUM_QUADRI; i++)
|
||||
{
|
||||
int dlg = start_dlg + (i * 2);
|
||||
// Controlla qcomp[i-1] perche' in QCOMP non c'e' il flag del quadro L
|
||||
prompt = make_prompt(i-1, qcomp[i-1] == 'X' ? grassetto : piano);
|
||||
m.field(dlg).set_prompt(prompt);
|
||||
// Controlla qcomp[i-1] perche' in QCOMP non c'e' il flag del quadro L
|
||||
if (qcomp[i-1] != _qcomp_prev[i-1])
|
||||
{
|
||||
int dlg = start_dlg + (i * 2);
|
||||
prompt = make_prompt(i-1, qcomp[i-1] == 'X' ? grassetto : piano);
|
||||
m.field(dlg).set_prompt(prompt);
|
||||
_qcomp_prev[i-1] = qcomp[i-1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -478,7 +496,7 @@ void TManutenzione_quadri::init_menu(TMask& m)
|
||||
int rt = _basebis->read();
|
||||
qcomp = _basebis->get("QCOMP");
|
||||
qric = _basebis->get("QSUPPRIC");
|
||||
|
||||
|
||||
if (qcomp == "") qcomp.spaces();
|
||||
if (qric == "") qric.spaces();
|
||||
|
||||
|
@ -1060,7 +1060,7 @@ BEGIN
|
||||
PROMPT 39 ROW4 ""
|
||||
PICTURE 123
|
||||
MESSAGE RUN,772MOD,-4,E,D|K_TAB,RILEGGI_QUADRI
|
||||
FLAGS "H"
|
||||
FLAGS "HD"
|
||||
GROUP MENU_STAMPEDICH
|
||||
END
|
||||
|
||||
@ -1076,7 +1076,7 @@ BEGIN
|
||||
PROMPT 39 ROW5 ""
|
||||
PICTURE 123
|
||||
MESSAGE RUN,772MOD,-4,E1,D|K_TAB,RILEGGI_QUADRI
|
||||
FLAGS "H"
|
||||
FLAGS "HD"
|
||||
GROUP MENU_STAMPEDICH
|
||||
END
|
||||
|
||||
@ -1092,7 +1092,7 @@ BEGIN
|
||||
PROMPT 39 ROW6 ""
|
||||
PICTURE 123
|
||||
MESSAGE RUN,772MOD,-4,E2,D|K_TAB,RILEGGI_QUADRI
|
||||
FLAGS "H"
|
||||
FLAGS "HD"
|
||||
GROUP MENU_STAMPEDICH
|
||||
END
|
||||
// Fine terza colonna
|
||||
@ -1110,7 +1110,7 @@ BEGIN
|
||||
PROMPT 58 ROW1 ""
|
||||
PICTURE 123
|
||||
// MESSAGE RUN,771MOD,-1|K_TAB,RILEGGI_QUADRI
|
||||
FLAGS "H"
|
||||
FLAGS "HD"
|
||||
GROUP MENU_STAMPEDICH
|
||||
END
|
||||
|
||||
@ -1126,7 +1126,7 @@ BEGIN
|
||||
PROMPT 58 ROW2 ""
|
||||
PICTURE 123
|
||||
// MESSAGE RUN,771MOD,-1|K_TAB,RILEGGI_QUADRI
|
||||
FLAGS "H"
|
||||
FLAGS "HD"
|
||||
GROUP MENU_STAMPEDICH
|
||||
END
|
||||
|
||||
@ -1142,7 +1142,7 @@ BEGIN
|
||||
PROMPT 58 ROW3 ""
|
||||
PICTURE 123
|
||||
// MESSAGE RUN,771MOD,-1|K_TAB,RILEGGI_QUADRI
|
||||
FLAGS "H"
|
||||
FLAGS "HD"
|
||||
GROUP MENU_STAMPEDICH
|
||||
END
|
||||
|
||||
@ -1174,7 +1174,7 @@ BEGIN
|
||||
PROMPT 58 ROW5 ""
|
||||
PICTURE 123
|
||||
// MESSAGE RUN,771MOD,-1|K_TAB,RILEGGI_QUADRI
|
||||
FLAGS "H"
|
||||
FLAGS "HD"
|
||||
GROUP MENU_STAMPEDICH
|
||||
END
|
||||
|
||||
|
965
m770/776300.cpp
965
m770/776300.cpp
@ -1,483 +1,482 @@
|
||||
// 776300.cpp - Selezione dichiarazioni per menu' stampe
|
||||
#include <confapp.h>
|
||||
#include <mask.h>
|
||||
#include <isam.h>
|
||||
#include <sheet.h>
|
||||
#include <prefix.h>
|
||||
#include <progind.h>
|
||||
#include <lffiles.h>
|
||||
#include <utility.h>
|
||||
#include <relation.h>
|
||||
|
||||
#include "776300a.h"
|
||||
#include "77lib.h"
|
||||
|
||||
class TSelezioneDich : public TConfig_application
|
||||
{
|
||||
TString16 _section;
|
||||
TBit_array _selected;
|
||||
TArray_sheet* _ditte, * _ditte_sel;
|
||||
TArray _nomiditte;
|
||||
TArray _old_ditte;
|
||||
TConfig* _user_cnf, * _studio_cnf;
|
||||
int _n_ditte;
|
||||
int _anno_dic;
|
||||
TRelation* _nditte;
|
||||
long _da_cod, _a_cod;
|
||||
bool _builded_nomiditte;
|
||||
|
||||
void build_nomiditte();
|
||||
void build_ditte_sheet();
|
||||
void build_ditte_sel_sheet();
|
||||
bool is_in (long codditta);
|
||||
void init_sheet();
|
||||
void check_all_dic();
|
||||
|
||||
public:
|
||||
void set_choice_limits(TMask& m);
|
||||
long select_firm_range(long from, long to);
|
||||
long set_previous_firm_range();
|
||||
// handlers & handlers
|
||||
static bool to_ditt_handler (TMask_field&, KEY);
|
||||
static bool fr_ditt_handler (TMask_field&, KEY);
|
||||
static bool to_butt_handler (TMask_field&, KEY);
|
||||
static bool fr_butt_handler (TMask_field&, KEY);
|
||||
static bool mask_select (TMask_field&, KEY);
|
||||
static bool mask_azzera (TMask_field&, KEY);
|
||||
// Seleziona tutte le dic
|
||||
static bool tutte_handler (TMask_field&, KEY);
|
||||
// Mostra solo le selezionate
|
||||
static bool dicsel_handler (TMask_field&, KEY);
|
||||
|
||||
virtual bool preprocess_config (TMask& mask, TConfig& config);
|
||||
virtual bool postprocess_config (TMask& mask, TConfig& config);
|
||||
// virtual bool postprocess_config_changed(const char* par, const char* var,const char* oldv, const char* newv);
|
||||
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual bool firm_change_enabled() const;
|
||||
TSelezioneDich() : TConfig_application(CONFIG_USER) ,
|
||||
_a_cod(0L), _da_cod(0L) {}
|
||||
virtual ~TSelezioneDich() {}
|
||||
};
|
||||
|
||||
HIDDEN TSelezioneDich& app() { return (TSelezioneDich&) main_app(); }
|
||||
|
||||
bool TSelezioneDich::user_create()
|
||||
{
|
||||
const char* edit_mask = "776300a";
|
||||
_section = name();
|
||||
_section.cut(2);
|
||||
|
||||
// Forza la scrittura del file in partenza
|
||||
// (onde evitare di vedere il messaggio "Nessun parametro da configurare" e di dover
|
||||
// rientrare).
|
||||
TConfig* tmp = new TConfig(CONFIG_USER, _section);
|
||||
tmp->get("EdMask", _section, -1, edit_mask);
|
||||
delete tmp;
|
||||
|
||||
_user_cnf = new TConfig(CONFIG_USER, _section);
|
||||
_user_cnf->get("EdMask", _section, -1, edit_mask);
|
||||
|
||||
_studio_cnf = new TConfig(CONFIG_STUDIO);
|
||||
|
||||
_nditte = new TRelation(LF_NDITTE);
|
||||
_nditte->add(LF_BASE,"CODDITTA=CODDITTA");
|
||||
|
||||
_ditte = new TArray_sheet(11, 1, 67, 20, "Seleziona dichiarazioni",
|
||||
"@1|Cod.@5|Ragione Sociale@50");
|
||||
|
||||
_ditte_sel = new TArray_sheet(11, 1, 67, 20, "Dichiarazioni selezionate",
|
||||
"@1|Cod.@5|Ragione Sociale@50", 0);
|
||||
|
||||
_builded_nomiditte = FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::user_destroy()
|
||||
{
|
||||
delete _ditte;
|
||||
delete _ditte_sel;
|
||||
delete _nditte;
|
||||
delete _user_cnf;
|
||||
delete _studio_cnf;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::firm_change_enabled() const
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void TSelezioneDich::init_sheet()
|
||||
{
|
||||
_n_ditte = 0l;
|
||||
_old_ditte.destroy();
|
||||
|
||||
if (!_builded_nomiditte)
|
||||
{
|
||||
build_nomiditte();
|
||||
_builded_nomiditte = TRUE;
|
||||
}
|
||||
|
||||
// Legge ditte selezionate dal CONFIG_USER e mette nell'array _old_ditte
|
||||
long codditta = 0L;
|
||||
int i = 0;
|
||||
TString16 cods;
|
||||
while ((codditta = _user_cnf->get_long(DITTE_SEL, _section, i++)) != 0L)
|
||||
{
|
||||
// Salvo il primo e l'ultimo codice ditta per settare i campi in maschera
|
||||
if (_da_cod == 0L) _da_cod = codditta;
|
||||
_a_cod = codditta;
|
||||
|
||||
cods.format("%5ld", codditta);
|
||||
_old_ditte.add(cods);
|
||||
}
|
||||
|
||||
build_ditte_sheet();
|
||||
}
|
||||
|
||||
bool TSelezioneDich::preprocess_config (TMask& m, TConfig& config)
|
||||
{
|
||||
init_sheet();
|
||||
|
||||
// Setto l'anno dichiarazione con quello preso dai parametri di studio
|
||||
// ma SOLO SE non gia' compilato nei par. utente
|
||||
_anno_dic = (int)_user_cnf->get_long(ANNO_SEL, _section);
|
||||
if (_anno_dic == 0)
|
||||
_anno_dic = (int)_studio_cnf->get_long(ANNO_SEL, _section);
|
||||
|
||||
m.set(F_ANNODIC, _anno_dic);
|
||||
|
||||
// const long l = select_firm_range(_da_cod, _a_cod);
|
||||
// Evidenzia le ditte precedentemente selezionate. Legge _old_ditte
|
||||
const long l = set_previous_firm_range();
|
||||
|
||||
set_choice_limits(m);
|
||||
m.field(F_SELECT).set(format("%ld", l));
|
||||
|
||||
m.set_handler (DLG_SELECT_2, mask_select);
|
||||
m.set_handler (F_ANNULLA, mask_azzera);
|
||||
m.set_handler (A_CODICE, to_ditt_handler);
|
||||
m.set_handler (DA_CODICE, fr_ditt_handler);
|
||||
m.set_handler (F_TUTTE, tutte_handler);
|
||||
m.set_handler (F_DICSEL, dicsel_handler);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::is_in (long codditta)
|
||||
{
|
||||
for (int i=0; i<_old_ditte.items(); i++)
|
||||
if (codditta == atol((TString&)_old_ditte[i]))
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::postprocess_config (TMask& m, TConfig& config)
|
||||
{
|
||||
if (m.last_key() == K_ENTER)
|
||||
{
|
||||
const int anno_dic = m.get_int(F_ANNODIC);
|
||||
const long selec = _ditte->checked();
|
||||
const long items = _ditte->items();
|
||||
|
||||
TProgind prg(items, "Registrazione in corso\nAttendere prego...", FALSE, TRUE);
|
||||
|
||||
// Registro l'anno dic. nei parametri utente
|
||||
_user_cnf->set(ANNO_SEL, anno_dic);
|
||||
|
||||
// Compatto l'array delle ditte nel .ini
|
||||
int ditte_in_ini = 0;
|
||||
|
||||
long codditta = 0L;
|
||||
for (int i = 0; i < items; i++)
|
||||
{
|
||||
if (_selected[i])
|
||||
{
|
||||
TToken_string& d = (TToken_string&)_nomiditte[i];
|
||||
codditta = d.get_long(1);
|
||||
_user_cnf->set(DITTE_SEL, codditta, _section, TRUE, ditte_in_ini);
|
||||
ditte_in_ini++ ;
|
||||
}
|
||||
prg.addstatus(1);
|
||||
}
|
||||
|
||||
// Segno l'ultima ditta nel .ini
|
||||
_user_cnf->set(DITTE_SEL, "", _section, TRUE, ditte_in_ini);
|
||||
// Reset dei due codici ditta "Da" "A"
|
||||
_a_cod = _da_cod = 0L;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::mask_select (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
app()._ditte->enable_check();
|
||||
// seleziona e aggiungi alle gia' selezionate
|
||||
if (app()._ditte->run() == K_ENTER)
|
||||
{
|
||||
for (long j = 0l; j < app()._ditte->items(); j++)
|
||||
app()._selected.set(j, app()._ditte->checked(j));
|
||||
app().set_choice_limits(f.mask());
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::mask_azzera (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
app()._selected.reset();
|
||||
f.mask().reset(F_SELECT);
|
||||
f.mask().reset(DA_CODICE);
|
||||
f.mask().reset(A_CODICE);
|
||||
app()._ditte->check(-1, FALSE);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// --------------------------- handlers per selezione ditte
|
||||
|
||||
bool TSelezioneDich::to_ditt_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
if (key == K_F9)
|
||||
{
|
||||
app().to_butt_handler(f, K_SPACE);
|
||||
}
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
const long l = app().select_firm_range(m.get_long(DA_CODICE), m.get_long(A_CODICE));
|
||||
app().set_choice_limits(m);
|
||||
m.field(F_SELECT).set(format("%ld", l));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::fr_ditt_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
if (key == K_F9)
|
||||
{
|
||||
app().fr_butt_handler(f, K_SPACE);
|
||||
}
|
||||
else if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
const long l = app().select_firm_range(m.get_long(DA_CODICE), m.get_long(A_CODICE));
|
||||
app().set_choice_limits(m);
|
||||
m.field(F_SELECT).set(format("%ld", l));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::to_butt_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
TArray_sheet* sh = app()._ditte;
|
||||
TMask& m = f.mask();
|
||||
|
||||
sh->disable_check();
|
||||
if (sh->run() == K_ENTER)
|
||||
{
|
||||
app().select_firm_range(m.get_long(DA_CODICE),sh->row(sh->selected()).get_long(1));
|
||||
app().set_choice_limits(m);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::fr_butt_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
TArray_sheet* sh = app()._ditte;
|
||||
|
||||
sh->disable_check();
|
||||
if (sh->run() == K_ENTER)
|
||||
{
|
||||
app().select_firm_range(sh->row(sh->selected()).get_long(1), m.get_long(A_CODICE));
|
||||
app().set_choice_limits(m);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TSelezioneDich::check_all_dic()
|
||||
{
|
||||
for (int i = 0; i < _ditte->items(); i++)
|
||||
_ditte->check(i);
|
||||
}
|
||||
|
||||
bool TSelezioneDich::tutte_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
const bool checked = (f.get() == "X");
|
||||
|
||||
if (checked)
|
||||
{
|
||||
app().check_all_dic();
|
||||
app().select_firm_range(0L,0L);
|
||||
app().set_choice_limits(f.mask());
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::dicsel_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
app().build_ditte_sel_sheet();
|
||||
app()._ditte_sel->run();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TSelezioneDich::set_choice_limits(TMask& m)
|
||||
{
|
||||
long first = -1l, last = -1l;
|
||||
for (int i = 0; i < _ditte->items(); i++)
|
||||
{
|
||||
if (_selected[i])
|
||||
{
|
||||
long dit = _ditte->row(i).get_long(1);
|
||||
if (first == -1l) first = dit;
|
||||
if (last < dit) last = dit;
|
||||
}
|
||||
}
|
||||
if (first != -1) m.field(DA_CODICE).set(format("%ld",first));
|
||||
if (last != -1) m.field(A_CODICE).set(format("%ld",last));
|
||||
m.set(F_SELECT, _selected.ones());
|
||||
}
|
||||
|
||||
// Legge da _old_ditte le ditte selezionate e le evidenzia
|
||||
long TSelezioneDich::set_previous_firm_range()
|
||||
{
|
||||
const long items = _old_ditte.items();
|
||||
for (int i=0; i < items; i++)
|
||||
{
|
||||
const long codditta = atol((TString&)_old_ditte[i]);
|
||||
|
||||
for (int dit=0; dit < _ditte->items(); dit++)
|
||||
{
|
||||
TToken_string& d = _ditte->row(dit);
|
||||
const long cod = d.get_long(1);
|
||||
|
||||
if (codditta == cod)
|
||||
{
|
||||
_selected.set(dit);
|
||||
_ditte->check(dit);
|
||||
break;
|
||||
}
|
||||
/************************
|
||||
else
|
||||
{
|
||||
_selected.set(dit,FALSE);
|
||||
_ditte->uncheck(dit);
|
||||
}
|
||||
**************************/
|
||||
}
|
||||
}
|
||||
return _selected.ones();
|
||||
}
|
||||
|
||||
long TSelezioneDich::select_firm_range(long from, long to)
|
||||
{
|
||||
if (to == 0l) to = 99999L;
|
||||
for (int i = 0; i < _ditte->items(); i++)
|
||||
{
|
||||
if (_ditte->row_disabled(i))
|
||||
continue;
|
||||
|
||||
TToken_string& d = _ditte->row(i);
|
||||
|
||||
const long cod = d.get_long(1);
|
||||
if (cod >= from && cod <= to)
|
||||
{
|
||||
_selected.set(i);
|
||||
_ditte->check(i);
|
||||
}
|
||||
else
|
||||
{
|
||||
_selected.set(i,FALSE);
|
||||
_ditte->uncheck(i);
|
||||
}
|
||||
}
|
||||
return _selected.ones();
|
||||
}
|
||||
|
||||
// 23/6/95 - Scelta ditte solo tra quelle che hanno dichiarazione
|
||||
void TSelezioneDich::build_nomiditte()
|
||||
{
|
||||
_nomiditte.destroy();
|
||||
// ricostruire _nomiditte e rifare build_ditte_sheet
|
||||
TRectype& dt = _nditte->curr();
|
||||
TProgind prg(dt.items(), "Lettura ditte in corso\nAttendere prego...", FALSE, TRUE);
|
||||
|
||||
for (_nditte->first(); !_nditte->eof(); _nditte->next())
|
||||
{
|
||||
prg.addstatus(1);
|
||||
_n_ditte++;
|
||||
TToken_string* d = new TToken_string(64);
|
||||
d->add(" "); // spazio per la selezione
|
||||
d->add(dt.get("CODDITTA"));
|
||||
d->add(dt.get("RAGSOC"));
|
||||
_nomiditte.add(d);
|
||||
}
|
||||
}
|
||||
|
||||
void TSelezioneDich::build_ditte_sheet()
|
||||
{
|
||||
long codditta = 0L;
|
||||
// build sheet
|
||||
_ditte->destroy();
|
||||
for (int i = 0; i < _nomiditte.items(); i++)
|
||||
{
|
||||
TToken_string* d = new TToken_string(64);
|
||||
*d = (TToken_string&)_nomiditte[i];
|
||||
codditta = d->get_long(1);
|
||||
|
||||
const long pos = _ditte->add(d);
|
||||
// Metto check se selezionata o era nei parametri precedenti
|
||||
if (_selected[i] || is_in(codditta))
|
||||
_ditte->check(pos);
|
||||
}
|
||||
}
|
||||
|
||||
// Costruisce un array sheet copiando da nomiditte solo quelle
|
||||
// gia' selezionate
|
||||
void TSelezioneDich::build_ditte_sel_sheet()
|
||||
{
|
||||
long codditta = 0L;
|
||||
// build sheet
|
||||
_ditte_sel->destroy();
|
||||
for (int i = 0; i < _nomiditte.items(); i++)
|
||||
{
|
||||
TToken_string* d = new TToken_string(64);
|
||||
*d = (TToken_string&)_nomiditte[i];
|
||||
codditta = d->get_long(1);
|
||||
|
||||
// se selezionata o era nei parametri precedenti
|
||||
if (_selected[i])
|
||||
{
|
||||
const long pos = _ditte_sel->add(d);
|
||||
// _ditte_sel->check(pos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int SelezioneDichiarazioni(int argc, char* argv[])
|
||||
{
|
||||
TSelezioneDich app;
|
||||
app.run(argc, argv, "Selezione dichiarazione");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 776300.cpp - Selezione dichiarazioni per menu' stampe
|
||||
#include <confapp.h>
|
||||
#include <mask.h>
|
||||
#include <isam.h>
|
||||
#include <sheet.h>
|
||||
#include <prefix.h>
|
||||
#include <progind.h>
|
||||
#include <lffiles.h>
|
||||
#include <utility.h>
|
||||
#include <relation.h>
|
||||
|
||||
#include "776300a.h"
|
||||
#include "77lib.h"
|
||||
|
||||
class TSelezioneDich : public TConfig_application
|
||||
{
|
||||
TString16 _section;
|
||||
TBit_array _selected;
|
||||
TArray_sheet* _ditte, * _ditte_sel;
|
||||
TArray _nomiditte;
|
||||
TArray _old_ditte;
|
||||
TConfig* _user_cnf, * _studio_cnf;
|
||||
int _n_ditte;
|
||||
int _anno_dic;
|
||||
TRelation* _nditte;
|
||||
long _da_cod, _a_cod;
|
||||
bool _builded_nomiditte;
|
||||
|
||||
void build_nomiditte();
|
||||
void build_ditte_sheet();
|
||||
void build_ditte_sel_sheet();
|
||||
bool is_in (long codditta);
|
||||
void init_sheet();
|
||||
void check_all_dic();
|
||||
|
||||
public:
|
||||
void set_choice_limits(TMask& m);
|
||||
long select_firm_range(long from, long to);
|
||||
long set_previous_firm_range();
|
||||
// handlers & handlers
|
||||
static bool to_ditt_handler (TMask_field&, KEY);
|
||||
static bool fr_ditt_handler (TMask_field&, KEY);
|
||||
static bool to_butt_handler (TMask_field&, KEY);
|
||||
static bool fr_butt_handler (TMask_field&, KEY);
|
||||
static bool mask_select (TMask_field&, KEY);
|
||||
static bool mask_azzera (TMask_field&, KEY);
|
||||
// Seleziona tutte le dic
|
||||
static bool tutte_handler (TMask_field&, KEY);
|
||||
// Mostra solo le selezionate
|
||||
static bool dicsel_handler (TMask_field&, KEY);
|
||||
|
||||
virtual bool preprocess_config (TMask& mask, TConfig& config);
|
||||
virtual bool postprocess_config (TMask& mask, TConfig& config);
|
||||
// virtual bool postprocess_config_changed(const char* par, const char* var,const char* oldv, const char* newv);
|
||||
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual bool firm_change_enabled() const;
|
||||
TSelezioneDich() : TConfig_application(CONFIG_USER) ,
|
||||
_a_cod(0L), _da_cod(0L) {}
|
||||
virtual ~TSelezioneDich() {}
|
||||
};
|
||||
|
||||
HIDDEN TSelezioneDich& app() { return (TSelezioneDich&) main_app(); }
|
||||
|
||||
bool TSelezioneDich::user_create()
|
||||
{
|
||||
const char* edit_mask = "776300a";
|
||||
_section = name();
|
||||
_section.cut(2);
|
||||
|
||||
// Forza la scrittura del file in partenza
|
||||
// (onde evitare di vedere il messaggio "Nessun parametro da configurare" e di dover
|
||||
// rientrare).
|
||||
TConfig* tmp = new TConfig(CONFIG_USER, _section);
|
||||
tmp->get("EdMask", _section, -1, edit_mask);
|
||||
delete tmp;
|
||||
|
||||
_user_cnf = new TConfig(CONFIG_USER, _section);
|
||||
_user_cnf->get("EdMask", _section, -1, edit_mask);
|
||||
|
||||
_studio_cnf = new TConfig(CONFIG_STUDIO);
|
||||
|
||||
_nditte = new TRelation(LF_NDITTE);
|
||||
_nditte->add(LF_BASE,"CODDITTA=CODDITTA");
|
||||
|
||||
_ditte = new TArray_sheet(11, 1, 67, 20, "Seleziona dichiarazioni",
|
||||
"@1|Cod.@5|Ragione Sociale@50");
|
||||
|
||||
_ditte_sel = new TArray_sheet(11, 1, 67, 20, "Dichiarazioni selezionate",
|
||||
"Cod.@5|Ragione Sociale@50", 0x10);
|
||||
|
||||
_builded_nomiditte = FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::user_destroy()
|
||||
{
|
||||
delete _ditte;
|
||||
delete _ditte_sel;
|
||||
delete _nditte;
|
||||
delete _user_cnf;
|
||||
delete _studio_cnf;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::firm_change_enabled() const
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void TSelezioneDich::init_sheet()
|
||||
{
|
||||
_n_ditte = 0l;
|
||||
_old_ditte.destroy();
|
||||
|
||||
if (!_builded_nomiditte)
|
||||
{
|
||||
build_nomiditte();
|
||||
_builded_nomiditte = TRUE;
|
||||
}
|
||||
|
||||
// Legge ditte selezionate dal CONFIG_USER e mette nell'array _old_ditte
|
||||
long codditta = 0L;
|
||||
int i = 0;
|
||||
TString16 cods;
|
||||
while ((codditta = _user_cnf->get_long(DITTE_SEL, _section, i++)) != 0L)
|
||||
{
|
||||
// Salvo il primo e l'ultimo codice ditta per settare i campi in maschera
|
||||
if (_da_cod == 0L) _da_cod = codditta;
|
||||
_a_cod = codditta;
|
||||
|
||||
cods.format("%5ld", codditta);
|
||||
_old_ditte.add(cods);
|
||||
}
|
||||
|
||||
build_ditte_sheet();
|
||||
}
|
||||
|
||||
bool TSelezioneDich::preprocess_config (TMask& m, TConfig& config)
|
||||
{
|
||||
init_sheet();
|
||||
|
||||
// Setto l'anno dichiarazione con quello preso dai parametri di studio
|
||||
// ma SOLO SE non gia' compilato nei par. utente
|
||||
_anno_dic = (int)_user_cnf->get_long(ANNO_SEL, _section);
|
||||
if (_anno_dic == 0)
|
||||
_anno_dic = (int)_studio_cnf->get_long(ANNO_SEL, _section);
|
||||
|
||||
m.set(F_ANNODIC, _anno_dic);
|
||||
|
||||
// const long l = select_firm_range(_da_cod, _a_cod);
|
||||
// Evidenzia le ditte precedentemente selezionate. Legge _old_ditte
|
||||
const long l = set_previous_firm_range();
|
||||
|
||||
set_choice_limits(m);
|
||||
m.field(F_SELECT).set(format("%ld", l));
|
||||
|
||||
m.set_handler (DLG_SELECT_2, mask_select);
|
||||
m.set_handler (F_ANNULLA, mask_azzera);
|
||||
m.set_handler (A_CODICE, to_ditt_handler);
|
||||
m.set_handler (DA_CODICE, fr_ditt_handler);
|
||||
m.set_handler (F_TUTTE, tutte_handler);
|
||||
m.set_handler (F_DICSEL, dicsel_handler);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::is_in (long codditta)
|
||||
{
|
||||
for (int i=0; i<_old_ditte.items(); i++)
|
||||
if (codditta == atol((TString&)_old_ditte[i]))
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::postprocess_config (TMask& m, TConfig& config)
|
||||
{
|
||||
if (m.last_key() == K_ENTER)
|
||||
{
|
||||
const int anno_dic = m.get_int(F_ANNODIC);
|
||||
const long selec = _ditte->checked();
|
||||
const long items = _ditte->items();
|
||||
|
||||
TProgind prg(items, "Registrazione in corso\nAttendere prego...", FALSE, TRUE);
|
||||
|
||||
// Registro l'anno dic. nei parametri utente
|
||||
_user_cnf->set(ANNO_SEL, anno_dic);
|
||||
|
||||
// Compatto l'array delle ditte nel .ini
|
||||
int ditte_in_ini = 0;
|
||||
|
||||
long codditta = 0L;
|
||||
for (int i = 0; i < items; i++)
|
||||
{
|
||||
if (_selected[i])
|
||||
{
|
||||
TToken_string& d = (TToken_string&)_nomiditte[i];
|
||||
codditta = d.get_long(1);
|
||||
_user_cnf->set(DITTE_SEL, codditta, _section, TRUE, ditte_in_ini);
|
||||
ditte_in_ini++ ;
|
||||
}
|
||||
prg.addstatus(1);
|
||||
}
|
||||
|
||||
// Segno l'ultima ditta nel .ini
|
||||
_user_cnf->set(DITTE_SEL, "", _section, TRUE, ditte_in_ini);
|
||||
// Reset dei due codici ditta "Da" "A"
|
||||
_a_cod = _da_cod = 0L;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::mask_select (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
app()._ditte->enable_check();
|
||||
// seleziona e aggiungi alle gia' selezionate
|
||||
if (app()._ditte->run() == K_ENTER)
|
||||
{
|
||||
for (long j = 0l; j < app()._ditte->items(); j++)
|
||||
app()._selected.set(j, app()._ditte->checked(j));
|
||||
app().set_choice_limits(f.mask());
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::mask_azzera (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
app()._selected.reset();
|
||||
f.mask().reset(F_SELECT);
|
||||
f.mask().reset(DA_CODICE);
|
||||
f.mask().reset(A_CODICE);
|
||||
app()._ditte->check(-1, FALSE);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// --------------------------- handlers per selezione ditte
|
||||
|
||||
bool TSelezioneDich::to_ditt_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
if (key == K_F9)
|
||||
{
|
||||
app().to_butt_handler(f, K_SPACE);
|
||||
}
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
const long l = app().select_firm_range(m.get_long(DA_CODICE), m.get_long(A_CODICE));
|
||||
app().set_choice_limits(m);
|
||||
m.field(F_SELECT).set(format("%ld", l));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::fr_ditt_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
if (key == K_F9)
|
||||
{
|
||||
app().fr_butt_handler(f, K_SPACE);
|
||||
}
|
||||
else if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
const long l = app().select_firm_range(m.get_long(DA_CODICE), m.get_long(A_CODICE));
|
||||
app().set_choice_limits(m);
|
||||
m.field(F_SELECT).set(format("%ld", l));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::to_butt_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
TArray_sheet* sh = app()._ditte;
|
||||
TMask& m = f.mask();
|
||||
|
||||
sh->disable_check();
|
||||
if (sh->run() == K_ENTER)
|
||||
{
|
||||
app().select_firm_range(m.get_long(DA_CODICE),sh->row(sh->selected()).get_long(1));
|
||||
app().set_choice_limits(m);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::fr_butt_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
TArray_sheet* sh = app()._ditte;
|
||||
|
||||
sh->disable_check();
|
||||
if (sh->run() == K_ENTER)
|
||||
{
|
||||
app().select_firm_range(sh->row(sh->selected()).get_long(1), m.get_long(A_CODICE));
|
||||
app().set_choice_limits(m);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TSelezioneDich::check_all_dic()
|
||||
{
|
||||
for (int i = 0; i < _ditte->items(); i++)
|
||||
_ditte->check(i);
|
||||
}
|
||||
|
||||
bool TSelezioneDich::tutte_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
const bool checked = (f.get() == "X");
|
||||
|
||||
if (checked)
|
||||
{
|
||||
app().check_all_dic();
|
||||
app().select_firm_range(0L,0L);
|
||||
app().set_choice_limits(f.mask());
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSelezioneDich::dicsel_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
app().build_ditte_sel_sheet();
|
||||
app()._ditte_sel->run();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TSelezioneDich::set_choice_limits(TMask& m)
|
||||
{
|
||||
long first = -1l, last = -1l;
|
||||
for (int i = 0; i < _ditte->items(); i++)
|
||||
{
|
||||
if (_selected[i])
|
||||
{
|
||||
long dit = _ditte->row(i).get_long(1);
|
||||
if (first == -1l) first = dit;
|
||||
if (last < dit) last = dit;
|
||||
}
|
||||
}
|
||||
if (first != -1) m.field(DA_CODICE).set(format("%ld",first));
|
||||
if (last != -1) m.field(A_CODICE).set(format("%ld",last));
|
||||
m.set(F_SELECT, _selected.ones());
|
||||
}
|
||||
|
||||
// Legge da _old_ditte le ditte selezionate e le evidenzia
|
||||
long TSelezioneDich::set_previous_firm_range()
|
||||
{
|
||||
const long items = _old_ditte.items();
|
||||
for (int i=0; i < items; i++)
|
||||
{
|
||||
const long codditta = atol((TString&)_old_ditte[i]);
|
||||
|
||||
for (int dit=0; dit < _ditte->items(); dit++)
|
||||
{
|
||||
TToken_string& d = _ditte->row(dit);
|
||||
const long cod = d.get_long(1);
|
||||
|
||||
if (codditta == cod)
|
||||
{
|
||||
_selected.set(dit);
|
||||
_ditte->check(dit);
|
||||
break;
|
||||
}
|
||||
/************************
|
||||
else
|
||||
{
|
||||
_selected.set(dit,FALSE);
|
||||
_ditte->uncheck(dit);
|
||||
}
|
||||
**************************/
|
||||
}
|
||||
}
|
||||
return _selected.ones();
|
||||
}
|
||||
|
||||
long TSelezioneDich::select_firm_range(long from, long to)
|
||||
{
|
||||
if (to == 0l) to = 99999L;
|
||||
for (int i = 0; i < _ditte->items(); i++)
|
||||
{
|
||||
if (_ditte->row_disabled(i))
|
||||
continue;
|
||||
|
||||
TToken_string& d = _ditte->row(i);
|
||||
|
||||
const long cod = d.get_long(1);
|
||||
if (cod >= from && cod <= to)
|
||||
{
|
||||
_selected.set(i);
|
||||
_ditte->check(i);
|
||||
}
|
||||
else
|
||||
{
|
||||
_selected.set(i,FALSE);
|
||||
_ditte->uncheck(i);
|
||||
}
|
||||
}
|
||||
return _selected.ones();
|
||||
}
|
||||
|
||||
// 23/6/95 - Scelta ditte solo tra quelle che hanno dichiarazione
|
||||
void TSelezioneDich::build_nomiditte()
|
||||
{
|
||||
_nomiditte.destroy();
|
||||
// ricostruire _nomiditte e rifare build_ditte_sheet
|
||||
TRectype& dt = _nditte->curr();
|
||||
TProgind prg(dt.items(), "Lettura ditte in corso\nAttendere prego...", FALSE, TRUE);
|
||||
|
||||
for (_nditte->first(); !_nditte->eof(); _nditte->next())
|
||||
{
|
||||
prg.addstatus(1);
|
||||
_n_ditte++;
|
||||
TToken_string* d = new TToken_string(64);
|
||||
d->add(" "); // spazio per la selezione
|
||||
d->add(dt.get("CODDITTA"));
|
||||
d->add(dt.get("RAGSOC"));
|
||||
_nomiditte.add(d);
|
||||
}
|
||||
}
|
||||
|
||||
void TSelezioneDich::build_ditte_sheet()
|
||||
{
|
||||
long codditta = 0L;
|
||||
// build sheet
|
||||
_ditte->destroy();
|
||||
for (int i = 0; i < _nomiditte.items(); i++)
|
||||
{
|
||||
TToken_string* d = new TToken_string(64);
|
||||
*d = (TToken_string&)_nomiditte[i];
|
||||
codditta = d->get_long(1);
|
||||
|
||||
const long pos = _ditte->add(d);
|
||||
// Metto check se selezionata o era nei parametri precedenti
|
||||
if (_selected[i] || is_in(codditta))
|
||||
_ditte->check(pos);
|
||||
}
|
||||
}
|
||||
|
||||
// Costruisce un array sheet copiando da nomiditte solo quelle
|
||||
// gia' selezionate
|
||||
void TSelezioneDich::build_ditte_sel_sheet()
|
||||
{
|
||||
|
||||
// build sheet
|
||||
_ditte_sel->destroy();
|
||||
for (int i = 0; i < _nomiditte.items(); i++)
|
||||
{
|
||||
// copia da quelle selezionate
|
||||
TToken_string* d = new TToken_string(64);
|
||||
*d = (TToken_string&)_nomiditte[i];
|
||||
// elimina il token riservato alla selezione
|
||||
d->destroy(0);
|
||||
|
||||
// se selezionata o era nei parametri precedenti
|
||||
if (_selected[i])
|
||||
const long pos = _ditte_sel->add(d);
|
||||
}
|
||||
}
|
||||
|
||||
int SelezioneDichiarazioni(int argc, char* argv[])
|
||||
{
|
||||
TSelezioneDich app;
|
||||
app.run(argc, argv, "Selezione dichiarazione");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@ END
|
||||
STRING F_SELECT 5
|
||||
BEGIN
|
||||
PROMPT 2 8 "Dichiarazioni selezionate "
|
||||
FLAGS "D"
|
||||
FLAGS "DR"
|
||||
END
|
||||
|
||||
NUMBER F_ANNODIC 4
|
||||
|
@ -32,8 +32,7 @@ void TQuadroG1::init_insert_mode (TMask& m)
|
||||
|
||||
void TQuadroG1::init_modify_mode (TMask& m)
|
||||
{
|
||||
// init_mask(m);
|
||||
m.disable(DLG_DELREC);
|
||||
|
||||
}
|
||||
|
||||
int TQuadroG1::read(TMask& m)
|
||||
@ -98,6 +97,7 @@ bool TQuadroG1::user_create()
|
||||
_msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar
|
||||
_msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar
|
||||
_msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar
|
||||
_msk->set_handler(mainmsk_handler);
|
||||
TSheet_field& p1 = (TSheet_field&) _msk->field(F_PI);
|
||||
p1.set_notify(p1_notify);
|
||||
return TRUE;
|
||||
@ -250,8 +250,8 @@ int TQuadroG1::rewrite(const TMask& m)
|
||||
|
||||
bool TQuadroG1::remove()
|
||||
{
|
||||
const bool ok = TRelation_application::remove();
|
||||
return ok;
|
||||
_registra = TRelation_application::remove();
|
||||
return _registra;
|
||||
}
|
||||
|
||||
bool TQuadroG1::p1_notify(TSheet_field& s, int r, KEY k)
|
||||
@ -276,4 +276,13 @@ bool TQuadroG1::p1_notify(TSheet_field& s, int r, KEY k)
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool TQuadroG1::mainmsk_handler(TMask& m, KEY k)
|
||||
{
|
||||
if (k == K_ESC)
|
||||
{
|
||||
TOperable_field& f = m.focus_field();
|
||||
m.set_focus_field(f.dlg());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -46,8 +46,8 @@ BEGIN
|
||||
DISPLAY "N°" NPROG
|
||||
DISPLAY "Mese" MESERIF
|
||||
DISPLAY "Anno" ANNORIF
|
||||
DISPLAY "Imposta rimborsata" IMPOSTA
|
||||
DISPLAY "Compensi per l'assistenza" COMPENSI
|
||||
DISPLAY "Imposta rimborsata" IMPOSTA
|
||||
DISPLAY "Compensi per l'assistenza" COMPENSI
|
||||
OUTPUT QNF_NPROG NPROG
|
||||
OUTPUT QNF_COMPENSI COMPENSI
|
||||
OUTPUT QNF_IMPOSTA IMPOSTA
|
||||
|
@ -53,11 +53,11 @@ BEGIN
|
||||
INPUT NPROG QPF_NPROG
|
||||
DISPLAY "N°" NPROG
|
||||
DISPLAY "Imposta versata" IMPOSTA
|
||||
DISPLAY "Data versamento" DATAVERS
|
||||
DISPLAY "Tipo" TIPOVERS
|
||||
DISPLAY "Codice tributo" CODTRIB
|
||||
DISPLAY "Interessi dipendente" INTERDIP
|
||||
DISPLAY "Interessi datore di lavoro" INTERDAT
|
||||
DISPLAY "Tipo" TIPOVERS
|
||||
DISPLAY "Codice tributo" CODTRIB
|
||||
DISPLAY "Data versamento" DATAVERS
|
||||
DISPLAY "Serie/ABI" SERIE
|
||||
DISPLAY "Numero/Bollettino/CAB" NUMERO
|
||||
OUTPUT QPF_NPROG NPROG
|
||||
|
@ -45,11 +45,11 @@ BEGIN
|
||||
INPUT NPROG QQF_NPROG
|
||||
DISPLAY "N°" NPROG
|
||||
DISPLAY "Mese" MESEPAG
|
||||
DISPLAY "Anno" ANNOPAG
|
||||
DISPLAY "Cod.reg." CODREG
|
||||
DISPLAY "Interessi o soprattasse" INTERESSI
|
||||
DISPLAY "Anno" ANNOPAG
|
||||
DISPLAY "Contributo versato" CONTVERS
|
||||
DISPLAY "Contributo rimborsato" CONTRIMB
|
||||
DISPLAY "Interessi o soprattasse" INTERESSI
|
||||
DISPLAY "Cod.reg." CODREG
|
||||
OUTPUT QQF_NPROG NPROG
|
||||
OUTPUT QQF_CONTRIMB CONTRIMB
|
||||
OUTPUT QQF_CONTVERS CONTVERS
|
||||
|
@ -46,8 +46,8 @@ BEGIN
|
||||
DISPLAY "N°" NPROG
|
||||
DISPLAY "Mese" MESERIF
|
||||
DISPLAY "Anno" ANNORIF
|
||||
DISPLAY "Imposta rimborsata" IMPRIMB
|
||||
DISPLAY "Compensi per l'assistenza" COMPENSI
|
||||
DISPLAY "Imposta rimborsata" IMPRIMB
|
||||
DISPLAY "Compensi per l'assistenza" COMPENSI
|
||||
OUTPUT QRF_NPROG NPROG
|
||||
OUTPUT QRF_COMPENSI COMPENSI
|
||||
OUTPUT QRF_IMPOSTA IMPRIMB
|
||||
|
@ -53,11 +53,11 @@ BEGIN
|
||||
INPUT NPROG QSF_NPROG
|
||||
DISPLAY "N°" NPROG
|
||||
DISPLAY "Imposta versata" IMPOSTA
|
||||
DISPLAY "Data versamento" DATAVERS
|
||||
DISPLAY "Tipo" TIPOVERS
|
||||
DISPLAY "Codice tributo" CODTRIB
|
||||
DISPLAY "Interessi dipendente" INTERDIP
|
||||
DISPLAY "Interessi datore di lavoro" INTERDAT
|
||||
DISPLAY "Tipo" TIPOVERS
|
||||
DISPLAY "Codice tributo" CODTRIB
|
||||
DISPLAY "Data versamento" DATAVERS
|
||||
DISPLAY "Serie/ABI" SERIE
|
||||
DISPLAY "Numero/Bollettino/CAB" NUMERO
|
||||
OUTPUT QSF_NPROG NPROG
|
||||
|
@ -45,11 +45,11 @@ BEGIN
|
||||
INPUT NPROG QTF_NPROG
|
||||
DISPLAY "N°" NPROG
|
||||
DISPLAY "Mese" MESEPAG
|
||||
DISPLAY "Anno" ANNOPAG
|
||||
DISPLAY "Cod.reg." CODREG
|
||||
DISPLAY "Interessi o soprattasse" INTERESSI
|
||||
DISPLAY "Anno" ANNOPAG
|
||||
DISPLAY "Contributo versato" CONTVERS
|
||||
DISPLAY "Contributo rimborsato" CONTRIMB
|
||||
DISPLAY "Interessi o soprattasse" INTERESSI
|
||||
DISPLAY "Cod.reg." CODREG
|
||||
OUTPUT QTF_NPROG NPROG
|
||||
OUTPUT QTF_CONTRIMB CONTRIMB
|
||||
OUTPUT QTF_CONTVERS CONTVERS
|
||||
|
@ -1,27 +1,27 @@
|
||||
// batbca7.h - Tabella causali 770
|
||||
|
||||
#define F_CODCAUS 100
|
||||
#define F_CODTRIB 101
|
||||
#define F_DESCR1 102
|
||||
#define F_QUADRAT 103
|
||||
#define F_QUADRCE2 104
|
||||
#define F_ASSRIT 105
|
||||
#define F_IC 106
|
||||
#define F_CT 107
|
||||
#define F_PERASS 108
|
||||
#define F_PERRIT 109
|
||||
#define F_ARTBIL 110
|
||||
#define F_DESCR2 111
|
||||
#define F_CODQUA 112
|
||||
|
||||
// Aggiunte 96
|
||||
#define TCF_CAUSD 113
|
||||
#define TCF_CAUSD1 114
|
||||
#define TCF_BINPS 115
|
||||
#define TCF_PERCINPS 116
|
||||
#define TCF_ASSIMPINPS 117
|
||||
#define TCF_COMMINPS 118
|
||||
#define TCF_PERCASSPREV 119
|
||||
#define F_CODCAUS 100
|
||||
#define F_CODTRIB 101
|
||||
#define F_DESCR1 102
|
||||
#define F_QUADRAT 103
|
||||
#define F_QUADRCE2 104
|
||||
#define F_ASSRIT 105
|
||||
#define F_IC 106
|
||||
#define F_CT 107
|
||||
#define F_PERASS 108
|
||||
#define F_PERRIT 109
|
||||
#define F_ARTBIL 110
|
||||
#define F_DESCR2 111
|
||||
#define F_CODQUA 112
|
||||
#define TCF_CAUSD 113
|
||||
#define TCF_CAUSD1 114
|
||||
#define TCF_BINPS 115
|
||||
#define TCF_PERCINPS 116
|
||||
#define TCF_ASSIMPINPS 117
|
||||
#define TCF_COMMINPS 118
|
||||
#define TCF_PERCASSPREV 119
|
||||
#define TCF_CAUSD_DESCR 120
|
||||
#define TCF_CAUSD1_DESCR 121
|
||||
|
||||
#define G_INPS 10
|
||||
#define INPS_GROUP 7
|
||||
|
@ -17,10 +17,11 @@ BEGIN
|
||||
HELP "Inserire il codice della causale"
|
||||
USE %CA7
|
||||
INPUT CODTAB F_CODCAUS
|
||||
DISPLAY "Codice causale " CODTAB
|
||||
DISPLAY "Codice tributo " I0
|
||||
DISPLAY "Cod.caus." CODTAB
|
||||
DISPLAY "Cod.trib." I0
|
||||
DISPLAY "Art.bil." I3
|
||||
DISPLAY "Quadro " S1
|
||||
DISPLAY "Descrizione @60" S0
|
||||
DISPLAY "Codice quadro " S1
|
||||
OUTPUT F_CODCAUS CODTAB
|
||||
OUTPUT F_DESCR2 S0
|
||||
OUTPUT F_CODTRIB I0
|
||||
@ -151,7 +152,7 @@ BEGIN
|
||||
FIELD LF_TABCOM->S1
|
||||
END
|
||||
|
||||
STRING F_DESCR1 35
|
||||
STRING F_DESCR1 60 35
|
||||
BEGIN
|
||||
PROMPT 1 4 "Descrizione "
|
||||
HELP "Inserire la descrizione della causale"
|
||||
@ -171,45 +172,67 @@ BEGIN
|
||||
MESSAGE COPY,F_DESCR1,1,22
|
||||
END
|
||||
|
||||
LISTBOX TCF_CAUSD 1 62
|
||||
BEGIN
|
||||
STRING TCF_CAUSD 1
|
||||
BEGIN
|
||||
PROMPT 1 5 "Causale D "
|
||||
ITEM "|"
|
||||
ITEM "A|A prestaz. di lav. aut. ... nell’es. arti o prof. abituale"
|
||||
ITEM "B|B prestaz. rese da amministratori, sindaci e revisori..."
|
||||
ITEM "C|C prestaz. rese da collaboratori a giornali, riviste, ..."
|
||||
ITEM "D|D prestaz. rese da partecipanti a collegi e commissioni"
|
||||
ITEM "E|E prestaz. rese dagli sportivi con contratto di lav. autonomo"
|
||||
ITEM "F|F prestaz. ... di rapp. di coll. coord. e c. diversi dai prec"
|
||||
ITEM "G|G utiliz. economica, da parte dell’autore o dell’inventore..."
|
||||
ITEM "H|H utili ... da contratti di associazione in partecipazioni..."
|
||||
ITEM "I|I utili ... ai soci promot. e/o fond. delle soc. di capitale"
|
||||
ITEM "L|L per la levata di protesti cambiari da parte dei segretar..."
|
||||
ITEM "M|M utiliz. economica, ... di soggetto diverso dall’autore o..."
|
||||
ITEM "N|N indennità corrisp. per la cessaz. di rapporti di coll..."
|
||||
ITEM "P|P indennità corrisp. per la cessaz. dei rapporti di agenzia"
|
||||
ITEM "Q|Q indennità corrisp. per la cessaz. da funzioni notarili"
|
||||
ITEM "R|R indennità corrisp. per la cessaz. di attività sportiva prof"
|
||||
ITEM "S|S indennità di trasf. o di rimborso forfettario di spese..."
|
||||
ITEM "T|T altro titolo diverso dai precedenti"
|
||||
SHEET "Codice|Descrizione@60"
|
||||
INPUT TCF_CAUSD
|
||||
ITEM " | "
|
||||
ITEM "A|prestaz. di lav. aut. ... nell’es. arti o prof. abituale"
|
||||
ITEM "B|prestaz. rese da amministratori, sindaci e revisori..."
|
||||
ITEM "C|prestaz. rese da collaboratori a giornali, riviste, ..."
|
||||
ITEM "D|prestaz. rese da partecipanti a collegi e commissioni"
|
||||
ITEM "E|prestaz. rese dagli sportivi con contratto di lav. autonomo"
|
||||
ITEM "F|prestaz. ... di rapp. di coll. coord. e c. diversi dai prec"
|
||||
ITEM "G|utiliz. economica, da parte dell’autore o dell’inventore..."
|
||||
ITEM "H|utili ... da contratti di associazione in partecipazioni..."
|
||||
ITEM "I|utili ... ai soci promot. e/o fond. delle soc. di capitale"
|
||||
ITEM "L|per la levata di protesti cambiari da parte dei segretar..."
|
||||
ITEM "M|utiliz. economica, ... di soggetto diverso dall’autore o..."
|
||||
ITEM "N|indennità corrisp. per la cessaz. di rapporti di coll..."
|
||||
ITEM "P|indennità corrisp. per la cessaz. dei rapporti di agenzia"
|
||||
ITEM "Q|indennità corrisp. per la cessaz. da funzioni notarili"
|
||||
ITEM "R|indennità corrisp. per la cessaz. di attività sportiva prof"
|
||||
ITEM "S|indennità di trasf. o di rimborso forfettario di spese..."
|
||||
ITEM "T|altro titolo diverso dai precedenti"
|
||||
OUTPUT TCF_CAUSD
|
||||
OUTPUT TCF_CAUSD_DESCR
|
||||
FIELD LF_TABCOM->S2
|
||||
FLAGS "D"
|
||||
GROUP GR_CAUDD1
|
||||
END
|
||||
|
||||
LISTBOX TCF_CAUSD1 1 62
|
||||
BEGIN
|
||||
STRING TCF_CAUSD_DESCR 60
|
||||
BEGIN
|
||||
PROMPT 16 5 ""
|
||||
FLAGS "D"
|
||||
GROUP GR_CAUDD1
|
||||
END
|
||||
|
||||
STRING TCF_CAUSD1 1
|
||||
BEGIN
|
||||
PROMPT 1 6 "Causale D1 "
|
||||
ITEM "|"
|
||||
ITEM "A|A Agente o rappresentante di commercio monomadatario"
|
||||
ITEM "B|B Agente o rappresentate plurimandatario"
|
||||
ITEM "C|C Commissionario"
|
||||
ITEM "D|D Mediatore"
|
||||
ITEM "E|E Procacciatore d'affari"
|
||||
ITEM "F|F Per somme assoggettate a ritenuta a titolo d'imposta"
|
||||
SHEET "Codice|Descrizione@60"
|
||||
INPUT TCF_CAUSD1
|
||||
ITEM " | "
|
||||
ITEM "A|Agente o rappresentante di commercio monomadatario"
|
||||
ITEM "B|Agente o rappresentate plurimandatario"
|
||||
ITEM "C|Commissionario"
|
||||
ITEM "D|Mediatore"
|
||||
ITEM "E|Procacciatore d'affari"
|
||||
ITEM "F|Per somme assoggettate a ritenuta a titolo d'imposta"
|
||||
OUTPUT TCF_CAUSD1
|
||||
OUTPUT TCF_CAUSD1_DESCR
|
||||
FIELD LF_TABCOM->S3
|
||||
FLAGS "D"
|
||||
GROUP GR_CAUDD1
|
||||
GROUP GR_CAUDD1
|
||||
END
|
||||
|
||||
STRING TCF_CAUSD1_DESCR 60
|
||||
BEGIN
|
||||
PROMPT 16 6 ""
|
||||
FLAGS "D"
|
||||
GROUP GR_CAUDD1
|
||||
END
|
||||
|
||||
BOOLEAN F_ASSRIT
|
||||
|
@ -14,10 +14,13 @@ BEGIN
|
||||
USE %CAF
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT CODTAB F_CODCAAF
|
||||
DISPLAY "Codice CAA " CODTAB
|
||||
DISPLAY "Denominazione@50" S0
|
||||
DISPLAY "Cod.CAA " CODTAB
|
||||
DISPLAY "Denominazione@50" S0
|
||||
DISPLAY "Codice fiscale@11" S1
|
||||
DISPLAY "N.iscr.albo" I1
|
||||
OUTPUT F_CODCAAF CODTAB
|
||||
KEY 1
|
||||
KEY 1
|
||||
FLAGS "RZ"
|
||||
END
|
||||
|
||||
STRING F_DENOM 50
|
||||
|
@ -16,19 +16,20 @@ BEGIN
|
||||
USE %ENT
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT CODTAB F_CODENTE
|
||||
DISPLAY "Codice Ente " CODTAB
|
||||
DISPLAY "Descrizione@60 " S0
|
||||
DISPLAY "Cod.Ente" CODTAB
|
||||
DISPLAY "Denominazione@60 " S0
|
||||
OUTPUT F_CODENTE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
KEY 1
|
||||
KEY 1
|
||||
FLAGS "RZ"
|
||||
END
|
||||
|
||||
STRING F_DESCR 60
|
||||
BEGIN
|
||||
PROMPT 4 3 "Descrizione "
|
||||
PROMPT 4 3 "Denominazione "
|
||||
FIELD LF_TABCOM->S0
|
||||
HELP "Inserire la descrizione dell' Ente"
|
||||
WARNING "Manca la descrizione"
|
||||
WARNING "Manca la denominazione"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
|
@ -746,11 +746,9 @@ bool TGeneric_application::menu(MENU_TAG)
|
||||
|
||||
TMask m(_maskname);
|
||||
|
||||
// if (m.id2pos(F_CODDITTA) > 0)
|
||||
// m.set_handler(F_CODDITTA, codditta77_handler);
|
||||
|
||||
k = m.run();
|
||||
if (k == K_QUIT) stop_run();
|
||||
|
||||
if (k == K_QUIT || k == K_ESC) stop_run();
|
||||
|
||||
return k != K_QUIT;
|
||||
}
|
||||
|
@ -9,7 +9,6 @@ BEGIN
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
// Il menu' viene richiamato nell'handler di questo bottone
|
||||
BUTTON B_SELDIC 1 1
|
||||
BEGIN
|
||||
PROMPT 1 3 ""
|
||||
@ -255,7 +254,8 @@ BUTTON B_E 1 1
|
||||
BEGIN
|
||||
PROMPT 39 ROW4 ""
|
||||
PICTURE 123
|
||||
MESSAGE RUN,772MOD,-4,E,S
|
||||
MESSAGE RUN,772MOD,-4,E,S
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
@ -269,7 +269,8 @@ BUTTON B_E1 1 1
|
||||
BEGIN
|
||||
PROMPT 39 ROW5 ""
|
||||
PICTURE 123
|
||||
MESSAGE RUN,772MOD,-4,E1,S
|
||||
MESSAGE RUN,772MOD,-4,E1,S
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
@ -284,6 +285,7 @@ BEGIN
|
||||
PROMPT 39 ROW6 ""
|
||||
PICTURE 123
|
||||
MESSAGE RUN,772MOD,-4,E2,S
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
// Fine terza colonna
|
||||
@ -300,6 +302,7 @@ BEGIN
|
||||
PROMPT 58 ROW1 ""
|
||||
PICTURE 123
|
||||
// MESSAGE RUN,771MOD,-1
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
@ -314,6 +317,7 @@ BEGIN
|
||||
PROMPT 58 ROW2 ""
|
||||
PICTURE 123
|
||||
// MESSAGE RUN,771MOD,-1
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
@ -328,6 +332,7 @@ BEGIN
|
||||
PROMPT 58 ROW3 ""
|
||||
PICTURE 123
|
||||
// MESSAGE RUN,771MOD,-1
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
@ -356,6 +361,7 @@ BEGIN
|
||||
PROMPT 58 ROW5 ""
|
||||
PICTURE 123
|
||||
// MESSAGE RUN,771MOD,-1
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
@ -374,9 +380,9 @@ BEGIN
|
||||
END
|
||||
// Fine QUARTA colonna
|
||||
|
||||
BUTTON DLG_QUIT 20 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 "Fine"
|
||||
BUTTON DLG_CANCEL 20 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 "Menu precedente"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
Loading…
x
Reference in New Issue
Block a user