Files correlati : Ricompilazione Demo : [ ] Commento :iniziata personalizzazione leopardata git-svn-id: svn://10.65.10.50/trunk@17883 c028cbd2-c16b-5b4b-a496-9718f37d4682
166 lines
4.2 KiB
C++
Executable File
166 lines
4.2 KiB
C++
Executable File
#include "ps0099100a.h"
|
||
|
||
#include <applicat.h>
|
||
#include <automask.h>
|
||
#include <modaut.h>
|
||
#include <progind.h>
|
||
#include <recarray.h>
|
||
#include <relation.h>
|
||
#include <reprint.h>
|
||
#include <reputils.h>
|
||
#include <textset.h>
|
||
|
||
#include "../cg/cglib01.h"
|
||
|
||
///////////////////////////////////////////////////////////
|
||
// MASCHERA
|
||
///////////////////////////////////////////////////////////
|
||
class TStatistiche_ANIVAL_mask : public TAutomask
|
||
{
|
||
protected:
|
||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||
|
||
public:
|
||
TStatistiche_ANIVAL_mask();
|
||
virtual ~TStatistiche_ANIVAL_mask() {}
|
||
};
|
||
|
||
TStatistiche_ANIVAL_mask::TStatistiche_ANIVAL_mask() : TAutomask("ps0099100a")
|
||
{
|
||
}
|
||
|
||
bool TStatistiche_ANIVAL_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||
{
|
||
switch (o.dlg())
|
||
{
|
||
case F_ANNO:
|
||
if (e == fe_modify && !o.empty())
|
||
{
|
||
TEsercizi_contabili esc;
|
||
TDate inies, fines;
|
||
if (esc.code2range(atoi(o.get()), inies, fines))
|
||
{
|
||
set(F_DADATA, inies);
|
||
set(F_ADATA, fines);
|
||
}
|
||
}
|
||
break;
|
||
case F_DADATA:
|
||
case F_ADATA:
|
||
if (e == fe_close)
|
||
{
|
||
const int anno = get_int(F_ANNO);
|
||
|
||
TEsercizi_contabili esc; //..le date devono essere incluse nell'esercizio selezionato!
|
||
const TDate data = o.get();
|
||
if (!data.empty() && esc.date2esc(data) != anno)
|
||
return error_box(TR("La data deve appartenere all'anno selezionato"));
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
/////////////////////////////////////////////////////////////
|
||
// REPORT
|
||
/////////////////////////////////////////////////////////////
|
||
class TStatistiche_ANIVAL_report : public TReport
|
||
{
|
||
protected:
|
||
virtual bool use_mask() { return false; }
|
||
public:
|
||
TStatistiche_ANIVAL_report() {}
|
||
};
|
||
|
||
/////////////////////////////////////////////////////////////
|
||
// CSV RECORDSET
|
||
/////////////////////////////////////////////////////////////
|
||
|
||
class TStatistiche_ANIVAL_csv_recordset : public TCSV_recordset
|
||
{
|
||
protected:
|
||
//virtual const TVariant& get(const char* field_name) const;
|
||
public:
|
||
TStatistiche_ANIVAL_csv_recordset();
|
||
};
|
||
|
||
TStatistiche_ANIVAL_csv_recordset::TStatistiche_ANIVAL_csv_recordset()
|
||
: TCSV_recordset("CSV(,)\n")
|
||
{
|
||
}
|
||
|
||
|
||
///////////////////////////////////////////////////////////
|
||
// APPLICAZIONE
|
||
///////////////////////////////////////////////////////////
|
||
|
||
class TStatistiche_ANIVAL : public TSkeleton_application
|
||
{
|
||
virtual bool check_autorization() const {return false;}
|
||
virtual const char * extra_modules() const {return "ve";}
|
||
|
||
protected:
|
||
void elabora(const TMask& mask) const;
|
||
|
||
public:
|
||
virtual bool create();
|
||
virtual void main_loop();
|
||
|
||
};
|
||
|
||
|
||
//metodo di base per la ricerca delle righe documento che soddisfano i parametri dell'utonto
|
||
void TStatistiche_ANIVAL::elabora(const TMask& mask) const
|
||
{
|
||
TString query;
|
||
//scatta la query per la costruzione del recordset
|
||
query << "USE RDOC KEY 1\n";
|
||
query << "SELECT ((CODARTMAG!=\"\")&&(BETWEEN(33->DATADOC,#DADATA,#ADATA))&&(BETWEEN(CODARTMAG,#DACODART,#ACODART)))\n";
|
||
query << "JOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC\n";
|
||
query << "FROM CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
||
query << "TO CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
||
|
||
TISAM_recordset righe(query);
|
||
righe.set_var("#CODNUM", TVariant(mask.get(F_CODNUM)));
|
||
righe.set_var("#DADATA", mask.get_date(F_DADATA));
|
||
righe.set_var("#ADATA", mask.get_date(F_ADATA));
|
||
righe.set_var("#ANNO", TVariant((long)mask.get_int(F_ANNO)));
|
||
righe.set_var("#DACODART", TVariant(mask.get(F_DACODART)));
|
||
righe.set_var("#ACODART", TVariant(mask.get(F_ACODART)));
|
||
|
||
//se trova (si spera!) almeno una rigadoc buona comincia il bello del programma
|
||
const long nrighe = righe.items();
|
||
if (nrighe > 0)
|
||
{
|
||
const int cazzone = 1;
|
||
}
|
||
}
|
||
|
||
void TStatistiche_ANIVAL::main_loop()
|
||
{
|
||
TStatistiche_ANIVAL_mask mask;
|
||
|
||
while (mask.run() == K_ENTER)
|
||
{
|
||
elabora(mask);
|
||
}
|
||
}
|
||
|
||
bool TStatistiche_ANIVAL::create()
|
||
{
|
||
//se non ha le vendite <20> impossibile da utilizzare
|
||
if (!has_module(VEAUT))
|
||
return error_box(TR("Modulo non autorizzato"));
|
||
|
||
return TSkeleton_application::create();
|
||
}
|
||
|
||
int ps0099100(int argc, char* argv[])
|
||
{
|
||
TStatistiche_ANIVAL stat_anal;
|
||
stat_anal.run(argc, argv, TR("Statistiche ANIVAL"));
|
||
return 0;
|
||
} |