91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#ifndef __RELAPP_H
 | 
						|
#define __RELAPP_H
 | 
						|
 | 
						|
#ifndef __APPLICAT_H
 | 
						|
#include <applicat.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef __RELATION_H
 | 
						|
#include <relation.h>
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
#ifndef __MASK_H
 | 
						|
#include <mask.h>
 | 
						|
#endif
 | 
						|
 | 
						|
class TKey_array;
 | 
						|
 | 
						|
class TRelation_application : public TApplication
 | 
						|
{
 | 
						|
	WINDOW _statbar;
 | 
						|
	TMask* _mask;
 | 
						|
	TKey_array* _maskeys;
 | 
						|
	long _first, _last;
 | 
						|
	int	 _search_id;
 | 
						|
 | 
						|
	TString _autoins_caller;
 | 
						|
	bool _lnflag;
 | 
						|
	TToken_string _fixed;
 | 
						|
 | 
						|
	virtual bool create();
 | 
						|
	virtual bool destroy();
 | 
						|
 | 
						|
	bool filter();
 | 
						|
	TLocalisamfile& file() const { return *get_relation()->lfile(); }
 | 
						|
	bool test_key(byte k, bool err);
 | 
						|
	bool save(bool check_dirty);
 | 
						|
	void enable_query();
 | 
						|
	void set_toolbar(bool all);
 | 
						|
 | 
						|
	void set_fixed();   // Fissa i campi non modificabili
 | 
						|
	int set_mode(int mode);	// Seleziona il nuovo modo e ritorna il vecchio
 | 
						|
	void set_limits(byte what = 0x3);
 | 
						|
	bool search_mode(); // Attiva la maschera di ricerca
 | 
						|
	void query_mode(bool pre_ins = FALSE);	// Entra in modo ricerca
 | 
						|
	void query_insert_mode() { query_mode(TRUE); }
 | 
						|
	void insert_mode();	// Entra in modo inserimento
 | 
						|
	bool modify_mode();	// Entra in modo modifica
 | 
						|
	bool main_loop();	  // Ciclo principale
 | 
						|
	TMask_field*	get_search_field() const;
 | 
						|
	void	setkey();
 | 
						|
 | 
						|
protected:
 | 
						|
	virtual bool menu(MENU_TAG m);
 | 
						|
 | 
						|
	virtual bool user_create() pure;
 | 
						|
	virtual bool user_destroy() pure;
 | 
						|
	virtual TMask* get_mask(int mode) pure;
 | 
						|
	virtual bool changing_mask(int mode) pure;
 | 
						|
	virtual TRelation* get_relation() const pure;
 | 
						|
	virtual int read(TMask& m);
 | 
						|
	virtual int write(const TMask& m);
 | 
						|
	virtual int rewrite(const TMask& m);
 | 
						|
	virtual bool remove();
 | 
						|
	virtual const char* get_next_key() { return ""; }
 | 
						|
	virtual bool protected_record(TRectype&) { return FALSE; }
 | 
						|
	virtual void init_query_mode(TMask&) { }
 | 
						|
	virtual void init_query_insert_mode(TMask& m) { init_query_mode(m); }
 | 
						|
	virtual void init_insert_mode(TMask&) { }
 | 
						|
	virtual void init_modify_mode(TMask&) { }
 | 
						|
	virtual void write_enable(const bool on = TRUE) { get_relation()->write_enable(-1, on); }
 | 
						|
	void write_disable() { write_enable(FALSE); }
 | 
						|
 | 
						|
	bool autonum(TMask* m, bool rec);
 | 
						|
	void set_search_field(short id) { _search_id = id;}
 | 
						|
	bool has_filtered_cursor() const { return filtered() || force_cursor_usage();}
 | 
						|
 | 
						|
public:
 | 
						|
	TRelation_application();
 | 
						|
	virtual ~TRelation_application();
 | 
						|
	bool filtered() const { return _fixed.not_empty(); }
 | 
						|
	void set_first(long first) { _first = first;}
 | 
						|
	void set_last(long last) { _last = last;}
 | 
						|
	bool find(byte key = 0);
 | 
						|
	virtual bool force_cursor_usage() const { return FALSE;}
 | 
						|
};
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
 |