diff --git a/include/printer.h b/include/printer.h index ee74dc6e2..34bb87200 100755 --- a/include/printer.h +++ b/include/printer.h @@ -544,6 +544,7 @@ public: // @cmember Setta il numero della pagina logica da stampare void setcurrentpage(word n) { _currentpage = n; } + const TFilename& get_export_file() const { return _exportfile; } // @cmember Dirige la stampa sul file specificato, preservando gli attributi di formato. // Se

= TRUE si stampano su file anche gli header void set_export_file(const char* n, bool header = TRUE, int len = 0) diff --git a/include/recset.cpp b/include/recset.cpp index 2e8f8fe3d..09dd4c565 100755 --- a/include/recset.cpp +++ b/include/recset.cpp @@ -1442,12 +1442,14 @@ TCursor_parser::TCursor_parser(istream& instr, TArray& col) if (tok.blank()) return; - const int logicnum = table2logic(tok); + int logicnum = table2logic(tok); + if (logicnum == LF_MAG && tok == "MAG") // Faccio prevalere la tabella MAG sul file MAG + logicnum = LF_TAB; - if (logicnum != LF_TAB && logicnum != LF_TABCOM) - _relation = new TRelation(logicnum); - else + if (logicnum == LF_TAB || logicnum == LF_TABCOM) _relation = new TRelation(tok); + else + _relation = new TRelation(logicnum); add_column_info(tok, _relation->curr()); int key = 1; // key number diff --git a/include/reprint.cpp b/include/reprint.cpp index efd011106..23a1fc7ee 100755 --- a/include/reprint.cpp +++ b/include/reprint.cpp @@ -1366,10 +1366,18 @@ bool TBook::preview() bool TBook::print_or_preview() { bool ok = true; - if (printer().printtype() == screenvis) - ok = preview(); - else + switch (printer().printtype()) + { + case screenvis: + ok = preview(); + break; + case exportprinter: + ok = export_text(printer().get_export_file()); + break; + default: ok = print(); + break; + } return ok; }