Adattata autosave
git-svn-id: svn://10.65.10.50/trunk@2785 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									edf71af3d7
								
							
						
					
					
						commit
						d2e6f2d15e
					
				@ -23,42 +23,11 @@ TPrimanota_application::TPrimanota_application()
 | 
			
		||||
 | 
			
		||||
TMask* TPrimanota_application::load_mask(int n)
 | 
			
		||||
{ 
 | 
			
		||||
  int max_pages = 2;                  // Numero massimo di pagine della maschera
 | 
			
		||||
  
 | 
			
		||||
  if (n == 2)
 | 
			
		||||
  {          
 | 
			
		||||
    if (is_fattura())
 | 
			
		||||
      max_pages = 3;
 | 
			
		||||
    if (_msk[2] != NULL)
 | 
			
		||||
    {  
 | 
			
		||||
      // Controlla se esiste pagina 3
 | 
			
		||||
      const int pages = (_msk[2]->id2pos(FS_RATESHEET) > 0) ? 3 : 2;
 | 
			
		||||
      // Se i numeri di pagine non coincidono distruggi la maschera
 | 
			
		||||
      if (pages != max_pages) 
 | 
			
		||||
      {
 | 
			
		||||
        delete _msk[2];
 | 
			
		||||
        _msk[2] = NULL;
 | 
			
		||||
      }  
 | 
			
		||||
    }
 | 
			
		||||
  }  
 | 
			
		||||
 | 
			
		||||
  if (_msk[n] != NULL) 
 | 
			
		||||
    return _msk[n];
 | 
			
		||||
 | 
			
		||||
  if (n == 1 || n == 2)
 | 
			
		||||
  {
 | 
			
		||||
    for (int i = 3; i >= 0; i--)
 | 
			
		||||
    {
 | 
			
		||||
      if (_msk[i] != NULL)
 | 
			
		||||
      {
 | 
			
		||||
        delete _msk[i];
 | 
			
		||||
        _msk[i] = NULL;
 | 
			
		||||
      }
 | 
			
		||||
    }  
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  TFilename name("cg2100"); name << char(n == 3 ? 'o' : 'a'+n);
 | 
			
		||||
  TMask* m = new TMask(name, 0, max_pages);
 | 
			
		||||
  TMask* m = new TMask(name);
 | 
			
		||||
  
 | 
			
		||||
  switch (n)
 | 
			
		||||
  {
 | 
			
		||||
@ -164,7 +133,6 @@ TMask* TPrimanota_application::load_mask(int n)
 | 
			
		||||
      cgm.set_handler(213, sheet_clifo_handler);
 | 
			
		||||
      cgm.set_handler(313, sheet_clifo_handler);
 | 
			
		||||
    }  
 | 
			
		||||
    _sheet_shown = FALSE;
 | 
			
		||||
    break;
 | 
			
		||||
  case 3:
 | 
			
		||||
    m->set_handler(O_CODICE, occas_code_handler);
 | 
			
		||||
@ -378,14 +346,6 @@ bool TPrimanota_application::changing_mask(int mode)
 | 
			
		||||
  if (mode == MODE_QUERY) 
 | 
			
		||||
  {
 | 
			
		||||
    const bool flag = _mode != MODE_QUERY; 
 | 
			
		||||
#if XVT_OS == XVT_OS_WIN    
 | 
			
		||||
    if (flag && !_sheet_shown)
 | 
			
		||||
    {       
 | 
			
		||||
      curr_mask().show_page(1);
 | 
			
		||||
      do_events();
 | 
			
		||||
      _sheet_shown = TRUE;
 | 
			
		||||
    }
 | 
			
		||||
#endif    
 | 
			
		||||
    return flag;
 | 
			
		||||
  }  
 | 
			
		||||
  _iva = iva_errata;
 | 
			
		||||
@ -472,19 +432,19 @@ void TPrimanota_application::init_mask(TMask& m)
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {                        
 | 
			
		||||
    char clig, forg;
 | 
			
		||||
    bool clig, forg;
 | 
			
		||||
    if (_iva == iva_acquisti)
 | 
			
		||||
    {
 | 
			
		||||
      forg = 's';
 | 
			
		||||
      clig = 'h';
 | 
			
		||||
      forg = TRUE;
 | 
			
		||||
      clig = FALSE;
 | 
			
		||||
    } 
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      forg = 'h';
 | 
			
		||||
      clig = corrisp ? 'h' : 's';
 | 
			
		||||
      forg = FALSE;
 | 
			
		||||
      clig = corrisp ? FALSE : TRUE;
 | 
			
		||||
    }                              
 | 
			
		||||
    m.send_key(K_SHIFT+K_CTRL+clig, -1);  // GROUP 1 (clienti)
 | 
			
		||||
    m.send_key(K_SHIFT+K_CTRL+forg, -2);  // GROUP 2 (fornitori)
 | 
			
		||||
    m.show(-1, clig);
 | 
			
		||||
    m.show(-2, forg);
 | 
			
		||||
    if (corrisp) m.hide(F_STATOPAIV);
 | 
			
		||||
    
 | 
			
		||||
    // Show/Hide campi valuta: F_VALUTAINTRA, F_CAMBIOINTRA, F_CORRLIRE, F_CORRVAL (GROUP 4)
 | 
			
		||||
@ -650,7 +610,7 @@ bool TPrimanota_application::test_swap(bool ritsoc)
 | 
			
		||||
int TPrimanota_application::read(TMask& m)
 | 
			
		||||
{
 | 
			
		||||
  m.reset();           // Azzera campi e relativi dirty = 3
 | 
			
		||||
  m.autoload(_rel);    // Carica testata
 | 
			
		||||
  m.autoload(*_rel);    // Carica testata
 | 
			
		||||
  
 | 
			
		||||
  const long numreg = _rel->curr().get_long(MOV_NUMREG);
 | 
			
		||||
 | 
			
		||||
@ -763,7 +723,7 @@ int TPrimanota_application::read(TMask& m)
 | 
			
		||||
// Trasferisce i dati da maschera a movimento di prima nota
 | 
			
		||||
void TPrimanota_application::mask2rel(const TMask& m)
 | 
			
		||||
{
 | 
			
		||||
  m.autosave(_rel);
 | 
			
		||||
  m.autosave(*_rel);
 | 
			
		||||
  
 | 
			
		||||
  TRectype& rec = _rel->curr();             // Record della testata
 | 
			
		||||
  
 | 
			
		||||
@ -847,7 +807,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
 | 
			
		||||
    {
 | 
			
		||||
      TRelation occas(LF_OCCAS);
 | 
			
		||||
      const TMask& om = occas_mask();
 | 
			
		||||
      om.autosave(&occas);                    // Salva i dati anagrafici
 | 
			
		||||
      om.autosave(occas);                    // Salva i dati anagrafici
 | 
			
		||||
      
 | 
			
		||||
      err = occas.write();
 | 
			
		||||
      if (err == _isreinsert)
 | 
			
		||||
@ -1136,7 +1096,7 @@ void TPrimanota_application::genera_incasso(const char* causimm)
 | 
			
		||||
    TMovimentoPN inc;                  // Nuovo movimento di incasso immediato
 | 
			
		||||
    TRectype& curr = inc.curr();
 | 
			
		||||
    curr.zero();
 | 
			
		||||
    m.autosave(&inc);                                            
 | 
			
		||||
    m.autosave(inc);                                            
 | 
			
		||||
    
 | 
			
		||||
    curr.put("TIPODOC", caus.tipo_doc());      // Tipo documento
 | 
			
		||||
    curr.put("REG", caus.reg().name());        // Registro
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ TOOLBAR "" 0 20 0 2
 | 
			
		||||
#include <toolbar.h>
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 20
 | 
			
		||||
PAGE "Testata" -1 -1 77 20
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_REGST
 | 
			
		||||
BEGIN
 | 
			
		||||
 | 
			
		||||
@ -1577,6 +1577,7 @@ bool TPrimanota_application::num_handler(TMask_field& f, KEY key)
 | 
			
		||||
          m.set(F_DATAREG, mov.get("DATAREG"), TRUE);
 | 
			
		||||
          m.set(F_DATACOMP, mov.get("DATACOMP"), TRUE);
 | 
			
		||||
          m.set(F_CODCAUS, mov.get("CODCAUS"));
 | 
			
		||||
          f.set_focusdirty(FALSE);
 | 
			
		||||
          m.stop_run(K_AUTO_ENTER);
 | 
			
		||||
        }  
 | 
			
		||||
      }  
 | 
			
		||||
@ -1608,8 +1609,11 @@ bool TPrimanota_application::caus_query_handler(TMask_field& f, KEY key)
 | 
			
		||||
    {
 | 
			
		||||
      const bool ok = suspended_handler(f, key);  // Controlla sospensione
 | 
			
		||||
      if (ok && key == K_TAB)
 | 
			
		||||
      {
 | 
			
		||||
        f.set_focusdirty(FALSE);
 | 
			
		||||
        f.mask().stop_run(K_INS);                 // Entra in modo inserimento
 | 
			
		||||
      }  
 | 
			
		||||
    } 
 | 
			
		||||
    else 
 | 
			
		||||
      return FALSE;
 | 
			
		||||
  } 
 | 
			
		||||
@ -1862,7 +1866,7 @@ bool TPrimanota_application::occas_code_handler(TMask_field& f, KEY key)
 | 
			
		||||
      if (occas.read(_isequal) == NOERR)
 | 
			
		||||
      {                     
 | 
			
		||||
        TMask& m = f.mask();
 | 
			
		||||
        m.autoload(&occas);
 | 
			
		||||
        m.autoload(occas);
 | 
			
		||||
        m.send_key(K_TAB, O_COMUNE);         // Forza decodifica comuni
 | 
			
		||||
        m.send_key(K_TAB, O_COMUNENAS);
 | 
			
		||||
      }  
 | 
			
		||||
 | 
			
		||||
@ -232,7 +232,7 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad,
 | 
			
		||||
  rel.add(LF_PARTITE, "ANNO=ANNO|NUMPART=NUMPART");
 | 
			
		||||
  rel.curr() = oldpag;
 | 
			
		||||
  rel.curr(LF_PARTITE) = sum;
 | 
			
		||||
  autoload(&rel);                          // Load current record on mask
 | 
			
		||||
  autoload(rel);                          // Load current record on mask
 | 
			
		||||
  
 | 
			
		||||
  TMask_field& group = field(S_RATA);
 | 
			
		||||
  TString prompt(80);
 | 
			
		||||
@ -358,7 +358,7 @@ void TPay_mask::get_pag(TRectype& newpag, TRectype& sum) const
 | 
			
		||||
  rel.add(LF_PARTITE, "ANNO=ANNO|NUMPART=NUMPART");
 | 
			
		||||
  rel.curr() = newpag;       
 | 
			
		||||
  rel.curr(LF_PARTITE) = sum;
 | 
			
		||||
  autosave(&rel);                          // Load current record from mask
 | 
			
		||||
  autosave(rel);                          // Load current record from mask
 | 
			
		||||
  newpag = rel.curr();
 | 
			
		||||
  sum = rel.curr(LF_PARTITE);
 | 
			
		||||
}     
 | 
			
		||||
@ -1810,7 +1810,7 @@ bool TPrimanota_application::edit_partite(const TMask& m, int riga)
 | 
			
		||||
  b.add_to(cgs().row(riga), 3, 0x0);
 | 
			
		||||
    
 | 
			
		||||
  TMovimentoPN* pn = (TMovimentoPN*)get_relation();
 | 
			
		||||
  curr_mask().autosave(pn);   // Aggiorna i dati della testata sulle partite
 | 
			
		||||
  curr_mask().autosave(*pn);   // Aggiorna i dati della testata sulle partite
 | 
			
		||||
  partite().update_reg(pn->curr());
 | 
			
		||||
  
 | 
			
		||||
  // Esecuzione maschera di selezione partite
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user