Aggiunto semi-smart-menu a ba0
Proposta directory temporanea per i files di carico/scarico git-svn-id: svn://10.65.10.50/trunk@353 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									0b55fb6316
								
							
						
					
					
						commit
						b35804cf0e
					
				
							
								
								
									
										42
									
								
								ba/ba0.cpp
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								ba/ba0.cpp
									
									
									
									
									
								
							@ -106,6 +106,9 @@ class TMenu_application : public TApplication
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  int _level, _max;
 | 
					  int _level, _max;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  static int _last_button;
 | 
				
			||||||
 | 
					  static bool _find_button;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
  void test_temp() const;
 | 
					  void test_temp() const;
 | 
				
			||||||
  void load_menu();
 | 
					  void load_menu();
 | 
				
			||||||
@ -121,8 +124,8 @@ public:
 | 
				
			|||||||
  TMenu_application(const char* name) : _name(name) {}
 | 
					  TMenu_application(const char* name) : _name(name) {}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static short last_button = 0;
 | 
					int TMenu_application::_last_button = 0;
 | 
				
			||||||
static bool find_button = FALSE;
 | 
					bool TMenu_application::_find_button = FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
inline TMenu_application& app() 
 | 
					inline TMenu_application& app() 
 | 
				
			||||||
{ return (TMenu_application&)main_app(); }
 | 
					{ return (TMenu_application&)main_app(); }
 | 
				
			||||||
@ -171,7 +174,7 @@ int TMenu_application::find_menu(const char* s) const
 | 
				
			|||||||
      TString80 v(l.get()); v.upper();
 | 
					      TString80 v(l.get()); v.upper();
 | 
				
			||||||
      if (v.find(str) >= 0)
 | 
					      if (v.find(str) >= 0)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        found = m;
 | 
					        found = i;
 | 
				
			||||||
        if (isalpha(l.get_char())) break;
 | 
					        if (isalpha(l.get_char())) break;
 | 
				
			||||||
      }  
 | 
					      }  
 | 
				
			||||||
    }  
 | 
					    }  
 | 
				
			||||||
@ -183,8 +186,8 @@ bool TMenu_application::menu_item_handler(TMask_field&f, KEY k)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  if (k == K_SPACE)
 | 
					  if (k == K_SPACE)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    last_button = f.dlg();
 | 
					    _last_button = f.dlg();
 | 
				
			||||||
    find_button = FALSE;
 | 
					    _find_button = FALSE;
 | 
				
			||||||
    f.mask().stop_run(K_AUTO_ENTER);
 | 
					    f.mask().stop_run(K_AUTO_ENTER);
 | 
				
			||||||
  }     
 | 
					  }     
 | 
				
			||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
@ -198,10 +201,10 @@ bool TMenu_application::menu_find_handler(TMask_field&f, KEY k)
 | 
				
			|||||||
    const TString& v = f.get();
 | 
					    const TString& v = f.get();
 | 
				
			||||||
    if (v.not_empty())
 | 
					    if (v.not_empty())
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      last_button = app().find_menu(v);
 | 
					      _last_button = app().find_menu(v);
 | 
				
			||||||
      if (last_button >= 0)
 | 
					      if (_last_button >= 0)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        find_button = TRUE;
 | 
					        _find_button = TRUE;
 | 
				
			||||||
        f.mask().stop_run(K_AUTO_ENTER);
 | 
					        f.mask().stop_run(K_AUTO_ENTER);
 | 
				
			||||||
      }  
 | 
					      }  
 | 
				
			||||||
    }    
 | 
					    }    
 | 
				
			||||||
