Prime modifiche per Quadro G 1997

git-svn-id: svn://10.65.10.50/trunk@4514 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1997-06-03 16:54:18 +00:00
parent d53a6808b8
commit 0f924bdd96
11 changed files with 607 additions and 1064 deletions

@ -9,88 +9,38 @@
#include <defmask.h>
#include "quadrog.h"
#include "quadrogp.h"
#include "77lib.h"
#include "774200.h"
#include "771234a.h" // G
#include "771232.h"
/////////////////////////////////////////////////////////////////////////////////////////////
//
// Lista modifiche:
//
// 17.4.96 Corretto scambio di colonne nel prospetto 3 in scrittura
//
//
/////////////////////////////////////////////////////////////////////////////////////////////
// Descrizioni prospetto 3
HIDDEN const char* p3_date_delib[20] =
{
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"9-4-1974/31-12-1975",
"9-4-1974/31-12-1975",
"9-4-1974/31-12-1975",
"9-4-1974/31-12-1975",
"1-1-1974/8-4-1974" ,
"1-1-1974/8-4-1974" ,
"1-1-1974/8-4-1974" ,
"24-2-1964/31-12-1973",
"24-2-1964/31-12-1973",
"24-2-1964/31-12-1973",
"1-1-1963/23-2-1964",
"1-1-1963/23-2-1964",
"1-1-1963/23-2-1964"
};
// Aliquote prospetto 3
HIDDEN const char* aliq[15] =
// Aliquote prospetti 2 (I e II)
HIDDEN const char* aliq[8] =
{
"10",
"12.5",
"10",
"12.50",
"12.50",
"15",
"30",
"32.4",
"50",
"10",
"15",
"30",
"10",
"30",
"5",
"30",
"8",
"15"
"34.40",
"34.40"
};
// Date prospetto 2
HIDDEN const char* p2_date_delib[5] =
{
"1-1-1976/31-12-1995",
"9-4-1974/31-12-1975",
"1-1-1974/8-4-1974" ,
"24-2-1964/31-12-1973",
"1-1-1963/23-2-1964"
};
HIDDEN const int RIGHE_P1 = 4;
HIDDEN const int RIGHE_P2 = 5;
HIDDEN const int RIGHE_PII = 3;
HIDDEN const int RIGHE_PIII = 20;
HIDDEN const char* DISTINTA_APP = "771mod -6 4";
HIDDEN const int RIGHE_P1_I = 3;
HIDDEN const int RIGHE_P1_II = 3;
HIDDEN const int RIGHE_P2_I = 20;
HIDDEN const int RIGHE_P2_II = 20;
HIDDEN const char* DISTINTA_APP = "771mod -6 4";
#define NUM_AZ 105
#define AMM_AZ 104
#define AMM_COMP 106
#define AMM_AZ 102
#define NUM_AZ 103
#define AMM_COMP 104
HIDDEN real __amm_az = ZERO;
HIDDEN real __num_az = ZERO;
HIDDEN real __amm_az = ZERO;
HIDDEN real __num_az = ZERO;
TQuadroG::TQuadroG(const char quadro)
{
@ -113,22 +63,53 @@ int TQuadroG::read(TMask& m)
int err = TRelation_application::read(m);
if (err == NOERR)
{
fill_ss(m);
fill_arr(m);
}
{
fill_ss(m);
err = read_prospetto_2(m);
}
return err;
}
void TQuadroG::init_insert_mode (TMask& m)
int TQuadroG::write(const TMask& m)
{
fill_ss(m);
fill_arr(m);
//ss2rel(m);
int err = TRelation_application::write(m);
_registra = err == NOERR;
if (_registra)
err = write_prospetto_2(m);
return err;
}
void TQuadroG::init_modify_mode (TMask& m)
int TQuadroG::rewrite(const TMask& m)
{
//ss2rel(m);
int err = TRelation_application::rewrite(m);
_registra = err == NOERR;
if (_registra)
err = write_prospetto_2(m,TRUE);
return err;
}
bool TQuadroG::remove()
{
remove_prospetto_2();
_registra = TRelation_application::remove();
return _registra;
}
int TQuadroG::read_prospetto_2(const TMask& m)
{
return NOERR;
}
int TQuadroG::write_prospetto_2(const TMask& m, bool force)
{
return NOERR;
}
int TQuadroG::remove_prospetto_2()
{
return NOERR;
}
void TQuadroG::init_query_mode (TMask& m)
@ -144,105 +125,41 @@ void TQuadroG::init_query_mode (TMask& m)
void TQuadroG::update_totals(TSheet_field& f, int ss)
{
int i = 0;
TMask& m = f.mask();
switch (ss)
{
case 1:
{
real tot_numq, tot_amm;
tot_numq = tot_amm = ZERO;
TSheet_field& p1 = f;
// Calcolo il totale
for (i = 0; i < RIGHE_P1; i++)
const int items = f.items();
// Calcolo il totale
for (i = 0; i < items; i++)
{
TToken_string& r = p1.row(i);
real numq(r.get(4));
real amm (r.get(5));
TToken_string& r = f.row(i);
real numq(r.get(2));
real amm (r.get(3));
tot_numq += numq;
tot_amm += amm;
}
// Setto le celle di totale
TToken_string& row = p1.row(i);
row.add(tot_numq.string(), 4);
row.add(tot_amm.string(), 5);
p1.force_update(i);
}
break;
case 2:
{
TSheet_field& p2 = f;
real tot_c2, tot_c3, tot_c4, tot_c5, tot_c6;
tot_c2 = tot_c3 = tot_c4 = tot_c5 = tot_c6 = ZERO;
for (i = 0; i < RIGHE_P2; i++)
{
TToken_string& r2 = p2.row(i);
real c2 (r2.get(1));
real c3 (r2.get());
real c4 (r2.get());
real c5 (r2.get());
real c6 (r2.get());
tot_c2 += c2;
tot_c3 += c3;
tot_c4 += c4;
tot_c5 += c5;
tot_c6 += c6;
}
// Setto le celle di totale
TToken_string& row2 = p2.row(i);
row2.add(tot_c2.string(), 1);
row2.add(tot_c3.string(), 2);
row2.add(tot_c4.string(), 3);
row2.add(tot_c5.string(), 4);
row2.add(tot_c6.string(), 5);
p2.force_update(i);
}
break;
case 3:
{
real tot_valult;
tot_valult = ZERO;
TSheet_field& pII = f;
// Calcolo il totale
for (i = 0; i < RIGHE_PII; i++)
{
TToken_string& r = pII.row(i);
real val(r.get(2));
tot_valult += val;
}
// Setto le celle di totale
TToken_string& row = pII.row(i);
row.add(tot_valult.string(), 2);
pII.force_update(i);
}
// totali...
m.set(F_P1_I_TOT1,tot_numq);
m.set(F_P1_I_TOT2,tot_amm);
}
break;
case 4:
case 2:
{
real tcol2, tcol3, tcol5, tcol6, tcol7;
tcol2 = tcol3 = tcol5 = tcol6 = tcol7 = ZERO;
TSheet_field& pIII = f;
// Calcolo il totale
for (i = 0; i < RIGHE_PIII; i++)
real tot_valult;
const int items = f.items();
// Calcolo il totale
for (i = 0; i < items; i++)
{
TToken_string& r = pIII.row(i);
real c2(r.get(1));
real c3(r.get(2));
real c5(r.get(4));
real c6(r.get(5));
real c7(r.get(6));
tcol2 += c2;
tcol3 += c3;
tcol5 += c5;
tcol6 += c6;
tcol7 += c7;
TToken_string& r = f.row(i);
real val(r.get(1));
tot_valult += val;
}
// Setto le celle di totale
TToken_string& row = pIII.row(i);
row.add(tcol2.string(), 1);
row.add(tcol3.string(), 2);
row.add(tcol5.string(), 4);
row.add(tcol6.string(), 5);
row.add(tcol7.string(), 6);
pIII.force_update(i);
// totali...
m.set(F_P1_II_TOT,tot_valult);
}
break;
default:
@ -258,23 +175,19 @@ bool TQuadroG::calc_amm(TMask_field& f, KEY k)
{
TMask& m = f.mask();
real amm_az(m.get(AMM_AZ));
// const int num_az = m.get_int(NUM_AZ);
// 12.6.96 num_az adesso e' un real!
real rNumAz = m.get_real(NUM_AZ);
bool ricalcola = FALSE;
real amm_comp(m.get(AMM_COMP));
// Determina se uno dei valori e' stato modificato
ricalcola = ( (__amm_az != amm_az) || (__num_az != rNumAz) );
// Se non e' stato cambiato non toccare il totale gia' impostato
if (!ricalcola && amm_comp != ZERO)
return TRUE;
// Calcola e setta il valore
// Calcola e setta il valore
real amm = ZERO;
amm = amm_az * rNumAz;
amm.trunc();
m.set(AMM_COMP, amm.string());
// Setta i flag usati per il confronto successivo
// Setta i flag usati per il confronto successivo
__amm_az = amm_az;
__num_az = rNumAz;
}
@ -287,7 +200,7 @@ bool TQuadroG::exec_distinta(TMask_field& f, KEY k)
{
TExternal_app zzz(DISTINTA_APP);
zzz.run();
// Fai il ricalcolo
// Fai il ricalcolo
app()._bUsatoDistinta = TRUE;
}
return TRUE;
@ -297,6 +210,7 @@ bool TQuadroG::user_create()
{
_msk = new TMask("771234a");
_rel = new TRelation(LF_QUAG);
_rel->add(LF_QUAGP,"CODDITTA=CODDITTA");
_codditta = get_firm_770();
_msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar
_msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar
@ -304,103 +218,45 @@ bool TQuadroG::user_create()
_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);
TSheet_field& p1 = (TSheet_field&) _msk->field(F_P1_I);
p1.set_append(FALSE);
p1.set_notify(p1_notify);
p1.sheet_mask().set_handler(NUM_AZ, calc_amm);
p1.sheet_mask().set_handler(AMM_AZ, calc_amm);
TSheet_field& p2 = (TSheet_field&) _msk->field(F_P2);
TSheet_field& p2 = (TSheet_field&) _msk->field(F_P1_II);
p2.set_notify(p2_notify);
TSheet_field& pII = (TSheet_field&) _msk->field(F_PII);
pII.set_notify(pII_notify);
TSheet_field& pIII = (TSheet_field&) _msk->field(F_PIII);
pIII.set_notify(pIII_notify);
p2.set_append(FALSE);
//TSheet_field& pIII = (TSheet_field&) _msk->field(F_PIII);
//pIII.set_notify(pIII_notify);
return TRUE;
}
bool TQuadroG::user_destroy()
{
delete _rel; delete _msk;
delete _rel; delete _msk;
if (_registra || _bUsatoDistinta)
_rip.set(_quadro);
return TRUE;
}
void TQuadroG::arr2rel(const TMask& m)
{
TToken_string p3a;
TToken_string p3b;
TToken_string p3c;
TToken_string p3d;
TToken_string p3e;
TToken_string p3f;
TRectype& r = _rel->curr();
int dlg; dlg = 0;
// Prospetto 3 - Prospetto delle ritenute
TSheet_field& pIII = (TSheet_field&)m.field(F_PIII);
for (int i = 0; i < RIGHE_PIII; i++)
{
TToken_string& r = pIII.row(i);
TString ut94 (r.get(1)); // Salto data delibera che e' fisso
TString imp (r.get());
TString ali (r.get());
TString racc (r.get());
TString rimp (r.get());
TString utnsogg (r.get());
p3a.add(ut94);
p3b.add(imp);
p3c.add(ali);
p3d.add(racc);
p3e.add(rimp);
p3f.add(utnsogg);
}
r.put(QG_P33A, p3a);
r.put(QG_P33B, p3b);
r.put(QG_P35A, p3c);
r.put(QG_P35B, p3d);
r.put(QG_P36A, p3e);
r.put(QG_P36B, p3f);
// Salvo i totali che servono poi per i riporti e le stampe (774200.cpp)
TToken_string& r_tot = pIII.row(i);
real tot_col3(r_tot.get(2));
real tot_col5(r_tot.get(4));
real tot_col6(r_tot.get(5));
real tot_col7(r_tot.get(6));
r.put(QG_P33TOT, tot_col3);
r.put(QG_P35TOT, tot_col5);
r.put(QG_P36TOT, tot_col6);
r.put(QG_P37TOT, tot_col7);
}
void TQuadroG::ss2rel(const TMask& m)
{
TSheet_field& p1 = (TSheet_field&)m.field(F_P1);
TSheet_field& p1_I = (TSheet_field&)m.field(F_P1_I);
TRectype& rec = _rel->curr();
TString datad, ammq, numq, amm;
for (int i = 0; i < RIGHE_P1; i++)
// Prospetto 1 - I Utili in denaro
for (int i = 0; i < RIGHE_P1_I; i++)
{
TToken_string& r = p1.row(i);
TString datad (r.get(0));
TString titol (r.get());
TString datap (r.get());
TString ammq (r.get());
TString numq (r.get());
TString amm (r.get());
TToken_string& r = p1_I.row(i);
datad = r.get(0);
ammq = r.get();
numq = r.get();
amm = r.get();
// Costruisco i nomi dei campi (sono numerati)
// Costruisco i nomi dei campi (sono numerati)
TString16 n_datad ("P1DATAD");
n_datad << i+1;
TString16 n_titol ("P1TITOLO");
n_titol << i+1;
TString16 n_datap ("P1DATAP");
n_datap << i+1;
TString16 n_ammq ("P1AMMQ");
n_ammq << i+1;
TString16 n_numq ("P1NUMQ");
@ -408,271 +264,103 @@ void TQuadroG::ss2rel(const TMask& m)
TString16 n_amm ("P1AMM");
n_amm << i+1;
// Scrivo i suddetti campi nella relazione
// Scrivo i suddetti campi nella relazione
rec.put(n_datad, datad);
rec.put(n_titol, titol);
rec.put(n_datap, datap);
rec.put(n_ammq, ammq);
rec.put(n_numq, numq);
rec.put(n_amm, amm);
}
// Salvo i totali
TToken_string& r = p1.row(i);
TString tot_numq (r.get(4));
TString tot_amm (r.get(5));
rec.put("P1NUMQT", tot_numq);
rec.put("P1AMMT", tot_amm);
// costruisco le token_string leggendole dallo spreadsheet
TToken_string p22(200);
TToken_string p23(200);
TToken_string p24(200);
TToken_string p25(200);
TToken_string p26(200);
TSheet_field& p2 = (TSheet_field&)m.field(F_P2);
for (i = 0; i < RIGHE_P2; i++)
{
TToken_string& r = p2.row(i);
TString c2 (r.get(1));
TString c3 (r.get());
TString c4 (r.get());
TString c5 (r.get());
TString c6 (r.get());
p22.add(c2);
p23.add(c3);
p24.add(c4);
p25.add(c5);
p26.add(c6);
}
// scrivo finalmente nel file le tokens. di cui sopra
rec.put("P22", p22);
rec.put("P23", p23);
rec.put("P24", p24);
rec.put("P25", p25);
rec.put("P26", p26);
// scrivo i totali
TToken_string& r2 = p2.row(i);
TString tc2 (r2.get(1));
TString tc3 (r2.get());
TString tc4 (r2.get());
TString tc5 (r2.get());
TString tc6 (r2.get());
rec.put("P22TOT", tc2);
rec.put("P23TOT", tc3);
rec.put("P24TOT", tc4);
rec.put("P25TOT", tc5);
rec.put("P26TOT", tc6);
// Prospetto 1 - II Utili in natura
TSheet_field& pII = (TSheet_field&)m.field(F_PII);
// TRectype& rec = _rel->curr();
// Prospetto 1 - II Utili in natura
TSheet_field& p1_II = (TSheet_field&)m.field(F_P1_II);
for (i = 0; i < RIGHE_PII; i++)
for (i = 0; i < RIGHE_P1_II; i++)
{
TToken_string& r = pII.row(i);
TToken_string& r = p1_II.row(i);
TString descr (r.get(0));
TString datad (r.get());
TString val (r.get());
// Costruisco i nomi dei campi (sono numerati)
// Costruisco i nomi dei campi (sono numerati)
TString16 n_descr ("P2DESC");
n_descr << i+1;
TString16 n_data ("P2DATA");
n_data << i+1;
TString16 n_val ("P2VAL");
n_val << i+1;
// Scrivo i suddetti campi nella relazione
// Scrivo i suddetti campi nella relazione
rec.put(n_descr, descr);
rec.put(n_data, datad);
rec.put(n_val, val);
}
// Salvo i totali
TToken_string& rII = pII.row(i);
TString tot_val (rII.get(2));
rec.put(QG_P2VALT, tot_val);
}
void TQuadroG::fill_arr(TMask& m)
{
TRectype& r = _rel->curr();
TToken_string p3a(r.get("P33A"));
TToken_string p3b(r.get("P33B"));
TToken_string p3c(r.get("P35A"));
TToken_string p3d(r.get("P35B"));
TToken_string p3e(r.get("P36A"));
TToken_string p3f(r.get("P36B"));
int dlg, j; dlg = j = 0;
TSheet_field& pIII = (TSheet_field&)m.field(F_PIII);
const int COL_ALIQ = 3;
int ind_aliq = 0;
for (int i = 1; i <= RIGHE_PIII; i++)
{
TRectype& r = _rel->curr();
TToken_string& row = pIII.row(i-1);
row.add(p3_date_delib[i-1]);
row.add(p3a.get(i-1));
row.add(p3b.get(i-1));
row.add(p3c.get(i-1));
row.add(p3d.get(i-1));
row.add(p3e.get(i-1));
row.add(p3f.get(i-1));
if (i != 7 && i != 11 && i != 14 && i != 17 && i != 20)
{
row.add(aliq[ind_aliq++], 3);
pIII.disable_cell(i-1, COL_ALIQ);
}
}
if (m.mode() == MODE_MOD)
update_totals(pIII,4);
else
{
// Aggiungo la riga per i totali
TToken_string& row = pIII.row(i-1);
row.add("Totali", 0);
pIII.disable_cell(i-1, -1);
pIII.force_update();
}
}
void TQuadroG::fill_ss(TMask& m)
{
TSheet_field& p1 = (TSheet_field&)m.field(F_P1);
for (int i = 1; i <= RIGHE_P1; i++)
{
TRectype& r = _rel->curr();
TToken_string& row = p1.row(i-1);
TRectype k(LF_QUAGP);
TRecord_array ra(LF_QUAGP,"NPROG");
TSheet_field& p1_I = (TSheet_field&)m.field(F_P1_I);
TSheet_field& p1_II = (TSheet_field&)m.field(F_P1_II);
// Costruisco i nomi dei campi (sono numerati)
TString16 n_datad ("P1DATAD");
n_datad << i;
TString16 n_titol ("P1TITOLO");
n_titol << i;
TString16 n_datap ("P1DATAP");
n_datap << i;
TString16 n_ammq ("P1AMMQ");
n_ammq << i;
TString16 n_numq ("P1NUMQ");
n_numq << i;
TString16 n_amm ("P1AMM");
n_amm << i;
// Leggo i campi
TString datad (r.get(n_datad));
TString titol (r.get(n_titol));
TString datap (r.get(n_datap));
TString ammq (r.get(n_ammq));
TString numq (r.get(n_numq));
TString amm (r.get(n_amm));
row.add(datad);
row.add(titol);
row.add(datap);
row.add(ammq);
row.add(numq);
row.add(amm);
}
if (m.mode() == MODE_MOD)
update_totals(p1,1);
else
// Prospetto 1 - I Utili in denaro
k.put(QGP_CODDITTA,_codditta);
k.put(QGP_PROSPETTO,"1");
k.put(QGP_SEZIONE,"1");
ra.read(k);
if (ra.rows()>0)
{
// Aggiungo la riga per i totali
TToken_string& row = p1.row(i-1);
row.add("Totali", 1);
p1.disable_cell(i-1, -1);
p1.force_update();
const int items = ra.rows();
for (int i = 0; i < items; i++)
{
const TRectype& r = ra.row(i);
TToken_string& t = p1_I.row(i+1);
t.add(r.get(QGP_DATADEL));
t.add(r.get(QGP_UTIL1S));
t.add(r.get(QGP_NUMQUOTE));
t.add(r.get(QGP_UTIL2S));
}
}
//if (m.mode() == MODE_MOD)
// update_totals(p1_I,1);
TRectype& r = _rel->curr();
TToken_string p22(r.get("P22"));
TToken_string p23(r.get("P23"));
TToken_string p24(r.get("P24"));
TToken_string p25(r.get("P25"));
TToken_string p26(r.get("P26"));
TSheet_field& p2 = (TSheet_field&)m.field(F_P2);
for (i = 1; i <= RIGHE_P2; i++)
{
TToken_string& row2 = p2.row(i-1);
row2.add(p2_date_delib[i-1]);
row2.add(p22.get(i-1));
row2.add(p23.get(i-1));
row2.add(p24.get(i-1));
row2.add(p25.get(i-1));
row2.add(p26.get(i-1));
}
if (m.mode() == MODE_MOD)
update_totals(p2,2);
else
// Prospetto 1 - II Utili in natura
k.zero();
k.put(QGP_CODDITTA,_codditta);
k.put(QGP_PROSPETTO,"1");
k.put(QGP_SEZIONE,"2");
ra.read(k);
if (ra.rows()>0)
{
// Aggiungo la riga per i totali
TToken_string& row2 = p2.row(i-1);
row2.add("Totali", 0);
p2.disable_cell(i-1, -1);
p2.force_update();
const int items = ra.rows();
for (int i = 0; i < items; i++)
{
const TRectype& r = ra.row(i);
TToken_string& t = p1_II.row(i+1);
t.add(r.get(QGP_DESCRBENI));
t.add(r.get(QGP_UTIL1S));
}
}
//if (m.mode() == MODE_MOD)
// update_totals(p1_II,2);
TSheet_field& pII = (TSheet_field&)m.field(F_PII);
for (i = 1; i <= RIGHE_PII; i++)
{
TRectype& r = _rel->curr();
TToken_string& row = pII.row(i-1);
// Costruisco i nomi dei campi (sono numerati)
TString16 pII_desc ("P2DESC");
pII_desc << i;
TString16 pII_data ("P2DATA");
pII_data << i;
TString16 pII_val ("P2VAL");
pII_val << i;
// Leggo i campi
TString descr (r.get(pII_desc));
TString datap (r.get(pII_data));
TString valul (r.get(pII_val));
row.add(descr);
row.add(datap);
row.add(valul);
}
if (m.mode() == MODE_MOD)
update_totals(pII,3);
else
// Prospetto 2 - I Utili in denaro
k.zero();
k.put(QGP_CODDITTA,_codditta);
k.put(QGP_PROSPETTO,"2");
k.put(QGP_SEZIONE,"1");
ra.read(k);
if (ra.rows()>0)
{
// Aggiungo la riga per i totali
TToken_string& row = pII.row(i-1);
row.add("Totale utili in natura", 0);
pII.disable_cell(i-1, -1);
pII.force_update();
}
}
int TQuadroG::write(const TMask& m)
{
ss2rel(m);
arr2rel(m);
int err = TRelation_application::write(m);
_registra = err == NOERR;
return err;
}
int TQuadroG::rewrite(const TMask& m)
{
ss2rel(m);
arr2rel(m);
int err = TRelation_application::rewrite(m);
_registra = err == NOERR;
return err;
}
bool TQuadroG::remove()
{
_registra = TRelation_application::remove();
return _registra;
// Prospetto 2 - II Utili in natura
k.zero();
k.put(QGP_CODDITTA,_codditta);
k.put(QGP_PROSPETTO,"2");
k.put(QGP_SEZIONE,"2");
ra.read(k);
if (ra.rows()>0)
{
}
}
bool TQuadroG::p1_notify(TSheet_field& s, int r, KEY k)
@ -691,14 +379,6 @@ bool TQuadroG::p1_notify(TSheet_field& s, int r, KEY k)
__amm_az = row.get(4);
}
break;
// Rifiuta di entrare sull'ultima riga
case K_TAB:
return r < RIGHE_P1;
break;
case K_INS:
if (s.mask().is_running())
return FALSE; // rifiuta inserimento di nuove righe
break;
default:
break;
}
@ -709,65 +389,9 @@ bool TQuadroG::p2_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_SPACE:
break;
case K_ENTER:
update_totals(s, 2);
break;
// Rifiuta di entrare sull'ultima riga
case K_TAB:
return r < RIGHE_P2;
break;
case K_INS:
if (s.mask().is_running())
return FALSE; // rifiuta inserimento di nuove righe
break;
default:
break;
}
return TRUE;
}
bool TQuadroG::pII_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_SPACE:
break;
case K_ENTER:
update_totals(s, 3);
break;
// Rifiuta di entrare sull'ultima riga
case K_TAB:
return r < RIGHE_PII;
break;
case K_INS:
if (s.mask().is_running())
return FALSE; // rifiuta inserimento di nuove righe
break;
default:
break;
}
return TRUE;
}
bool TQuadroG::pIII_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_SPACE:
break;
case K_ENTER:
update_totals(s, 4);
break;
// Rifiuta di entrare sull'ultima riga
case K_TAB:
return r < RIGHE_PIII;
break;
case K_INS:
if (s.mask().is_running())
return FALSE; // rifiuta inserimento di nuove righe
break;
default:
break;
}
@ -778,8 +402,8 @@ bool TQuadroG::mainmsk_handler(TMask& m, KEY k)
{
if (k == K_ESC)
{
TOperable_field& f = m.focus_field();
m.set_focus_field(f.dlg());
}
TOperable_field& f = m.focus_field();
m.set_focus_field(f.dlg());
}
return TRUE;
}

