diff --git a/tp/tp0900.cpp b/tp/tp0900.cpp index 9d27029ee..a5780c03a 100755 --- a/tp/tp0900.cpp +++ b/tp/tp0900.cpp @@ -7,6 +7,9 @@ #include #include #include +#include + +#include /////////////////////////////////////////////////////////// // MASCHERA @@ -38,6 +41,24 @@ bool TDichiarazione_CONAI_mask::on_field_event(TOperable_field& o, TField_event return true; } + +///////////////////////////////////////////////////////////// +// CSV RECORDSET +///////////////////////////////////////////////////////////// + +class TDichiarazione_CONAI_csv_recordset : public TCSV_recordset +{ +public: + TDichiarazione_CONAI_csv_recordset(); +}; + + +TDichiarazione_CONAI_csv_recordset::TDichiarazione_CONAI_csv_recordset() +: TCSV_recordset("CSV(,)\n") +{ +} + + /////////////////////////////////////////////////////////// // APPLICAZIONE /////////////////////////////////////////////////////////// @@ -138,18 +159,55 @@ void TDichiarazione_CONAI::crea_csv(const TMask& mask) const rdoc.set_var("#ADATA", datafin); rdoc.set_var("#CODART", codart); + //creazione del csv recordset che verra' riempito dai record del recordset rdoc + TDichiarazione_CONAI_csv_recordset csv; + const TString path = "C:/temp/cazzone.csv"; + + //quante righe dello sheet processa? + const long tot_items = sf.items(); + //Visto che e' possibile avere una secchiata di numerazioni, gli tocca fare un giro per ogni numerazione FOR_EACH_SHEET_ROW(sf, r, row) { - //estrazione della numerazione e del tipo del record corrente dello sheet - + //estrazione definitiva dei record che soddisfano il casino di parametri richiesti rdoc.set_var("#CODNUM", TVariant(row->get(0))); rdoc.set_var("#TIPODOC", TVariant(row->get(2))); const long items = rdoc.items(); +#ifdef DBG warning_box("Hai trovato %ld righe bello!", items); +#endif + + //E crea pure la progind.. + TProgind pi(tot_items, TR("Estrazione righe..."), true, true); + + for (bool ok = rdoc.move_first(); ok; ok = rdoc.move_next()) + { + if (!pi.addstatus(1)) + break; + + //creazione di un nuovo record da esportare + csv.new_rec(""); + + csv.set(0, rdoc.get(RDOC_CODNUM)); + csv.set(1, rdoc.get(RDOC_ANNO)); + csv.set(2, rdoc.get(RDOC_NDOC)); + csv.set(3, rdoc.get(RDOC_NRIGA)); + csv.set(4, rdoc.get(RDOC_CODART)); + csv.set(5, rdoc.get(RDOC_PREZZO)); + csv.set(6, rdoc.get(RDOC_UMQTA)); + csv.set(7, rdoc.get(RDOC_QTA)); + } + + csv.save_as(path, fmt_text); } + + + +#ifdef DBG + xvt_sys_goto_url(path, "open"); +#endif }