Patch level : 4.0 582
Files correlati : ve7.exe Ricompilazione Demo : [ ] Commento : Nella ricezione da galileo si devono esportare nel file di testo solo i record modificati git-svn-id: svn://10.65.10.50/trunk@14711 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									6b06055dfe
								
							
						
					
					
						commit
						eebf2d65ba
					
				@ -2857,7 +2857,9 @@ int TSystemisamfile::dump(
 | 
			
		||||
    char rs,            // @parm Carattere separatore di record (default '\\n')
 | 
			
		||||
    bool vis,     // @parm Indica se visualizzare lo stato dell'operazione (defualt TRUE)
 | 
			
		||||
    bool withdeleted,// @parm Indica se scaricare anche i record cancellati (dafault FALSE)
 | 
			
		||||
    const char * filter) // @parm Indica l'espressione filtro 
 | 
			
		||||
    const char * filter,  // @parm Indica l'espressione filtro 
 | 
			
		||||
		SELECTIONFUNCTION select_func, // @parm funzione filtro 
 | 
			
		||||
		TObject * filter_obj) // @parm oggetto di filtro 
 | 
			
		||||
 | 
			
		||||
// @xref <mf TSystemisamfile::load>
 | 
			
		||||
 | 
			
		||||
@ -2919,13 +2921,14 @@ int TSystemisamfile::dump(
 | 
			
		||||
      {
 | 
			
		||||
        TToken_string filter_str(filter);
 | 
			
		||||
        TString16 fname;
 | 
			
		||||
        bool skip = FALSE;
 | 
			
		||||
        bool skip = false;
 | 
			
		||||
        while (!skip && !(fname=filter_str.get()).empty())
 | 
			
		||||
        {
 | 
			
		||||
          const char* fval = filter_str.get();
 | 
			
		||||
          const TString& cmp = get(fname);
 | 
			
		||||
          skip = cmp != fval;
 | 
			
		||||
        }
 | 
			
		||||
				skip |= (select_func != NULL) && (select_func(curr(), filter_obj) == false);
 | 
			
		||||
        if (skip)
 | 
			
		||||
          continue;
 | 
			
		||||
      }
 | 
			
		||||
@ -3029,14 +3032,15 @@ int TSystemisamfile::dump(
 | 
			
		||||
int TSystemisamfile::dump(
 | 
			
		||||
    const char* to, // @parm Nome del file verso quale esportare
 | 
			
		||||
		TToken_string & field_list,   // @parm Lista dei campi
 | 
			
		||||
		TAssoc_array * keys,          // @parm lista delle chiavi primarie da esportare
 | 
			
		||||
    int nkey,     // @parm Numero della chiave di ordinamento con cui scaricare i dati (defualt 1)
 | 
			
		||||
    char fs,    // @parm Carattere seperatore di campo (defualt <pipe>)
 | 
			
		||||
    char fd,            // @parm Carattere delimitatore di campo (default '\\0')
 | 
			
		||||
    char rs,            // @parm Carattere separatore di record (default '\\n')
 | 
			
		||||
    bool vis,     // @parm Indica se visualizzare lo stato dell'operazione (defualt TRUE)
 | 
			
		||||
    bool withdeleted,// @parm Indica se scaricare anche i record cancellati (dafault FALSE)
 | 
			
		||||
    const char * filter) // @parm Indica l'espressione filtro 
 | 
			
		||||
    const char * filter, // @parm Indica l'espressione filtro 
 | 
			
		||||
		SELECTIONFUNCTION select_func, // @parm funzione filtro 
 | 
			
		||||
		TObject * filter_obj) // @parm oggetto di filtro 
 | 
			
		||||
 | 
			
		||||
// @xref <mf TSystemisamfile::load>
 | 
			
		||||
 | 
			
		||||
@ -3112,7 +3116,7 @@ int TSystemisamfile::dump(
 | 
			
		||||
          skip = cmp != fval;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
			skip |= (keys != NULL) && (keys->objptr(curr().build_key(1)) == NULL);
 | 
			
		||||
			skip |= (select_func != NULL) && (select_func(curr(), filter_obj) == false);
 | 
			
		||||
      if (skip)
 | 
			
		||||
	      continue;
 | 
			
		||||
      s = "";
 | 
			
		||||
 | 
			
		||||
@ -562,6 +562,7 @@ public:
 | 
			
		||||
  virtual ~TIsamfile();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef bool (*SELECTIONFUNCTION)(const TRectype & r, TObject * obj);
 | 
			
		||||
// @doc EXTERNAL
 | 
			
		||||
 | 
			
		||||
// @class TSystemisamfile | Classe per la definizione delle funzione per la creazione di un file
 | 
			
		||||
@ -615,8 +616,8 @@ public:
 | 
			
		||||
  int overwrite(const char* from, char fs = '|', char fd = '\0', char rs = '\n', bool vis = true) ;
 | 
			
		||||
 | 
			
		||||
  // @cmember Esporta VERSO un file ascii. 
 | 
			
		||||
  int dump(const char* to, int nkey = 1, char fs = '|', char fd = '\0', char rs = '\n', bool vis = true, bool withdeleted = false, const char * filter = NULL);
 | 
			
		||||
  int dump(const char* to, TToken_string & field_list, TAssoc_array * keys = NULL, int nkey = 1, char fs = '|', char fd = '\0', char rs = '\n', bool vis = true, bool withdeleted = false, const char * filter = NULL);
 | 
			
		||||
  int dump(const char* to, int nkey = 1, char fs = '|', char fd = '\0', char rs = '\n', bool vis = true, bool withdeleted = false, const char * filter = NULL, SELECTIONFUNCTION select_func = NULL, TObject * filter_obj = NULL);
 | 
			
		||||
  int dump(const char* to, TToken_string & field_list, int nkey = 1, char fs = '|', char fd = '\0', char rs = '\n', bool vis = true, bool withdeleted = false, const char * filter = NULL, SELECTIONFUNCTION select_func = NULL, TObject * filter_obj = NULL);
 | 
			
		||||
 | 
			
		||||
  virtual word class_id() const { return CLASS_SYSTEMISAMFILE; }
 | 
			
		||||
  virtual bool is_kind_of(word id) const { return id == class_id() || TIsamfile::is_kind_of(id); }
 | 
			
		||||
 | 
			
		||||
@ -135,6 +135,7 @@ public:
 | 
			
		||||
  virtual bool dump();
 | 
			
		||||
  void set_data_limite(const TDate& data) { _data = data; }
 | 
			
		||||
  void set_path(const TString& path) { _path = path; }
 | 
			
		||||
	const TAssoc_array & keys() const { return _keys;}
 | 
			
		||||
  TGalileo_clifo();
 | 
			
		||||
  ~TGalileo_clifo();
 | 
			
		||||
};
 | 
			
		||||
@ -144,7 +145,8 @@ class TGalileo_articoli : public TGalileo_transfer
 | 
			
		||||
 | 
			
		||||
	TDate _data;
 | 
			
		||||
	TString _path;
 | 
			
		||||
	TAssoc_array _keys;
 | 
			
		||||
	TAssoc_array _keys_articoli;
 | 
			
		||||
	TAssoc_array _keys_umart;
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  int cancella_articolo(TLocalisamfile& clifo) const;
 | 
			
		||||
@ -153,6 +155,8 @@ protected:
 | 
			
		||||
public:
 | 
			
		||||
  virtual bool trasferisci();
 | 
			
		||||
  virtual bool dump();
 | 
			
		||||
	const TAssoc_array & keys_articoli() const { return _keys_articoli;}
 | 
			
		||||
	const TAssoc_array & keys_umart() const { return _keys_umart;}
 | 
			
		||||
  void set_data_limite(const TDate& data) { _data = data; }
 | 
			
		||||
  void set_path(const TString& path) { _path = path; }
 | 
			
		||||
  TGalileo_articoli();
 | 
			
		||||
 | 
			
		||||
@ -15,6 +15,13 @@
 | 
			
		||||
// TGalileo_clifo
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
bool select_clifo(const TRectype & rec, TObject * myself)
 | 
			
		||||
{
 | 
			
		||||
	TGalileo_clifo * c = (TGalileo_clifo *) myself;
 | 
			
		||||
	const TString key(rec.build_key());
 | 
			
		||||
	return c->keys().objptr(key) != NULL; 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int TGalileo_clifo::cancella_clifo(TLocalisamfile& clifo) const
 | 
			
		||||
{     
 | 
			
		||||
	return NOERR;
 | 
			
		||||
@ -78,7 +85,7 @@ bool TGalileo_clifo::dump()
 | 
			
		||||
	TFilename path = _path;
 | 
			
		||||
	path << "clifo.txt";
 | 
			
		||||
	TSystemisamfile clifo(LF_CLIFO);
 | 
			
		||||
	return (clifo.dump(path, lista_dump, &_keys) == NOERR);
 | 
			
		||||
	return (clifo.dump(path, lista_dump, 1, '|', '\0', '\10', true, false, NULL, select_clifo, this) == NOERR);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TGalileo_clifo::trasferisci()
 | 
			
		||||
@ -208,6 +215,20 @@ TGalileo_clifo::~TGalileo_clifo()
 | 
			
		||||
// TGalileo_articoli
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
bool select_umart(const TRectype & rec, TObject * myself)
 | 
			
		||||
{
 | 
			
		||||
	TGalileo_articoli * c = (TGalileo_articoli *) myself;
 | 
			
		||||
	const TString key(rec.build_key());
 | 
			
		||||
	return c->keys_umart().objptr(key) != NULL; 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool select_articoli(const TRectype & rec, TObject * myself)
 | 
			
		||||
{
 | 
			
		||||
	TGalileo_articoli * c = (TGalileo_articoli *) myself;
 | 
			
		||||
	const TString key(rec.build_key());
 | 
			
		||||
	return c->keys_articoli().objptr(key) != NULL; 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int TGalileo_articoli::cancella_articolo(TLocalisamfile& anamag) const
 | 
			
		||||
{     
 | 
			
		||||
	return NOERR;
 | 
			
		||||
@ -232,12 +253,12 @@ bool TGalileo_articoli::dump()
 | 
			
		||||
	path << "umart.txt";
 | 
			
		||||
	TSystemisamfile anamag(LF_ANAMAG);
 | 
			
		||||
	TSystemisamfile umart(LF_UMART);
 | 
			
		||||
	int err = umart.dump(path);
 | 
			
		||||
	int err = umart.dump(path, NULL, 1, '|', '\0', '\10', true, false, NULL, select_umart, this) == NOERR;
 | 
			
		||||
	if (err == NOERR)
 | 
			
		||||
	{
 | 
			
		||||
		path = _path;
 | 
			
		||||
		path << "anamag.txt";
 | 
			
		||||
		err = anamag.dump(path, lista_dump, &_keys);
 | 
			
		||||
		err = anamag.dump(path, lista_dump, 1, '|', '\0', '\10', true, false, NULL, select_articoli, this) == NOERR;
 | 
			
		||||
	}
 | 
			
		||||
	return (err == NOERR);
 | 
			
		||||
}
 | 
			
		||||
@ -274,9 +295,9 @@ bool TGalileo_articoli::trasferisci()
 | 
			
		||||
    rec_anamag.zero();
 | 
			
		||||
		rec_anamag.put(ANAMAG_CODART, codart);
 | 
			
		||||
 | 
			
		||||
		const TString16 key(rec_anamag.build_key(1));
 | 
			
		||||
		const TString80 key(rec_anamag.build_key(1));
 | 
			
		||||
 | 
			
		||||
		_keys.add(key, key);
 | 
			
		||||
		_keys_articoli.add(key, key);
 | 
			
		||||
 | 
			
		||||
		bool good = anamag.read() == NOERR;
 | 
			
		||||
 | 
			
		||||
@ -292,6 +313,10 @@ bool TGalileo_articoli::trasferisci()
 | 
			
		||||
	    rec_umart.zero();
 | 
			
		||||
			rec_umart.put(UMART_CODART, codart);
 | 
			
		||||
			rec_umart.put(UMART_NRIGA, 1);
 | 
			
		||||
 | 
			
		||||
			const TString80 key_umart(rec_umart.build_key(1));
 | 
			
		||||
		
 | 
			
		||||
			_keys_umart.add(key_umart, key_umart);
 | 
			
		||||
			bool good = umart.read() == NOERR;
 | 
			
		||||
			if (!good)
 | 
			
		||||
			{
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user