campo-sirio/co/co2300.cpp

120 lines
2.8 KiB
C++
Raw Normal View History

#include <applicat.h>
#include <automask.h>
#include <form.h>
#include <report.h>
#include <reprint.h>
#include <tabutil.h>
#include <textset.h>
#include "co2.h"
#include "co2300a.h"
#include "socicoop.h"
////////////////////////////////////////////////////////
// MASCHERA
////////////////////////////////////////////////////////
class TStampaCtrlScad_mask : public TAutomask
{
protected:
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TStampaCtrlScad_mask();
virtual ~TStampaCtrlScad_mask() {};
};
TStampaCtrlScad_mask::TStampaCtrlScad_mask() :TAutomask ("co2300a")
{
}
bool TStampaCtrlScad_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
{
return true;
}
/////////////////////////////////////////////////////////////
// REPORT
/////////////////////////////////////////////////////////////
class TStampaCtrlScad_report : public TReport
{
protected:
virtual bool use_mask() { return false; }
public:
TStampaCtrlScad_report() {}
};
////////////////////////////////////////////////////////
// APPLICAZIONE
////////////////////////////////////////////////////////
class TStampaCtrlScad : public TSkeleton_application
{
public:
virtual void main_loop();
};
void TStampaCtrlScad::main_loop()
{
TStampaCtrlScad_mask m;
while (m.run() == K_ENTER)
{
const int controlla = m.get_int(F_CONTROLLA);
TStampaCtrlScad_report rep;
TReport_book book;
if (rep.load(controlla==1 ? "co2300b" : "co2300a"))
{
TString use(rep.recordset()->query_text());
int pos = use.find("JOIN");
if (pos <= 0) pos = use.len();
switch (controlla)
{
case 4:
use.insert("SELECT SCADCOLL[4,5]==#MESE\n", pos);
break;
case 3:
use.insert("SELECT SCADRUOLEQ[4,5]==#MESE\n", pos);
break;
case 2:
use.insert("SELECT SCADLICPES[4,5]==#MESE\n", pos);
break;
default:
use.insert("SELECT DATASCALIC[4,5]==#MESE\n", pos);
break;
}
pos = use.find("JOIN");
if (pos <= 0) pos = use.len();
const int ordinamento = m.get_int(F_ORDINAMENTO);
switch (ordinamento)
{
case 2:
use.insert("BY 20.RAGSOC\n", pos);
break;
default:
use.insert("BY 20.CODCF\n", pos);
break;
}
rep.set_recordset(use);
}
rep.recordset()->set_var("#DASOCIO", TVariant(m.get(F_DASOCIO)));
rep.recordset()->set_var("#ASOCIO", TVariant(m.get(F_ASOCIO)));
rep.recordset()->set_var("#DAANNO", TVariant(m.get(F_DAANNO)));
rep.recordset()->set_var("#AANNO", TVariant(m.get(F_AANNO)));
rep.recordset()->set_var("#MESE", TVariant(m.get(F_MESE)));
rep.recordset()->set_var("#CONTROLLA", TVariant(m.get_long(F_CONTROLLA)));
book.add(rep);
book.print_or_preview();
}
}
int co2300(int argc, char* argv[])
{
TStampaCtrlScad a;
a.run(argc, argv, TR("Stampa soci per data licenza"));
return 0;
}