#ifndef __CALIB01_H #define __CALIB01_H #ifndef __AUTOMASK_H #include #endif #ifndef __RELAPP_H #include #endif /////////////////////////////////////////////////////////// // TAnal_msk /////////////////////////////////////////////////////////// class TAnal_msk : public TAutomask { TArray _key1_fields; TArray _key2_fields; protected: void add_fieldref(const char* name, int from, int to, int key = 1); protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual void read(const char* msk); virtual int create_key_fields(); virtual short create_tree_field(); int compute_offset() const; TAnal_msk() { } public: void update_tree_field(); const TFieldref& fieldref(int n, int key = 1) const; int fieldrefs(int key = 1) const; virtual int get_logicnum() const pure; virtual const char* get_tabname() const { return ""; } virtual short get_field_id(int n, int key = 1) const pure; virtual const TToken_string& get_key_value(const TRectype& rec, int k = 1) const; virtual const TToken_string& get_key_value(int k = 1) const; }; /////////////////////////////////////////////////////////// // TSimple_anal_msk /////////////////////////////////////////////////////////// class TSimple_anal_msk : public TAnal_msk { protected: virtual const char* get_key_var() const pure; virtual const char* get_des_var() const pure; const char* get_key_fieldname(int k) const; void append_select_clause(ostream& out, int level) const; void create_key_browse(TEdit_field& kfld, int level, TConfig& cfg); void create_des_browse(TEdit_field& kfld, int level, TConfig& cfg); virtual int create_key_fields(); protected: TSimple_anal_msk() { } }; /////////////////////////////////////////////////////////// // TAnal_app /////////////////////////////////////////////////////////// class TAnal_app : public TRelation_application { TRelation* _rel; TAnal_msk* _msk; protected: virtual bool changing_mask(int) { return false; } virtual TMask* get_mask(int) { return _msk; } virtual TRelation* get_relation() const { return _rel; } virtual bool user_create(); virtual bool user_destroy(); virtual int write(const TMask& m); virtual int rewrite(const TMask& m); void init_key_fields() const; virtual void init_query_mode(TMask& m); virtual void init_modify_mode(TMask& m); virtual void init_insert_mode(TMask& m); protected: virtual TAnal_msk* create_mask() const pure; virtual TRelation* create_relation() const; }; #endif