From ab98c8bcf7d51b175f9816dd7886b661596e7c50 Mon Sep 17 00:00:00 2001 From: guy Date: Wed, 24 Jul 1996 09:35:55 +0000 Subject: [PATCH] Gestione quadro a3 git-svn-id: svn://10.65.10.50/trunk@3230 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- m770/77stq.cpp | 179 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 116 insertions(+), 63 deletions(-) diff --git a/m770/77stq.cpp b/m770/77stq.cpp index d9603dee1..fcb9581b9 100755 --- a/m770/77stq.cpp +++ b/m770/77stq.cpp @@ -1,3 +1,4 @@ +// Stampa quadro #include #include @@ -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[]) } - - -