Files correlati : ve0.exe ve5800a.h ve5800a.msk ve5800a.uml ve5800.cpp velib04.cpp Commento : Aggiunto Raggruppamento righe documenti con medesima descrizione. Interno :
110 lines
2.8 KiB
C++
110 lines
2.8 KiB
C++
#include "ve5.h"
|
|
#include "velib.h"
|
|
#include "ve5800a.h"
|
|
|
|
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <config.h>
|
|
#include <defmask.h>
|
|
#include <execp.h>
|
|
#include <incstr.h>
|
|
#include <golem.h>
|
|
#include <prefix.h>
|
|
|
|
#include <clifo.h>
|
|
#include <doc.h>
|
|
#include <rdoc.h>
|
|
|
|
#include "velib04.h"
|
|
#include "../mg/mglib.h"
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// Maschera principale
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TRaggruppamento_documenti_mask : public TAutomask
|
|
{
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
public:
|
|
TRaggruppamento_documenti_mask() : TAutomask("ve5800a") {}
|
|
virtual ~TRaggruppamento_documenti_mask() {}
|
|
};
|
|
|
|
bool TRaggruppamento_documenti_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
switch (o.dlg())
|
|
{
|
|
case DLG_SAVEREC:
|
|
if (e == fe_button)
|
|
stop_run(K_AUTO_ENTER);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// Applicazione principale
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TRaggruppamento_documenti : public TSkeleton_application
|
|
{
|
|
public:
|
|
void raggruppa_doc(const TMask & m);
|
|
virtual void main_loop();
|
|
};
|
|
|
|
void TRaggruppamento_documenti::raggruppa_doc(const TMask & m)
|
|
{
|
|
TRaggruppamento_documento ragg(m.get(F_CODICE_ELAB));
|
|
TLista_documenti doc_ingresso;
|
|
TLista_documenti doc_uscita;
|
|
TToken_string tipi_iniziali;
|
|
TToken_string stati_iniziali;
|
|
TString numerazione_iniziale = ragg.codice_numerazione_iniziale();
|
|
const int anno = m.get_int(F_ANNO);
|
|
const long dal_ndoc = m.get_long(F_FRNDOC);
|
|
const long al_ndoc = m.get_long(F_TONDOC);
|
|
|
|
ragg.tipi_stati_iniziali(tipi_iniziali, stati_iniziali);
|
|
|
|
if (doc_ingresso.read('D', ' ', 0L, anno, tipi_iniziali, stati_iniziali,
|
|
nulldate, nulldate, numerazione_iniziale, dal_ndoc, al_ndoc) > 0)
|
|
{
|
|
if (ragg.elabora(doc_ingresso, doc_uscita, today))
|
|
{
|
|
if (doc_uscita.write(true) == NOERR)
|
|
{
|
|
if (doc_ingresso.rewrite() != NOERR)
|
|
fatal_box(TR("Errore nella scrittura documenti d'ingresso"));
|
|
}
|
|
else
|
|
fatal_box(TR("Errore nella scrittura documenti di destinazione"));
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
void TRaggruppamento_documenti::main_loop()
|
|
{
|
|
open_files(LF_TAB, LF_TABCOM, LF_DOC, LF_RIGHEDOC, LF_MOVMAG, NULL);
|
|
open_files(LF_ANAMAG, LF_CLIFO, LF_CFVEN, LF_OCCAS, LF_RMOVMAG, NULL);
|
|
|
|
TRaggruppamento_documenti_mask m;
|
|
|
|
m.set(F_CODDITTA, prefix().get_codditta(), true);
|
|
while (m.run()==K_ENTER)
|
|
raggruppa_doc(m);
|
|
}
|
|
|
|
int ve5800(int argc, char** argv)
|
|
{
|
|
TRaggruppamento_documenti app;
|
|
|
|
app.run(argc, argv, TR("Raggruppamento documenti"));
|
|
return 0;
|
|
}
|