#ifndef __CI0400_H #define __CI0400_H /////////////////////////////////////////////////////////// // TImmissioneDocumenti_mask /////////////////////////////////////////////////////////// class TImmissioneDocumenti_mask : public TAlmanac_mask { TString_array _filters; // filtri tipodoc per ogni tab TArray _flags; // array di TBit_array. Ognuno di essi è lungo 366 e rappresenta i flag di presenza documenti per ogni giorno dell'anno. Ogni page della maschera ha bisogno di un bitarray diverso TBit_array _ordered; TBit_array _insert; TBit_array _modify; TBit_array _doccoll; TBit_array _modcoll; TBit_array _delclosed; TString_array _numcoll; TString_array _tipocoll; TString_array _statocoll; TString_array _varcoll; protected: virtual void next_page(int p); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); public: // ereditato da TAlmanac_mask virtual bool is_date_void(int currpage, TDate& cdate); virtual void change_year(int newyear); public: // metodi di accesso const TString_array & filters() const { return _filters;} const TArray & flags() const { return _flags;} const TBit_array & ordered() const { return _ordered;} const TBit_array & doc_coll() const { return _doccoll;} const TBit_array & mod_coll() const { return _modcoll;} const TBit_array & del_closed() const { return _delclosed;} const TString_array & num_coll() const { return _numcoll;} const TString_array & tipo_coll() const { return _tipocoll;} const TString_array & stato_coll() const { return _statocoll;} const TString_array & var_coll() const { return _varcoll;} TString_array & filters() { return _filters;} TArray & flags() { return _flags;} TBit_array & ordered() { return _ordered;} TBit_array & insert() { return _insert;} TBit_array & modify() { return _modify;} TBit_array & doc_coll() { return _doccoll;} TBit_array & mod_coll() { return _modcoll;} TBit_array & del_closed() { return _delclosed;} TString_array & num_coll() { return _numcoll;} TString_array & tipo_coll() { return _tipocoll;} TString_array & stato_coll() { return _statocoll;} TString_array & var_coll() { return _varcoll;} void update_current_calendar(int year); public: // apertura del foglio interno di gestione dei documenti virtual void open_day_mask(TDate date); private: // chiamata del programma ve0 void call_ve0(int exitval, TRelation& relation, TDate& date, const TString& codnum, const TString& doctype = EMPTY_STRING, byte currpage = 0); public: // Costruttore TImmissioneDocumenti_mask() : TAlmanac_mask("ci0400a") { } // Distruttore ~TImmissioneDocumenti_mask() { } }; /////////////////////////////////////////////////////////// // TImmissioneDocumenti_app /////////////////////////////////////////////////////////// class TImmissioneDocumenti_app: public TSkeleton_application { TImmissioneDocumenti_mask* _mask; int _year; // anno corrente private: void init_tabs(); void init_flags(); protected: virtual bool create(void); virtual void main_loop(); virtual bool destroy(void) ; public: bool has_documents(int currpage, TDate& day); // passata come funzione alla maschera void change_year(int newyear, bool init_flg = true); // passata come funzione alla maschera TImmissioneDocumenti_mask & mask() const {return *_mask; } public: TImmissioneDocumenti_app() { change_year(TDate(TODAY).year(), false); } virtual ~TImmissioneDocumenti_app() {} }; inline TImmissioneDocumenti_app& immissione_documenti_app() { return (TImmissioneDocumenti_app&)main_app(); } #endif // __CI0400_H