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
158 lines
3.7 KiB
C++
Executable File
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;
|
|
} |