// ab1200 Stampa Piano dei Conti #include #include #include #include //Definisce BAR_ITEM(1) #include "ab1.h" #include "ab1200.h" class AB1200_application : public TSkeleton_application { public: virtual void main_loop(); //Controlla il menu AB1200_application() {} //Costruttore virtual ~AB1200_application() {} //Distruttore }; void AB1200_application::main_loop() { TForm f("AB1200"); //form: AB1200.frm TMask m("AB1200"); //machera: AB1200.uml while (m.run() != K_QUIT) //Finchè non viene premuto un tasto di uscita { TString cod_from, cod_to; //Dichiarazione cod_from=m.get(F_INIZIO); //Inizializzo con quello che preleva dal campo della maschera cod_to=m.get(F_FINE); //Dati validi: (cod_from <= cod_to) and (cod_to = "vuoto") bool err = ((cod_from > cod_to) && (cod_to != "") ); if (err) error_box(TR("Il campo iniziale deve essere vuoto o minore del campo finale")); else { TCursor* cur = f.cursor(); //Ritorna il cursore corrente (oggetto) TRectype rec_from(cur->curr()); //TRectype: classe per la definizione del tipo record //rec_from è l'oggetto a cui associo l'indice corrente rec_from.zero(); //lo vuoto rec_from.put("CODCBL",cod_from); //e lo riempio con il campo contenuto nel database all'indice iniziale TRectype rec_to(cur->curr()); //creo un nuovo oggetto a cui associare l'indice rec_to.zero(); //lo vuoto if (cod_to.not_empty()) //se cod_to (letto dal campo della tabella) non è vuoto rec_to.put("CODCBL",cod_to); //gli inserisco l'indice finale letto //altrimenti va fino alla ifne del file cur->setregion(rec_from,rec_to); //all'indice associo la regine di stampa f.print(); //Stampa } } } int ab1200(int argc, char** argv) { AB1200_application a; a.run(argc, argv, TR("Stampa Piano dei Conti")); return 0; }