#include #include #include "lvlib.h" class TStampa_tabelle_lv : public TSkeleton_application { protected: virtual void main_loop(); virtual void print(); }; void TStampa_tabelle_lv::print() { WINDOW win = cur_win(); // Trova la finestra corrente di XVT if (win != NULL_WIN && win != TASK_WIN) // E' una finestra valida? { TWindow* w = (TWindow*)xvt_vobj_get_data(win); // Risale alla classe originale if (w != NULL) // E' una TWindow valida? (sarebbe TMask) w->stop_run(K_ENTER); // Simula la pressione del bottone stampa } } void TStampa_tabelle_lv::main_loop() { // Costruisce il nome del report in base alla riga di comando TFilename rep; if (argc() > 2) { rep = argv(2); rep.strip("-&%$^"); if (rep.len() == 3) rep.insert("lvst"); rep.ext("rep"); } TLV_report r; bool ok = r.load(rep); // Controlla l'effettiva esistenza del report while (ok) { TReport_book b; ok = b.add(r); // Richiede parametri di stampa in base alla maschera omonima if (ok) if(b.pages() >0) b.print_or_preview(); // Stampa effettivamente else warning_box (TR("Nessun record estratto per i parametri inseriti")); } } int lv0200(int argc, char* argv[]) { TStampa_tabelle_lv app; app.run(argc, argv, TR("Stampa tabelle")); return 0; }