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)
|
||||
s.format("%ld", var.as_date().date2ansi());
|
||||
else
|
||||
{
|
||||
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())
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
_items = 0;
|
||||
_page.destroy();
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
@ -1932,14 +1942,6 @@ TRecnotype TISAM_recordset::current_row() const
|
||||
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
|
||||
{
|
||||
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)
|
||||
{
|
||||
reset();
|
||||
|
@ -146,7 +146,7 @@ public: // TRecordset
|
||||
virtual unsigned int columns() const;
|
||||
virtual const TRecordset_column_info& column_info(unsigned int c) 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; }
|
||||
|
||||
public:
|
||||
@ -190,10 +190,9 @@ public:
|
||||
virtual const TRecordset_column_info& column_info(unsigned int c) const;
|
||||
virtual const TVariant& get(unsigned int column) 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; }
|
||||
|
||||
|
||||
TISAM_recordset(const char* use);
|
||||
virtual ~TISAM_recordset();
|
||||
};
|
||||
|
@ -55,6 +55,9 @@ protected:
|
||||
virtual void update();
|
||||
virtual bool on_key(KEY k);
|
||||
|
||||
void update_scroll_range();
|
||||
void do_scroll(int kx, int ky);
|
||||
|
||||
public:
|
||||
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);
|
||||
|
||||
const TPoint orig = origin();
|
||||
pnt.h -= short(orig.x*10);
|
||||
pnt.v -= short(orig.y*10);
|
||||
pnt.h -= short(orig.x);
|
||||
pnt.v -= short(orig.y);
|
||||
|
||||
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()
|
||||
{
|
||||
clear(MASK_BACK_COLOR);
|
||||
@ -161,13 +181,25 @@ void TPrint_preview_window::handler(WINDOW win, EVENT* ep)
|
||||
bool processed = true;
|
||||
switch(ep->v.cmd.tag)
|
||||
{
|
||||
case POPUP_FIRST : _page = 1; break;
|
||||
case POPUP_PREV : if (_page > 1) _page--; break;
|
||||
case POPUP_FIRST :
|
||||
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_NEXT : if (_page < _book->pages()) _page++; break;
|
||||
case POPUP_LAST : _page = _book->pages(); break;
|
||||
case POPUP_ZOOMIN : if (_zoom < 300) { _zoom += 25; } break;
|
||||
case POPUP_ZOOMOUT: if (_zoom > 50) { _zoom -= 25; } break;
|
||||
case POPUP_NEXT :
|
||||
processed = _page < _book->pages();
|
||||
if (processed) _page++;
|
||||
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;
|
||||
default:processed = false; break;
|
||||
}
|
||||
@ -184,6 +216,23 @@ void TPrint_preview_window::handler(WINDOW win, EVENT* 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 ok = true;
|
||||
@ -193,10 +242,14 @@ bool TPrint_preview_window::on_key(KEY k)
|
||||
case '-' : dispatch_e_menu(win(), POPUP_ZOOMOUT); break;
|
||||
case K_HOME :
|
||||
case K_LHOME : dispatch_e_menu(win(), POPUP_FIRST); break;
|
||||
case K_LEFT : dispatch_e_menu(win(), POPUP_PREV); break;
|
||||
case K_RIGHT : dispatch_e_menu(win(), POPUP_NEXT); break;
|
||||
case K_PREV : dispatch_e_menu(win(), POPUP_PREV); break;
|
||||
case K_NEXT : dispatch_e_menu(win(), POPUP_NEXT); break;
|
||||
case K_END:
|
||||
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' : dispatch_e_menu(win(), POPUP_GRID); 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)
|
||||
: TField_window(x, y, dx, dy, parent, owner), _book(book), _page(1), _zoom(100)
|
||||
{
|
||||
RCT rct; xvt_vobj_get_client_rect(win(), &rct);
|
||||
set_scroll_max(rct.right, rct.bottom);
|
||||
update_scroll_range();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -1132,11 +1184,9 @@ bool TReport_book::add(TReport& rep)
|
||||
}
|
||||
if (!_print_aborted)
|
||||
{
|
||||
if (max_group >= 2) // Devo stampare tutte le code dei raggrupamenti
|
||||
{
|
||||
for (int g = 2; g <= max_group; g++)
|
||||
_delta.y += print_section('F', g);
|
||||
}
|
||||
// Devo stampare tutte le code degli eventuali raggrupamenti
|
||||
for (int g = max_group; g >= 2 ; g--)
|
||||
_delta.y += print_section('F', g);
|
||||
|
||||
TReport_section* fl = _report->find_section('F',1);
|
||||
if (fl != NULL) // Gestione footer last (se esite)
|
||||
|
Loading…
x
Reference in New Issue
Block a user