From f04e47ada729dbd8a84c9673ca356a6d66054445 Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 19 Jul 1996 15:18:03 +0000 Subject: [PATCH] Iniziata la stampa del favoloso quadro B git-svn-id: svn://10.65.10.50/trunk@3218 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- m770/77stq.cpp | 72 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 11 deletions(-) diff --git a/m770/77stq.cpp b/m770/77stq.cpp index 6e247c8be..a1cf0bfdd 100755 --- a/m770/77stq.cpp +++ b/m770/77stq.cpp @@ -210,17 +210,15 @@ bool TDicForm::InitPrint(const long codditta) pr.set_char_size(fontsize()); // Set font name and size pr.set_fontname(fontname()); // according to current form - if (_posiziona && !_GiaPosizionato && pr.printtype() != screenvis && - pr.printtype() != fileprinter) -// arrange_form(); + if (_posiziona && !_GiaPosizionato && pr.printtype() == winprinter) + { posiziona(); - #ifdef DBG - if (pr.printtype() != screenvis) - if (!yesno_box("Proseguo con la stampa ?")) + if (!yesno_box("Proseguire con la stampa ?")) return FALSE; #endif - + } + const bool was_open = pr.isopen(); set_last_page(FALSE); @@ -3530,7 +3528,7 @@ bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis int pos = 0; TDipendenti indice; - if (quadro() == "A") + if (quadro() == "A" || quadro() == "B") { const int i = indice.fill(cur); if (i > 0) @@ -3551,9 +3549,9 @@ bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis bool stampero_ultimo = stampato_ultimo == FALSE; if (stampero_ultimo) { - if (quadro() == "A") + if (indice.items() > 0) // Usa indice alternativo stampero_ultimo &= pos == indice.items()-1; - else + else // Usa indice del cursore stampero_ultimo &= cur.pos() == cur.items()-1; } @@ -3629,7 +3627,7 @@ bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis if (!stampato_ultimo) { - if (quadro() == "A") + if (indice.items() > 0) cur = indice[++pos].pos(); else ++cur; @@ -3832,6 +3830,54 @@ bool TStampaQuadroA3::user_create() return TRUE; } +///////////////////////////////////////////////////////////////////////////////// +// Quadro B +///////////////////////////////////////////////////////////////////////////////// + +class TQuadroB : public TQuadroA +{ +protected: + virtual int elementi_pagina(PaginaQuadro p) const; + virtual int prima_riga(PaginaQuadro p) const; + +public: + TQuadroB(const char* form, const char* quadro) : TQuadroA(form, quadro) { } + virtual ~TQuadroB() { } +}; + +int TQuadroB::elementi_pagina(PaginaQuadro p) const +{ + const int n[4] = { 3, 5, 5, 3 }; + return n[p-PRIMA]; +} + +int TQuadroB::prima_riga(PaginaQuadro p) const +{ + return p == PRIMA ? 34 : 5; +} + +class TStampaQuadroB : public TStampaQuadroA +{ +protected: + virtual bool user_create(); + +public: + TStampaQuadroB(const char* quadro, char livel) : TStampaQuadroA(quadro, livel) { } + virtual ~TStampaQuadroB() { } +}; + +bool TStampaQuadroB::user_create() +{ + _form = new TQuadroB("77QB", quadro()); + + TString sortkey(80); + sortkey.format("CODDITTA|%d->COGNOME|%d->NOME|CODDIP|DATAINI|NPROG", LF_DIPEND, LF_DIPEND); + _cur = new TSorted_cursor(_form->TForm::relation(), sortkey); + + return TRUE; +} + + ///////////////////////////////////////////////////////////////////////////////// // // MAIN @@ -3863,6 +3909,10 @@ int stampa_quadro(int argc, char* argv[]) case 3: app = new TStampaQuadroA3(quadro, livello); break; default: app = new TStampaQuadroA(quadro, livello); break; } + } + else if (quadro[0] == 'B') + { + app = new TStampaQuadroB(quadro, livello); } else if (quadro == "F") {