Patch level :
Files correlati : 2.2 Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@12512 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									cae10c1e45
								
							
						
					
					
						commit
						b33993e97d
					
				@ -9,7 +9,7 @@ int main(int argc, char** argv)
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
//  case  1: ca0200(argc,argv); break; // stampa tabelle 
 | 
					//  case  1: ca0200(argc,argv); break; // stampa tabelle 
 | 
				
			||||||
  case  2: ca0300(argc,argv); break; // parametri configurazione Contabilita' Analitica
 | 
					  case  2: ca0300(argc,argv); break; // parametri configurazione Contabilita' Analitica
 | 
				
			||||||
//  case  3: ca0400(argc,argv); break; //immissione dati nei files CDC,CMS,FSC
 | 
					  case  3: ca0400(argc,argv); break; //immissione piano dei conti
 | 
				
			||||||
//  case  5: ca0600(argc,argv); break; // ribaltamenti
 | 
					//  case  5: ca0600(argc,argv); break; // ribaltamenti
 | 
				
			||||||
  default: ca0100(argc,argv); break; // gestione tabelle 
 | 
					  default: ca0100(argc,argv); break; // gestione tabelle 
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								ca/ca0.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								ca/ca0.h
									
									
									
									
									
								
							@ -4,7 +4,7 @@
 | 
				
			|||||||
int ca0100(int argc, char* argv[]);
 | 
					int ca0100(int argc, char* argv[]);
 | 
				
			||||||
//int ca0200(int argc, char* argv[]);
 | 
					//int ca0200(int argc, char* argv[]);
 | 
				
			||||||
int ca0300(int argc, char* argv[]);
 | 
					int ca0300(int argc, char* argv[]);
 | 
				
			||||||
//int ca0400(int argc, char* argv[]);
 | 
					int ca0400(int argc, char* argv[]);
 | 
				
			||||||
//int ca0600(int argc, char* argv[]);
 | 
					//int ca0600(int argc, char* argv[]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // __CA0_H
 | 
					#endif // __CA0_H
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,6 @@
 | 
				
			|||||||
#include <automask.h>
 | 
					#include <automask.h>
 | 
				
			||||||
#include <modaut.h>
 | 
					#include <modaut.h>
 | 
				
			||||||
#include <tabapp.h>
 | 
					#include <tabapp.h>
 | 
				
			||||||
#include <tabutil.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
////////////////////////////////////////////////////////////////////////
 | 
					////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
//MASCHERA
 | 
					//MASCHERA
 | 
				
			||||||
@ -58,8 +57,8 @@ public:
 | 
				
			|||||||
  virtual ~Tab_app_ca() {}
 | 
					  virtual ~Tab_app_ca() {}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
