Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunto ps1001200 (è il vecchio crpa1) Aggiunto ed iniziato il ps1001300 (nuovo programma per la variazione del budget) git-svn-id: svn://10.65.10.50/trunk@20362 c028cbd2-c16b-5b4b-a496-9718f37d4682
133 lines
3.2 KiB
C++
Executable File
133 lines
3.2 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <textset.h>
|
|
|
|
#include "../ca/rmovana.h"
|
|
|
|
#include "ps1001.h"
|
|
#include "ps1001300a.h"
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// TAutomask
|
|
///////////////////////////////////////////////////////////
|
|
class TVariazione_budget_mask : public TAutomask
|
|
{
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
void carica_rmovana();
|
|
|
|
public:
|
|
TVariazione_budget_mask();
|
|
};
|
|
|
|
TVariazione_budget_mask::TVariazione_budget_mask() :TAutomask ("ps1001300a")
|
|
{
|
|
}
|
|
|
|
bool TVariazione_budget_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
switch (o.dlg())
|
|
{
|
|
case F_CODCMS:
|
|
{
|
|
if (e == fe_modify)
|
|
carica_rmovana();
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
void TVariazione_budget_mask::carica_rmovana()
|
|
{
|
|
TWait_cursor hourglass;
|
|
TString query;
|
|
query << "USE RMOVANA KEY 4\n";
|
|
query << "SELECT ((MOVANA.TIPOMOV=\"P\")||(MOVANA.TIPOMOV=\"V\"))\n";
|
|
query << "JOIN MOVANA INTO NUMREG==NUMREG\n";
|
|
query << "FROM CODCMS=#CODCMS\n";
|
|
query << "TO CODCMS=#CODCMS\n";
|
|
//instanzio un TISAM_recordset sulle rmovana
|
|
TISAM_recordset rmovana(query);
|
|
rmovana.set_var("#CODCMS", get(F_CODCMS));
|
|
|
|
const long rmovana_items = rmovana.items();
|
|
|
|
//recupero sheet e realtiva mashera di riga
|
|
TSheet_field& sf_righe = sfield(F_RIGHE);
|
|
TMask& msk = sf_righe.sheet_mask();
|
|
sf_righe.destroy();
|
|
|
|
//per ogni riga del recordset va ad aggiornare lo sheet sulla maschera (aggiunge la riga)
|
|
for (bool ok = rmovana.move_first(); ok; ok = rmovana.move_next())
|
|
{
|
|
TToken_string& row = sf_righe.row(-1);
|
|
|
|
row.add(rmovana.get(RMOVANA_CODCCOSTO).as_string(), 0);
|
|
row.add(rmovana.get(RMOVANA_CODFASE).as_string(), 1);
|
|
row.add(rmovana.get(RMOVANA_CODCONTO).as_string(), 2);
|
|
|
|
real valore = rmovana.get(RMOVANA_IMPORTO).as_real();
|
|
const char sezione = rmovana.get(RMOVANA_SEZIONE).as_string()[0];
|
|
TImporto importo(sezione, valore);
|
|
importo.normalize('D');
|
|
valore = importo.valore();
|
|
TString str_valore;
|
|
str_valore << valore;
|
|
row.add(str_valore, 3);
|
|
|
|
row.add(rmovana.get(RMOVANA_NUMREG).as_int(), 4);
|
|
row.add(rmovana.get(RMOVANA_NUMRIG).as_int(), 5);
|
|
row.add(rmovana.get(RMOVANA_DESCR).as_string(), 6);
|
|
}
|
|
sf_righe.force_update();
|
|
}
|
|
|
|
///////////////////////////////////////
|
|
// TSkeleton_application
|
|
///////////////////////////////////////
|
|
class TVariazione_budget : public TSkeleton_application
|
|
{
|
|
virtual bool check_autorization() const { return false; }
|
|
virtual const char * extra_modules() const { return "ca"; }
|
|
|
|
TVariazione_budget_mask* _msk;
|
|
|
|
protected:
|
|
|
|
public:
|
|
virtual bool create();
|
|
virtual bool destroy();
|
|
virtual void main_loop();
|
|
|
|
TVariazione_budget() {};
|
|
};
|
|
|
|
|
|
bool TVariazione_budget::create()
|
|
{
|
|
_msk = new TVariazione_budget_mask();
|
|
return TSkeleton_application::create();
|
|
}
|
|
|
|
bool TVariazione_budget::destroy()
|
|
{
|
|
delete _msk;
|
|
return TApplication::destroy();
|
|
}
|
|
|
|
void TVariazione_budget::main_loop()
|
|
{
|
|
KEY tasto;
|
|
tasto = _msk->run();
|
|
}
|
|
|
|
int ps1001300 (int argc, char* argv[])
|
|
{
|
|
TVariazione_budget main_app;
|
|
main_app.run(argc, argv, TR("Variazione budget"));
|
|
return true;
|
|
} |