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