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);
|
||||
if (pos < 0)
|
||||
{
|
||||
ok = yesno_box("Il campo '%s' non puo' valere '%s': continuare ugualmente",
|
||||
(const char*)key(), (const char*)val);
|
||||
set(_codes.get(pos = 0));
|
||||
TString def= _codes.get(0);
|
||||
def.trim();
|
||||
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)
|
||||
{
|
||||
@ -2080,6 +2086,7 @@ bool TForm::parse_general(TScanner &scanner)
|
||||
if (scanner.popkey() == "SI") // Font size
|
||||
_fontsize = scanner.integer();
|
||||
else scanner.push();
|
||||
extended_parse_general(scanner); // Parse non-standard parameters
|
||||
}
|
||||
} else scanner.push();
|
||||
|
||||
@ -2247,7 +2254,6 @@ bool TForm::print(long from, long to)
|
||||
TPrinter& pr = printer(); // Setta handlers
|
||||
pr.setheaderhandler(header_handler);
|
||||
pr.setfooterhandler(footer_handler);
|
||||
pr.formlen(height());
|
||||
pr.set_char_size(_fontsize); // Set font name and size
|
||||
pr.set_fontname(_fontname); // according to current form
|
||||
const bool was_open = pr.isopen();
|
||||
@ -2260,7 +2266,10 @@ bool TForm::print(long from, long to)
|
||||
return FALSE;
|
||||
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;
|
||||
|
||||
@ -2276,16 +2285,14 @@ bool TForm::print(long from, long to)
|
||||
set_body(page(pr), TRUE);
|
||||
}
|
||||
|
||||
if (i > records())
|
||||
if (i == lastrec)
|
||||
{
|
||||
if (exist('H', last_page) || exist('B', last_page) || exist('F', last_page))
|
||||
{
|
||||
_lastpage = TRUE;
|
||||
set_background(0, TRUE);
|
||||
set_header(0, TRUE);
|
||||
set_body(0, TRUE);
|
||||
pr.formfeed();
|
||||
}
|
||||
if (_cursor) *_cursor = i;
|
||||
_lastpage = TRUE;
|
||||
set_background(0, TRUE);
|
||||
set_header(0, TRUE);
|
||||
set_body(0, TRUE);
|
||||
pr.formfeed();
|
||||
}
|
||||
|
||||
if (!was_open)
|
||||
|
@ -136,6 +136,7 @@ protected:
|
||||
|
||||
bool parse_general(TScanner&);
|
||||
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 write_profile();
|
||||
|
Loading…
x
Reference in New Issue
Block a user