@ -15,44 +15,38 @@
class TQuadroG : public TRelation_application
{
private:
TRelation* _rel;
TMask* _msk;
int _anno_dic; // anno dichiarazione
long _codditta;
TLocalisamfile* _qg;
TTable* _ca7;
TRiporti _rip;
TString16 _quadro;
TString80 _title;
bool _registra, _bUsatoDistinta;
static bool p1_notify(TSheet_field& s, int r, KEY k);
static bool p2_notify(TSheet_field& s, int r, KEY k);
static bool pII_notify(TSheet_field& s, int r, KEY k);
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 bool mainmsk_handler(TMask& m, KEY k);
TRelation* _rel;
TMask* _msk;
long _codditta;
TRiporti _rip;
TString16 _quadro;
TString80 _title;
bool _registra, _bUsatoDistinta;
static bool p1_notify(TSheet_field& s, int r, KEY k);
static bool p2_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 bool mainmsk_handler(TMask& m, KEY k);
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual int read(TMask& m);
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_insert_mode (TMask&);
virtual void init_query_mode (TMask&);
virtual void init_modify_mode (TMask&);
void fill_ss(TMask& m);
void fill_arr(TMask& m);
void ss2rel(const TMask& m);
void arr2rel(const TMask& m);
virtual bool user_create();
virtual bool user_destroy();
virtual int read(TMask& m);
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
void fill_ss(TMask& m);
void ss2rel(const TMask& m);
int read_prospetto_2(const TMask& m);
int write_prospetto_2(const TMask& m, bool force = FALSE);
int remove_prospetto_2();
public:
const char* taitol() { return (const char*)_title; }
TMask& main_mask() const { return (TMask&) *_msk; }
const char* taitol() { return (const char*)_title; }
TMask& main_mask() const { return (TMask&) *_msk; }
TQuadroG(const char quadro='0');
virtual ~TQuadroG() {};
@ -68,11 +62,11 @@ class TDistintaQuadroG : public TRelation_application
int _nproga;
int _mode;
int _anno_dic; // anno dichiarazione
TString80 _title;
TRiporti _rip;
bool _registra;
int _file;
TString16 _quadro;
TString80 _title;
TRiporti _rip;
bool _registra;
int _file;
TString16 _quadro;
private:
static bool nprog_handler (TMask_field& f, KEY key);
@ -92,10 +86,10 @@ class TDistintaQuadroG : public TRelation_application
virtual void init_query_mode (TMask&);
virtual void init_query_insert_mode (TMask&);
virtual void on_config_change();
bool scrivi_dati_per(TRectype& rec);
bool scrivi_dati_per(TRectype& rec);
public:
const char* taitol() { return (const char*)_title; }
const char* taitol() { return (const char*)_title; }
public:
TDistintaQuadroG();
virtual ~TDistintaQuadroG() {};
@ -104,38 +98,38 @@ class TDistintaQuadroG : public TRelation_application
class TQuadroG1 : public TRelation_application
{
private:
TRelation* _rel;
TMask* _msk;
int _anno_dic;
long _codditta;
TLocalisamfile* _qg1;
TTable* _ca7;
TRiporti _rip;
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 mainmsk_handler(TMask& m, KEY k);
TRelation* _rel;
TMask* _msk;
int _anno_dic;
long _codditta;
TLocalisamfile* _qg1;
TTable* _ca7;
TRiporti _rip;
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 mainmsk_handler(TMask& m, KEY k);
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual int rewrite(const TMask& m);
virtual int read(TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
virtual void init_insert_mode (TMask&);
virtual void init_modify_mode (TMask&);
// void init_mask (TMask&);
void fill_arr(TMask& m);
void arr2rel(const TMask& m);
virtual bool user_create();
virtual bool user_destroy();
virtual int rewrite(const TMask& m);
virtual int read(TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
virtual void init_insert_mode (TMask&);
virtual void init_modify_mode (TMask&);
// void init_mask (TMask&);
void fill_arr(TMask& m);
void arr2rel(const TMask& m);
public:
const char* taitol() { return (const char*)_title; }
TMask& main_mask() const { return (TMask&) *_msk; }
const char* taitol() { return (const char*)_title; }
TMask& main_mask() const { return (TMask&) *_msk; }
TQuadroG1();
virtual ~TQuadroG1() {};

@ -1,191 +1,38 @@
// 771234a.h
#define F_CODDITTA 101
#define F_RAGDITTA 102
// Defines per quadro "G"
#define F_CODDITTA 101
#define F_RAGDITTA 102
#define F_P1 127
#define F_P1II_00 128
#define F_P1II_01 129
#define F_P1II_11 130
#define F_P1II_12 131
#define F_P1II_13 132
#define F_P1II_21 133
#define F_P1II_22 134
#define F_P1II_23 135
#define F_P1II_31 136
#define F_P1II_32 137
#define F_P1II_33 138
#define F_P1II_34 139
#define F_P1II_35 140
#define F_P11_1 103
#define F_P11_2 104
#define F_P11_3 105
#define F_P11_4 106
#define F_P12_1 107
#define F_P12_2 108
#define F_P12_3 109
#define F_P12_4 110
#define F_P13_1 111
#define F_P13_2 112
#define F_P13_3 113
#define F_P13_4 114
#define F_P14_1 115
#define F_P14_2 116
#define F_P14_3 117
#define F_P14_4 118
#define F_P15_1 119
#define F_P15_2 120
#define F_P15_3 121
#define F_P15_4 122
#define F_P16_1 123
#define F_P16_2 124
#define F_P16_3 125
#define F_P16_4 126
// Prospetto 1
#define F_P1_I 127
#define F_P1_I_TOT1 128
#define F_P1_I_TOT2 129
#define F_DATADELIB 130
#define F_P1_II 131
#define F_P1_II_TOT 132
#define F_P2IMPQ 133
// Prospetto 2
#define F_P211 141
#define F_P212 142
#define F_P213 143
#define F_P214 144
#define F_P215 145
#define F_P221 146
#define F_P222 147
#define F_P223 148
#define F_P224 149
#define F_P225 150
#define F_P231 151
#define F_P232 152
#define F_P233 153
#define F_P234 154
#define F_P235 155
#define F_P241 156
#define F_P242 157
#define F_P243 158
#define F_P244 159
#define F_P245 160
#define F_P251 161
#define F_P252 162
#define F_P253 163
#define F_P254 164
#define F_P255 165
#define F_P21TOT 166
#define F_P22TOT 167
#define F_P23TOT 168
#define F_P24TOT 169
#define F_P25TOT 170
#define F_P2_I 201
#define F_P2_II 202
#define F_UTILIAP21 203
#define F_UTILI21 204
#define F_UTILIAC21 205
#define F_UTILIAP22 206
#define F_UTILI22 207
#define F_UTILIAC22 208
// Prospetto 3
#define F_P331 171
#define F_P332 172
#define F_P333 173
#define F_P334 174
#define F_P335 175
#define F_P336 176
#define F_P337 177
#define F_P338 178
#define F_P339 179
#define F_P3310 180
#define F_P3311 181
#define F_P3312 182
#define F_P3313 183
#define F_P3314 184
#define F_P3315 185
#define F_P3316 186
#define F_P3317 187
#define F_P3318 188
#define F_P3319 189
#define F_P3320 190
#define F_P31 301
#define F_P32AT 302
#define F_P32AR 303
#define F_P32BT 304
#define F_P32BR 305
#define F_P33A 306
#define F_P33B 307
#define F_P34A 308
#define F_P34B 309
#define F_P3TOT 310
#define F_P321 191
#define F_P322 192
#define F_P323 193
#define F_P324 194
#define F_P325 195
#define F_P371 196
#define F_P372 197
#define F_P373 198
#define F_P374 199
#define F_P375 200
#define F_P351 201
#define F_P352 202
#define F_P353 203
#define F_P354 204
#define F_P355 205
#define F_P356 206
#define F_P357 207
#define F_P358 208
#define F_P359 209
#define F_P3510 210
#define F_P3511 211
#define F_P3512 212
#define F_P3513 213
#define F_P3514 214
#define F_P3515 215
#define F_P3516 216
#define F_P3517 217
#define F_P3518 218
#define F_P3519 219
#define F_P3520 220
#define F_P361 221
#define F_P362 222
#define F_P363 223
#define F_P364 224
#define F_P365 225
#define F_P366 226
#define F_P367 227
#define F_P368 228
#define F_P369 229
#define F_P3610 230
#define F_P3611 231
#define F_P3612 232
#define F_P3613 233
#define F_P3614 234
#define F_P3615 235
#define F_P3616 236
#define F_P3617 237
#define F_P3618 238
#define F_P3619 239
#define F_P3620 240
#define F_P32TOT 241
#define F_P33TOT 242
#define F_P35TOT 243
#define F_P36TOT 244
#define F_P37TOT 245
#define F_P347 246
#define F_P3411 247
#define F_P3414 248
#define F_P3417 249
#define F_P3420 250
// Prospetto 4
#define F_P411 265
#define F_P412 266
#define F_P413 267
#define F_P414 268
#define F_P415 269
#define F_P416 270
#define F_P417 271
#define F_P418 272
#define F_P419 273
#define F_P41TOT 275
#define F_P2 280
#define DLG_DISTINTA 290
#define F_PII 291
#define F_PIII 292
#define F_DATADELIB 293
#define F_DATADISTR 294
#define DLG_AZZERA 295
#define DLG_DISTINTA 400
#define DLG_AZZERA 401

@ -84,7 +84,7 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 1 3 "@bDeterminazione dell'ammontare degli utili"
PROMPT 1 3 "@bUtili dei quali e' stata deliberata la distribuzione nell'anno 1996"
END
TEXT DLG_NULL
@ -92,15 +92,26 @@ BEGIN
PROMPT 1 4 "I - Utili in denaro"
END
SPREADSHEET F_P1 78 5
SPREADSHEET F_P1_I 78 4
BEGIN
PROMPT 0 5 ""
ITEM "Data delib."
ITEM "Titolo distribuzione"
ITEM "Data pagam."
ITEM "Data delibera"
ITEM "Ammontare azione"
ITEM "Numero azioni"
ITEM "Ammontare comp."
ITEM "Ammontare complessivo"
END
NUMBER F_P1_I_TOT1 11
BEGIN
PROMPT 29 10 "Totali "
FLAGS "D"
END
NUMBER F_P1_I_TOT2 17
BEGIN
PROMPT 54 10 ""
PICTURE "."
FLAGS "D"
END
TEXT DLG_NULL
@ -114,264 +125,300 @@ BEGIN
FIELD LF_QUAG->P2DATADE
END
DATE F_DATADISTR
BEGIN
PROMPT 30 12 "Data distribuzione "
FIELD LF_QUAG->P2DATADI
END
SPREADSHEET F_PII 78 5
SPREADSHEET F_P1_II 78 5
BEGIN
PROMPT 0 13 ""
ITEM "Descrizione dei beni distribuiti@35"
ITEM "Data@10"
ITEM "Valore ultimo bilancio@15"
END
NUMBER F_P1II_35 15
NUMBER F_P1_II_TOT 15
BEGIN
PROMPT 1 20 "Importo imputabile a ciascuna quota o azione "
PROMPT 1 19 "Totale utili in natura "
PICTURE "."
FLAGS "D"
END
NUMBER F_P2IMPQ 15
BEGIN
PROMPT 1 20 "Importo imputabile a ciascuna quota o azione "
PICTURE "."
FIELD LF_QUAG->P2IMPQ
END
ENDPAGE
PAGE "Prospetto 2" -1 -1 78 18
#define COL1 0
#define COL2 16
#define COL3 32
#define COL4 48
#define COL5 63
PAGE "Prospetto 2 - I" -1 -1 78 18
TEXT DLG_NULL
BEGIN
PROMPT COL1 1 "@bProspetto utili pagati"
PROMPT 1 1 "@bUtili pagati e ritenute effettuate"
END
SPREADSHEET F_P2 0 8
BEGIN
PROMPT 0 3 ""
ITEM "Delibera@20"
ITEM "Importo@15"
ITEM "Utili corrisp. 31-12-94"
ITEM "Utili da corr. 31-12-94"
ITEM "Utili corrisp. 31-12-95"
ITEM "Utili da corr. 31-12-95"
TEXT DLG_NULL
BEGIN
PROMPT 1 2 "I - Utili in denaro"
END
NUMBER F_UTILIAP21 15
BEGIN
PROMPT 1 4 "Utili anno precedente "
PICTURE "."
FIELD LF_QUAG->UTILIAP21
END
NUMBER F_UTILI21 15
BEGIN
PROMPT 1 5 "Utili deliberati anno in corso "
PICTURE "."
FIELD LF_QUAG->UTILI21
END
NUMBER F_UTILIAC21 15
BEGIN
PROMPT 1 6 "Utili anno in corso "
PICTURE "."
FIELD LF_QUAG->UTILIAC21
END
SPREADSHEET F_P2_I 78 12
BEGIN
PROMPT 0 7 ""
ITEM "Utili I sem. 1996"
ITEM "Utili II sem. 1996"
ITEM "Aliquota"
ITEM "Titolo ritenuta"
ITEM "Ritenute effettuate"
END
ENDPAGE
PAGE "Prospetto 2 - II" -1 -1 78 18
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bUtili pagati e ritenute effettuate"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 2 "II - Utili in natura"
END
NUMBER F_UTILIAP22 15
BEGIN
PROMPT 1 4 "Utili anno precedente "
PICTURE "."
FIELD LF_QUAG->UTILIAP22
END
NUMBER F_UTILI22 15
BEGIN
PROMPT 1 5 "Utili deliberati anno in corso "
PICTURE "."
FIELD LF_QUAG->UTILI22
END
NUMBER F_UTILIAC22 15
BEGIN
PROMPT 1 6 "Utili anno in corso "
PICTURE "."
FIELD LF_QUAG->UTILIAC22
END
SPREADSHEET F_P2_II 78 12
BEGIN
PROMPT 0 7 ""
ITEM "Utili I sem. 1996"
ITEM "Utili II sem. 1996"
ITEM "Aliquota"
ITEM "Titolo ritenuta"
ITEM "Ritenute effettuate"
END
ENDPAGE
PAGE "Prospetto 3" -1 -1 78 18
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bProspetto delle ritenute"
END
SPREADSHEET F_PIII 0 15
BEGIN
PROMPT 0 3 ""
ITEM "Delibera@21"
ITEM "Utili corr. nel 1995"
ITEM "Importo"
ITEM "Aliquota"
ITEM "Rit.acconto"
ITEM "Rit.imposta"
ITEM "Utili non assog.a ritenuta"
END
ENDPAGE
#define CP31 1
#define CP32 12
#define CP33 29
#define CP34 52
#define CP35 63
PAGE "Prospetto 4" -1 -1 78 18
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bProspetto dei versamenti delle ritenute"
PROMPT 1 1 "@bRitenute versate"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 3 "Causale dei versamenti"
PROMPT 31 3 "Causale dei versamenti"
END
TEXT DLG_NULL
BEGIN
PROMPT CP35 3 "Importo versato"
PROMPT 63 3 "Importo versato"
END
NUMBER F_P411 15
NUMBER F_P31 15
BEGIN
PROMPT CP35 5 ""
PROMPT 63 5 ""
PICTURE "."
FIELD LF_QUAG->P421
MESSAGE K_TAB,F_P41TOT
FIELD LF_QUAG->P31
MESSAGE K_TAB,F_P3TOT
END
NUMBER F_P412 15
NUMBER F_P32AT 15
BEGIN
PROMPT CP35 8 ""
PROMPT 63 7 ""
PICTURE "."
FIELD LF_QUAG->P422
MESSAGE K_TAB,F_P41TOT
FIELD LF_QUAG->P32AT
MESSAGE K_TAB,F_P3TOT
END
NUMBER F_P413 15
NUMBER F_P32AR 15
BEGIN
PROMPT CP35 9 ""
PROMPT 63 8 ""
PICTURE "."
FIELD LF_QUAG->P423
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P414 15
BEGIN
PROMPT CP35 11 ""
PICTURE "."
FIELD LF_QUAG->P424
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P415 15
BEGIN
PROMPT CP35 12 ""
PICTURE "."
FIELD LF_QUAG->P425
MESSAGE K_TAB,F_P41TOT
FIELD LF_QUAG->P32AR
MESSAGE K_TAB,F_P3TOT
END
NUMBER F_P416 15
NUMBER F_P32BT 15
BEGIN
PROMPT CP35 13 ""
PROMPT 63 9 ""
PICTURE "."
FIELD LF_QUAG->P426
MESSAGE K_TAB,F_P41TOT
FIELD LF_QUAG->P32BT
MESSAGE K_TAB,F_P3TOT
END
NUMBER F_P417 15
NUMBER F_P32BR 15
BEGIN
PROMPT CP35 14 ""
PROMPT 63 10 ""
PICTURE "."
FIELD LF_QUAG->P427
MESSAGE K_TAB,F_P41TOT
FIELD LF_QUAG->P32BR
MESSAGE K_TAB,F_P3TOT
END
NUMBER F_P418 15
NUMBER F_P33A 15
BEGIN
PROMPT CP35 17 ""
PROMPT 63 13 ""
PICTURE "."
FIELD LF_QUAG->P428
MESSAGE K_TAB,F_P41TOT
FIELD LF_QUAG->P33A
MESSAGE K_TAB,F_P3TOT
END
NUMBER F_P419 15
NUMBER F_P33B 15
BEGIN
PROMPT CP35 18 ""
PROMPT 63 14 ""
PICTURE "."
FIELD LF_QUAG->P429
MESSAGE K_TAB,F_P41TOT
FIELD LF_QUAG->P33B
MESSAGE K_TAB,F_P3TOT
END
NUMBER F_P41TOT 15
NUMBER F_P34A 15
BEGIN
PROMPT CP35 19 ""
PROMPT 63 16 ""
PICTURE "."
FIELD LF_QUAG->P34A
MESSAGE K_TAB,F_P3TOT
END
NUMBER F_P34B 15
BEGIN
PROMPT 63 17 ""
PICTURE "."
FIELD LF_QUAG->P34B
MESSAGE K_TAB,F_P3TOT
END
NUMBER F_P3TOT 15
BEGIN
PROMPT 63 19 ""
PICTURE "."
FLAGS "D"
FIELD LF_QUAG->P42TOT
NUM_CALC {#F_P411+#F_P412+#F_P413+#F_P414-#F_P415+#F_P416-#F_P417+#F_P418+#F_P419}
NUM_CALC {#F_P31+#F_P32AT-#F_P32AR+#F_P32BT-#F_P32BR+#F_P33A+#F_P33B+#F_P34A+#F_P34B}
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 4 "1) Ritenute 10% sugli utili di cui e' stata "
PROMPT 1 4 "Sez. 1) Ritenute 10% sugli utili in denaro di cui e' stata "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 5 " deliberata la distribuzione nel 1995"
PROMPT 1 5 " deliberata la distribuzione nell'anno 1996."
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 6 "2) Ritenute 10%,12,50,15%,30%,32,4% o 50% sugli utili"
PROMPT 1 6 "Sez. 2) Maggiori ritenute sugli utili in denaro corrisposti:"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 7 " in denaro o in natura, su azioni di risparmio ..."
PROMPT 1 7 " a) nel primo semestre 1996"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 8 " a) effettuate nel primo semestre 1995 "
PROMPT 1 8 " meno recuperi "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 9 " b) effettuate nel secondo semestre 1995 "
PROMPT 1 9 " b) nel secondo semestre 1996"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 10 "3) Versamento di conguaglio su utili in denaro "
PROMPT 1 10 " meno recuperi"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 11 " a) effettuate nel primo semestre 1995 "
PROMPT 1 11 "Sez. 3) Ritenute, d'acconto o d'imposta sugli utili"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 12 " meno recuperi "
PROMPT 1 12 " in natura corrisposti:"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 13 " b) effettuate nel secondo semestre 1995 "
PROMPT 1 13 " a) effettuate nel primo semestre 1996"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 14 " meno recuperi "
PROMPT 1 14 " b) effettuate nel secondo semestre 1996"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 15 "4) Ritenuta 10% sugli utili corrisposti da società"
PROMPT 1 15 "Sez. 4) Ritenuta d'imposta del 10% sugli utili corrisposti"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 16 " cooperative ai soci persone fisiche "
PROMPT 1 16 " da societa' cooperative ai soci persone fisiche "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 17 " a) effettuate nel primo semestre 1995 "
PROMPT 1 17 " a) effettuate nel primo semestre 1996"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 18 " b) effettuate nel secondo semestre 1995 "
PROMPT 1 18 " b) effettuate nel secondo semestre 1996"
END
TEXT DLG_NULL
BEGIN
PROMPT CP34 19 "@bTotale"
PROMPT 52 19 "@bTotale"
END
ENDPAGE
ENDMASK
#include "771234b.uml"
#include "77_g_p2.uml"
#include "771234c.uml"
#include "77_g_p3.uml"
#include "771234b.uml" // Maschera spreadsheet prospetto 1 - I
#include "771234c.uml" // Maschera spreadsheet prospetto 1 - II
#include "771234d.uml" // Maschera spreadsheet prospetto 2 - I
#include "771234e.uml" // Maschera spreadsheet prospetto 2 - II

@ -8,32 +8,20 @@ BEGIN
GROUP 1
END
STRING 102 18
BEGIN
PROMPT 1 2 "Titolo distribuzione "
GROUP 1
END
DATE 103
BEGIN
PROMPT 1 3 "Data pagamento utili "
GROUP 1
END
NUMBER 104 15
NUMBER 102 15
BEGIN
PROMPT 1 4 "Ammontare azione o quota "
PICTURE "."
GROUP 1
END
NUMBER 105 9
NUMBER 103 9
BEGIN
PROMPT 1 5 "Numero azioni e quote "
GROUP 1
END
NUMBER 106 15
NUMBER 104 15
BEGIN
PROMPT 1 6 "Ammontare complessivo "
PICTURE "."

@ -1,44 +1,16 @@
// 771234c.uml - Quadro G prospetto 2
// 771234c.uml - Quadro G prospetto 1-II
PAGE "" -1 -1 76 12
PAGE "" -1 -1 76 7
STRING 101 35
BEGIN
PROMPT 1 1 "Delibera "
FLAGS "D"
PROMPT 1 1 "Descrizione dei beni distribuiti "
GROUP 1
END
NUMBER 102 15
BEGIN
PROMPT 1 3 "Importo "
PICTURE "."
GROUP 1
END
NUMBER 103 15
BEGIN
PROMPT 1 4 "Utili corrisposti fino al 31-12-94 "
PICTURE "."
GROUP 1
END
NUMBER 104 15
BEGIN
PROMPT 1 5 "Utili da corrispondere al 31-12-94 "
PICTURE "."
GROUP 1
END
NUMBER 105 15
BEGIN
PROMPT 1 6 "Utili corrisposti nel 1995 "
PICTURE "."
GROUP 1
END
NUMBER 106 15
BEGIN
PROMPT 1 7 "Utili da corrispondere al 31-12-95 "
PROMPT 1 3 "Valore ultimo bilancio "
PICTURE "."
GROUP 1
END

60
m770/771234d.uml Executable file

@ -0,0 +1,60 @@
// 771234d.uml - Quadro G prospetto 2-I
PAGE "" -1 -1 76 11
NUMBER 101 15
BEGIN
PROMPT 1 2 "Utili corrisposti I sem. 1996 "
PICTURE "."
GROUP 1
END
NUMBER 102 15
BEGIN
PROMPT 1 3 "Utili corrisposti II sem. 1996 "
PICTURE "."
GROUP 1
END
NUMBER 103 6
BEGIN
PROMPT 1 4 "Aliquota "
PICTURE ".2"
FLAGS "D"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
END
LISTBOX 104 7
BEGIN
PROMPT 1 5 "Titolo della ritenuta "
ITEM "A|Acconto"
ITEM "I|Imposta"
END
NUMBER 105 15
BEGIN
PROMPT 1 6 "Ritenute effettuate "
PICTURE "."
GROUP 1
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_AZZERA 9 2
BEGIN
PROMPT -33 -1 "A~zzera"
MESSAGE RESET,1@
END
ENDPAGE
ENDMASK

60
m770/771234e.uml Executable file

@ -0,0 +1,60 @@
// 771234d.uml - Quadro G prospetto 2-II
PAGE "" -1 -1 76 11
NUMBER 101 15
BEGIN
PROMPT 1 2 "Utili corrisposti I sem. 1996 "
PICTURE "."
GROUP 1
END
NUMBER 102 15
BEGIN
PROMPT 1 3 "Utili corrisposti II sem. 1996 "
PICTURE "."
GROUP 1
END
NUMBER 103 6
BEGIN
PROMPT 1 4 "Aliquota "
PICTURE ".2"
FLAGS "D"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
END
LISTBOX 104 7
BEGIN
PROMPT 1 5 "Titolo della ritenuta "
ITEM "A|Acconto"
ITEM "I|Imposta"
END
NUMBER 105 15
BEGIN
PROMPT 1 6 "Ritenute effettuate "
PICTURE "."
GROUP 1
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_AZZERA 9 2
BEGIN
PROMPT -33 -1 "A~zzera"
MESSAGE RESET,1@
END
ENDPAGE
ENDMASK

@ -1841,14 +1841,14 @@ void TRiporti::calcola_riporti_G(TCursor* cur, const long dich)
TRecnotype items = cur->items();
// Legge quadro G
i24_2 = cur->curr().get_real(QG_P1NUMQT);
i24_3 = cur->curr().get_real(QG_P1AMMT);
i24_4 = cur->curr().get_real(QG_P2VALT);
i24_5 = cur->curr().get_real(QG_P22TOT);
i24_6 = cur->curr().get_real(QG_P33TOT);
i24_7 = cur->curr().get_real(QG_P35TOT);
i24_8 = cur->curr().get_real(QG_P36TOT);
i24_9 = cur->curr().get_real(QG_P37TOT);
//i24_2 = cur->curr().get_real(QG_P1NUMQT);
//i24_3 = cur->curr().get_real(QG_P1AMMT);
//i24_4 = cur->curr().get_real(QG_P2VALT);
//i24_5 = cur->curr().get_real(QG_P22TOT);
//i24_6 = cur->curr().get_real(QG_P33TOT);
//i24_7 = cur->curr().get_real(QG_P35TOT);
//i24_8 = cur->curr().get_real(QG_P36TOT);
//i24_9 = cur->curr().get_real(QG_P37TOT);
almeno_una_riga_prospetti = i24_2 != ZERO || i24_3 != ZERO
|| i24_4 != ZERO
|| i24_5 != ZERO || i24_6 != ZERO || i24_7 != ZERO

@ -1,82 +1,19 @@
// quadrog.h
#define QG_CODDITTA "CODDITTA"
#define QG_P1DATAD1 "P1DATAD1"
#define QG_P1DATAD2 "P1DATAD2"
#define QG_P1DATAD3 "P1DATAD3"
#define QG_P1DATAD4 "P1DATAD4"
#define QG_P1TITOLO1 "P1TITOLO1"
#define QG_P1TITOLO2 "P1TITOLO2"
#define QG_P1TITOLO3 "P1TITOLO3"
#define QG_P1TITOLO4 "P1TITOLO4"
#define QG_P1DATAP1 "P1DATAP1"
#define QG_P1DATAP2 "P1DATAP2"
#define QG_P1DATAP3 "P1DATAP3"
#define QG_P1DATAP4 "P1DATAP4"
#define QG_P1AMMQ1 "P1AMMQ1"
#define QG_P1AMMQ2 "P1AMMQ2"
#define QG_P1AMMQ3 "P1AMMQ3"
#define QG_P1AMMQ4 "P1AMMQ4"
#define QG_P1NUMQ1 "P1NUMQ1"
#define QG_P1NUMQ2 "P1NUMQ2"
#define QG_P1NUMQ3 "P1NUMQ3"
#define QG_P1NUMQ4 "P1NUMQ4"
#define QG_P1AMM1 "P1AMM1"
#define QG_P1AMM2 "P1AMM2"
#define QG_P1AMM3 "P1AMM3"
#define QG_P1AMM4 "P1AMM4"
#define QG_P1NUMQT "P1NUMQT"
#define QG_P1AMMT "P1AMMT"
#define QG_UTILIAP21 "UTILIAP21"
#define QG_UTILIAP22 "UTILIAP22"
#define QG_UTILI21 "UTILI21"
#define QG_UTILI22 "UTILI22"
#define QG_UTILIAC21 "UTILIAC21"
#define QG_UTILIAC22 "UTILIAC22"
#define QG_P2DATADE "P2DATADE"
#define QG_P2DATADI "P2DATADI"
#define QG_P2DESC1 "P2DESC1"
#define QG_P2DESC2 "P2DESC2"
#define QG_P2DESC3 "P2DESC3"
#define QG_P2DATA1 "P2DATA1"
#define QG_P2DATA2 "P2DATA2"
#define QG_P2DATA3 "P2DATA3"
#define QG_P2VAL1 "P2VAL1"
#define QG_P2VAL2 "P2VAL2"
#define QG_P2VAL3 "P2VAL3"
#define QG_P2VALT "P2VALT"
#define QG_P2IMPQ "P2IMPQ"
#define QG_P22 "P22"
#define QG_P23 "P23"
#define QG_P24 "P24"
#define QG_P25 "P25"
#define QG_P26 "P26"
#define QG_P22TOT "P22TOT"
#define QG_P23TOT "P23TOT"
#define QG_P24TOT "P24TOT"
#define QG_P25TOT "P25TOT"
#define QG_P26TOT "P26TOT"
#define QG_P31 "P31"
#define QG_P32AT "P32AT"
#define QG_P32AR "P32AR"
#define QG_P32BT "P32BT"
#define QG_P32BR "P32BR"
#define QG_P33A "P33A"
#define QG_P33B "P33B"
#define QG_P33TOT "P33TOT"
#define QG_P35A "P35A"
#define QG_P35B "P35B"
#define QG_P35TOT "P35TOT"
#define QG_P36A "P36A"
#define QG_P36B "P36B"
#define QG_P36TOT "P36TOT"
#define QG_P321 "P321"
#define QG_P322 "P322"
#define QG_P323 "P323"
#define QG_P324 "P324"
#define QG_P325 "P325"
#define QG_P32TOT "P32TOT"
#define QG_P371 "P371"
#define QG_P372 "P372"
#define QG_P373 "P373"
#define QG_P374 "P374"
#define QG_P375 "P375"
#define QG_P37TOT "P37TOT"
#define QG_P421 "P421"
#define QG_P422 "P422"
#define QG_P423 "P423"
#define QG_P424 "P424"
#define QG_P425 "P425"
#define QG_P426 "P426"
#define QG_P427 "P427"
#define QG_P428 "P428"
#define QG_P429 "P429"
#define QG_P42TOT "P42TOT"
#define QG_P34A "P34A"
#define QG_P34B "P34B"

14
m770/quadrogp.h Executable file

@ -0,0 +1,14 @@
// quadrogp.h
#define QGP_CODDITTA "CODDITTA"
#define QGP_PROSPETTO "PROSPETTO"
#define QGP_SEZIONE "SEZIONE"
#define QGP_NPROG "NPROG"
#define QGP_DATADEL "DATADEL"
#define QGP_NUMQUOTE "NUMQUOTE"
#define QGP_DESCRBENI "DESCRBENI"
#define QGP_UTIL1S "UTIL1S"
#define QGP_UTIL2S "UTIL2S"
#define QGP_ALIQUOTA "ALIQUOTA"
#define QGP_TITOLO "TITOLO"
#define QGP_ROPE "ROPE"