#ifndef __SCANDICH_H
#define __SCANDICH_H

#include <isam.h>
#include "77lib.h"

///////////////////////////////////////////////////////////
// TScandich
///////////////////////////////////////////////////////////

// @doc EXTERNAL

// @enum scantype | Tipo di scansione da effettuare
enum scantype  {
     _sel_dich,     // @emem Dichiarazioni selezionate
     _all_dich };   // @emem Tutte le dichiarazioni

// @class TScandich | Classe per la scansione delle dichiarazioni da elaborare
//
// @base public | TObject
class TScandich : public TObject

// @author:(INTERNAL) Luciano

// @access:(INTERNAL) Private Member
{ 
  // @cmember:(INTERNAL) tipo di scansione richiesta
  scantype _type;
  // @cmember:(INTERNAL) configurazione utente per dichiarazioni selezionate
  TConfig* _cnf_user;                                                        
  // @cmember:(INTERNAL) file base dichiarazioni  
  TLocalisamfile* _base_file;                      
  // @cmember:(INTERNAL) codice dichiarazione in manutenzione da ripristinare 
  long _dich_prec;                                  
  // @cmember:(INTERNAL) indice della dichiarazione selezionata
  int _num_dich;                                               
  // @cmember:(INTERNAL) codice ultimo errore 
  int _lasterr;

// @access Public Member
public:                                     
  // @cmember ritorna il codice della prima dichiarazione da elaborare 
  long first();
  // @cmember ritorna il codice della successiva dichiarazione da elaborare 
  long next();
  // @cmember ritorna se l'ultimo codice restituito era valido 
  bool good()
  {return _lasterr == NOERR;}

  // @cmember Costruttore
  TScandich(scantype type = _sel_dich);
  // @cmember Distruttore
  virtual ~TScandich();
};

#endif