#ifndef __BA1100_H #define __BA1100_H #ifndef __APPLICAT_H #include #endif #ifndef __CONFIG_H #include #endif #ifndef __SHEET_H #include #endif #ifndef __SHEET_H #include #endif #ifndef __MASKFLD_H class TMask_field; #endif #ifndef __PRINTER_H #include #endif #ifndef __REPUTILS_H #include #endif #include "ba1100a.h" /////////////////////////////////////////////////////////// // TDir_sheet /////////////////////////////////////////////////////////// class TDir_sheet : public TSheet { TTrec _rec; TDir _dir; FileDes _s_dir; long _items; protected: virtual long get_items() const { return _items; } virtual void get_row(long n, TToken_string& r); public: const TDir& dir() const { return _dir; } TDir& dir() { return _dir; } const TTrec& rec() const { return _rec; } TTrec& rec() { return _rec; } void set_items(long items) { _items = items; } void add(); void rebuild() { _items = _dir.items(); } TDir_sheet(const char* title, bool superprassi); }; class TRec_sheet : public TObject { TTrec _rec; TTrec _rec_old; TDir _dir; bool _comfile; TConfig *_descr; static TMask *_mask; TFilename _descfname; TString16 _tab; bool _external; protected: bool check_key_expr(int key, const char* key_expr); static bool key_notify(TSheet_field& s, int r, KEY k); static bool fld_notify(TSheet_field& s, int r, KEY k); void save(); void save_desc(); virtual long get_items() const { return _rec.fields(); } public: const TDir& dir() const { return _dir; } const TTrec& rec() const { return _rec; } const char* descfname() const { return _descfname; } const char* tab() const { return _tab; } void edit(); TRec_sheet(int logicnum, const char* tab); TRec_sheet(TExternisamfile* file); virtual ~TRec_sheet(); }; class TEdit_file : public TObject { protected: void edit_record(TRectype& rec); bool browse_cursor(TCursor& cur, const TFilename& name); public: bool browse_file(int logicnum, const TFilename& name, const TString& tab, const int selKey = 1); bool browse_file(TExternisamfile* file, const TFilename& name); TEdit_file() {} virtual ~TEdit_file() {} }; class TManutenzione_app : public TSkeleton_application { TDir_sheet* _browse; TArray _dirs; TArray _refdirs; TArray _recs; TMask* _mask; long _firm; long _level; long _history_firm; TRec_sheet* _rec; TLog_report* _log; bool _print_log; bool _superprassi; protected: virtual void main_loop(); virtual bool create(); virtual bool destroy(); void insert_riga(long, TToken_string&); void edit_riga(long, TToken_string&); void edit_riga(const TString&); void delete_riga(long); virtual bool extended_firm() const { return true; } bool set_converting(); bool reset_converting(); bool try_to_recover(TSystemisamfile& f, int err); void clean_recdef(const char * dir); // void convert_recdef(int firm = -1); void update(); void update_dir(); void recover(); void convert_dir(); virtual void print(); virtual void do_print(TPrinter & p, TRec_sheet & r); const char* dumpfilename(const FileDes& dep) const; void load_des(); void open_history(); void put_history(const char* firm); void close_history(); void dump_trc(const char * dir, const bool des_too = true, const long modules = -1, bool verbose = false); void repair_file(int i); void save_file(const char * file); void open_log(); void write_log(const char* line, const int severity = 0); void close_log(); bool moveable_file(int file) const; public: long get_firm() const { return _firm; } TManutenzione_app(); }; inline TManutenzione_app & app() { return (TManutenzione_app &)main_app(); } #endif