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

View File

@ -9,85 +9,35 @@
#include <defmask.h> #include <defmask.h>
#include "quadrog.h" #include "quadrog.h"
#include "quadrogp.h"
#include "77lib.h" #include "77lib.h"
#include "774200.h" #include "774200.h"
#include "771234a.h" // G #include "771234a.h" // G
#include "771232.h" #include "771232.h"
/////////////////////////////////////////////////////////////////////////////////////////////
//
// Lista modifiche:
//
// 17.4.96 Corretto scambio di colonne nel prospetto 3 in scrittura
//
//
/////////////////////////////////////////////////////////////////////////////////////////////
// Descrizioni prospetto 3 // Aliquote prospetti 2 (I e II)
HIDDEN const char* p3_date_delib[20] = HIDDEN const char* aliq[8] =
{
"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] =
{ {
"10", "10",
"12.5", "10",
"12.50",
"12.50",
"15", "15",
"30",
"32.4",
"50",
"10",
"15", "15",
"30", "34.40",
"10", "34.40"
"30",
"5",
"30",
"8",
"15"
}; };
// Date prospetto 2 HIDDEN const int RIGHE_P1_I = 3;
HIDDEN const char* p2_date_delib[5] = HIDDEN const int RIGHE_P1_II = 3;
{ HIDDEN const int RIGHE_P2_I = 20;
"1-1-1976/31-12-1995", HIDDEN const int RIGHE_P2_II = 20;
"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 char* DISTINTA_APP = "771mod -6 4";
#define NUM_AZ 105 #define AMM_AZ 102
#define AMM_AZ 104 #define NUM_AZ 103
#define AMM_COMP 106 #define AMM_COMP 104
HIDDEN real __amm_az = ZERO; HIDDEN real __amm_az = ZERO;
HIDDEN real __num_az = ZERO; HIDDEN real __num_az = ZERO;
@ -115,20 +65,51 @@ int TQuadroG::read(TMask& m)
if (err == NOERR) if (err == NOERR)
{ {
fill_ss(m); fill_ss(m);
fill_arr(m); err = read_prospetto_2(m);
} }
return err; return err;
} }
void TQuadroG::init_insert_mode (TMask& m) int TQuadroG::write(const TMask& m)
{ {
fill_ss(m); //ss2rel(m);
fill_arr(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) 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) void TQuadroG::update_totals(TSheet_field& f, int ss)
{ {
int i = 0; int i = 0;
TMask& m = f.mask();
switch (ss) switch (ss)
{ {
case 1: case 1:
{ {
real tot_numq, tot_amm; real tot_numq, tot_amm;
tot_numq = tot_amm = ZERO; tot_numq = tot_amm = ZERO;
TSheet_field& p1 = f; const int items = f.items();
// Calcolo il totale // Calcolo il totale
for (i = 0; i < RIGHE_P1; i++) for (i = 0; i < items; i++)
{ {
TToken_string& r = p1.row(i); TToken_string& r = f.row(i);
real numq(r.get(4)); real numq(r.get(2));
real amm (r.get(5)); real amm (r.get(3));
tot_numq += numq; tot_numq += numq;
tot_amm += amm; tot_amm += amm;
} }
// Setto le celle di totale // totali...
TToken_string& row = p1.row(i); m.set(F_P1_I_TOT1,tot_numq);
row.add(tot_numq.string(), 4); m.set(F_P1_I_TOT2,tot_amm);
row.add(tot_amm.string(), 5);
p1.force_update(i);
} }
break; break;
case 2: 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; real tot_valult;
tot_valult = ZERO; const int items = f.items();
TSheet_field& pII = f;
// Calcolo il totale // Calcolo il totale
for (i = 0; i < RIGHE_PII; i++) for (i = 0; i < items; i++)
{ {
TToken_string& r = pII.row(i); TToken_string& r = f.row(i);
real val(r.get(2)); real val(r.get(1));
tot_valult += val; tot_valult += val;
} }
// Setto le celle di totale // totali...
TToken_string& row = pII.row(i); m.set(F_P1_II_TOT,tot_valult);
row.add(tot_valult.string(), 2);
pII.force_update(i);
}
break;
case 4:
{
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++)
{
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;
}
// 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);
} }
break; break;
default: default:
@ -258,14 +175,10 @@ bool TQuadroG::calc_amm(TMask_field& f, KEY k)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
real amm_az(m.get(AMM_AZ)); 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); real rNumAz = m.get_real(NUM_AZ);
bool ricalcola = FALSE; bool ricalcola = FALSE;
real amm_comp(m.get(AMM_COMP)); real amm_comp(m.get(AMM_COMP));
// Determina se uno dei valori e' stato modificato
ricalcola = ( (__amm_az != amm_az) || (__num_az != rNumAz) ); ricalcola = ( (__amm_az != amm_az) || (__num_az != rNumAz) );
// Se non e' stato cambiato non toccare il totale gia' impostato
if (!ricalcola && amm_comp != ZERO) if (!ricalcola && amm_comp != ZERO)
return TRUE; return TRUE;
@ -297,6 +210,7 @@ bool TQuadroG::user_create()
{ {
_msk = new TMask("771234a"); _msk = new TMask("771234a");
_rel = new TRelation(LF_QUAG); _rel = new TRelation(LF_QUAG);
_rel->add(LF_QUAGP,"CODDITTA=CODDITTA");
_codditta = get_firm_770(); _codditta = get_firm_770();
_msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar
_msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar _msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar
@ -304,16 +218,16 @@ bool TQuadroG::user_create()
_msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar
_msk->set_handler(DLG_DISTINTA, exec_distinta); _msk->set_handler(DLG_DISTINTA, exec_distinta);
_msk->set_handler(mainmsk_handler); _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.set_notify(p1_notify);
p1.sheet_mask().set_handler(NUM_AZ, calc_amm); p1.sheet_mask().set_handler(NUM_AZ, calc_amm);
p1.sheet_mask().set_handler(AMM_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); p2.set_notify(p2_notify);
TSheet_field& pII = (TSheet_field&) _msk->field(F_PII); p2.set_append(FALSE);
pII.set_notify(pII_notify); //TSheet_field& pIII = (TSheet_field&) _msk->field(F_PIII);
TSheet_field& pIII = (TSheet_field&) _msk->field(F_PIII); //pIII.set_notify(pIII_notify);
pIII.set_notify(pIII_notify);
return TRUE; return TRUE;
} }
@ -325,82 +239,24 @@ bool TQuadroG::user_destroy()
return TRUE; 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) 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(); 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); TToken_string& r = p1_I.row(i);
TString datad (r.get(0)); datad = r.get(0);
TString titol (r.get()); ammq = r.get();
TString datap (r.get()); numq = r.get();
TString ammq (r.get()); amm = r.get();
TString numq (r.get());
TString amm (r.get());
// Costruisco i nomi dei campi (sono numerati) // Costruisco i nomi dei campi (sono numerati)
TString16 n_datad ("P1DATAD"); TString16 n_datad ("P1DATAD");
n_datad << i+1; n_datad << i+1;
TString16 n_titol ("P1TITOLO");
n_titol << i+1;
TString16 n_datap ("P1DATAP");
n_datap << i+1;
TString16 n_ammq ("P1AMMQ"); TString16 n_ammq ("P1AMMQ");
n_ammq << i+1; n_ammq << i+1;
TString16 n_numq ("P1NUMQ"); TString16 n_numq ("P1NUMQ");
@ -410,269 +266,101 @@ void TQuadroG::ss2rel(const TMask& m)
// Scrivo i suddetti campi nella relazione // Scrivo i suddetti campi nella relazione
rec.put(n_datad, datad); rec.put(n_datad, datad);
rec.put(n_titol, titol);
rec.put(n_datap, datap);
rec.put(n_ammq, ammq); rec.put(n_ammq, ammq);
rec.put(n_numq, numq); rec.put(n_numq, numq);
rec.put(n_amm, amm); 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 // Prospetto 1 - II Utili in natura
TSheet_field& pII = (TSheet_field&)m.field(F_PII); TSheet_field& p1_II = (TSheet_field&)m.field(F_P1_II);
// TRectype& rec = _rel->curr();
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 descr (r.get(0));
TString datad (r.get());
TString val (r.get()); TString val (r.get());
// Costruisco i nomi dei campi (sono numerati) // Costruisco i nomi dei campi (sono numerati)
TString16 n_descr ("P2DESC"); TString16 n_descr ("P2DESC");
n_descr << i+1; n_descr << i+1;
TString16 n_data ("P2DATA");
n_data << i+1;
TString16 n_val ("P2VAL"); TString16 n_val ("P2VAL");
n_val << i+1; n_val << i+1;
// Scrivo i suddetti campi nella relazione // Scrivo i suddetti campi nella relazione
rec.put(n_descr, descr); rec.put(n_descr, descr);
rec.put(n_data, datad);
rec.put(n_val, val); 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) void TQuadroG::fill_ss(TMask& m)
{ {
TSheet_field& p1 = (TSheet_field&)m.field(F_P1); TRectype k(LF_QUAGP);
for (int i = 1; i <= RIGHE_P1; i++) 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);
// 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)
{ {
TRectype& r = _rel->curr(); const int items = ra.rows();
TToken_string& row = p1.row(i-1); for (int i = 0; i < items; i++)
// 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
{ {
// Aggiungo la riga per i totali const TRectype& r = ra.row(i);
TToken_string& row = p1.row(i-1); TToken_string& t = p1_I.row(i+1);
row.add("Totali", 1); t.add(r.get(QGP_DATADEL));
p1.disable_cell(i-1, -1); t.add(r.get(QGP_UTIL1S));
p1.force_update(); t.add(r.get(QGP_NUMQUOTE));
} t.add(r.get(QGP_UTIL2S));
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
{
// 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();
}
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
{
// 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();
} }
} }
//if (m.mode() == MODE_MOD)
// update_totals(p1_I,1);
int TQuadroG::write(const TMask& m) // 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)
{ {
ss2rel(m); const int items = ra.rows();
arr2rel(m); for (int i = 0; i < items; i++)
int err = TRelation_application::write(m); {
_registra = err == NOERR; const TRectype& r = ra.row(i);
return err; 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);
// 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)
{
} }
int TQuadroG::rewrite(const TMask& m) // 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)
{ {
ss2rel(m);
arr2rel(m);
int err = TRelation_application::rewrite(m);
_registra = err == NOERR;
return err;
} }
bool TQuadroG::remove()
{
_registra = TRelation_application::remove();
return _registra;
} }
bool TQuadroG::p1_notify(TSheet_field& s, int r, KEY k) 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); __amm_az = row.get(4);
} }
break; 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: default:
break; break;
} }
@ -709,65 +389,9 @@ bool TQuadroG::p2_notify(TSheet_field& s, int r, KEY k)
{ {
switch(k) switch(k)
{ {
case K_SPACE:
break;
case K_ENTER: case K_ENTER:
update_totals(s, 2); update_totals(s, 2);
break; 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: default:
break; break;
} }

View File

@ -17,18 +17,13 @@ class TQuadroG : public TRelation_application
private: private:
TRelation* _rel; TRelation* _rel;
TMask* _msk; TMask* _msk;
int _anno_dic; // anno dichiarazione
long _codditta; long _codditta;
TLocalisamfile* _qg;
TTable* _ca7;
TRiporti _rip; TRiporti _rip;
TString16 _quadro; TString16 _quadro;
TString80 _title; TString80 _title;
bool _registra, _bUsatoDistinta; bool _registra, _bUsatoDistinta;
static bool p1_notify(TSheet_field& s, int r, KEY k); static bool p1_notify(TSheet_field& s, int r, KEY k);
static bool p2_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 calc_amm(TMask_field& f, KEY k);
static bool exec_distinta(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);
@ -43,13 +38,12 @@ class TQuadroG : public TRelation_application
virtual TRelation* get_relation() const { return _rel; } virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; } virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; } virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_insert_mode (TMask&);
virtual void init_query_mode (TMask&); virtual void init_query_mode (TMask&);
virtual void init_modify_mode (TMask&);
void fill_ss(TMask& m); void fill_ss(TMask& m);
void fill_arr(TMask& m);
void ss2rel(const TMask& m); void ss2rel(const TMask& m);
void arr2rel(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: public:
const char* taitol() { return (const char*)_title; } const char* taitol() { return (const char*)_title; }
TMask& main_mask() const { return (TMask&) *_msk; } TMask& main_mask() const { return (TMask&) *_msk; }

View File

@ -1,191 +1,38 @@
// 771234a.h // 771234a.h
// Defines per quadro "G"
#define F_CODDITTA 101 #define F_CODDITTA 101
#define F_RAGDITTA 102 #define F_RAGDITTA 102
#define F_P1 127 // Prospetto 1
#define F_P1II_00 128 #define F_P1_I 127
#define F_P1II_01 129 #define F_P1_I_TOT1 128
#define F_P1II_11 130 #define F_P1_I_TOT2 129
#define F_P1II_12 131 #define F_DATADELIB 130
#define F_P1II_13 132 #define F_P1_II 131
#define F_P1II_21 133 #define F_P1_II_TOT 132
#define F_P1II_22 134 #define F_P2IMPQ 133
#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 2 // Prospetto 2
#define F_P211 141 #define F_P2_I 201
#define F_P212 142 #define F_P2_II 202
#define F_P213 143 #define F_UTILIAP21 203
#define F_P214 144 #define F_UTILI21 204
#define F_P215 145 #define F_UTILIAC21 205
#define F_UTILIAP22 206
#define F_P221 146 #define F_UTILI22 207
#define F_P222 147 #define F_UTILIAC22 208
#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
// Prospetto 3 // Prospetto 3
#define F_P331 171 #define F_P31 301
#define F_P332 172 #define F_P32AT 302
#define F_P333 173 #define F_P32AR 303
#define F_P334 174 #define F_P32BT 304
#define F_P335 175 #define F_P32BR 305
#define F_P336 176 #define F_P33A 306
#define F_P337 177 #define F_P33B 307
#define F_P338 178 #define F_P34A 308
#define F_P339 179 #define F_P34B 309
#define F_P3310 180 #define F_P3TOT 310
#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_P321 191 #define DLG_DISTINTA 400
#define F_P322 192 #define DLG_AZZERA 401
#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

View File

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

View File

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

View File

@ -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 STRING 101 35
BEGIN BEGIN
PROMPT 1 1 "Delibera " PROMPT 1 1 "Descrizione dei beni distribuiti "
FLAGS "D" GROUP 1
END END
NUMBER 102 15 NUMBER 102 15
BEGIN BEGIN
PROMPT 1 3 "Importo " PROMPT 1 3 "Valore ultimo bilancio "
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 "
PICTURE "." PICTURE "."
GROUP 1 GROUP 1
END END

60
m770/771234d.uml Executable file
View 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
View 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

View File

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

View File

@ -1,82 +1,19 @@
// quadrog.h // quadrog.h
#define QG_CODDITTA "CODDITTA" #define QG_CODDITTA "CODDITTA"
#define QG_P1DATAD1 "P1DATAD1" #define QG_UTILIAP21 "UTILIAP21"
#define QG_P1DATAD2 "P1DATAD2" #define QG_UTILIAP22 "UTILIAP22"
#define QG_P1DATAD3 "P1DATAD3" #define QG_UTILI21 "UTILI21"
#define QG_P1DATAD4 "P1DATAD4" #define QG_UTILI22 "UTILI22"
#define QG_P1TITOLO1 "P1TITOLO1" #define QG_UTILIAC21 "UTILIAC21"
#define QG_P1TITOLO2 "P1TITOLO2" #define QG_UTILIAC22 "UTILIAC22"
#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_P2DATADE "P2DATADE" #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_P2IMPQ "P2IMPQ"
#define QG_P22 "P22" #define QG_P31 "P31"
#define QG_P23 "P23" #define QG_P32AT "P32AT"
#define QG_P24 "P24" #define QG_P32AR "P32AR"
#define QG_P25 "P25" #define QG_P32BT "P32BT"
#define QG_P26 "P26" #define QG_P32BR "P32BR"
#define QG_P22TOT "P22TOT"
#define QG_P23TOT "P23TOT"
#define QG_P24TOT "P24TOT"
#define QG_P25TOT "P25TOT"
#define QG_P26TOT "P26TOT"
#define QG_P33A "P33A" #define QG_P33A "P33A"
#define QG_P33B "P33B" #define QG_P33B "P33B"
#define QG_P33TOT "P33TOT" #define QG_P34A "P34A"
#define QG_P35A "P35A" #define QG_P34B "P34B"
#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"

14
m770/quadrogp.h Executable file
View 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"