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