Patch level : 10.0 patch 535

Files correlati     : lv2 lv2400a.msk
Ricompilazione Demo : [ ]
Commento            :
Corretta la stampa automatica da doc a doc in lv2900

Implementata la stampa automatica da doc a doc in lv2400


git-svn-id: svn://10.65.10.50/trunk@19695 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-12-01 13:43:04 +00:00
parent f1b1a1ae3a
commit 4ea5ca71ed
4 changed files with 62 additions and 8 deletions

View File

@ -1,5 +1,6 @@
#include <applicat.h>
#include <automask.h>
#include <execp.h>
#include <progind.h>
#include <reputils.h>
#include <reprint.h>
@ -27,7 +28,7 @@ class TGenera_documenti_msk : public TAutomask
{
public:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
TGenera_documenti_msk (const char* name) : TAutomask(name) {}
TGenera_documenti_msk (const char* name) : TAutomask(name) {set(F_STAMPA, 'X');}
};
//ON_FIELD_EVENT: questo metodo gestisce i vari eventi che si verificano sui campi della maschera
@ -51,7 +52,7 @@ class TGenera_documenti_app : public TSkeleton_application
private:
//Metodi per la generazione dei documenti
bool crea_documento(const TISAM_recordset& plan, TLog_report& rep, int& numdocgen);
bool crea_documento(const TISAM_recordset& plan, TLog_report& rep, int& numdocgen, TAssoc_array& documenti);
void crea_riga(const TString& codart, const char modpas, const int tplis, const bool tmp, const bool prinbo, TDocumento& doc, TLog_report& rep);
//Metodi per il recupero di codnum, tpdoc, stato
bool numerazione_ddt(TString& codnum, TString& tpdoc, TString& statoi, TString& statof) const;
@ -116,7 +117,7 @@ bool TGenera_documenti_app::destroy()
///////////////////////////////////////////////////////
//CREA_DOCUMENTO: metodo che crea un nuovo documento di trasporto dai dati salvati
bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan, TLog_report& rep, int& numdocgen)
bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan, TLog_report& rep, int& numdocgen, TAssoc_array& documenti)
{
//recupero i dati di interesse dalla maschera
const TDate datagen(TODAY);
@ -148,7 +149,7 @@ bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan, TLog_rep
TString4 statoi;
TString4 statof;
//Cerco il tipo documento da generaresul contratto; se non lo trovo lo cerco in configurazione.
//Cerco il tipo documento da generare sul contratto; se non lo trovo lo cerco in configurazione.
//Se non trovo quale documento generare, evito il resto dell'elaborazione
if(tcont.get(LVCONDV_CODNUM).full() && _buono == 'C')
{
@ -236,6 +237,11 @@ bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan, TLog_rep
f.put(LVRCONSPLAN_CODNUM, codnum);
f.put(LVRCONSPLAN_NDOC, _ndoc);
f.rewrite();
//tengo traccia dei documenti che sto generando, per poterli stampare dopo
TDoc_key kdoc(doc.get_int(DOC_ANNO), doc.get(DOC_CODNUM), doc.get_int(DOC_NDOC));
if (!documenti.is_key(kdoc))
documenti.add(kdoc, kdoc);
}
}
return err == NOERR;
@ -761,6 +767,8 @@ bool TGenera_documenti_app::transfer()
int numdocgen = 0;
TAssoc_array documenti;
for (dadata; dadata <= adata; ++dadata)
{
//per ogni data cerco i documenti e per ogni documento cerco i dati del passaggio
@ -808,11 +816,33 @@ bool TGenera_documenti_app::transfer()
{
_quantita.destroy();
_quantita_ritirata.destroy();
crea_documento(plan, rep, numdocgen);
crea_documento(plan, rep, numdocgen, documenti);
}
}
}
if (_msk->get_bool(F_STAMPA))
{
//preparo il pezzo fisso della linea di comando per richiamare la stampa dei documenti
TDoc_key kd(documenti.get_hashobj()->key());
const TString4 codnum = kd.codnum();
const int anno = kd.anno();
const char provv = kd.provv();
TDoc_key& dk1 = *(TDoc_key*)documenti.first_item();
const int dandoc = dk1.ndoc();
TDoc_key& dk2 = *(TDoc_key*)documenti.last_item();
const int andoc = dk2.ndoc();
//lancia la stampa dei documenti ve1 -2 da documento a documento
TString80 str;
str << "ve1 -2 " << codnum << ' ' << anno << ' ' << provv << ' ' << dandoc << '-' << andoc << " S D";
TExternal_app stampa(str);
stampa.run();
}
if (adata < TODAY && _msk->get_int(F_TPGEN) == 0)
warning_box(TR("Non è stato possibile generare documenti con data prevista consegna nel passato"));
else

View File

@ -8,4 +8,5 @@
#define F_CODAUT 108
#define F_DESCRAUT 109
#define F_CODCF 110
#define F_RAGSOCCLI 111
#define F_RAGSOCCLI 111
#define F_STAMPA 112

View File

@ -118,5 +118,15 @@ BEGIN
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 76 3
BEGIN
PROMPT 1 9 "@bParametri di stampa"
END
BOOLEAN F_STAMPA
BEGIN
PROMPT 2 10 "Stampa automatica buoni"
END
ENDPAGE
ENDMASK

View File

@ -216,7 +216,20 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
const int anno = kd.anno();
const char provv = kd.provv();
//lancia la stampa dei documenti ve1 -2 per ogni documento preparato
TDoc_key& dk1 = *(TDoc_key*)documenti.first_item();
const int dandoc = dk1.ndoc();
TDoc_key& dk2 = *(TDoc_key*)documenti.last_item();
const int andoc = dk2.ndoc();
//lancia la stampa dei documenti ve1 -2 da documento a documento
TString80 str;
str << "ve1 -2 " << codnum << ' ' << anno << ' ' << provv << ' ' << dandoc << '-' << andoc << " S D";
TExternal_app stampa(str);
stampa.run();
/*//lancia la stampa dei documenti ve1 -2 per ogni documento preparato
TString80 str;
str << "ve1 -2 " << codnum << ' ' << anno << ' ' << provv << ' ';
@ -230,7 +243,7 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
TExternal_app stampa(lcom);
stampa.run();
}
}*/
}
message_box(TR("Generazione dei documenti terminata"));
}