@ -249,6 +252,11 @@ int TMenu_application::do_level()
 | 
				
			|||||||
  menu.add_button(first ? DLG_CANCEL : DLG_QUIT, 0, t, -22, -1, bwidth, 2);
 | 
					  menu.add_button(first ? DLG_CANCEL : DLG_QUIT, 0, t, -22, -1, bwidth, 2);
 | 
				
			||||||
  if (first)
 | 
					  if (first)
 | 
				
			||||||
    menu.add_button(DLG_QUIT, 0, "Fine", -12, -1, bwidth, 2);
 | 
					    menu.add_button(DLG_QUIT, 0, "Fine", -12, -1, bwidth, 2);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if (_find_button && _last_button > first) 
 | 
				
			||||||
 | 
					    menu.first_focus(100+_last_button-first);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  _last_button = _find_button = 0;  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const int k = menu.run();
 | 
					  const int k = menu.run();
 | 
				
			||||||
  int m = 0;
 | 
					  int m = 0;
 | 
				
			||||||
@ -260,10 +268,10 @@ int TMenu_application::do_level()
 | 
				
			|||||||
    menu.reset();
 | 
					    menu.reset();
 | 
				
			||||||
    m = -2; break;
 | 
					    m = -2; break;
 | 
				
			||||||
  default:
 | 
					  default:
 | 
				
			||||||
    if (find_button)
 | 
					    if (_find_button)
 | 
				
			||||||
      m = -1;
 | 
					      m = -1;
 | 
				
			||||||
    else  
 | 
					    else  
 | 
				
			||||||
      m = first+last_button-100; 
 | 
					      m = first+_last_button-100; 
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  return m;
 | 
					  return m;
 | 
				
			||||||
@ -303,6 +311,8 @@ bool TMenu_application::create()
 | 
				
			|||||||
bool TMenu_application::menu(MENU_TAG)
 | 
					bool TMenu_application::menu(MENU_TAG)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  int refarray[256];
 | 
					  int refarray[256];
 | 
				
			||||||
 | 
					  memset(refarray, 0, sizeof(refarray)); 
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  int i = 0;
 | 
					  int i = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  _level = 0;
 | 
					  _level = 0;
 | 
				
			||||||
@ -334,10 +344,16 @@ bool TMenu_application::menu(MENU_TAG)
 | 
				
			|||||||
    else 
 | 
					    else 
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      if (m < -1) break;
 | 
					      if (m < -1) break;
 | 
				
			||||||
      if (find_button)
 | 
					      if (_find_button)
 | 
				
			||||||
        _level = last_button;
 | 
					      {
 | 
				
			||||||
 | 
					        TToken_string& row = (TToken_string&)_menu[_last_button];
 | 
				
			||||||
 | 
					        _level = row.get_int(0);
 | 
				
			||||||
 | 
					      }  
 | 
				
			||||||
      else  
 | 
					      else  
 | 
				
			||||||
        _level = (--i >= 0) ? refarray[i] : 0;
 | 
					      {
 | 
				
			||||||
 | 
					        _level = (i > 0) ? refarray[--i] : 0;
 | 
				
			||||||
 | 
					        if (_level == 0) i = 0;
 | 
				
			||||||
 | 
					      }  
 | 
				
			||||||
    }  
 | 
					    }  
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,15 +1,14 @@
 | 
				
			|||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <applicat.h>
 | 
					#include <applicat.h>
 | 
				
			||||||
#include <xvtility.h>
 | 
					 | 
				
			||||||
#include <utility.h>
 | 
					#include <utility.h>
 | 
				
			||||||
#include <prefix.h>
 | 
					#include <prefix.h>
 | 
				
			||||||
#include <mask.h>
 | 
					 | 
				
			||||||
#include <isam.h>
 | 
					#include <isam.h>
 | 
				
			||||||
#include <string.h>
 | 
					 | 
				
			||||||
#include <sheet.h>
 | 
					 | 
				
			||||||
#include <msksheet.h>
 | 
					#include <msksheet.h>
 | 
				
			||||||
#include <urldefid.h>
 | 
					#include <urldefid.h>
 | 
				
			||||||
