Gestione quadro a3
git-svn-id: svn://10.65.10.50/trunk@3230 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
479c93ab42
commit
ab98c8bcf7
179
m770/77stq.cpp
179
m770/77stq.cpp
@ -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[])
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user