diff --git a/ba/ba3601.cpp b/ba/ba3601.cpp index c66222112..da9a82a63 100755 --- a/ba/ba3601.cpp +++ b/ba/ba3601.cpp @@ -8,10 +8,11 @@ bool Stp_indici_LUnico::user_create() _anag = new TLocalisamfile (LF_ANAG); _comuni = new TLocalisamfile (LF_COMUNI); _indlib = new TLocalisamfile (LF_INDLIB); - _tab_lbu = new TTable (TAB_LBU); - + _tab_reg = NULL; _msk = new TMask("ba3601a"); + _msk->set_handler(F_CODDITTA, registri_ditta_hnd); + _sort = NULL; return TRUE; } @@ -19,12 +20,13 @@ bool Stp_indici_LUnico::user_create() bool Stp_indici_LUnico::user_destroy() { delete _msk; - delete _tab_lbu; delete _indlib; delete _nditte; delete _anag; delete _comuni; + if (_sort) delete _sort; + if (_tab_reg) delete _tab_reg; return TRUE; } @@ -39,6 +41,7 @@ bool Stp_indici_LUnico::registri_ditta_hnd(TMask_field& f, KEY k) return f.error_box("La ditta e' obbligatoria"); long old_dta = a().get_firm(); TString cod_lu = f.mask().get(F_LIBRO_UNICO1); + if (!prefix().exist(ditta)) return f.error_box("La ditta %ld non ha nessun registro",ditta); a().set_firm(ditta); int anno = f.mask().get_int(F_ANNO); TTable reg ("REG"); @@ -61,26 +64,75 @@ bool Stp_indici_LUnico::registri_ditta_hnd(TMask_field& f, KEY k) } a().set_firm(old_dta); if (!trovato) - return f.error_box("La ditta %d per l'anno %d non ha registri che vengono stampati sul libro unico", ditta, anno); + return f.error_box("La ditta %ld per l'anno %d non ha registri che vengono stampati sul libro unico", ditta, anno); } return TRUE; } +void Stp_indici_LUnico::ragsoc_ditta(long codditta) +{ + + _nditte->zero(); + _nditte->put(NDT_CODDITTA, codditta); + _nditte->read(); + if (_nditte->bad()) + _nditte->zero(); + _ragsoc_dta = _nditte->get(NDT_RAGSOC); + _tipoa_ditta = _nditte->get_char(NDT_TIPOA); + _codana_ditta = _nditte->get_long(NDT_CODANAGR); +} + +void Stp_indici_LUnico::dati_anagrafici_ditta() +{ + _anag->setkey(1); + _anag->zero(); + _anag->put(ANA_TIPOA, _tipoa_ditta); + _anag->put(ANA_CODANAGR, _codana_ditta); + if (_anag->read(_isequal) == NOERR) + { + _cofi_dta = _anag->get(ANA_COFI); + _paiv_dta = _anag->get(ANA_PAIV); + if (_tipoa_ditta == 'G') + { + _codcom_dta = _anag->get(ANA_COMRF); + _ind_dta = _anag->get(ANA_INDRF); + _civ_dta = _anag->get(ANA_CIVRF); + _cap_dta = _anag->get(ANA_CAPRF); + } + else + { + _codcom_dta = _anag->get(ANA_COMRES); + _ind_dta = _anag->get(ANA_INDRES); + _civ_dta = _anag->get(ANA_CIVRES); + _cap_dta = _anag->get(ANA_CAPRES); + } + } + + _comuni->setkey(1); + _comuni->zero(); + _comuni->put(COM_COM, _codcom_dta); + if (_comuni->read(_isequal) == NOERR) + { + _com_dta = _comuni->get(COM_DENCOM); + _prov_dta = _comuni->get(COM_PROVCOM); + } +} + void Stp_indici_LUnico::dati_libro_unico() { TTable lbu ("%LBU"); TString dep; dep.format("%4d%-3s", _anno, (const char*) _codlib); - lbu.put("CODTAB", (const char*) dep); + _tab_lbu->put("CODTAB", (const char*) dep); - if (lbu.read(_isequal) == NOERR) + if (_tab_lbu->read(_isequal) == NOERR) { - _stampa_intesta = lbu.get_bool("B0"); - _stampa_ind = lbu.get_bool("B1"); - _tipo_intesta = lbu.get_char("S2"); - _codana_intesta = lbu.get_long("I4"); - _desc_cod_lib = lbu.get ("S0"); + //_stampa_intesta = _tab_lbu->get_bool("B0"); + //_stampa_ind = _tab_lbu->get_bool("B1"); + _tipo_intesta = _tab_lbu->get_char("S2"); + _codana_intesta = _tab_lbu->get_long("I4"); + _desc_cod_lib = _tab_lbu->get ("S0"); } } @@ -123,186 +175,28 @@ void Stp_indici_LUnico::intestatario() } } -bool Stp_indici_LUnico::set_print(int) -{ - KEY tasto; - - _msk->set_handler(F_CODDITTA, registri_ditta_hnd); - - tasto = _msk->run(); - - if (tasto == K_ENTER) - { - _codlib = _msk->get(F_LIBRO_UNICO1); - _datastampa = _msk->get_date(F_DATA_STAMPA); - _meseda = _msk->get_int (F_MESEDA); - _mesea = _msk->get_int (F_MESEA); - _anno = _msk->get_int (F_ANNO); - _ditta = _msk->get_long(F_CODDITTA); - -// _meseprec = 0; - -// _pag_fuori_sequenza = FALSE; - - ragsoc_ditta(_ditta); - dati_anagrafici_ditta(); - dati_libro_unico(); - intestatario(); - -// crea_sort(); - - return TRUE; - } - return FALSE; -} - -void Stp_indici_LUnico::ragsoc_ditta(long codditta) -{ - TLocalisamfile nditte(LF_NDITTE); - - nditte.zero(); - nditte.put(NDT_CODDITTA, codditta); - nditte.read(); - if (nditte.bad()) - nditte.zero(); - _ragsoc_dta = nditte.get(NDT_RAGSOC); - _tipoa_ditta = nditte.get_char(NDT_TIPOA); - _codana_ditta = nditte.get_long(NDT_CODANAGR); -} - -void Stp_indici_LUnico::dati_anagrafici_ditta() -{ - TLocalisamfile anag (LF_ANAG); - TLocalisamfile comuni (LF_COMUNI); - - anag.setkey(1); - anag.zero(); - anag.put(ANA_TIPOA, _tipoa_ditta); - anag.put(ANA_CODANAGR, _codana_ditta); - if (anag.read(_isequal) == NOERR) - { - if (_tipo_ditta == 'G') - { - _codcom_dta = anag.get(ANA_COMRF); - _ind_dta = anag.get(ANA_INDRF); - _civ_dta = anag.get(ANA_CIVRF); - _cap_dta = anag.get(ANA_CAPRF); - } - else - { - _codcom_dta = anag.get(ANA_COMRES); - _ind_dta = anag.get(ANA_INDRES); - _civ_dta = anag.get(ANA_CIVRES); - _cap_dta = anag.get(ANA_CAPRES); - } - } - - comuni.setkey(1); - comuni.zero(); - comuni.put(COM_COM, _codcom_dta); - if (comuni.read(_isequal) == NOERR) - { - _com_dta = comuni.get(COM_DENCOM); - _prov_dta = comuni.get(COM_PROVCOM); - } -} - -void Stp_indici_LUnico::descrizione_codreg(const TString& codreg, TString& desc) -{ - TString16 dep; - dep.format("%4d%-3s", _anno, (const char*)codreg); - TTable tab_reg("REG"); - - tab_reg.zero(); - tab_reg.put("CODTAB", dep); - tab_reg.read(); - - if (tab_reg.bad()) - tab_reg.zero(); - desc = tab_reg.get("S0"); -} - -void Stp_indici_LUnico::compatta_ragsoc(TString& ragsoc) -{ - TString app; - - if (_tipo_intesta == 'F') - { - app = ragsoc.mid(29,20); - app.trim(); - ragsoc = ragsoc.mid(0,30); - ragsoc.trim(); - ragsoc << ' ' << app; - } -} -/* -void Stp_indici_LUnico::crea_intestazione_prova() -{ - TString datastampastr; - TString sep(132); - TString cofi,paiv,ind,civ,cap,com,prov,ragsoc; - - compatta_ragsoc(ragsoc); - - reset_header(); - - set_header (1,"Studio %s %s %s %s %s %s", (const char*) ragsoc,(const char*) ind,(const char*) civ, - (const char*) cap,(const char*) com,(const char*) prov); - - sep << "Pag. @#"; - sep.right_just(132); - set_header (2,(const char*) sep); - - datastampastr = _datastampa.string(); - - set_header (2,"@0gPartita iva %11s", (const char*) paiv); - set_header (2,"@30gCodice fiscale %16s", (const char*) cofi); - set_header (2,"@75gLIBRO UNICO DI PROVA"); - set_header (2,"@105gData@110g%s",(const char*) datastampastr); - - set_header (3,"@0gLibro unico : %s %s", (const char*) _codlib,(const char*) _desc_cod_lib); - TString mese = itom(_mese); - set_header (3,"@75gmese di %s", (const char*) mese); - set_header (3,"@92g%4d", _anno); - - sep.fill('-'); //Stampa 132 - (sep(132)) - set_header (4, (const char *) sep); - set_header (5,"@0gCod.@6gNumero@13gpagine@21gCodice@69gCod.@104gCodice@111gN.pag.@118gutente@126gNum.@131gS"); - set_header (6,"@0gLibro@8gda@16ga@21gditta@28gDenominazione@69greg.@74gDescrizione@104gvidim.@112gutilizzate@126greg.@131gB"); - set_header (7, (const char *) sep); -} - -void Stp_indici_LUnico::init_sort() -{ - _lib = new ind_lib; - _sort = new TSort (sizeof(ind_lib)); - -// _sort -> addsortkey((char*)&(_lib->anno) - (char*)&(_lib->anno),4); - _sort -> addsortkey((char*)&(_lib->mese) - (char*)&(_lib->anno),2); - _sort -> addsortkey((char*)&(_lib->nini_plib) - (char*)&(_lib->anno),5); - _sort->init(); -} - -//Crea sort ordina i record della tabella %INL per mese registrazione, anno -//registrazione e numero iniziale pagine registro libro unico +//Crea sort ordina i record della tabella per mese registrazione, +//numero iniziale pagine registro libro unico void Stp_indici_LUnico::crea_sort() { - long anno,numini_paglib,numfin_paglib,codditta,numini_pagut,numfin_pagut; - TString cod_reg,cod_vidimaz,dep,app; - long mese, ultimo_mese; - bool stamp_bollato = FALSE; - bool pagine_ann = FALSE; - bool stampato = FALSE; - mese = 0; - ultimo_mese = 0; - - init_sort(); + TString dep; + int mese; + long ditta; + ind_lib lib; + + if (_sort) delete _sort; + _sort = new TSort (sizeof(ind_lib)); + + _sort -> addsortkey((char*)&(lib.mese) - (char*)&(lib.mese),2); + _sort -> addsortkey((char*)&(lib.nini_plib) - (char*)&(lib.mese),5); + _sort->init(); + set_firm(_ditta); + + if (_tab_reg != NULL) delete _tab_reg; + _tab_reg = new TTable ("REG"); _tab_lbu->zero(); - // TString dep (format ("%4d%-3s", _anno, (const char*) _codlib)); - // sprintf(__tmp, "%4d", _anno); - // strcat (__tmp, _codlib); dep.format ("%4d%-3s", _anno, (const char*)_codlib); _tab_lbu->put("CODTAB", (const char*) dep); @@ -319,268 +213,181 @@ void Stp_indici_LUnico::crea_sort() { if (_indlib->curr() > rec) break; - mese = _indlib->get_int("MESEREG"); + mese = _indlib->get_int("MESEREG"); + ditta = _indlib->get_long("CODDITTA"); - if (((_tipo_stampa == 1) && (mese >= _meseda) && (mese <= _mesea)) || - ((_tipo_stampa == 2) && (mese <= _mesea))) + if (mese >= _meseda && mese <= _mesea && ditta == _ditta) { - long num_riga = _indlib->get_long("NUMREG"); - anno = _indlib->get_long("ANNOREG"); - numini_paglib = _indlib->get_long("PAGINI"); - numfin_paglib = _indlib->get_long("PAGFIN"); - codditta = _indlib->get_long("CODDITTA"); - cod_reg = _indlib->get("CODREG"); - cod_vidimaz = _indlib->get("CODVID"); - numini_pagut = _indlib->get_long("PAGINIUT"); - numfin_pagut = _indlib->get_long("PAGFINUT"); - stamp_bollato = _indlib->get_bool("STAMPATO"); - pagine_ann = _indlib->get_bool("ANNULLATE"); - - //Se tipo_stampa = 1 (stampa di prova) stampo ugualmente. Se tipo_stampa = 2 - // (stampa su bollato), stampo solamente se il flag di stampa su bollato e' - // FALSE. - - if ((_tipo_stampa == 1) || ((_tipo_stampa == 2) && (!stamp_bollato))) - { - ultimo_mese = mese; - stampato = TRUE; - sprintf (_lib->anno, "%4d", anno); - sprintf (_lib->mese, "%2d", mese); - sprintf (_lib->nini_plib, "%5d", numini_paglib); - _lib->num_riga = num_riga; - _lib->nfin_plib = numfin_paglib; - _lib->codditta = codditta; - sprintf (_lib->cod_reg, "%3s", (const char*) cod_reg); - _lib->nini_put = numini_pagut; - _lib->nfin_put = numfin_pagut; - sprintf (_lib->cod_vid, "%3s", (const char*) cod_vidimaz); - _lib->stamp_bol = stamp_bollato; - _lib->pag_ann = pagine_ann; - _sort->sort ((const char*) _lib); - - //Se si tratta di una stampa su bollato e il flag "stampa su bollato" indica - //che non e' mai stato stampato su bollato (flag = FALSE), allora devo stampare - //il record della tabella %INL, e contemporaneamente aggiornare il flag, per - //evitare di ristampare successivamente su bollato - - if (_tipo_stampa == 2) - { - _indlib->put("STAMPATO", "X"); - _indlib->rewrite(); - } - } + sprintf (lib.mese, "%2d", mese); + sprintf (lib.nini_plib, "%5ld", _indlib->get_long("PAGINI")); + lib.nfin_plib = _indlib->get_long("PAGFIN"); + sprintf (lib.cod_reg, "%-3s", (const char*) _indlib->get("CODREG")); + lib.nini_put = _indlib->get_long("PAGINIUT"); + lib.nfin_put = _indlib->get_long("PAGFINUT"); + sprintf (lib.cod_vid, "%3s", (const char*) _indlib->get("CODVID")); + lib.pag_ann = _indlib->get_bool("ANNULLATE"); + _sort->sort ((const char*) &lib); } } - _sort->endsort(); } + _sort->endsort(); +} - // Se si tratta di una stampa su libro bollato, aggiorno sulla tabella %LBU - // l' ultimo mese stampato, l' ultima pagina stampata e il flag che indica se - // quel record e' stato stampato su bollato - - if ((_tipo_stampa == 2) && (stampato)) // stampato e' il flag che mi dice - { //se almeno un record, nella stampa - _tab_lbu->put("I0", ultimo_mese); //su bollato, va in stampa. In caso - if (_codlib == _cod_lib_stampa) //contrario non avrebbe senso - _tab_lbu->put("I1", numfin_paglib);//aggiornare %LBU. ES:tutti i record - _tab_lbu->rewrite(); //di quel mese sono gia stati stampati - } //su bollato (flag = TRUE). -} //Comunque il numero ultima pagina stampata va aggiornato - //con l'ultima pagina dell'ultimo indice solo se il i libri - //selezionati sono gli stessi (libro di studio e libro di stampa). +bool Stp_indici_LUnico::set_print(int) +{ + KEY tasto; -*/ -void Stp_indici_LUnico::postclose_print() -{ // Se ha stampato in definitiva, aggiorna il numero di pagine stampate sul libro unico. - // Viene incrementato del numero di pagine stampate per gli indici -/* - if ((_tipo_stampa == 2)) + tasto = _msk->run(); + _oldditta = get_firm(); + if (tasto == K_ENTER) { - TString dep; - long numfin_paglib; - - _tab_lbu->zero(); - dep.format ("%4d%-3s", _anno, (const char*)_cod_lib_stampa); // Va aggiornato il libro sul quale si stampa! - _tab_lbu->put("CODTAB", (const char*) dep); - if (_tab_lbu->read() == NOERR) - { - numfin_paglib = _tab_lbu->get_long("I1"); - numfin_paglib += get_page_number(); - _tab_lbu->put("I1", numfin_paglib); - _tab_lbu->rewrite(); - } - } -*/ + _ended = FALSE; + _meseprec = ""; + _codlib = _msk->get(F_LIBRO_UNICO1); + _datastampa = _msk->get_date(F_DATA_STAMPA); + _meseda = _msk->get_int (F_MESEDA); + _mesea = _msk->get_int (F_MESEA); + _anno = _msk->get_int (F_ANNO); + _ditta = _msk->get_long(F_CODDITTA); + ragsoc_ditta(_ditta); + dati_anagrafici_ditta(); + dati_libro_unico(); + intestatario(); + crea_sort(); + return TRUE; + } + return FALSE; +} + +void Stp_indici_LUnico::descrizione_codreg(const TString& codreg, TString& desc) +{ + TString16 dep; + dep.format("%4d%-3s", _anno, (const char*)codreg); + + _tab_reg->zero(); + _tab_reg->put("CODTAB", dep); + _tab_reg->read(); + + if (_tab_reg->bad()) + _tab_reg->zero(); + desc = _tab_reg->get("S0"); +} + +void Stp_indici_LUnico::compatta_ragsoc(TString& ragsoc) +{ + TString app; + + if (_tipo_intesta == 'F') + { + app = ragsoc.mid(29,20); + app.trim(); + ragsoc = ragsoc.mid(0,30); + ragsoc.trim(); + ragsoc << ' ' << app; + } +} + +void Stp_indici_LUnico::postclose_print() +{ + set_firm(_oldditta); } bool Stp_indici_LUnico::preprocess_page(int file, int counter) { -/* - struct ind_lib* lib = (struct ind_lib*) _buff; - long nini_plib; - reset_print(); - _buff = _sort->retrieve(); - - if (_buff != NULL) + struct ind_lib* lib = (struct ind_lib*) _sort->retrieve(); + if (lib == NULL) { - lib = (struct ind_lib*) _buff; - - _mese = atoi(lib->mese); - _numini_paglib = atoi(lib->nini_plib); - _numfin_paglib = lib->nfin_plib; - _codditta = lib->codditta; -// _rag_soc = ragsoc_ditta(_codditta); -// dati_anagrafici_ditta(_ind_dta,_civ_dta,_cap_dta,_com_dta,_prov_dta); - _cod_reg = lib->cod_reg; - if (_codditta > 0 && prefix().exist(_codditta)) - { - prefix().set_codditta(_codditta); // change firm to get register description -// _descrizione = descrizione_codreg(_cod_reg); - } - else - _descrizione = ""; - _cod_vidimaz = lib->cod_vid; - _numini_pagut = lib->nini_put; - _numfin_pagut = lib->nfin_put; - _num_riga = lib->num_riga; - _stamp_bollato = lib->stamp_bol; - _pag_ann = lib->pag_ann; - if (_stamp_bollato) - _stamp_bollato_str = "X"; - else - _stamp_bollato_str = ""; - - //Il controllo di pagine fuori sequenza viene sempre effettuato, tranne che per - //il primo record. (solo per stampa di prova) - - if ( (counter) && (_tipo_stampa == 1) ) - { - nini_plib = _numini_paglib - 1; - - if (_nfin_plib_prec != nini_plib) - _pag_fuori_sequenza = TRUE; - else - _pag_fuori_sequenza = FALSE; - } - - if (counter) - if (_mese != _meseprec) - printer().formfeed(); - - _meseprec = _mese; - - _nfin_plib_prec = _numfin_paglib; - - return TRUE; - } - else + _ended = TRUE; return FALSE; -*/ + } + + _mese = itom(atoi(lib->mese)); + if (_mese == _meseprec) _mese = ""; + else _meseprec = _mese; + _numini_paglib = atol(lib->nini_plib); + _numfin_paglib = lib->nfin_plib; + _cod_reg = lib->cod_reg; + descrizione_codreg(_cod_reg,_descrizione); + _cod_vidimaz = lib->cod_vid; + _numini_pagut = lib->nini_put; + _numfin_pagut = lib->nfin_put; + _pag_ann = lib->pag_ann; + return TRUE; } void Stp_indici_LUnico::set_page(int file, int counter) -{ -/* - if (_tipo_stampa == 1) - setta_righe_prova(); - else if (_tipo_stampa == 2) - setta_righe_bollato(); -*/ -} -/* -void Stp_indici_LUnico::setta_righe_prova() { int i; i = 1; + + print_header(); + set_row (i, "@0g#t", &_mese); + set_row (i, "@22g#t", &_cod_vidimaz); + set_row (i, "@27g#5d", &_numini_paglib); + set_row (i, "@35g#5d", &_numfin_paglib); - if (_pag_fuori_sequenza) - set_row (i++,"@10gPAGINE FUORI SEQUENZA"); - - set_row (i, "@1g#t", &_codlib); - set_row (i, "@6g#5d", &_numini_paglib); - set_row (i, "@13g#5d", &_numfin_paglib); - - if ((_pag_ann) && (_codditta == 0)) - set_row (i,"@27gPAGINE ANNULLATE"); + if (_pag_ann && _cod_reg == "") + set_row (i,"@53gPAGINE ANNULLATE"); else { - set_row (i,"@21g#5ld", &_codditta); - set_row (i,"@27g#.41t", &_rag_soc); - } - if ((_pag_ann) && (_codditta != 0) && (_cod_reg == "")) - set_row (i,"@73gPAGINE ANNULLATE"); - else - { - set_row (i,"@69g#t", &_cod_reg); - set_row (i,"@73g#.31t", &_descrizione); + set_row (i,"@50g#t", &_cod_reg); + set_row (i,"@54g#t", &_descrizione); } - set_row (i, "@105g#t", &_cod_vidimaz); - set_row (i, "@111g#5d", &_numini_pagut); - set_row (i, "@117g#5d", &_numfin_pagut); - set_row (i, "@124g#5d", &_num_riga); - set_row (i++,"@131g#t", &_stamp_bollato_str); - if (_stampa_ind && !_pag_ann) - set_row (i ,"@27g#t #t #t #t #t", &_ind_dta, &_civ_dta, &_cap_dta, &_com_dta, &_prov_dta); + set_row (i, "@85g#5d", &_numini_pagut); + set_row (i, "@93g#5d", &_numfin_pagut); } -void Stp_indici_LUnico::setta_righe_bollato() -{ - int i; - - i = 1; - - // if (_pag_fuori_sequenza) - // set_row (i++,"@10gPAGINE FUORI SEQUENZA"); - - set_row (i,"@1g#t", &_codlib); - set_row (i,"@6g#5d", &_numini_paglib); - set_row (i,"@13g#5d", &_numfin_paglib); - - if ((_pag_ann) && (_codditta == 0)) - set_row (i,"@27gPAGINE ANNULLATE"); - else - { - set_row (i,"@21g#5ld", &_codditta); - set_row (i,"@27g#.41t", &_rag_soc); - } - if ((_pag_ann) && (_codditta != 0) && (_cod_reg == "")) - set_row (i,"@73gPAGINE ANNULLATE"); - else - { - set_row (i,"@69g#t", &_cod_reg); - set_row (i,"@73g#.31t", &_descrizione); - } - - set_row (i,"@105g#t", &_cod_vidimaz); - set_row (i,"@111g#5d", &_numini_pagut); - set_row (i++,"@117g#5d", &_numfin_pagut); - // set_row (i++,"@130g#t", &_stamp_bollato_str); - if (_stampa_ind && !_pag_ann) - set_row (i ,"@27g#t #t #t #t #t", &_ind_dta, &_civ_dta, &_cap_dta, &_com_dta, &_prov_dta); -} -*/ print_action Stp_indici_LUnico::postprocess_page(int file, int counter) { -/* - if (_buff == NULL) */ - return NEXT_PAGE; - -// return REPEAT_PAGE; + if (_ended) return NEXT_PAGE; + return REPEAT_PAGE; } -void Stp_indici_LUnico::preprocess_header() +void Stp_indici_LUnico::print_header() { -// if (_tipo_stampa ==1) -// crea_intestazione_prova(); -// else -// if (_tipo_stampa == 2) -// crea_intestazione_bollato(); + TString sep(132); + TString ind(_ind); + + reset_header(); + ind << ", " << _civ; + compatta_ragsoc(_ragsoc); + // Dati studio + if (_ragsoc.len() > 50) _ragsoc.cut(50); + set_header (1,"Studio %-50s @60g%s @110g%s @116g%-13s @129g%s", + (const char*)_ragsoc, (const char*)ind, (const char*)_cap, (const char*)_com, (const char*)_prov); + sep << "Pag. @#"; + sep.right_just(132); + set_header (2,(const char*) sep); + set_header (2,"@0gPartita iva %-11s", (const char*)_paiv); + set_header (2,"@26gCodice fiscale %-16s", (const char*)_cofi); + set_header (2,"@105gData %s",(const char*) _datastampa.string()); + set_header (3,"@0gLibro unico : %s %s", (const char*)_codlib, (const char*)_desc_cod_lib); + set_header (3,"@70gANNO %4d", _anno); + sep.fill('-'); + set_header(4, (const char *) sep); + // Dati ditta + ind = _ind_dta; + ind << ", " << _civ_dta; + if (_ragsoc_dta.len() > 45) _ragsoc_dta.cut(45); + set_header(5,"Ditta %05ld %-45s @60g%s @110g%s @116g%-13s @129g%s", + _ditta,(const char*)_ragsoc_dta,(const char*) ind,(const char*)_cap_dta, + (const char*)_com_dta,(const char*)_prov_dta); + set_header(6,"@0gPartita iva %-11s", (const char*)_paiv_dta); + set_header(6,"@26gCodice fiscale %-16s", (const char*)_cofi_dta); + set_header(7, (const char *) sep); + // Intestazione colone + set_header(8,"@20g---- Libro Unico ----"); + set_header(8,"@50g------------------------------"); + set_header(8,"@81gRegistri della ditta"); + set_header(8,"@102g------------------------------"); + set_header (9,"Mese @20gVidim. Da pag A pag @50gCod Descrizione @84gDa pag A pag"); + set_header (10, (const char *) sep); } diff --git a/ba/ba3601.h b/ba/ba3601.h index dc9047908..c2bd62fc4 100755 --- a/ba/ba3601.h +++ b/ba/ba3601.h @@ -9,10 +9,7 @@ #include #include -#include "ba3.h" -#include "ba3600.h" - -#define ALIAS 50 +#include "ba3600.h" class Stp_indici_LUnico : public TPrintapp { @@ -20,44 +17,30 @@ class Stp_indici_LUnico : public TPrintapp { char mese[3]; char nini_plib[6]; - char anno[5]; - long num_riga; long nfin_plib; - long codditta; char cod_reg[4]; long nini_put; long nfin_put; char cod_vid[4]; - bool stamp_bol; bool pag_ann; }; TMask* _msk; - TTable* _tab_lbu; + TTable* _tab_lbu,*_tab_reg; TLocalisamfile* _indlib; TLocalisamfile* _nditte; TLocalisamfile* _anag; TLocalisamfile* _comuni; TSort* _sort; - TProgind* _prog; - ind_lib* _lib; - const char* _buff; TDate _datastampa; - int _anno, _meseda, _mesea, _mese; - TString _codlib, _desc_cod_lib; + int _anno, _meseda, _mesea; + TString _codlib, _desc_cod_lib,_mese,_meseprec,_cod_reg,_descrizione,_cod_vidimaz; TString _cofi, _paiv, _codcom, _ragsoc, _ind, _civ, _cap, _com, _prov; TString _cofi_dta, _paiv_dta, _codcom_dta, _ragsoc_dta, _ind_dta, _civ_dta, _cap_dta, _com_dta, _prov_dta; - bool _stampa_intesta, _stampa_ind; + bool _pag_ann,_ended;//_stampa_intesta, _stampa_ind; char _tipo_intesta, _tipoa_ditta; - long _ditta, _codana_intesta, _codana_ditta; - -/* int _tipo_stampa; - long _numini_paglib, _numfin_paglib, _numini_pagut, _numfin_pagut; - long _codditta, _pag_fin, _num_riga, _nfin_plib_prec; - TString _cod_lib_su, _rag_soc, _cod_reg, _descrizione, _cod_vidimaz; - TString _cod_lib_stampa, _stamp_bollato_str, _desc_cod_lib_su; - bool _stamp_bollato, _pag_ann; */ + long _ditta,_oldditta, _numini_pagut,_numfin_pagut,_numini_paglib, _numfin_paglib, _codana_intesta, _codana_ditta; public: @@ -70,11 +53,11 @@ public: virtual print_action postprocess_page (int,int); virtual void postclose_print(); - virtual void preprocess_header(); virtual void set_page(int,int); void init_sort(); void crea_sort(); + void print_header(); bool preprocess_prova(int); bool preprocess_bollato(); void crea_intestazione_prova(); @@ -91,4 +74,5 @@ public: static bool registri_ditta_hnd(TMask_field& f, KEY k); Stp_indici_LUnico() {} + virtual ~Stp_indici_LUnico() {} }; diff --git a/ba/ba3601a.uml b/ba/ba3601a.uml index c705f1ec1..253668300 100755 --- a/ba/ba3601a.uml +++ b/ba/ba3601a.uml @@ -1,38 +1,29 @@ #include "ba3600.h" -TOOLBAR "" 0 20 0 2 - -BUTTON DLG_PRINT 9 2 -BEGIN - PROMPT -12 -11 "~Stampa" - MESSAGE EXIT,K_ENTER -END - -BUTTON DLG_QUIT 9 2 -BEGIN - PROMPT -22 -11 "" -END - -ENDPAGE - -PAGE "Stampa indici libro unico" -1 -1 76 19 +PAGE "Stampa indici libro unico per ditta" 19 6 79 10 DATE F_DATA_STAMPA BEGIN - PROMPT 4 3 "Data stampa " + PROMPT 3 1 "Data stampa " HELP "Data in cui viene stampato il libro unico" FLAGS "A" END +NUMBER F_ANNO 4 +BEGIN + PROMPT 3 3 "Anno " + CHECKTYPE REQUIRED +END + STRING F_LIBRO_UNICO1 3 BEGIN - PROMPT 4 5 "Codice libro unico " + PROMPT 28 3 "Codice libro unico " HELP "Codice del libro da stampare" USE %LBU INPUT CODTAB[1,4] F_ANNO INPUT CODTAB[5,7] F_LIBRO_UNICO1 - DISPLAY "Anno riferimento " CODTAB[1,4] - DISPLAY "Codice libro unico " CODTAB[5,7] + DISPLAY "Anno@20" CODTAB[1,4] + DISPLAY "Libro unico@22" CODTAB[5,7] OUTPUT F_ANNO CODTAB[1,4] OUTPUT F_LIBRO_UNICO1 CODTAB[5,7] CHECKTYPE REQUIRED @@ -40,21 +31,9 @@ BEGIN FLAGS "UZ" END -GROUPBOX F_GRUPPO 71 7 -BEGIN - PROMPT 4 7 "" - FLAGS "R" -END - -NUMBER F_ANNO 4 -BEGIN - PROMPT 6 8 "Stampa indici dell' anno " - CHECKTYPE REQUIRED -END - NUMBER F_MESEDA 2 BEGIN - PROMPT 6 10 " dal mese " + PROMPT 3 4 "Dal mese " HELP "Primo mese di cui stampare i movimenti" NUM_EXPR {(#THIS_FIELD >= 1) && (#THIS_FIELD <= 12)} CHECKTYPE REQUIRED @@ -63,7 +42,7 @@ END NUMBER F_MESEA 2 BEGIN - PROMPT 6 12 " al mese " + PROMPT 28 4 "Al mese " HELP "Ultimo mese di cui stampare i movimenti" NUM_EXPR {(((#THIS_FIELD >= 1) && (#THIS_FIELD <= 12)) && (#THIS_FIELD >= #F_MESEDA))} CHECKTYPE REQUIRED @@ -72,23 +51,34 @@ END NUMBER F_CODDITTA 5 BEGIN - PROMPT 4 15 "Ditta " + PROMPT 3 6 "Ditta " FLAGS "R" USE LF_NDITTE KEY 1 - CHECKTYPE REQUIRED INPUT CODDITTA F_CODDITTA DISPLAY "Codice" CODDITTA DISPLAY "Ragione sociale @50" RAGSOC OUTPUT F_CODDITTA CODDITTA OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED END STRING F_RAGSOC 50 BEGIN - PROMPT 4 16 "Ragione sociale " + PROMPT 28 6 "" FLAGS "D" END +BUTTON DLG_PRINT 9 2 +BEGIN + PROMPT -12 -1 "~Stampa" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 9 2 +BEGIN + PROMPT -22 -1 "" +END + ENDPAGE ENDMASK