75 lines
2.4 KiB
C++
75 lines
2.4 KiB
C++
|
// ab1200 Stampa Piano dei Conti
|
|||
|
#include <mask.h>
|
|||
|
#include <form.h>
|
|||
|
#include <applicat.h>
|
|||
|
#include <urldefid.h> //Definisce BAR_ITEM(1)
|
|||
|
|
|||
|
#include "AB1.h"
|
|||
|
#include "ab1200.h"
|
|||
|
|
|||
|
|
|||
|
class AB1200_application : public TApplication
|
|||
|
{
|
|||
|
public:
|
|||
|
|
|||
|
virtual bool create() ; //Crea la finestra principale
|
|||
|
virtual bool destroy() ; //Distrugge la finestra principale
|
|||
|
virtual bool menu(MENU_TAG); //Controlla il menu
|
|||
|
|
|||
|
AB1200_application() {} //Costruttore
|
|||
|
virtual ~AB1200_application() {} //Distruttore
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
bool AB1200_application::create()
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
dispatch_e_menu(BAR_ITEM(1)); //Simula la selezione di una voce di menu
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
bool AB1200_application::destroy()
|
|||
|
{
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
bool AB1200_application::menu(MENU_TAG)
|
|||
|
{
|
|||
|
TForm f("AB1200"); //form: AB1200.frm
|
|||
|
TMask m("AB1200"); //machera: AB1200.uml
|
|||
|
while (m.run() != K_QUIT) //Finch<63> 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("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 <20> 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 <20> 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
|
|||
|
}
|
|||
|
}
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
|
|||
|
int ab1200(int argc, char** argv)
|
|||
|
{
|
|||
|
AB1200_application a;
|
|||
|
a.run(argc, argv, "Stampa Piano dei Conti");
|
|||
|
return 0;
|
|||
|
}
|