Patch level : 2.2

Files correlati     : ba8 ve1
Ricompilazione Demo : [ ]
Commento            :
Corretto comando STRLEN nel linguaggio ALEX
Aggiunto supoorto per fissare i cpi nei report in modo da poter usare anche font "bastardi" come il Monofonto


git-svn-id: svn://10.65.10.50/trunk@13660 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2006-01-05 10:19:43 +00:00
parent 5014e83f00
commit 8fdd8b925c
3 changed files with 13 additions and 7 deletions

View File

@ -968,12 +968,12 @@ void TAVM::execute(const TAVM_op& op)
}
break;
case avm_store: do_store(_stack.pop().as_string()); break;
case avm_strlen: _stack.push(_stack.peek().as_string().len()); break;
case avm_strlen: _stack.push(_stack.pop().as_string().len()); break;
case avm_strmid:
{
const int len = _stack.pop().as_int();
const int frm = _stack.pop().as_int();
const TString& str = _stack.peek().as_string();
const TString& str = _stack.pop().as_string();
_stack.push(str.mid(frm, len)); break;
}
break;

View File

@ -1859,7 +1859,8 @@ const TReport_font& TReport::print_font() const
int TReport::cpi() const
{
return _font.cpi();
const int udcpi = user_defined_cpi();
return udcpi > 0 ? udcpi : _font.cpi();
}
int TReport::lpi() const
@ -1869,12 +1870,12 @@ int TReport::lpi() const
int TReport::print_cpi() const
{
return print_font().cpi();
return (_use_printer_font || user_defined_cpi() <= 0) ? print_font().cpi() : cpi();
}
int TReport::print_lpi() const
{
return _use_printer_font ? printer().get_lines_per_inch() : _lpi;
return _use_printer_font ? printer().get_lines_per_inch() : lpi();
}
void TReport::load_printer_font()
@ -2072,6 +2073,7 @@ bool TReport::load(const char* fname)
bool ok = xml.Load(_path);
if (ok)
{
_cpi = xml.GetIntAttr("cpi", 0); // 0 cpi = use font size
_lpi = xml.GetIntAttr("lpi", 6);
_font.load(xml);
_use_printer_font = xml.GetBoolAttr("use_printer_font");
@ -2134,6 +2136,8 @@ bool TReport::save(const char* fname) const
xml.SetAttr("name", name);
xml.SetAttr("class", _class);
xml.SetAttr("command", _command_line);
if (_cpi > 0)
xml.SetAttr("cpi", _cpi);
xml.SetAttr("lpi", _lpi);
if (!_description.blank())
xml.AddChild("description") << _description;
@ -2954,7 +2958,7 @@ void TReport::include_libraries(bool reload)
}
TReport::TReport()
: _lpi(6), _include(15, ','), _recordset(NULL), _curr_field(NULL),
: _cpi(0), _lpi(6), _include(15, ','), _recordset(NULL), _curr_field(NULL),
_use_printer_font(false), _orientation(0)
{
_expressions.set_report(this);

View File

@ -453,7 +453,7 @@ class TReport : public TAlex_virtual_machine
TFilename _path;
TString _description;
TReport_font _font, _print_font; // Font
int _lpi; // Lines per inch
int _cpi, _lpi; // Characters and Lines per inch
TToken_string _include; // ex: calib
TString8 _class; // ex: ca3300a
TString _command_line; // ex: ca3 -2
@ -517,8 +517,10 @@ public:
void unmap_font();
void load_printer_font();
int user_defined_cpi() const { return _cpi; }
int cpi() const;
int lpi() const;
void set_cpi(int cpi) { _cpi = cpi; }
void set_lpi(int lpi) { _lpi = lpi; }
int print_cpi() const;