Patch level : 2.1 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@12127 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									108b0b8ac6
								
							
						
					
					
						commit
						fe2e1eb01e
					
				@ -733,7 +733,14 @@ void TRecordset::parsed_text(TString& sql) const
 | 
				
			|||||||
        if (var.type() == _datefld)
 | 
					        if (var.type() == _datefld)
 | 
				
			||||||
          s.format("%ld", var.as_date().date2ansi());
 | 
					          s.format("%ld", var.as_date().date2ansi());
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
          s = var.as_string();
 | 
					          s = var.as_string();
 | 
				
			||||||
 | 
					          for (int i = 0; s[i]; i++)
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            if (s[i] == '\'')
 | 
				
			||||||
 | 
					              s.insert("'", i++);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        if ((var.is_string() && s[0] != '\'') || var.is_null())
 | 
					        if ((var.is_string() && s[0] != '\'') || var.is_null())
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          s.insert("'");
 | 
					          s.insert("'");
 | 
				
			||||||
@ -1247,11 +1254,14 @@ static int query_get_items(void* jolly, int argc, char** values, char** columns)
 | 
				
			|||||||
  return q->on_get_items(argc, values, columns);
 | 
					  return q->on_get_items(argc, values, columns);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TSQL_recordset::ask_variables(bool all)
 | 
					bool TSQL_recordset::set_var(const char* name, const TVariant& var, bool create)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  const bool ok = TRecordset::ask_variables(all);
 | 
					  const bool ok = TRecordset::set_var(name, var, create);
 | 
				
			||||||
  if (ok)
 | 
					  if (ok)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    _items = 0;
 | 
				
			||||||
    _page.destroy();
 | 
					    _page.destroy();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  return ok;
 | 
					  return ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1932,14 +1942,6 @@ TRecnotype TISAM_recordset::current_row() const
 | 
				
			|||||||
  return c != NULL ? c->pos() : -1;
 | 
					  return c != NULL ? c->pos() : -1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TISAM_recordset::ask_variables(bool all)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  bool ok = TRecordset::ask_variables(all);
 | 
					 | 
				
			||||||
  if (ok)
 | 
					 | 
				
			||||||
    reset();
 | 
					 | 
				
			||||||
  return ok; 
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
TRecnotype TISAM_recordset::items() const 
 | 
					TRecnotype TISAM_recordset::items() const 
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TCursor* c = cursor();
 | 
					  TCursor* c = cursor();
 | 
				
			||||||
@ -1980,6 +1982,14 @@ void TISAM_recordset::reset()
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TISAM_recordset::set_var(const char* name, const TVariant& var, bool create)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  const bool ok = TRecordset::set_var(name, var, create);
 | 
				
			||||||
 | 
					  if (ok)
 | 
				
			||||||
 | 
					    reset();
 | 
				
			||||||
 | 
					  return ok;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TISAM_recordset::set(const char* use)
 | 
					void TISAM_recordset::set(const char* use)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  reset();
 | 
					  reset();
 | 
				
			||||||
 | 
				
			|||||||