HIDDEN inline Tab_app_ca& app() { return (Tab_app_ca&)main_app(); }
 | 
					HIDDEN inline Tab_app_ca& app() { return (Tab_app_ca&)main_app(); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// costruttore
 | 
					// costruttore
 | 
				
			||||||
Tab_app_ca::Tab_app_ca() {}
 | 
					Tab_app_ca::Tab_app_ca() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -98,7 +97,6 @@ int Tab_app_ca::rewrite(const TMask& m)
 | 
				
			|||||||
  return Tab_application::rewrite(m);
 | 
					  return Tab_application::rewrite(m);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
int ca0100(int argc, char* argv[])
 | 
					int ca0100(int argc, char* argv[])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Tab_app_ca a;
 | 
					  Tab_app_ca a;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,15 +1,15 @@
 | 
				
			|||||||
#include "ca0300a.h"
 | 
					#include "ca0300a.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TOOLBAR "" 0 20 0 2
 | 
					TOOLBAR "" 0 -2 0 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_OK 10 2
 | 
					BUTTON DLG_OK 10 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
	PROMPT -12 -1 ""
 | 
						PROMPT -12 -11 ""
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_QUIT 10 2
 | 
					BUTTON DLG_QUIT 10 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
	PROMPT -22 -1 ""
 | 
						PROMPT -22 -11 ""
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										48
									
								
								ca/ca0400.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										48
									
								
								ca/ca0400.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					// Gestione Contabilita' Analitica
 | 
				
			||||||
 | 
					#include <relapp.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "calib01.h"
 | 
				
			||||||
 | 
					#include "ca0400a.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TPiano_conti_anal_msk : public TSimple_anal_msk
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					  virtual int get_logicnum() const { return LF_PCONANA; } 
 | 
				
			||||||
 | 
					  virtual const char* get_key_var() const { return "Pdci"; }
 | 
				
			||||||
 | 
					  virtual const char* get_des_var() const { return "PdciDes"; }
 | 
				
			||||||
 | 
					  virtual short get_key_id(int n) const { return n >= 0 && n < 4 ? F_KEY_1+n : 0; }
 | 
				
			||||||
 | 
					  virtual short get_des_id(int n) const { return n >= 0 && n < 4 ? F_DES_1+n : 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					  TPiano_conti_anal_msk();
 | 
				
			||||||
 | 
					  virtual ~TPiano_conti_anal_msk();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TPiano_conti_anal_msk::TPiano_conti_anal_msk() : TSimple_anal_msk("ca0400a")
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  create_key_fields();
 | 
				
			||||||
 | 
					  offset_fields();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TPiano_conti_anal_msk::~TPiano_conti_anal_msk()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// TAnalisi_app
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TAnalisi_app : public TAnal_app
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					  virtual TAnal_msk* create_mask() const { return new TPiano_conti_anal_msk; }
 | 
				
			||||||
 | 
					  virtual TConfig* create_config() const { return new TConfig(CONFIG_DITTA, "ca"); }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ca0400(int argc, char* argv[])
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  TAnalisi_app app;
 | 
				
			||||||
 | 
					  app.run(argc, argv, TR("Gestione Piano dei conti analitico"));
 | 
				
			||||||
 | 
					  return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										10
									
								
								ca/ca0400a.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								ca/ca0400a.h
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					#define F_KEY_1      101
 | 
				
			||||||
 | 
					#define F_KEY_2      102
 | 
				
			||||||
 | 
					#define F_KEY_3      103
 | 
				
			||||||
 | 
					#define F_KEY_4      104
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define F_DES_1      111
 | 
				
			||||||
 | 
					#define F_DES_2      112
 | 
				
			||||||
 | 
					#define F_DES_3      113
 | 
				
			||||||
 | 
					#define F_DES_4      114
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										26
									
								
								ca/ca0400a.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								ca/ca0400a.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					#include "ca0400a.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TOOLBAR "" 0 20 0 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUTTON DLG_OK 10 2
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
						PROMPT -12 -1 ""
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUTTON DLG_QUIT 10 2
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
						PROMPT -22 -1 ""
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENDPAGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PAGE "Piano dei conti" -1 -1 78 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GROUPBOX DLG_NULL 78 6
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT 1 0 ""
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENDPAGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENDMASK
 | 
				
			||||||
							
								
								
									
										174
									
								
								ca/calib01.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										174
									
								
								ca/calib01.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,174 @@
 | 
				
			|||||||
 | 
					#include "calib01.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// TAnal_msk
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TAnal_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TAnal_msk::offset_fields()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  const WINDOW tw = toolwin();
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  RCT rct; xvt_vobj_get_client_rect(win(), &rct);
 | 
				
			||||||
 | 
					  const int width = rct.right;
 | 
				
			||||||
 | 
					  int rightmost = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (int i = fields()-1; i > 0; i--)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    TMask_field& f = fld(i);
 | 
				
			||||||
 | 
					    if (f.dlg() < 1000 && f.parent() != tw)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      f.get_rect(rct);
 | 
				
			||||||
 | 
					      if (rct.right > rightmost)
 | 
				
			||||||
 | 
					        rightmost = rct.right;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const int delta = width - rightmost;
 | 
				
			||||||
 | 
					  if (delta > 0)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    for (int i = fields()-1; i >= 0; i--)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      TMask_field& f = fld(i);
 | 
				
			||||||
 | 
					      if (f.dlg() < 1000 && f.parent() != tw)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        f.get_rect(rct);
 | 
				
			||||||
 | 
					        xvt_rect_offset(&rct, delta, 0);
 | 
				
			||||||
 | 
					        f.set_rect(rct);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TAnal_msk::TAnal_msk(const char* name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  read_mask(name, 0, 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// TSimple_anal_msk
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TSimple_anal_msk::get_key_fields(TString& key1, TString& key2) const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  const RecDes& des = prefix().get_recdes(get_logicnum());
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  const KeyDes k1 = des.Ky[0];
 | 
				
			||||||
 | 
					  key1 = des.Fd[k1.FieldSeq[0] % MaxFields].Name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const KeyDes k2 = des.Ky[1];
 | 
				
			||||||
 | 
					  key2 = des.Fd[k2.FieldSeq[0] % MaxFields].Name;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TSimple_anal_msk::create_key_browse(TEdit_field& kfld, int level, TConfig& cfg)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  TString16 key1, key2;
 | 
				
			||||||
 | 
					  get_key_fields(key1, key2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  TFilename tmp; tmp.temp();
 | 
				
			||||||
 | 
					  ofstream out(tmp);
 | 
				
			||||||
 | 
					  out << "US " << get_logicnum() << endl;
 | 
				
			||||||
 | 
					  out << "KE 1" << endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int from = 1, to = 1;
 | 
				
			||||||
 | 
					  for (int i = 0; i < level; i++)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    const TString& picture = cfg.get(get_key_var(), NULL, i);
 | 
				
			||||||
 | 
					    const TString& prompt = cfg.get(get_des_var(), NULL, i);
 | 
				
			||||||
 | 
					    to = from + picture.len()-1;
 | 
				
			||||||
 | 
					    TString field; field.format("%s[%d,%d]", (const char*)key1, from, to);
 | 
				
			||||||
 | 
					    out << "IN " << field << ' ' << get_key_id(i) << endl;
 | 
				
			||||||
 | 
					    out << "DI \"" << prompt << '@' << (from-to+1) << "\" " << field << endl;
 | 
				
			||||||
 | 
					    out << "OU " << get_key_id(i) << ' ' << field << endl;
 | 
				
			||||||
 | 
					    from = to+1;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  out << "DI \"Descrizione@50\" " << key2 << endl;
 | 
				
			||||||
 | 
					  out << "OU " << get_des_id(level-1) << ' ' << key2 << endl;
 | 
				
			||||||
 | 
					  out << "CH " << (level == 1 ? "RE" : "NO") << endl;
 | 
				
			||||||
 | 
					  out << "EN" << endl;
 | 
				
			||||||
 | 
					  out.close();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  TScanner scan(tmp);
 | 
				
			||||||
 | 
					  while (scan.pop() != "EN")
 | 
				
			||||||
 | 
					    kfld.parse_item(scan);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  xvt_fsys_removefile(tmp);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int TSimple_anal_msk::create_key_fields()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  TConfig cfg(CONFIG_DITTA, "ca");
 | 
				
			||||||
 | 
					  const char* keyvar = get_key_var();
 | 
				
			||||||
 | 
					  const char* desvar = get_des_var();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int maxkeylen = 0, maxdeslen = 0;
 | 
				
			||||||
 | 
					  int level;
 | 
				
			||||||
 | 
					  for (level = 1; ; level++)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    const TString& prompt = cfg.get(desvar, NULL, level);
 | 
				
			||||||
 | 
					    if (prompt.blank())
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    const TString& picture = cfg.get(keyvar, NULL, level);
 | 
				
			||||||
 | 
					    const int keylen = picture.len();
 | 
				
			||||||
 | 
					    const int deslen = prompt.len();
 | 
				
			||||||
 | 
					    if (keylen > maxkeylen) maxkeylen = keylen;
 | 
				
			||||||
 | 
					    if (deslen > maxdeslen) maxdeslen = deslen;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  maxdeslen++;
 | 
				
			||||||
 | 
					  const int tab0 = 2;
 | 
				
			||||||
 | 
					  const int tab1 = tab0 + maxdeslen + maxkeylen + 3;
 | 
				
			||||||
 | 
					  for (int i = 1; i < level; i++)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    const short kid = get_key_id(i-1);
 | 
				
			||||||
 | 
					    CHECKD(kid > 100, "Invalid field id:", kid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const TString& picture = cfg.get(keyvar, NULL, i);
 | 
				
			||||||
 | 
					    TString80 prompt = cfg.get(desvar, NULL, i);
 | 
				
			||||||
 | 
					    prompt.left_just(maxdeslen);
 | 
				
			||||||
 | 
					    TEdit_field& kfld = add_string(kid, 0, prompt, tab0, i, picture.len(), "B");
 | 
				
			||||||
 | 
					    create_key_browse(kfld, i, cfg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const short did = get_des_id(i-1);
 | 
				
			||||||
 | 
					    if (did > kid)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      add_string(did, 0, "", tab1, i, 50, "", 76-tab1);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  return level;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TSimple_anal_msk::TSimple_anal_msk(const char* name) : TAnal_msk(name) 
 | 
				
			||||||
 | 
					{ 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// TAnal_app
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TRelation* TAnal_app::create_relation() const 
 | 
				
			||||||
 | 
					{ 
 | 
				
			||||||
 | 
					  return new TRelation(_msk->get_logicnum()); 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TAnal_app::user_create()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  _msk = create_mask();
 | 
				
			||||||
 | 
					  _rel = create_relation();
 | 
				
			||||||
 | 
					  return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TAnal_app::user_destroy()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (_msk != NULL)
 | 
				
			||||||
 | 
					    delete _msk;
 | 
				
			||||||
 | 
					  if (_rel != NULL)
 | 
				
			||||||
 | 
					    delete _rel;
 | 
				
			||||||
 | 
					  return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										71
									
								
								ca/calib01.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										71
									
								
								ca/calib01.h
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,71 @@
 | 
				
			|||||||
 | 
					#ifndef __CALIB01_H
 | 
				
			||||||
 | 
					#define __CALIB01_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __AUTOMASK_H
 | 
				
			||||||
 | 
					#include <automask.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __RELAPP_H
 | 
				
			||||||
 | 
					#include <relapp.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// TAnal_msk
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TAnal_msk : public TAutomask
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					  virtual int create_key_fields() pure;
 | 
				
			||||||
 | 
					  void offset_fields();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
				
			||||||
 | 
					  TAnal_msk(const char* name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					  virtual int get_logicnum() const pure;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// 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;
 | 
				
			||||||
 | 
					  virtual short get_key_id(int n) const pure;
 | 
				
			||||||
 | 
					  virtual short get_des_id(int n) const pure;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  void get_key_fields(TString& key1, TString& key2) const;
 | 
				
			||||||
 | 
					  void create_key_browse(TEdit_field& kfld, int level, TConfig& cfg);
 | 
				
			||||||
 | 
					  virtual int create_key_fields();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					  TSimple_anal_msk(const char* name);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// 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();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					  virtual TAnal_msk* create_mask() const pure;
 | 
				
			||||||
 | 
					  virtual TRelation* create_relation() const;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user