Gestione quadro a3

git-svn-id: svn://10.65.10.50/trunk@3230 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-07-24 09:35:55 +00:00
parent 479c93ab42
commit ab98c8bcf7

View File

@ -1,3 +1,4 @@
// Stampa quadro
#include <xvt.h>
#include <applicat.h>
@ -69,8 +70,6 @@ HIDDEN const int HEADER_QUARTA = 14; // 15 col righello...
typedef enum { PRIMA=1, SECONDA, TERZA, QUARTA } PaginaQuadro;
typedef enum { fisiche, nofisiche } TipoPagina;
// Stampa quadro
///////////////////////////////////////////////////////////////////////////////////////////
//
// Quadro D
@ -82,6 +81,7 @@ class TDicForm : public TForm
private:
real _f_tot_totale, _f_tot_snsrit, _f_tot_impon, _f_tot_impor, _f_tot_netto;
real _nf_tot_totale, _nf_tot_snsrit, _nf_tot_impon, _nf_tot_impor, _nf_tot_netto;
void aggiorna_totali_C(const char tipo);
void aggiorna_totali_D(const char tipo);
void aggiorna_totali_D1(const char tipo);
void aggiorna_totali_E(const char tipo);
@ -863,11 +863,48 @@ void TDicForm::aggiorna_totali_D1(const char tipo)
}
}
void TDicForm::aggiorna_totali_C(const char tipo)
{
real totale, netto, impon, nsrit, impor;
TCursor* cur = cursor();
TRectype& crr = cur->curr();
totale = crr.get_real(QUD_TOTALE);
netto = crr.get_real(QUD_NETTO);
impon = crr.get_real(QUD_IMPONIBILE);
impor = crr.get_real(QUD_IMPORTO);
nsrit = crr.get_real(QUD_SOMME);
if (tipo == 'F')
{
_f_tot_totale += totale;
_f_tot_netto += netto;
_f_tot_impon += impon;
_f_tot_snsrit += nsrit;
_f_tot_impor += impor;
}
else
{
_nf_tot_totale += totale;
_nf_tot_netto += netto;
_nf_tot_impon += impon;
_nf_tot_snsrit += nsrit;
_nf_tot_impor += impor;
}
}
void TDicForm::aggiorna_totali(const char tipo)
{
if (_quadro == "C")
aggiorna_totali_C(tipo);
if (_quadro == "D")
aggiorna_totali_D(tipo);
if (_quadro == "D1")
aggiorna_totali_D1(tipo);
if (_quadro == "E")
aggiorna_totali_E(tipo);
@ -2057,6 +2094,23 @@ TStampaQuadroD::TStampaQuadroD(const char* quadro, char liv)
bool TStampaQuadroD::user_create()
{
if (quadro() == "C")
{
_rel = new TRelation(LF_QUAC);
_rel->add("%CA7", "CODTAB=CODCAUS", 1, LF_QUAC, 14);
_rel->add(LF_NDITTE, "CODDITTA=CODDITTA");
_rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 116);
_rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, LF_ANAG, 118);
_rel->add(LF_COMUNI, "COM=COMNASC", 1, LF_ANAGFIS, 113);
_rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, LF_ANAG, 213);
_rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_QUAC, 216);
_rel->add("%STA", "CODTAB=STATORES", 1, -216, 24);
_rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, -216, 218);
_rel->add(LF_COMUNI, "COM=COMNASC", 1, -218, 313);
_rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, -216, 413);
_cur = new TSorted_cursor(_rel, "CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC");
}
if (quadro() == "D")
{
_rel = new TRelation(LF_QUAD);
@ -2074,6 +2128,23 @@ bool TStampaQuadroD::user_create()
_cur = new TSorted_cursor(_rel, "CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC");
}
if (quadro() == "D1")
{
_rel = new TRelation(LF_QUAD1);
_rel->add("%CA7", "CODTAB=CODCAUS", 1, LF_QUAD1, 14);
_rel->add(LF_NDITTE, "CODDITTA=CODDITTA");
_rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 116);
_rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, LF_ANAG, 118);
_rel->add(LF_COMUNI, "COM=COMNASC", 1, LF_ANAGFIS, 113);
_rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, LF_ANAG, 213);
_rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_QUAD1, 216);
_rel->add("%STA", "CODTAB=STATORES", 1, -216, 24);
_rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, -216, 218);
_rel->add(LF_COMUNI, "COM=COMNASC", 1, -218, 313);
_rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, -216, 413);
_cur = new TSorted_cursor(_rel, "CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC");
}
if (quadro() == "E")
{
_rel = new TRelation(LF_QUAE);
@ -3718,15 +3789,54 @@ bool TStampaQuadroA2::user_create()
class TQuadroA3 : public TQuadroA
{
int _nprog;
protected:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
virtual int elementi_pagina(PaginaQuadro p) const;
virtual int prima_riga(PaginaQuadro p) const;
virtual long filtra(const long codditta);
public:
TQuadroA3(const char* form, const char* quadro) : TQuadroA(form, quadro) { }
public:
void set_nprog(int np) { _nprog = np; }
TQuadroA3(const char* form, const char* quadro);
virtual ~TQuadroA3() { }
};
TQuadroA3::TQuadroA3(const char* form, const char* quadro)
: TQuadroA(form, quadro), _nprog(1)
{ }
long TQuadroA3::filtra(const long codditta)
{
TString filtr(32);
filtr.format("CODDITTA=%ld|NPROG=%d", codditta, _nprog);
cursor()->setfilter(filtr, TRUE);
const long items = cursor()->items();
return items;
}
bool TQuadroA3::print(const long codditta, const long NumFis, const long NumNoFis)
{
TPrint_section& head = section('H', first_page);
TForm_item& tipo_ditta = head.field(0);
_nprog = 1;
tipo_ditta.set("1");
TQuadroA::print(codditta, NumFis, NumNoFis);
_nprog = 2;
tipo_ditta.set("2");
TQuadroA::print(codditta, NumFis, NumNoFis);
return TRUE;
}
int TQuadroA3::elementi_pagina(PaginaQuadro p) const
{
const int n[4] = { 6, 10, 10, 9 };
@ -3806,52 +3916,6 @@ bool TStampaQuadroB::user_create()
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////////
// Quadro C
/////////////////////////////////////////////////////////////////////////////////
class TQuadroC : public TQuadroA
{
protected:
virtual int elementi_pagina(PaginaQuadro p) const;
virtual int prima_riga(PaginaQuadro p) const;
public:
TQuadroC(const char* form, const char* quadro) : TQuadroA(form, quadro) { }
virtual ~TQuadroC() { }
};
int TQuadroC::elementi_pagina(PaginaQuadro p) const
{
const int n[4] = { 6, 10, 10, 9 };
return n[p-PRIMA];
}
int TQuadroC::prima_riga(PaginaQuadro p) const
{
return p == PRIMA ? 27 : 8;
}
class TStampaQuadroC : public TStampaQuadroA
{
protected:
virtual bool user_create();
public:
TStampaQuadroC(const char* quadro, char livel) : TStampaQuadroA(quadro, livel) { }
virtual ~TStampaQuadroC() { }
};
bool TStampaQuadroC::user_create()
{
_form = new TQuadroC("77QC", quadro());
TString sortkey(80);
sortkey.format("CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC", LF_QUAC, LF_QUAC);
_cur = new TSorted_cursor(_form->TForm::relation(), sortkey);
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////////
//
@ -3871,18 +3935,10 @@ int stampa_quadro(int argc, char* argv[])
TStampaQuadro* app = NULL;
if ( quadro == "C" )
{
app = new TStampaQuadroC(quadro, livello);
}
else if ( quadro == "D" )
if ( quadro == "C" || quadro == "D" || quadro == "D1" || quadro == "E" || quadro == "E1" )
{
app = new TStampaQuadroD(quadro, livello);
}
// else if (quadro == "D1")
// {
// app = new TStampaQuadroD1(quadro, livello);
// }
}
else if (quadro[0] == 'A')
{
switch (quadro[1] - '0')
@ -3926,6 +3982,3 @@ int stampa_quadro(int argc, char* argv[])
}