ee41b9e741
Files correlati : Ricompilazione Demo : [ ] Commento : spostata in avanati (15 gennaio) la scadenza della stampa listini di baiseina git-svn-id: svn://10.65.10.50/trunk@19782 c028cbd2-c16b-5b4b-a496-9718f37d4682
186 lines
4.2 KiB
C++
Executable File
186 lines
4.2 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <config.h>
|
|
#include <defmask.h>
|
|
#include <recset.h>
|
|
#include <reprint.h>
|
|
#include <utility.h>
|
|
|
|
#include "ve3500a.h"
|
|
|
|
////////////////////////////////////////////////////////
|
|
// MASCHERA
|
|
////////////////////////////////////////////////////////
|
|
class TPrint_condven_mask : public TAutomask
|
|
{
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
public:
|
|
TPrint_condven_mask();
|
|
};
|
|
|
|
TPrint_condven_mask::TPrint_condven_mask() : TAutomask("ve3500a")
|
|
{
|
|
//legge il parametro con cui è stato chiamato il programma ('C'ontratti,'L'istini,'O'fferte..
|
|
//..ed in base a questo setta il valore del campo F_TIPO sulla maschera che fa apparire/scomparire..
|
|
//..campi
|
|
const char* tipo = "L";
|
|
if (main_app().argc() > 2)
|
|
tipo = main_app().argv(2);
|
|
|
|
set(F_TIPO, tipo);
|
|
switch (tipo[0])
|
|
{
|
|
case 'L':
|
|
{
|
|
//il costruttore abilita/disabilita i campi delle categorie di vendita in base alla configurazione
|
|
const bool gesliscv = ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV");
|
|
enable(F_L_CATVEN, gesliscv);
|
|
enable(F_L_DESVEN, gesliscv);
|
|
//attenzione!!! il campo CATVEN è in chiave 1! per disabilitarlo ci vuole questo trucco!
|
|
if (!gesliscv)
|
|
efield(F_L_CATVEN).reset_key(1);
|
|
}
|
|
break;
|
|
case 'C':
|
|
{
|
|
const bool gescf = ini_get_bool(CONFIG_DITTA, "ve", "GESCONCC");
|
|
enable(F_C_TIPOCF, gescf);
|
|
enable(F_C_CODCF, gescf);
|
|
//anche i campi dei clifo stanno in chiave!
|
|
if (!gescf)
|
|
{
|
|
efield(F_C_TIPOCF).reset_key(1);
|
|
efield(F_C_CODCF).reset_key(1);
|
|
}
|
|
}
|
|
break;
|
|
case 'O':
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
bool TPrint_condven_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
switch(o.dlg())
|
|
{
|
|
case DLG_PRINT:
|
|
if (e == fe_button)
|
|
{
|
|
main_app().print();
|
|
return false;
|
|
}
|
|
break;
|
|
case DLG_PREVIEW:
|
|
if (e == fe_button)
|
|
{
|
|
main_app().preview();
|
|
return false;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////
|
|
// REPORT
|
|
////////////////////////////////////////////////////////
|
|
//i report in questione (sono 3, per Contratti, Listini, Offerte) hanno la query inside..
|
|
//..e non necessitano di altro che i FIELD #... dei campi della maschera per avere i valori..
|
|
//..delle set_var interne
|
|
class TPrint_condven_report : public TReport
|
|
{
|
|
protected:
|
|
virtual bool use_mask() { return false; } //questo ci vuole perchè la maschera ha un nome != dai report
|
|
public:
|
|
TPrint_condven_report() {}
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////
|
|
// APPLICAZIONE
|
|
////////////////////////////////////////////////////////
|
|
class TPrint_condven : public TSkeleton_application
|
|
{
|
|
TPrint_condven_mask* _mask;
|
|
|
|
protected:
|
|
virtual bool create();
|
|
virtual void print();
|
|
virtual void preview();
|
|
virtual void print_or_preview(const bool stampa);
|
|
|
|
public:
|
|
virtual void main_loop();
|
|
|
|
};
|
|
|
|
//fantastico metodo per gestire stampa o anteprima
|
|
void TPrint_condven::print_or_preview(const bool stampa)
|
|
{
|
|
if (_mask->check_fields())
|
|
{
|
|
//l'utonto può scegliere che report usare (personalizzato!)
|
|
TString rep_name = _mask->get(F_REPORT);
|
|
//se il rep non è selezionato usa quello standard
|
|
if (rep_name.empty())
|
|
rep_name << "ve3500" << _mask->get(F_TIPO);
|
|
|
|
TPrint_condven_report rep;
|
|
rep.load(rep_name);
|
|
|
|
rep.mask2report(*_mask); //setta i valori della maschera sul report
|
|
|
|
TReport_book book;
|
|
book.add(rep);
|
|
book.print_or_preview();
|
|
}
|
|
}
|
|
|
|
void TPrint_condven::print()
|
|
{
|
|
print_or_preview(true);
|
|
}
|
|
|
|
void TPrint_condven::preview()
|
|
{
|
|
print_or_preview(false);
|
|
}
|
|
|
|
void TPrint_condven::main_loop()
|
|
{
|
|
_mask = new TPrint_condven_mask;
|
|
_mask->run();
|
|
delete _mask;
|
|
_mask = NULL;
|
|
}
|
|
|
|
bool TPrint_condven::create()
|
|
{
|
|
//controlla che solo il producer AGA possa usare questo programma
|
|
if (!is_power_reseller())
|
|
{
|
|
error_box(TR("Programma non autorizzato!"));
|
|
return false;
|
|
|
|
//se non paghi ti stronco!!!
|
|
const TDate oggi(TODAY);
|
|
if (oggi >= 20100115)
|
|
return false;
|
|
}
|
|
return TSkeleton_application::create();
|
|
}
|
|
|
|
int ve3500(int argc, char* argv[])
|
|
{
|
|
TPrint_condven a;
|
|
a.run(argc, argv, TR("Stampa condizioni di vendita"));
|
|
return 0;
|
|
} |