diff --git a/ba/ba3600.cpp b/ba/ba3600.cpp index c151408ef..665cb8b19 100755 --- a/ba/ba3600.cpp +++ b/ba/ba3600.cpp @@ -11,6 +11,7 @@ #include "ba3.h" #include "ba3600.h" +#include "ba3601.h" static TString256 tmp; @@ -731,8 +732,16 @@ bool TStampa_indici::user_destroy() int ba3600 (int argc, char* argv[]) { - TStampa_indici a; - a.run(argc, argv, "Stampa indici registro libro unico"); + if (*argv[2] == 'A') + { + Stp_indici_LUnico b; + b.run(argc, argv, "Stampa indici libro unico per ditta"); + } + else + { + TStampa_indici a; + a.run(argc, argv, "Stampa indici registro libro unico"); + } return 0; } diff --git a/ba/ba3600.h b/ba/ba3600.h index 7d037fdf8..94760a31b 100755 --- a/ba/ba3600.h +++ b/ba/ba3600.h @@ -22,6 +22,8 @@ #define F_GRUPPO 115 #define F_STAMPA_MESEG 116 #define F_ANNO 117 +#define F_CODDITTA 118 +#define F_RAGSOC 119 #endif // __BA3600_H diff --git a/ba/ba3601.cpp b/ba/ba3601.cpp new file mode 100755 index 000000000..c66222112 --- /dev/null +++ b/ba/ba3601.cpp @@ -0,0 +1,586 @@ +#include "ba3601.h" + +HIDDEN inline Stp_indici_LUnico & a() {return (Stp_indici_LUnico&) main_app(); } + +bool Stp_indici_LUnico::user_create() +{ + _nditte = new TLocalisamfile (LF_NDITTE); + _anag = new TLocalisamfile (LF_ANAG); + _comuni = new TLocalisamfile (LF_COMUNI); + _indlib = new TLocalisamfile (LF_INDLIB); + + _tab_lbu = new TTable (TAB_LBU); + + _msk = new TMask("ba3601a"); + + return TRUE; +} + +bool Stp_indici_LUnico::user_destroy() +{ + delete _msk; + + delete _tab_lbu; + delete _indlib; + delete _nditte; + delete _anag; + delete _comuni; + + return TRUE; +} + +bool Stp_indici_LUnico::registri_ditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.mask().is_running()) + { + bool trovato = FALSE; + long ditta = f.mask().get_long(F_CODDITTA); + if (ditta == 0) + return f.error_box("La ditta e' obbligatoria"); + long old_dta = a().get_firm(); + TString cod_lu = f.mask().get(F_LIBRO_UNICO1); + a().set_firm(ditta); + int anno = f.mask().get_int(F_ANNO); + TTable reg ("REG"); + + reg.zero(); + for (reg.first();!reg.eof();reg.next()) + { + TString codtab = reg.get("CODTAB"); + int annoreg = atoi(codtab.mid(0,4)); + + if (annoreg == anno) + { + TString cod_lu_reg = reg.get("S6"); + if (cod_lu == cod_lu_reg) + { + trovato = TRUE; + break; + } + } + } + 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 TRUE; +} + +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); + + if (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"); + } +} + +void Stp_indici_LUnico::intestatario() +{ + _anag->setkey(1); + _anag->zero(); + _anag->put(ANA_TIPOA, _tipo_intesta); + _anag->put(ANA_CODANAGR, _codana_intesta); + + if (_anag->read(_isequal) == NOERR) + { + _cofi = _anag->get(ANA_COFI); + _paiv = _anag->get(ANA_PAIV); + _ragsoc = _anag->get(ANA_RAGSOC); + + if (_tipo_intesta == 'G') + { + _codcom = _anag->get(ANA_COMRF); + _ind = _anag->get(ANA_INDRF); + _civ = _anag->get(ANA_CIVRF); + _cap = _anag->get(ANA_CAPRF); + } + else + { + _codcom = _anag->get(ANA_COMRES); + _ind = _anag->get(ANA_INDRES); + _civ = _anag->get(ANA_CIVRES); + _cap = _anag->get(ANA_CAPRES); + } + } + + _comuni->setkey(1); + _comuni->zero(); + _comuni->put(COM_COM, _codcom); + if (_comuni->read(_isequal) == NOERR) + { + _com = _comuni->get(COM_DENCOM); + _prov = _comuni->get(COM_PROVCOM); + } +} + +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 + +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(); + + _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); + + if (_tab_lbu->read(_isequal) == NOERR) + { + _indlib->setkey(1); + _indlib->zero(); + _indlib->put("ANNO", _anno); + _indlib->put("CODLIB", (const char*) _codlib); + + TRectype rec (_indlib->curr()); + + for (_indlib->read(); !_indlib->eof(); _indlib->next()) + { + if (_indlib->curr() > rec) break; + + mese = _indlib->get_int("MESEREG"); + + if (((_tipo_stampa == 1) && (mese >= _meseda) && (mese <= _mesea)) || + ((_tipo_stampa == 2) && (mese <= _mesea))) + { + 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(); + } + } + } + } + _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). + +*/ +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)) + { + 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(); + } + } +*/ +} + +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) + { + 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 + return FALSE; +*/ + 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; + + 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, "@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); +} + +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; +} + + +void Stp_indici_LUnico::preprocess_header() +{ +// if (_tipo_stampa ==1) +// crea_intestazione_prova(); +// else +// if (_tipo_stampa == 2) +// crea_intestazione_bollato(); +} + + diff --git a/ba/ba3601.h b/ba/ba3601.h new file mode 100755 index 000000000..dc9047908 --- /dev/null +++ b/ba/ba3601.h @@ -0,0 +1,94 @@ +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "ba3.h" +#include "ba3600.h" + +#define ALIAS 50 + +class Stp_indici_LUnico : public TPrintapp +{ + struct ind_lib + { + 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; + 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; + 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; + 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; */ + +public: + + bool menu (MENU_TAG m) { return TPrintapp::menu(m) ; } + virtual bool user_create() ; + virtual bool user_destroy(); + bool set_print(int); + + virtual bool preprocess_page (int,int); + 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(); + bool preprocess_prova(int); + bool preprocess_bollato(); + void crea_intestazione_prova(); + void ragsoc_ditta(long); + void descrizione_codreg(const TString&,TString&); + void setta_righe_prova(); + void setta_righe_bollato(); + void dati_libro_unico(); + void intestatario(); + void compatta_ragsoc(TString&); + void descrizione(); + void dati_anagrafici_ditta(); + + static bool registri_ditta_hnd(TMask_field& f, KEY k); + + Stp_indici_LUnico() {} +}; diff --git a/ba/ba3601a.uml b/ba/ba3601a.uml new file mode 100755 index 000000000..c705f1ec1 --- /dev/null +++ b/ba/ba3601a.uml @@ -0,0 +1,94 @@ +#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 + +DATE F_DATA_STAMPA +BEGIN + PROMPT 4 3 "Data stampa " + HELP "Data in cui viene stampato il libro unico" + FLAGS "A" +END + +STRING F_LIBRO_UNICO1 3 +BEGIN + PROMPT 4 5 "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] + OUTPUT F_ANNO CODTAB[1,4] + OUTPUT F_LIBRO_UNICO1 CODTAB[5,7] + CHECKTYPE REQUIRED + WARNING "Libro unico assente per l'anno specificato" + 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 " + HELP "Primo mese di cui stampare i movimenti" + NUM_EXPR {(#THIS_FIELD >= 1) && (#THIS_FIELD <= 12)} + CHECKTYPE REQUIRED + WARNING "Il valore deve essere compreso tra 1 e 12" +END + +NUMBER F_MESEA 2 +BEGIN + PROMPT 6 12 " al mese " + HELP "Ultimo mese di cui stampare i movimenti" + NUM_EXPR {(((#THIS_FIELD >= 1) && (#THIS_FIELD <= 12)) && (#THIS_FIELD >= #F_MESEDA))} + CHECKTYPE REQUIRED + WARNING "Il valore deve essere compreso tra 1 e 12 ed essere maggiore o uguale al mese di partenza" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 4 15 "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 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 4 16 "Ragione sociale " + FLAGS "D" +END + +ENDPAGE + +ENDMASK