109 lines
2.7 KiB
C++
109 lines
2.7 KiB
C++
|
#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 "co2100a.h"
|
||
|
|
||
|
#include "socicoop.h"
|
||
|
|
||
|
////////////////////////////////////////////////////////
|
||
|
// MASCHERA
|
||
|
////////////////////////////////////////////////////////
|
||
|
class TStampaAnagSoci_mask : public TAutomask
|
||
|
{
|
||
|
protected:
|
||
|
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||
|
public:
|
||
|
TStampaAnagSoci_mask();
|
||
|
virtual ~TStampaAnagSoci_mask() {};
|
||
|
};
|
||
|
|
||
|
TStampaAnagSoci_mask::TStampaAnagSoci_mask() :TAutomask ("co2100a")
|
||
|
{
|
||
|
}
|
||
|
|
||
|
bool TStampaAnagSoci_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// REPORT
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
class TStampaAnagSoci_report : public TReport
|
||
|
{
|
||
|
protected:
|
||
|
virtual bool use_mask() { return false; }
|
||
|
public:
|
||
|
TStampaAnagSoci_report() {}
|
||
|
};
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////
|
||
|
// APPLICAZIONE
|
||
|
////////////////////////////////////////////////////////
|
||
|
|
||
|
class TStampaAnagSoci : public TSkeleton_application
|
||
|
{
|
||
|
public:
|
||
|
virtual void main_loop();
|
||
|
};
|
||
|
|
||
|
void TStampaAnagSoci::main_loop()
|
||
|
{
|
||
|
TStampaAnagSoci_mask m;
|
||
|
while (m.run() == K_ENTER)
|
||
|
{
|
||
|
TStampaAnagSoci_report rep;
|
||
|
TReport_book book;
|
||
|
|
||
|
const int formato = m.get_int(F_FORMATO);
|
||
|
|
||
|
//ATTENZIONE: in caso di formato == 3 il report dovrebbe essere co2100b e non co2100a!!!!!!!!!!!!!!!
|
||
|
if (rep.load(formato==3 ? "co2100b" : "co2100a"))
|
||
|
{
|
||
|
TString use(rep.recordset()->query_text());
|
||
|
int pos = use.find("JOIN");
|
||
|
if (pos <= 0) pos = use.len();
|
||
|
|
||
|
switch(formato)
|
||
|
{
|
||
|
case 1: use.insert("SELECT BETWEEN(DATAASS, #DADATA, #ADATA)\n", pos); break;
|
||
|
case 2: use.insert("SELECT BETWEEN(DATAREC, #DADATA, #ADATA)\n", pos); break;
|
||
|
case 3: use.insert("SELECT BETWEEN(#DADATA, DATAASS, DATAREC) || BETWEEN(#ADATA, DATAASS, DATAREC)\n", pos); break;
|
||
|
default: break;
|
||
|
}
|
||
|
|
||
|
|
||
|
const int ordinamento = m.get_int(F_ORDINAMENTO);
|
||
|
pos = use.find("JOIN");
|
||
|
if (pos <= 0) pos = use.len();
|
||
|
if (ordinamento == 2)
|
||
|
use.insert("BY 20.RAGSOC\n", pos);
|
||
|
else
|
||
|
use.insert("BY CODCF\n", pos);
|
||
|
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("#DADATA", TVariant(m.get(F_DADATA)));
|
||
|
rep.recordset()->set_var("#ADATA", TVariant(m.get(F_ADATA)));
|
||
|
|
||
|
book.add(rep);
|
||
|
book.print_or_preview();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
int co2100(int argc, char* argv[])
|
||
|
{
|
||
|
TStampaAnagSoci a;
|
||
|
a.run(argc, argv, TR("Stampa anagrafica soci"));
|
||
|
return 0;
|
||
|
}
|