#ifndef __CILIB_H #define __CILIB_H #ifndef __AUTOMASK_H #include #endif #ifndef __VELIB_H #include <../ve/velib.h> #endif #ifndef __TABMOD_H #include #endif /////////////////////////////////////////////////////////// // TAlmanac_field /////////////////////////////////////////////////////////// // @doc EXTERNAL // @class TAlmanac_field | Windowed Field per la gestione di un calendario // // @base public | TWindowed_field class TAlmanac_field : public TWindowed_field { // @author:(INTERNAL) Brugno // @access Protected Member // @cmember:(INTERNAL) Parametro di visualizzazione: Separazione tra le celle del calenbdario int _padding; // @cmember:(INTERNAL) Parametro di visualizzazione: flag di visulizzazione del nome del mese bool _showmonthname; // @access Protected Member // @cmember:(INTERNAL) Variabile interna: Data correntemente selezionato nel calendario TDate _selecteddate; TDate _dateinsert; TField_window * _image; // @access Protected Member protected: // override da TWindowed_field virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent); void adjust_selected_day(); // @access Public Member public: // @cmember Gestione del giorno correntemente selezionato: restituisce la data selezionata const TDate& selected_date() const { return _selecteddate; } // @cmember Gestione del giorno correntemente selezionato: restituisce il giorno selezionato int selected_day() { return _selecteddate.day(); } // @cmember Gestione del giorno correntemente selezionato: restituisce il giorno selezionato int selected_month() { return _selecteddate.month(); } // @cmember Gestione del giorno correntemente selezionato: restituisce true se il giorno selezionato è uguale al parametro bool is_selected(int tday) { return (tday==selected_day()); } // @cmember Gestione del giorno correntemente selezionato: setta il giorno selezionato al valore specificato void set_selected_day(int nday); // @cmember Gestione del giorno correntemente selezionato: avanza il giorno selezionato del valore relativo specificato void move_selected_day(int ddays); // @cmember Gestione del giorno correntemente selezionato: setta il mese selezionato al valore specificato void set_selected_month(int nmonth); // @cmember Gestione del giorno correntemente selezionato: avanza il mese selezionato del valore relativo specificato void move_selected_month(int dmonths); // @cmember Gestione del giorno correntemente selezionato: restituisce l'anno selezionato int selected_year() { return _selecteddate.year(); } // @cmember Gestione del giorno correntemente selezionato: setta l'anno selezionato al valore specificato void set_selected_year(int nyear); // @cmember Gestione del giorno correntemente selezionato: setta il giorno selezionato void set_selected_date(const TDate& sdate) { _selecteddate = sdate; } void force_update(bool update_image = false); // @access Public Member public: // @cmember Gestione dei parametri di visulizzazione: setta il flag di visulizzazione dei mesi void set_show_month_name(bool on = true) { _showmonthname = on; } // @cmember Gestione dei parametri di visulizzazione: setta lo spazio fra le celle del calendario void set_padding(int p) { _padding = p; } // @cmember Gestione dei parametri di visulizzazione: ritorna il flag di visulizzazione dei mesi bool show_month_name() const { return _showmonthname; } // @cmember Gestione dei parametri di visulizzazione: ritorna lo spazio fra le celle del calendario int padding() const { return _padding; } // @access Public Member public: bool is_date_void(int currpage, const TDate& cdate); // @cmember Gestione selezione: Setta la prima data dell'anno con l'inserimento attivo void set_insert_date(const TDate & d) { _dateinsert = d; } bool can_insert(const TDate &d) const { return d >= _dateinsert; } void create(short id, const RCT& rct, WINDOW parent); // Internal use only // @access Public Member public: // @cmember Costruttore TAlmanac_field(TMask* m) : TWindowed_field(m),_showmonthname(true), _selecteddate(TODAY), _dateinsert(botime), _padding(2), _image(NULL) {} // @cmember Distruttore virtual ~TAlmanac_field() { } }; /////////////////////////////////////////////////////////// // TAlmanac_mask /////////////////////////////////////////////////////////// // @doc EXTERNAL // @class TAlmanac_mask | Maschera generica per la gestione di un calendario // // @base public | TAutomask class TAlmanac_mask : public TAutomask { // @author:(INTERNAL) Brugno // @cmember:(INTERNAL) Puntatori ai campi calendario TPointer_array _almanacs; // @access Protected Member protected: // override da TAutomask virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual void set_focus(); // @access Public Member public: // shortcut per l'accesso all'almanacco della pagina corrente TAlmanac_field& almanac(byte page = -1) const ; // override da TAutomask virtual TMask_field* parse_field(TScanner& scanner); // @cmember Gestione calendari: Attiva l'almanacco sulla pagina specificata per la data specificata int activate_almanac(short id, const char* title); // @cmember Gestione calendari: Cambia l'anno su tutti i calendari void set_year(int newyear); // @cmember Gestione calendari: Ritorna il giorno selezionato nella pagina corrente const TDate& selected_day() const; // @cmember Gestione eventi calendario: Controlla la presenza di documenti nella data attiva virtual bool is_date_void(int currpage, const TDate& cdate); // @cmember Gestione eventi calendario: Controlla la presenza di documenti nella data attiva virtual void change_year(int newyear); // @cmember Chiama la maschera o lo sheet legato al gioro selezionato virtual void open_day_mask(const TDate & date = botime) { } // @cmember Costruttore TAlmanac_mask(const char * name); // @cmember Distruttore virtual ~TAlmanac_mask() { } }; //////////////////////////// //// TRISOATT_KEY //// //////////////////////////// //Classe TRisoatt_key class TRisoatt_key : public TString80 { public: TRisoatt_key & operator =(const TRisoatt_key& roakey) { return *this; } const TString& codlist() const; const char tipo() const; const TString& cod() const; const int anno() const; const TString& mese() const; const TString& giorno() const; const TString& tpora() const; const TString& data() const; //costruttore TRisoatt_key(const char* codlist, const char risoatt, const char* codice, const int anno, const char* mese, const char * giorno, const char* tpora); TRisoatt_key(const char* codlist, const char risoatt, const char* codice, const TDate & data, const char* tpora); TRisoatt_key(const char* roakey); }; //////////////////////// //// TRISOATT //// //////////////////////// //Classe TRisoatt class TRisoatt : public TRectype { private: bool read(const TRisoatt_key& chiave); public: TRisoatt & operator =(const TRisoatt& ris) { return *this; } const TString& chiave() const; const TString& descr() const; const real valuni() const; const real valunipr() const; //costruttore TRisoatt(const TRectype& r); TRisoatt(const TRisoatt_key& chiave); virtual ~TRisoatt() {} }; //////////////////////// //// TRISOATT //// //////////////////////// //Classe TRisoatt class TDisp_risoatt : public TRectype { public: TDisp_risoatt & operator =(const TDisp_risoatt& ris) { return *this; } const TString& chiave() const; const long id() const; const real ore_prev() const; const real ore_cons() const; void set_id(long id); //costruttore TDisp_risoatt(const TRectype& r); virtual ~TDisp_risoatt() {} }; //////////////////////////////// //// TRILEVAMENTO_ORE //// //////////////////////////////// //Classe TRilevamento_ore class TRilevamento_ore : public TRectype { private: public: int read(const char tipo, const long id, TReclock lock = _nolock); int read(const char tipo, const TDate & giorno, const char tipora, const char* codice, const char* tpora, const char* codcosto, const char* codcms, const char* codfase, TReclock lock = _nolock); int remove(); void update_id(); int write_rewrite(); int rewrite_write(); const TRilevamento_ore & operator =(const TRilevamento_ore & rilore) { TRectype::operator =(rilore); return *this; } TRilevamento_ore(const TRectype& rec); TRilevamento_ore(const TRilevamento_ore& rilore); TRilevamento_ore(const char tipo, const long id); TRilevamento_ore(const char tipo, const TDate & giorno, const char tipora, const char* codice, const char* tpora, const char* codcosto, const char* codcms, const char* codfase); TRilevamento_ore(); }; /////////////////////////// //// TDoc_cache //// /////////////////////////// long date2ndoc(const TDate& data); //classe TDoc_cache class TDoc_cache : public TCache { protected: virtual void discarding(const THash_object* obj); virtual TObject* key2obj(const char* key); public: TDocumento& doc(const TDoc_key& kdoc); TDocumento& doc(const TRectype& rec) { return doc(TDoc_key(rec)); } TDocumento& new_doc(TDoc_key& kdoc); TDocumento& new_doc(const TRectype& rec) { return new_doc(TDoc_key(rec)); } TDoc_cache() : TCache(1883) {} }; #endif