213 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			213 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <stdlib.h>
 | 
						|
 | 
						|
#include <applicat.h>
 | 
						|
#include <isam.h>
 | 
						|
#include <mask.h>
 | 
						|
#include <progind.h>
 | 
						|
#include <sheet.h>
 | 
						|
#include <urldefid.h>
 | 
						|
#include <utility.h>
 | 
						|
#include <validate.h>
 | 
						|
 | 
						|
#include "ba1.h"
 | 
						|
#include "ba1300.h"
 | 
						|
#include "ba1300a.h"
 | 
						|
 | 
						|
 | 
						|
class BA1300_application:public TApplication
 | 
						|
{
 | 
						|
  TTestSheet    * _testsheet;
 | 
						|
  TTestProc     * _test,
 | 
						|
  * _debug;
 | 
						|
  TMask         * _mask;
 | 
						|
  long            _firm;
 | 
						|
 | 
						|
protected:
 | 
						|
  virtual bool menu(MENU_TAG);
 | 
						|
  virtual bool create () ;
 | 
						|
  virtual bool destroy();
 | 
						|
  virtual bool extended_firm() const { return TRUE; }
 | 
						|
 | 
						|
public:
 | 
						|
  BA1300_application() : _testsheet(NULL), _mask(NULL) {}
 | 
						|
  TTestSheet * get_sheet() {return _testsheet;}
 | 
						|
  TTestProc  * get_test()  {return _test;}
 | 
						|
  TMask *      get_mask()  {return _mask;}
 | 
						|
  TArray_sheet * field_sheet(TMask *);
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
HIDDEN bool seq_handler(TMask_field& f, KEY key)
 | 
						|
{
 | 
						|
  if (key==K_ENTER)
 | 
						|
    if (!fexist((const char*)f.get()))
 | 
						|
    {
 | 
						|
      warning_box("File inesistente");
 | 
						|
      return FALSE;
 | 
						|
    }
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool BA1300_application::create() // initvar e arrmask
 | 
						|
 | 
						|
{
 | 
						|
  TApplication::create();
 | 
						|
 | 
						|
  _firm = get_firm();
 | 
						|
  
 | 
						|
  if (argc() > 2)
 | 
						|
  {
 | 
						|
    return FALSE;
 | 
						|
  }
 | 
						|
  else
 | 
						|
  {
 | 
						|
    _mask = new TMask ("ba1300a");  // Maschera principale
 | 
						|
    set_firm();
 | 
						|
    _testsheet = new TTestSheet("Selezione Files") ;  
 | 
						|
    get_sheet()->add_button(DLG_RESET,"~Reset",K_F6);
 | 
						|
  }  
 | 
						|
  return TRUE ;
 | 
						|
}
 | 
						|
 | 
						|
bool BA1300_application::destroy() // releasev e arrmask
 | 
						|
 | 
						|
{
 | 
						|
  if (_firm) set_firm(_firm);
 | 
						|
  if (_testsheet != NULL) delete  _testsheet;
 | 
						|
  if (_mask != NULL) delete  _mask;
 | 
						|
  return TApplication::destroy() ;
 | 
						|
}
 | 
						|
 | 
						|
TArray_sheet * BA1300_application::field_sheet(TMask * m)
 | 
						|
{
 | 
						|
  TEdit_field& f=(TEdit_field&) m->field(F_FILE);
 | 
						|
  TArray_sheet * s=(TArray_sheet*) f.sheet()->sheet();
 | 
						|
  return s;
 | 
						|
}
 | 
						|
 | 
						|
bool BA1300_application::menu(MENU_TAG m)
 | 
						|
{
 | 
						|
  KEY tasto,tastoS;
 | 
						|
  long numtest;
 | 
						|
  TMask *msk;
 | 
						|
  TDir  *cdir;
 | 
						|
 | 
						|
  disable_menu_item(M_FILE_NEW);
 | 
						|
  switch (m)
 | 
						|
  {
 | 
						|
  case BAR_ITEM(2):
 | 
						|
  {
 | 
						|
    msk = new TMask("ba1300b");
 | 
						|
    cdir = new TDir;
 | 
						|
    cdir->get(LF_DIR,_nolock,_nordir,_sysdirop);
 | 
						|
    const int nitems=(int)cdir->eod();
 | 
						|
    for (int i=0; i<nitems;i++) // fill sheet
 | 
						|
    {
 | 
						|
      TToken_string riga(128);
 | 
						|
      riga.cut(0);
 | 
						|
      cdir->get(i+1,_nolock,_nordir,_sysdirop);
 | 
						|
      riga=format("%3d",i+1);
 | 
						|
      riga.add(cdir->name());
 | 
						|
      riga.add(format("%ld",cdir->eod()));
 | 
						|
      riga.add(format("%ld",cdir->eox()));
 | 
						|
      riga.add(format("%u",cdir->len()));
 | 
						|
      riga.add(cdir->des());
 | 
						|
      field_sheet(msk)->add(riga);
 | 
						|
    }
 | 
						|
    msk->set_handler(F_SEQUENZA,seq_handler);
 | 
						|
    if (msk->run()==K_ENTER)
 | 
						|
    {
 | 
						|
      _debug = new TTestProc;
 | 
						|
      _debug->set_file(msk->get_int(F_FILE));
 | 
						|
      _debug->load_random(msk->get(F_SEQUENZA));                                 
 | 
						|
      if (!_debug->stopped())
 | 
						|
        _debug->do_debug();
 | 
						|
      else
 | 
						|
        warning_box("File di sequenza non valido");
 | 
						|
      delete _debug;
 | 
						|
    }
 | 
						|
    delete msk;
 | 
						|
    delete cdir;
 | 
						|
  }  
 | 
						|
  break;
 | 
						|
 case BAR_ITEM(1):
 | 
						|
  do {
 | 
						|
    switch(tasto=get_mask()->run())
 | 
						|
    {
 | 
						|
    case K_ENTER:  
 | 
						|
      if (get_sheet()->checked()>0 && (get_mask()->get_long(F_ITERAZIONI)>0 || get_mask()->get_bool(F_CONTINUO)))
 | 
						|
      {
 | 
						|
        _test = new TTestProc;
 | 
						|
        get_test()->set_sheet(get_sheet());
 | 
						|
        get_test()->set_rmc();
 | 
						|
        get_test()->get_win()->set_color(COLOR_BLACK,COLOR_WHITE);
 | 
						|
        get_test()->get_win()->clear(COLOR_WHITE);
 | 
						|
        get_test()->get_win()->set_caption("Verifica di stabilita'");
 | 
						|
        get_test()->get_win()->WriteW(10,5,"Test N.             :");
 | 
						|
        get_test()->get_win()->WriteW(10,7,"Nome File           :");
 | 
						|
        get_test()->get_win()->WriteW(10,9,"Record cancellati   :");
 | 
						|
        get_test()->get_win()->WriteW(10,10,"Operazione in corso :");
 | 
						|
        get_test()->get_win()->WriteW(10,12,"Tempo trascorso     :");
 | 
						|
        get_test()->get_win()->WriteW(10,13,"Tempo stimato       :");
 | 
						|
        get_test()->get_win()->WriteW(10,15,"Ultimo Errore       :");
 | 
						|
        numtest=0;
 | 
						|
        while (((++numtest)<=get_mask()->get_long(F_ITERAZIONI) || get_mask()->get_bool(F_CONTINUO)) && (!get_test()->stopped()))
 | 
						|
        {
 | 
						|
          if (get_mask()->get_bool(F_CONTINUO))
 | 
						|
            get_test()->get_win()->WriteW(33,5,format("%4ld (CONTINUO)",numtest));
 | 
						|
          else
 | 
						|
            get_test()->get_win()->WriteW(33,5,format("%4ld/%-4ld",numtest,_mask->get_long(F_ITERAZIONI)));
 | 
						|
          get_test()->set_numt(numtest);
 | 
						|
          get_test()->do_test_1();
 | 
						|
        }
 | 
						|
        if (get_test()->rm_copy())
 | 
						|
        { 
 | 
						|
          get_test()->get_win()->WriteW(33,10,"CANCELLAZIONE COPIE         ");
 | 
						|
          for  (int i=0;i<get_sheet()->items();i++)
 | 
						|
            if (get_sheet()->checked(i))
 | 
						|
              get_test()->remove_copy(i+1);
 | 
						|
        }
 | 
						|
        delete _test;
 | 
						|
      }
 | 
						|
      else
 | 
						|
        warning_box("Nessun file selezionato");
 | 
						|
      break;
 | 
						|
    case K_F4:      
 | 
						|
      get_sheet()->sr_status();
 | 
						|
      while ((tastoS=get_sheet()->run()) == K_F6) 
 | 
						|
        for (int i=0; i<get_sheet()->items();i++) 
 | 
						|
          get_sheet()->uncheck(i);
 | 
						|
      if (tastoS == K_ESC)                     
 | 
						|
        get_sheet()->sr_status(FALSE); 
 | 
						|
      else
 | 
						|
      {  // Cannot select first two files.
 | 
						|
        get_sheet()->uncheck(0);
 | 
						|
        get_sheet()->uncheck(1);
 | 
						|
      }
 | 
						|
      break;
 | 
						|
    case K_F5:      
 | 
						|
      if (fexist((const char*)TString(20).format("test%creport.txt",Separator)))
 | 
						|
      {
 | 
						|
        TTestReport rep_win("Report");
 | 
						|
        rep_win.load_report();
 | 
						|
        rep_win.run();
 | 
						|
      } else
 | 
						|
        warning_box("Report non disponibile");
 | 
						|
      break;
 | 
						|
    default:
 | 
						|
      break;
 | 
						|
    }
 | 
						|
  } while (tasto != K_ESC);
 | 
						|
  break;
 | 
						|
}
 | 
						|
  enable_menu_item(M_FILE_NEW);
 | 
						|
  return xvt_test_menu_tag(BAR_ITEM(2));
 | 
						|
}
 | 
						|
 | 
						|
int ba1300(int argc, char** argv)
 | 
						|
{
 | 
						|
  BA1300_application a;
 | 
						|
  a.run(argc,argv,"Test dell'ISAM");
 | 
						|
  return 0;
 | 
						|
}
 |