#include <validate.h>
 | 
					#include <validate.h>
 | 
				
			||||||
 | 
					#include <xvtility.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "ba1.h"
 | 
					#include "ba1.h"
 | 
				
			||||||
#include "ba1100.h"
 | 
					#include "ba1100.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -33,6 +32,7 @@ protected:
 | 
				
			|||||||
  void update_dir();
 | 
					  void update_dir();
 | 
				
			||||||
  void convert_dir();
 | 
					  void convert_dir();
 | 
				
			||||||
  virtual void print();
 | 
					  virtual void print();
 | 
				
			||||||
 | 
					  const char* dumpfilename(const FileDes& dep) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  BA1100_application() : _browse(NULL), _rec(NULL), _mask(NULL) {}
 | 
					  BA1100_application() : _browse(NULL), _rec(NULL), _mask(NULL) {}
 | 
				
			||||||
@ -166,6 +166,23 @@ void BA1100_application::insert_riga (long riga_sel, TToken_string& riga)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const char* BA1100_application::dumpfilename(const FileDes& dep) const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  TFilename n; n.tempdir();
 | 
				
			||||||
 | 
					#if XVT_OS == XVT_OS_SCOUNIX  
 | 
				
			||||||
 | 
					  n << '/';
 | 
				
			||||||
 | 
					#else  
 | 
				
			||||||
 | 
					  n << '\\';
 | 
				
			||||||
 | 
					#endif  
 | 
				
			||||||
 | 
					  n << dep.SysName;
 | 
				
			||||||
 | 
					  n.strip("$%");
 | 
				
			||||||
 | 
					  n.ext("txt");
 | 
				
			||||||
 | 
					  n.lower();
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  strcpy(__tmp_string, n);
 | 
				
			||||||
 | 
					  return __tmp_string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void BA1100_application::edit_riga (long riga_sel, TToken_string& riga)
 | 
					void BA1100_application::edit_riga (long riga_sel, TToken_string& riga)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -258,9 +275,7 @@ void BA1100_application::edit_riga (long riga_sel, TToken_string& riga)
 | 
				
			|||||||
      {
 | 
					      {
 | 
				
			||||||
        TMask m("ba1100b");
 | 
					        TMask m("ba1100b");
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        TFilename nout(dep.SysName);
 | 
					        TFilename nout(dumpfilename(dep));
 | 
				
			||||||
        nout.strip("$%");
 | 
					 | 
				
			||||||
        nout.ext("txt");
 | 
					 | 
				
			||||||
        m.set(FLD_OUTFILE, nout);
 | 
					        m.set(FLD_OUTFILE, nout);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (m.run() == K_ENTER)
 | 
					        if (m.run() == K_ENTER)
 | 
				
			||||||
@ -281,18 +296,15 @@ void BA1100_application::edit_riga (long riga_sel, TToken_string& riga)
 | 
				
			|||||||
        if (tasto == K_F8)
 | 
					        if (tasto == K_F8)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          TMask m("ba1100c");
 | 
					          TMask m("ba1100c");
 | 
				
			||||||
          TFilename ninp(dep.SysName);
 | 
					          TFilename ninp(dumpfilename(dep));
 | 
				
			||||||
 | 
					 | 
				
			||||||
          ninp.strip("$%");
 | 
					 | 
				
			||||||
          ninp.ext("txt");
 | 
					 | 
				
			||||||
          m.set(FLD_INFILE, ninp);
 | 
					          m.set(FLD_INFILE, ninp);
 | 
				
			||||||
          if (m.run() == K_ENTER)
 | 
					          if (m.run() == K_ENTER)
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            char fs = *esc(m.get(FLD_FS));
 | 
					            char fs = *esc(m.get(FLD_FS));
 | 
				
			||||||
            char fd = *esc(m.get(FLD_FD));
 | 
					            char fd = *esc(m.get(FLD_FD));
 | 
				
			||||||
            char rs = *esc(m.get(FLD_RS));
 | 
					            char rs = *esc(m.get(FLD_RS));
 | 
				
			||||||
 | 
					            ninp = m.get(FLD_INFILE);
 | 
				
			||||||
            f.load(m.get(FLD_INFILE), fs, fd, rs);
 | 
					            f.load(ninp, fs, fd, rs);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -312,7 +324,7 @@ void BA1100_application::delete_riga ()
 | 
				
			|||||||
  int logicnum = (int)_browse->items();
 | 
					  int logicnum = (int)_browse->items();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  _browse->dir()->get(logicnum);
 | 
					  _browse->dir()->get(logicnum);
 | 
				
			||||||
  if (yesnocancel_box("Vuoi davvero eliminare l' archivio %s", _browse->dir()->name()) != K_YES) return;
 | 
					  if (yesnocancel_box("Confermare l'eliminzione dell'archivio %s", _browse->dir()->name()) != K_YES) return;
 | 
				
			||||||
  _browse->dir()->get(LF_DIR);
 | 
					  _browse->dir()->get(LF_DIR);
 | 
				
			||||||
  _browse->dir()->eod()--;
 | 
					  _browse->dir()->eod()--;
 | 
				
			||||||
  _browse->set_items(_browse->dir()->eod());
 | 
					  _browse->set_items(_browse->dir()->eod());
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,10 @@
 | 
				
			|||||||
#ifndef __BA1100_H
 | 
					#ifndef __BA1100_H
 | 
				
			||||||
#define __BA1100_H  
 | 
					#define __BA1100_H  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __SHEET_H                 
 | 
				
			||||||
 | 
					#include <sheet.h>                 
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "ba1100a.h"
 | 
					#include "ba1100a.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
///////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
				
			|||||||
@ -115,20 +115,28 @@ HIDDEN bool len_handler(TMask_field& f, KEY key)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  switch (typef)
 | 
					  switch (typef)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
  case _alfafld: return len <= 254;
 | 
					  case _alfafld: 
 | 
				
			||||||
               case _intfld: return len <= 5;
 | 
					    return len <= 254;
 | 
				
			||||||
               case _longfld: return len <= 10;
 | 
					  case _intfld: 
 | 
				
			||||||
               case _realfld:  return len <= 18;
 | 
					    return len <= 5;
 | 
				
			||||||
               case _wordfld:  return len <= 5;
 | 
					  case _longfld: 
 | 
				
			||||||
               case _intzerofld:  return len <= 5;
 | 
					    return len <= 10;
 | 
				
			||||||
               case _longzerofld:  return len <= 10;
 | 
					  case _realfld:  
 | 
				
			||||||
               default: return TRUE;
 | 
					    return len <= 18;
 | 
				
			||||||
               }
 | 
					  case _wordfld:  
 | 
				
			||||||
 | 
					    return len <= 5;
 | 
				
			||||||
 | 
					  case _intzerofld:  
 | 
				
			||||||
 | 
					    return len <= 5;
 | 
				
			||||||
 | 
					  case _longzerofld:  
 | 
				
			||||||
 | 
					    return len <= 10;
 | 
				
			||||||
 | 
					  default: 
 | 
				
			||||||
 | 
					    return TRUE;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TRec_sheet::fld_notify(int r, KEY k)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TRec_sheet::fld_notify(int r, KEY k)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  const TSheet_field& f = (const TSheet_field&) _mask->field(F_FIELDS);
 | 
					  const TSheet_field& f = (const TSheet_field&) _mask->field(F_FIELDS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -141,8 +149,8 @@ bool TRec_sheet::fld_notify(int r, KEY k)
 | 
				
			|||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TRec_sheet::key_notify(int r, KEY k)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TRec_sheet::key_notify(int r, KEY k)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  const TSheet_field& f = (const TSheet_field&) _mask->field(F_KEYS);
 | 
					  const TSheet_field& f = (const TSheet_field&) _mask->field(F_KEYS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user