Patch level :10.0 396
Files correlati : Ricompilazione Demo : [ ] Commento : sistemato controllo della constant_columns quando si ha una ripartizione multipla (habilita) git-svn-id: svn://10.65.10.50/trunk@19159 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									5a7c84ac58
								
							
						
					
					
						commit
						3374e34987
					
				@ -42,7 +42,7 @@ protected:
 | 
				
			|||||||
  bool multi_split_cg_row(const TRectype& row, const TAnal_ripartizioni_batch& rrip);
 | 
					  bool multi_split_cg_row(const TRectype& row, const TAnal_ripartizioni_batch& rrip);
 | 
				
			||||||
  void load_cg_row(const TRectype& row);
 | 
					  void load_cg_row(const TRectype& row);
 | 
				
			||||||
  void load_cg_mov();
 | 
					  void load_cg_mov();
 | 
				
			||||||
  bool is_ripartible_movcg();
 | 
					  bool is_ripartible_movcg(bool& has_multirip);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  int create_sheet_fields(int lf, int& y, short& dlg, bool required);
 | 
					  int create_sheet_fields(int lf, int& y, short& dlg, bool required);
 | 
				
			||||||
  void create_sheet();
 | 
					  void create_sheet();
 | 
				
			||||||
@ -271,11 +271,10 @@ bool TMovanal_msk::multi_split_cg_row(const TRectype& row, const TAnal_ripartizi
 | 
				
			|||||||
  return splitted;
 | 
					  return splitted;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TMovanal_msk::is_ripartible_movcg()
 | 
					bool TMovanal_msk::is_ripartible_movcg(bool& has_multirip)
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  bool ok = true;
 | 
					 | 
				
			||||||
  if (!_use_pdc)
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  bool is_ripartible_movcg = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const TString& numregcg = get(F_NUMREGCG);
 | 
					  const TString& numregcg = get(F_NUMREGCG);
 | 
				
			||||||
  TRecord_array cg(numregcg, LF_RMOV);
 | 
					  TRecord_array cg(numregcg, LF_RMOV);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -291,18 +290,28 @@ bool TMovanal_msk::is_ripartible_movcg()
 | 
				
			|||||||
      const TAnal_ripartizioni_batch& rrip = _cache_rip.righe_interattive(zio, annoes);
 | 
					      const TAnal_ripartizioni_batch& rrip = _cache_rip.righe_interattive(zio, annoes);
 | 
				
			||||||
      const long rrip_items = rrip.rows();  
 | 
					      const long rrip_items = rrip.rows();  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (rrip_items <= 0) // Non trovato una ripartizione valida per il povero conto
 | 
					      //solo per conti analitici (!_use_pdc)
 | 
				
			||||||
 | 
					      if (!_use_pdc && rrip_items <= 0) // Non trovato una ripartizione valida per il povero conto
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
          ok = error_box(FR("Non esiste una ripartizione del conto %d.%d.%ld\n"
 | 
					        is_ripartible_movcg = error_box(FR("Non esiste una ripartizione del conto %d.%d.%ld\n"
 | 
				
			||||||
                       "presente sulla riga %d del movimento %ld"),
 | 
					                       "presente sulla riga %d del movimento %ld"),
 | 
				
			||||||
                       zio.gruppo(), zio.conto(), zio.sottoconto(),
 | 
					                       zio.gruppo(), zio.conto(), zio.sottoconto(),
 | 
				
			||||||
                       r, atol(numregcg));
 | 
					                       r, atol(numregcg));
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
        }
 | 
					      } //if(rrip_items..
 | 
				
			||||||
      }
 | 
					
 | 
				
			||||||
    }
 | 
					      //controlla se ci sono più ripartizioni sorelle; in questo caso deve avvisare chi lo chiama di questo fatto..
 | 
				
			||||||
  }
 | 
					      //..in modo da non utilizzare il metodo delle colonne costanti; alla prima multiripartizione deve uscire perchè..
 | 
				
			||||||
  return ok;
 | 
					      //..is_ripartible_movcg sarà true (se ho una multiripartizione allora è ripartibile) e has_multirip potrebbe..
 | 
				
			||||||
 | 
					      //..tornare a false nella riga successiva
 | 
				
			||||||
 | 
					      has_multirip = rrip.has_multirip();
 | 
				
			||||||
 | 
					      if (_use_pdc && has_multirip)
 | 
				
			||||||
 | 
					        return is_ripartible_movcg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    } //if(zio.is_analitico..
 | 
				
			||||||
 | 
					  } //for(int r=cg.last_row..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return is_ripartible_movcg;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TMovanal_msk::load_cg_row(const TRectype& row)
 | 
					void TMovanal_msk::load_cg_row(const TRectype& row)
 | 
				
			||||||
@ -615,14 +624,15 @@ bool TMovanal_msk::on_field_event(TOperable_field& o, TField_event e, long jolly
 | 
				
			|||||||
  case F_RESET:
 | 
					  case F_RESET:
 | 
				
			||||||
    if (e == fe_button)
 | 
					    if (e == fe_button)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      if (is_ripartible_movcg())
 | 
					      bool has_multirip = false;
 | 
				
			||||||
 | 
					      if (is_ripartible_movcg(has_multirip))
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        TToken_string constants;
 | 
					        TToken_string constants;
 | 
				
			||||||
        const int cc = get_constant_columns(constants);
 | 
					        const int cc = get_constant_columns(constants);
 | 
				
			||||||
        TSheet_field& sf = sfield(F_RIGHE);
 | 
					        TSheet_field& sf = sfield(F_RIGHE);
 | 
				
			||||||
        sf.destroy();
 | 
					        sf.destroy();
 | 
				
			||||||
        load_cg_mov();
 | 
					        load_cg_mov();
 | 
				
			||||||
        if (cc > 0) // Se ci sono colonne costanti le recupera da quelle vecchie salvate
 | 
					        if (cc > 0 && !has_multirip) // Se ci sono colonne costanti le recupera da quelle vecchie salvate
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          TString campione;
 | 
					          TString campione;
 | 
				
			||||||
          FOR_EACH_SHEET_ROW(sf, i, row)
 | 
					          FOR_EACH_SHEET_ROW(sf, i, row)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user