@ -146,7 +146,7 @@ public: // TRecordset
 | 
				
			|||||||
  virtual unsigned int columns() const;
 | 
					  virtual unsigned int columns() const;
 | 
				
			||||||
  virtual const TRecordset_column_info& column_info(unsigned int c) const;
 | 
					  virtual const TRecordset_column_info& column_info(unsigned int c) const;
 | 
				
			||||||
  virtual const TVariant& get(unsigned int column) const;
 | 
					  virtual const TVariant& get(unsigned int column) const;
 | 
				
			||||||
  virtual bool ask_variables(bool all);
 | 
					  virtual bool set_var(const char* name, const TVariant& var, bool create = false);
 | 
				
			||||||
  const TString& query_text() const { return _sql; }
 | 
					  const TString& query_text() const { return _sql; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
@ -190,10 +190,9 @@ public:
 | 
				
			|||||||
  virtual const TRecordset_column_info& column_info(unsigned int c) const;
 | 
					  virtual const TRecordset_column_info& column_info(unsigned int c) const;
 | 
				
			||||||
  virtual const TVariant& get(unsigned int column) const;
 | 
					  virtual const TVariant& get(unsigned int column) const;
 | 
				
			||||||
  virtual const TVariant& get(const char* column_name) const;
 | 
					  virtual const TVariant& get(const char* column_name) const;
 | 
				
			||||||
  virtual bool ask_variables(bool all);
 | 
					  virtual bool set_var(const char* name, const TVariant& var, bool create = false);
 | 
				
			||||||
  virtual const TString& query_text() const { return _use; }
 | 
					  virtual const TString& query_text() const { return _use; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  TISAM_recordset(const char* use);
 | 
					  TISAM_recordset(const char* use);
 | 
				
			||||||
  virtual ~TISAM_recordset();
 | 
					  virtual ~TISAM_recordset();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -55,6 +55,9 @@ protected:
 | 
				
			|||||||
  virtual void update();
 | 
					  virtual void update();
 | 
				
			||||||
  virtual bool on_key(KEY k);
 | 
					  virtual bool on_key(KEY k);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void update_scroll_range();
 | 
				
			||||||
 | 
					  void do_scroll(int kx, int ky);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  virtual PNT log2dev(long lx, long ly) const;
 | 
					  virtual PNT log2dev(long lx, long ly) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -71,12 +74,29 @@ PNT TPrint_preview_window::log2dev(long lx, long ly) const
 | 
				
			|||||||
  pnt.v = short(ly * _zoom / res.y);
 | 
					  pnt.v = short(ly * _zoom / res.y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const TPoint orig = origin();
 | 
					  const TPoint orig = origin();
 | 
				
			||||||
  pnt.h -= short(orig.x*10);
 | 
					  pnt.h -= short(orig.x);
 | 
				
			||||||
  pnt.v -= short(orig.y*10);
 | 
					  pnt.v -= short(orig.y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return pnt;
 | 
					  return pnt;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TPrint_preview_window::update_scroll_range()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  const TPoint size = _book->page_size();
 | 
				
			||||||
 | 
					  const TPoint res = _book->page_res();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  PNT pnt;
 | 
				
			||||||
 | 
					  pnt.h = short(size.x * _zoom / res.x);
 | 
				
			||||||
 | 
					  pnt.v = short(size.y * _zoom / res.y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  RCT rct; xvt_vobj_get_client_rect(win(), &rct);
 | 
				
			||||||
 | 
					  pnt.h -= rct.right; if (pnt.h < 0) pnt.h = 0;
 | 
				
			||||||
 | 
					  pnt.v -= rct.bottom; if (pnt.v < 0) pnt.v = 0;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					  update_thumb(0, 0);
 | 
				
			||||||
 | 
					  set_scroll_max(pnt.h, pnt.v);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TPrint_preview_window::update()
 | 
					void TPrint_preview_window::update()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  clear(MASK_BACK_COLOR);
 | 
					  clear(MASK_BACK_COLOR);
 | 
				
			||||||
@ -161,13 +181,25 @@ void TPrint_preview_window::handler(WINDOW win, EVENT* ep)
 | 
				
			|||||||
      bool processed = true;
 | 
					      bool processed = true;
 | 
				
			||||||
      switch(ep->v.cmd.tag)
 | 
					      switch(ep->v.cmd.tag)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
      case POPUP_FIRST  : _page = 1; break;
 | 
					      case POPUP_FIRST  : 
 | 
				
			||||||
      case POPUP_PREV   : if (_page > 1) _page--; break;
 | 
					        processed = _page > 1; 
 | 
				
			||||||
 | 
					        if (processed) _page = 1; 
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      case POPUP_PREV   : 
 | 
				
			||||||
 | 
					        processed = _page > 1; 
 | 
				
			||||||
 | 
					        if (processed) _page--; 
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
      case POPUP_SEARCH : page_select(); break;
 | 
					      case POPUP_SEARCH : page_select(); break;
 | 
				
			||||||
      case POPUP_NEXT   : if (_page < _book->pages()) _page++; break;
 | 
					      case POPUP_NEXT   : 
 | 
				
			||||||
      case POPUP_LAST   : _page = _book->pages(); break;
 | 
					        processed = _page < _book->pages(); 
 | 
				
			||||||
      case POPUP_ZOOMIN : if (_zoom < 300) { _zoom += 25; } break;
 | 
					        if (processed) _page++; 
 | 
				
			||||||
      case POPUP_ZOOMOUT: if (_zoom >  50) { _zoom -= 25; } break;
 | 
					        break;
 | 
				
			||||||
 | 
					      case POPUP_LAST   : 
 | 
				
			||||||
 | 
					        processed = _page < _book->pages(); 
 | 
				
			||||||
 | 
					        if (processed) _page = _book->pages(); 
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      case POPUP_ZOOMIN : if (_zoom < 300) { _zoom += 25; update_scroll_range(); } break;
 | 
				
			||||||
 | 
					      case POPUP_ZOOMOUT: if (_zoom >  50) { _zoom -= 25; update_scroll_range(); } break;
 | 
				
			||||||
      case POPUP_GRID   : break;
 | 
					      case POPUP_GRID   : break;
 | 
				
			||||||
      default:processed = false; break;
 | 
					      default:processed = false; break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -184,6 +216,23 @@ void TPrint_preview_window::handler(WINDOW win, EVENT* ep)
 | 
				
			|||||||
  TField_window::handler(win, ep);
 | 
					  TField_window::handler(win, ep);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TPrint_preview_window::do_scroll(int kx, int ky)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  const TPoint& r = range();
 | 
				
			||||||
 | 
					  TPoint or = origin();
 | 
				
			||||||
 | 
					  or.x += kx * r.x/8;
 | 
				
			||||||
 | 
					  or.y += ky * r.y/6;
 | 
				
			||||||
 | 
					  if (or.x < 0) or.x = 0;
 | 
				
			||||||
 | 
					  if (or.x > r.x) or.x = r.x;
 | 
				
			||||||
 | 
					  if (or.y < 0) or.y = 0;
 | 
				
			||||||
 | 
					  if (or.y > r.y) or.y = r.y;
 | 
				
			||||||
 | 
					  if (or != origin())
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    update_thumb(or.x, or.y);
 | 
				
			||||||
 | 
					    force_update();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TPrint_preview_window::on_key(KEY k)
 | 
					bool TPrint_preview_window::on_key(KEY k)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  bool ok = true;
 | 
					  bool ok = true;
 | 
				
			||||||
@ -193,10 +242,14 @@ bool TPrint_preview_window::on_key(KEY k)
 | 
				
			|||||||
  case '-'     : dispatch_e_menu(win(), POPUP_ZOOMOUT); break;
 | 
					  case '-'     : dispatch_e_menu(win(), POPUP_ZOOMOUT); break;
 | 
				
			||||||
  case K_HOME  :
 | 
					  case K_HOME  :
 | 
				
			||||||
  case K_LHOME : dispatch_e_menu(win(), POPUP_FIRST); break;
 | 
					  case K_LHOME : dispatch_e_menu(win(), POPUP_FIRST); break;
 | 
				
			||||||
  case K_LEFT  : dispatch_e_menu(win(), POPUP_PREV); break;
 | 
					  case K_PREV  : dispatch_e_menu(win(), POPUP_PREV); break;
 | 
				
			||||||
  case K_RIGHT : dispatch_e_menu(win(), POPUP_NEXT); break;
 | 
					  case K_NEXT  : dispatch_e_menu(win(), POPUP_NEXT); break;
 | 
				
			||||||
  case K_END:
 | 
					  case K_END:
 | 
				
			||||||
  case K_LEND  : dispatch_e_menu(win(), POPUP_LAST); break;
 | 
					  case K_LEND  : dispatch_e_menu(win(), POPUP_LAST); break;
 | 
				
			||||||
 | 
					  case K_LEFT  : do_scroll(-1, 0); break;
 | 
				
			||||||
 | 
					  case K_RIGHT : do_scroll(+1, 0); break;
 | 
				
			||||||
 | 
					  case K_UP    : do_scroll(0, -1); break;
 | 
				
			||||||
 | 
					  case K_DOWN  : do_scroll(0, +1); break;
 | 
				
			||||||
  case 'G'     : 
 | 
					  case 'G'     : 
 | 
				
			||||||
  case 'g'     : dispatch_e_menu(win(), POPUP_GRID); break;
 | 
					  case 'g'     : dispatch_e_menu(win(), POPUP_GRID); break;
 | 
				
			||||||
  default      : ok = TField_window::on_key(k); break;
 | 
					  default      : ok = TField_window::on_key(k); break;
 | 
				
			||||||
@ -208,8 +261,7 @@ TPrint_preview_window::TPrint_preview_window(int x, int y, int dx, int dy, WINDO
 | 
				
			|||||||
                                             TWindowed_field* owner, TBook* book)
 | 
					                                             TWindowed_field* owner, TBook* book)
 | 
				
			||||||
: TField_window(x, y, dx, dy, parent, owner), _book(book), _page(1), _zoom(100)
 | 
					: TField_window(x, y, dx, dy, parent, owner), _book(book), _page(1), _zoom(100)
 | 
				
			||||||
{ 
 | 
					{ 
 | 
				
			||||||
  RCT rct; xvt_vobj_get_client_rect(win(), &rct);
 | 
					  update_scroll_range();
 | 
				
			||||||
  set_scroll_max(rct.right, rct.bottom);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
///////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
@ -1132,11 +1184,9 @@ bool TReport_book::add(TReport& rep)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  if (!_print_aborted)
 | 
					  if (!_print_aborted)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    if (max_group >= 2) // Devo stampare tutte le code dei raggrupamenti
 | 
					    // Devo stampare tutte le code degli eventuali raggrupamenti
 | 
				
			||||||
    {
 | 
					    for (int g = max_group; g >= 2 ; g--)
 | 
				
			||||||
      for (int g = 2; g <= max_group; g++)
 | 
					      _delta.y += print_section('F', g);
 | 
				
			||||||
        _delta.y += print_section('F', g);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    TReport_section* fl = _report->find_section('F',1);
 | 
					    TReport_section* fl = _report->find_section('F',1);
 | 
				
			||||||
    if (fl != NULL)          // Gestione footer last (se esite)
 | 
					    if (fl != NULL)          // Gestione footer last (se esite)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user