campo-sirio/ps/ps0330100.cpp
guy 2b0220ba83 Patch level :
Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
Corretta esportazione listini per TERASHOP


git-svn-id: svn://10.65.10.50/branches/R_10_00@22486 c028cbd2-c16b-5b4b-a496-9718f37d4682
2011-11-14 11:49:48 +00:00

158 lines
3.7 KiB
C++
Executable File

#include <applicat.h>
#include <automask.h>
#include <dongle.h>
#include <modaut.h>
#include <progind.h>
#include <reprint.h>
#include <reputils.h>
#include <utility.h>
#include "../mg/anamag.h"
#include "ps0330100a.h"
///////////////////////////////////////////////
// MASCHERA
///////////////////////////////////////////////
class TMultimarche_mask : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TMultimarche_mask();
};
TMultimarche_mask::TMultimarche_mask() : TAutomask("ps0330100a")
{
}
bool TMultimarche_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
/*switch(o.dlg())
{
default:
break;
}*/
return true;
}
///////////////////////////////////////////////
// RECORDSET
///////////////////////////////////////////////
///////////////////////////////////////////////
// REPORT
///////////////////////////////////////////////
//il report in questione ha la query inside..
//..e non necessita di altro che i FIELD #... dei campi della maschera per avere i valori..
//..delle set_var interne
class TMultimarche_report : public TReport
{
protected:
virtual bool use_mask() { return false; } //questo ci vuole perchè la maschera ha un nome != dai report
public:
TMultimarche_report() {}
};
///////////////////////////////////////////////
// APPLICAZIONE
///////////////////////////////////////////////
class TMultimarche : public TSkeleton_application
{
TMultimarche_mask* _mask;
protected:
virtual bool check_autorization() const { return false; }
virtual const char* extra_modules() const { return "ve"; }
virtual bool create();
virtual void main_loop();
public:
void elabora();
};
void TMultimarche::elabora()
{
TMultimarche_report rep;
if (rep.load(_mask->get(F_REPORT)))
{
TRecordset* recset = rep.recordset();
const long anno = _mask->get_int(F_ANNO);
const TString4 codmag = _mask->get(F_CODMAG);
//crea l'elenco delle marche
TString marche_query;
marche_query << "USE ANAMAG\nSELECT CODART?=\"???";
marche_query << "\nFROM CODART=#DAMARCA";
marche_query << "\nTO CODART=#AMARCA";
TISAM_recordset marche_recset(marche_query);
const TString& damarca = _mask->get(F_DAMARCA);
const TString& amarca = _mask->get(F_AMARCA);
marche_recset.set_var("#DAMARCA", damarca);
marche_recset.set_var("#AMARCA", amarca);
const long marche_items = marche_recset.items();
TProgind pi(marche_items, "Esportazione bovina in corso...", true, true);
for (bool ok = marche_recset.move_first(); ok; ok = marche_recset.move_next())
{
if (!pi.addstatus(1))
break;
const TString4 marca = marche_recset.get(ANAMAG_CODART).as_string();
recset->set_var("#MARCA", marca);
recset->set_var("#ANNO", anno);
recset->set_var("#CODMAG", codmag);
const long items = recset->items();
if (items > 0)
{
TReport_book book;
book.add(rep);
TFilename fname = _mask->get(F_PATH_FILE);
TString4 str_anno;
str_anno << anno;
fname.add(str_anno);
fname << "_" << marca;
fname.ext("xls");
book.export_excel(fname, false);
}
}
}
}
bool TMultimarche::create()
{
//se non ha VE non può proseguire
if (!has_module(VEAUT))
return error_box(TR("Modulo non autorizzato"));
Tdninst dninst;
if (!dninst.can_I_run(true))
return error_box(TR("Programma non autorizzato!"));
return TSkeleton_application::create();
}
void TMultimarche::main_loop()
{
_mask = new TMultimarche_mask;
if (_mask->run() != K_QUIT)
elabora();
delete _mask;
_mask = NULL;
}
int ps0330100 (int argc, char **argv)
{
TMultimarche a;
a.run(argc,argv, TR("Rimanenze per marca"));
return true;
}