Risolti possibili bug sulla stampa dei body multipli e delle sezioni 'ultime'.
git-svn-id: svn://10.65.10.50/trunk@1933 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									14e0f78afe
								
							
						
					
					
						commit
						5964b25487
					
				@ -1403,9 +1403,15 @@ bool TForm_list::update()
 | 
				
			|||||||
  int pos = _codes.get_pos(val);
 | 
					  int pos = _codes.get_pos(val);
 | 
				
			||||||
  if (pos < 0)
 | 
					  if (pos < 0)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    ok = yesno_box("Il campo '%s' non puo' valere '%s': continuare ugualmente",
 | 
					    TString def= _codes.get(0);
 | 
				
			||||||
                   (const char*)key(), (const char*)val);
 | 
					    def.trim();
 | 
				
			||||||
    set(_codes.get(pos = 0));               
 | 
					    if (val == def) pos = 0; // Test default (first & empty) value
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      ok = yesno_box("Il campo '%s' non puo' valere '%s': continuare ugualmente",
 | 
				
			||||||
 | 
					                     (const char*)key(), (const char*)val);
 | 
				
			||||||
 | 
					      set(_codes.get(pos = 0));               
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  if (ok)
 | 
					  if (ok)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -2080,6 +2086,7 @@ bool TForm::parse_general(TScanner &scanner)
 | 
				
			|||||||
      if (scanner.popkey() == "SI")   // Font size
 | 
					      if (scanner.popkey() == "SI")   // Font size
 | 
				
			||||||
        _fontsize = scanner.integer();
 | 
					        _fontsize = scanner.integer();
 | 
				
			||||||
      else scanner.push();    
 | 
					      else scanner.push();    
 | 
				
			||||||
 | 
					      extended_parse_general(scanner); // Parse non-standard parameters
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  } else scanner.push();
 | 
					  } else scanner.push();
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
@ -2247,7 +2254,6 @@ bool TForm::print(long from, long to)
 | 
				
			|||||||
  TPrinter& pr = printer();                        // Setta handlers
 | 
					  TPrinter& pr = printer();                        // Setta handlers
 | 
				
			||||||
  pr.setheaderhandler(header_handler);
 | 
					  pr.setheaderhandler(header_handler);
 | 
				
			||||||
  pr.setfooterhandler(footer_handler);
 | 
					  pr.setfooterhandler(footer_handler);
 | 
				
			||||||
  pr.formlen(height());
 | 
					 | 
				
			||||||
  pr.set_char_size(_fontsize);                     // Set font name and size
 | 
					  pr.set_char_size(_fontsize);                     // Set font name and size
 | 
				
			||||||
  pr.set_fontname(_fontname);                      // according to current form
 | 
					  pr.set_fontname(_fontname);                      // according to current form
 | 
				
			||||||
  const bool was_open = pr.isopen();
 | 
					  const bool was_open = pr.isopen();
 | 
				
			||||||
@ -2260,7 +2266,10 @@ bool TForm::print(long from, long to)
 | 
				
			|||||||
    return FALSE;
 | 
					    return FALSE;
 | 
				
			||||||
  do_events();
 | 
					  do_events();
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  if (to < 0) to = records()-1;
 | 
					  long lastrec= records()-1;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if (to < 0) to = lastrec;
 | 
				
			||||||
 | 
					  if (to == lastrec) to--; // l'ultima pagina è gestita come caso particolare
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  bool ok = TRUE;
 | 
					  bool ok = TRUE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2276,16 +2285,14 @@ bool TForm::print(long from, long to)
 | 
				
			|||||||
    set_body(page(pr), TRUE);
 | 
					    set_body(page(pr), TRUE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  if (i > records())
 | 
					  if (i == lastrec)
 | 
				
			||||||
  {                
 | 
					  {                
 | 
				
			||||||
    if (exist('H', last_page) || exist('B', last_page) || exist('F', last_page))
 | 
					    if (_cursor) *_cursor = i;
 | 
				
			||||||
    {       
 | 
					    _lastpage = TRUE;
 | 
				
			||||||
      _lastpage = TRUE;
 | 
					    set_background(0, TRUE);
 | 
				
			||||||
      set_background(0, TRUE);
 | 
					    set_header(0, TRUE);
 | 
				
			||||||
      set_header(0, TRUE);
 | 
					    set_body(0, TRUE);
 | 
				
			||||||
      set_body(0, TRUE);
 | 
					    pr.formfeed();
 | 
				
			||||||
      pr.formfeed();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  if (!was_open)
 | 
					  if (!was_open)
 | 
				
			||||||
 | 
				
			|||||||
@ -136,6 +136,7 @@ protected:
 | 
				
			|||||||
  
 | 
					  
 | 
				
			||||||
  bool parse_general(TScanner&);
 | 
					  bool parse_general(TScanner&);
 | 
				
			||||||
  void print_general(ostream& out) const;
 | 
					  void print_general(ostream& out) const;
 | 
				
			||||||
 | 
					  virtual void extended_parse_general(TScanner&) {} // Used to parse non-standard items in general section
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  bool read_profile();
 | 
					  bool read_profile();
 | 
				
			||||||
  bool write_profile();
 | 
					  bool write_profile();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user