modifiche di perfezionamento ai vari programmi
git-svn-id: svn://10.65.10.50/trunk@4130 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
2f49e95045
commit
36dd13ec55
@ -4,9 +4,6 @@
|
|||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include <lffiles.h>
|
#include <lffiles.h>
|
||||||
#include <comuni.h>
|
#include <comuni.h>
|
||||||
#include <effetti.h>
|
|
||||||
#include <reffetti.h>
|
|
||||||
#include <cession.h>
|
|
||||||
#include "ef0.h"
|
#include "ef0.h"
|
||||||
#include "ef0100.h"
|
#include "ef0100.h"
|
||||||
#include "ef0101.h"
|
#include "ef0101.h"
|
||||||
|
@ -170,7 +170,8 @@ END
|
|||||||
NUMBER F_TOTIMP 18 2
|
NUMBER F_TOTIMP 18 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 18 "Totale importi "
|
PROMPT 2 18 "Totale importi "
|
||||||
FIELD LF_EFFETTI->IMPORTO
|
FIELD LF_EFFETTI->IMPORTO
|
||||||
|
PICTURE "###.###.###.###,@@"
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -178,6 +179,7 @@ NUMBER F_TOTIMPVAL 18 3
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 19 "Totale importi in valuta "
|
PROMPT 2 19 "Totale importi in valuta "
|
||||||
FIELD LF_EFFETTI->IMPORTOVAL
|
FIELD LF_EFFETTI->IMPORTOVAL
|
||||||
|
PICTURE "###.###.###.###,@@@"
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
//GROUP 1
|
//GROUP 1
|
||||||
END
|
END
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
#include "effetti.h"
|
|
||||||
#include "reffetti.h"
|
|
||||||
#include "cession.h"
|
|
||||||
#include "ef0101.h"
|
#include "ef0101.h"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
// definizione dei metodi della classe TEffetto //
|
// Definizione dei metodi della classe TEffetto //
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// costruttore di default
|
// costruttore di default
|
||||||
@ -70,9 +67,9 @@ long TEffetto::renum(long numeff)
|
|||||||
numeff = get_next_key(codcf);
|
numeff = get_next_key(codcf);
|
||||||
}
|
}
|
||||||
char num[7]; sprintf(num, "%ld", numeff);
|
char num[7]; sprintf(num, "%ld", numeff);
|
||||||
renum_key("NPROGTR", num); // aggiorna testata
|
renum_key(EFF_NPROGTR, num); // aggiorna testata
|
||||||
_righe.renum_key("NPROGTR", num); // aggiorna righe ok
|
_righe.renum_key(EFF_NPROGTR, num); // aggiorna righe ok
|
||||||
_cess.renum_key("NPROGTR", num); // aggiorna cessionari ok
|
_cess.renum_key(EFF_NPROGTR, num); // aggiorna cessionari ok
|
||||||
return numeff;
|
return numeff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
26
ef/ef0101.h
26
ef/ef0101.h
@ -1,13 +1,17 @@
|
|||||||
#ifndef __RELATION_H
|
#ifndef __RELATION_H
|
||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef __RECTYPES_H
|
||||||
#ifndef __RECARRAY_H
|
#include <rectypes.h>
|
||||||
#include <recarray.h>
|
|
||||||
#endif
|
#endif
|
||||||
|
#include <effetti.h>
|
||||||
|
#include <reffetti.h>
|
||||||
|
#include <cession.h>
|
||||||
|
|
||||||
// definizione dell'oggetto Effetto con la classe TEffetto
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Definizione dell'oggetto Effetto con la classe TEffetto//
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
class TEffetto:public TRectype
|
class TEffetto:public TRectype
|
||||||
{
|
{
|
||||||
TRecord_array _righe,// righe dell'effetto
|
TRecord_array _righe,// righe dell'effetto
|
||||||
@ -57,19 +61,19 @@ public:
|
|||||||
// rimuove l'effetto
|
// rimuove l'effetto
|
||||||
int remove(TLocalisamfile& f)const;
|
int remove(TLocalisamfile& f)const;
|
||||||
// restituisce il numero progressivo dell'effetto estraendolo dal record
|
// restituisce il numero progressivo dell'effetto estraendolo dal record
|
||||||
long numero() const { return get_long("NPROGTR"); }
|
long numero() const { return get_long(EFF_NPROGTR); }
|
||||||
// restituisce il codice del cliente intestatario dell'effetto estraendolo dal record
|
// restituisce il codice del cliente intestatario dell'effetto estraendolo dal record
|
||||||
long codicec() const { return get_long("CODCF"); }
|
long codicec() const { return get_long(EFF_CODCF); }
|
||||||
// restituisce la data di scadenza dell'effetto estraendola dal record
|
// restituisce la data di scadenza dell'effetto estraendola dal record
|
||||||
TDate datasc() const { return get_date("DATASCAD"); }
|
TDate datasc() const { return get_date(EFF_DATASCAD); }
|
||||||
// restituisce il tipo di distinta a cui appartiene l'effetto estraendolo dal record
|
// restituisce il tipo di distinta a cui appartiene l'effetto estraendolo dal record
|
||||||
char tipodist() const { return get_char("TIPODIST"); }
|
char tipodist() const { return get_char(EFF_TIPODIST); }
|
||||||
// restituisce il numero della distinta a cui appartiene l'effetto estraendolo dal record
|
// restituisce il numero della distinta a cui appartiene l'effetto estraendolo dal record
|
||||||
long ndist() const { return get_long("NDIST"); }
|
long ndist() const { return get_long(EFF_NDIST); }
|
||||||
// restituisce il numero della riga distinta a cui appartiene l'effetto estraendolo dal record
|
// restituisce il numero della riga distinta a cui appartiene l'effetto estraendolo dal record
|
||||||
long nrgdist() const { return get_long("NRIGADIST"); }
|
long nrgdist() const { return get_long(EFF_NRIGADIST); }
|
||||||
// restituisce l'importo dell'effetto
|
// restituisce l'importo dell'effetto
|
||||||
long importo() const { return get_long("IMPORTO"); }
|
long importo() const { return get_long(EFF_IMPORTO); }
|
||||||
// setta i campi per la quarta chiave del file
|
// setta i campi per la quarta chiave del file
|
||||||
void put_key(TRectype& rec,char tipodist, long ndist, long nrigadist = 0);
|
void put_key(TRectype& rec,char tipodist, long ndist, long nrigadist = 0);
|
||||||
// setta i campi per la prima chiave del file
|
// setta i campi per la prima chiave del file
|
||||||
|
@ -3,9 +3,7 @@
|
|||||||
#include <sheet.h>
|
#include <sheet.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include <lffiles.h>
|
#include <lffiles.h>
|
||||||
#include <effetti.h>
|
#include <clifo.h>
|
||||||
#include <reffetti.h>
|
|
||||||
#include <cession.h>
|
|
||||||
#include "ef0.h"
|
#include "ef0.h"
|
||||||
#include "ef0300.h"
|
#include "ef0300.h"
|
||||||
#include "ef0301.h"
|
#include "ef0301.h"
|
||||||
@ -229,9 +227,9 @@ int TVariazione_distinte::read(TMask& m)
|
|||||||
|
|
||||||
long codcf = eff.get_long(EFF_CODCF); //prendo la ragione sociale del cliente
|
long codcf = eff.get_long(EFF_CODCF); //prendo la ragione sociale del cliente
|
||||||
_clifo->zero(); //conoscendone il codice
|
_clifo->zero(); //conoscendone il codice
|
||||||
_clifo->put("TIPOCF", 'C');
|
_clifo->put(CLI_TIPOCF , 'C');
|
||||||
_clifo->put("CODCF", codcf);
|
_clifo->put(CLI_CODCF, codcf);
|
||||||
if (_clifo->read() == NOERR) riga.add(_clifo->get("RAGSOC"));
|
if (_clifo->read() == NOERR) riga.add(_clifo->get(CLI_RAGSOC));
|
||||||
|
|
||||||
if (eff.fatt(numero)) //se l'effetto contiene solo una fattura metto i
|
if (eff.fatt(numero)) //se l'effetto contiene solo una fattura metto i
|
||||||
{ //riferimenti al documento ed al numero di rata
|
{ //riferimenti al documento ed al numero di rata
|
||||||
@ -457,9 +455,9 @@ void TVariazione_distinte::carica_riba(int tipopag)
|
|||||||
riga.add(eff.get(EFF_DATASCAD));
|
riga.add(eff.get(EFF_DATASCAD));
|
||||||
long codcf = eff.get_long(EFF_CODCF);
|
long codcf = eff.get_long(EFF_CODCF);
|
||||||
clifo->zero();
|
clifo->zero();
|
||||||
clifo->put("TIPOCF", 'C');
|
clifo->put(CLI_TIPOCF, 'C');
|
||||||
clifo->put("CODCF", codcf);
|
clifo->put(CLI_CODCF, codcf);
|
||||||
if (clifo->read() == NOERR) riga.add(clifo->get("RAGSOC"));
|
if (clifo->read() == NOERR) riga.add(clifo->get(CLI_RAGSOC));
|
||||||
if (eff.fatt(numero)) //se l'effetto contiene solo una fattura metto i
|
if (eff.fatt(numero)) //se l'effetto contiene solo una fattura metto i
|
||||||
{ //riferimenti al documento ed al numero di rata
|
{ //riferimenti al documento ed al numero di rata
|
||||||
const TRectype& rec_r = eff.row_r(1);
|
const TRectype& rec_r = eff.row_r(1);
|
||||||
@ -841,7 +839,8 @@ void TVariazione_distinte::calcola()
|
|||||||
long importo = m->get_long(F_IMP);
|
long importo = m->get_long(F_IMP);
|
||||||
long impdist = importo - imp_pres;
|
long impdist = importo - imp_pres;
|
||||||
if (impdist == 0)
|
if (impdist == 0)
|
||||||
m2->set(F_TOTIMPDIST, importo);
|
m2->set(F_TOTIMPDIST, importo);
|
||||||
|
m2->set(F_IMPSEL, impsel);
|
||||||
for (int i = 0; i < items; i++)
|
for (int i = 0; i < items; i++)
|
||||||
{
|
{
|
||||||
TToken_string& row = sf.row(i);
|
TToken_string& row = sf.row(i);
|
||||||
@ -854,7 +853,7 @@ void TVariazione_distinte::calcola()
|
|||||||
m2->set(F_IMPSEL, impsel);
|
m2->set(F_IMPSEL, impsel);
|
||||||
if (impdist == 0 && imp_pres == 0)
|
if (impdist == 0 && imp_pres == 0)
|
||||||
m2->set(F_TOTIMPDIST, impsel);
|
m2->set(F_TOTIMPDIST, impsel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,11 +110,13 @@ END
|
|||||||
NUMBER F_TOTIMP 18 2
|
NUMBER F_TOTIMP 18 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Valore di presentazione "
|
PROMPT 2 6 "Valore di presentazione "
|
||||||
|
PICTURE "###.###.###.###,@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_IMP 18 2
|
NUMBER F_IMP 18 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Importo Distinta "
|
PROMPT 2 7 "Importo Distinta "
|
||||||
|
PICTURE "###.###.###.###,@@"
|
||||||
NUM_EXPR #F_IMP>=#F_TOTIMP
|
NUM_EXPR #F_IMP>=#F_TOTIMP
|
||||||
WARNING "Il valore di presentazione non puo' superare l'importo della distinta"
|
WARNING "Il valore di presentazione non puo' superare l'importo della distinta"
|
||||||
END
|
END
|
||||||
@ -122,6 +124,7 @@ END
|
|||||||
NUMBER F_TOTIMPVAL 18 3
|
NUMBER F_TOTIMPVAL 18 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Valore di pres. in val. "
|
PROMPT 2 8 "Valore di pres. in val. "
|
||||||
|
PICTURE "###.###.###.###,@@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODVAL 3
|
STRING F_CODVAL 3
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "ef0300.h"
|
#include "ef0300.h"
|
||||||
|
|
||||||
PAGE "Righe Distinta" -1 -1 76 13
|
PAGE "Righe Distinta" 16 7 78 13
|
||||||
|
|
||||||
LISTBOX F_CHECK 5
|
LISTBOX F_CHECK 5
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -61,6 +61,7 @@ NUMBER F_IMPORTO 18 2
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Importo "
|
PROMPT 2 9 "Importo "
|
||||||
FIELD LF_EFFETTI->IMPORTO
|
FIELD LF_EFFETTI->IMPORTO
|
||||||
|
PICTURE "###.###.###.###,@@"
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -68,6 +69,7 @@ NUMBER F_IMPORTOVAL 18 3
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Importo Val. "
|
PROMPT 2 9 "Importo Val. "
|
||||||
FIELD LF_EFFETTI->IMPORTOVAL
|
FIELD LF_EFFETTI->IMPORTOVAL
|
||||||
|
PICTURE "###.###.###.###,@@@"
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "ef0300.h"
|
#include "ef0300.h"
|
||||||
|
|
||||||
PAGE "Aggiungi Effetti alla Distinta" -1 -1 78 20
|
PAGE "Aggiungi Effetti alla Distinta" 16 2 78 20
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 60 3
|
GROUPBOX DLG_NULL 60 3
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -43,11 +43,13 @@ END
|
|||||||
NUMBER F_TOTIMPDIST 18 2
|
NUMBER F_TOTIMPDIST 18 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 18 "Importo "
|
PROMPT 2 18 "Importo "
|
||||||
|
PICTURE "###.###.###.###,@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_IMPSEL 18 2
|
NUMBER F_IMPSEL 18 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 37 18 "Importo Selezionato "
|
PROMPT 37 18 "Importo Selezionato "
|
||||||
|
PICTURE "###.###.###.###,@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 9 2
|
BUTTON DLG_OK 9 2
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
#include "effetti.h"
|
|
||||||
#include "reffetti.h"
|
|
||||||
#include "cession.h"
|
|
||||||
#include "ef0301.h"
|
#include "ef0301.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////
|
||||||
// definizione dei metodi della classe TDistinta //
|
// Definizione dei metodi della classe TDistinta //
|
||||||
///////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// costruttore distinta utilizzando il record passato
|
// costruttore distinta utilizzando il record passato
|
||||||
TDistinta::TDistinta(const TRectype& rec)
|
TDistinta::TDistinta(const TRectype& rec)
|
||||||
@ -56,12 +53,12 @@ int TDistinta::write(bool force, TToken_string* dati_dist)
|
|||||||
{
|
{
|
||||||
TEffetto& effetto = (TEffetto&)_righe_dist[i];
|
TEffetto& effetto = (TEffetto&)_righe_dist[i];
|
||||||
dati_dist->restart();// token string che contiene i dati da registrare sull'effetto
|
dati_dist->restart();// token string che contiene i dati da registrare sull'effetto
|
||||||
effetto.put("TIPODIST", dati_dist->get());
|
effetto.put(EFF_TIPODIST, dati_dist->get());
|
||||||
effetto.put("NDIST", dati_dist->get_long());
|
effetto.put(EFF_NDIST, dati_dist->get_long());
|
||||||
effetto.put("DATADIST", dati_dist->get());
|
effetto.put(EFF_DATADIST, dati_dist->get());
|
||||||
effetto.put("CODABIP", dati_dist->get_long());
|
effetto.put(EFF_CODABIP, dati_dist->get_long());
|
||||||
effetto.put("CODCABP", dati_dist->get_long());
|
effetto.put(EFF_CODCABP, dati_dist->get_long());
|
||||||
effetto.put("NRIGADIST", i+1);
|
effetto.put(EFF_NRIGADIST, i+1);
|
||||||
err = effetto.rewrite(f);//riscrivo l'effetto con i dati della distinta a cui appartiene
|
err = effetto.rewrite(f);//riscrivo l'effetto con i dati della distinta a cui appartiene
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
@ -79,12 +76,12 @@ int TDistinta::remove(char tipodist, long ndist)
|
|||||||
{
|
{
|
||||||
TEffetto& effetto = (TEffetto&)_righe_dist[i];
|
TEffetto& effetto = (TEffetto&)_righe_dist[i];
|
||||||
err = effetto.read(file, tipodist,ndist,i+1);
|
err = effetto.read(file, tipodist,ndist,i+1);
|
||||||
effetto.zero("TIPODIST");
|
effetto.zero(EFF_TIPODIST);
|
||||||
effetto.zero("NDIST");
|
effetto.zero(EFF_NDIST);
|
||||||
effetto.zero("DATADIST");
|
effetto.zero(EFF_DATADIST);
|
||||||
effetto.zero("NRIGADIST");
|
effetto.zero(EFF_NRIGADIST);
|
||||||
effetto.zero("CODABIP");
|
effetto.zero(EFF_CODABIP);
|
||||||
effetto.zero("CODCABP");
|
effetto.zero(EFF_CODCABP);
|
||||||
err = effetto.rewrite(file);
|
err = effetto.rewrite(file);
|
||||||
}
|
}
|
||||||
reset();//elimino gli effetti dalla memoria resettando l'array
|
reset();//elimino gli effetti dalla memoria resettando l'array
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
#ifndef __RELATION_H
|
|
||||||
#include <relation.h>
|
|
||||||
#endif
|
|
||||||
#include "ef0101.h"
|
#include "ef0101.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
@ -28,9 +25,9 @@ public:
|
|||||||
// rimuove la distinta del tipo e numero passati
|
// rimuove la distinta del tipo e numero passati
|
||||||
int remove(char tipodist, long ndist);
|
int remove(char tipodist, long ndist);
|
||||||
// restituisce il tipo di distinta
|
// restituisce il tipo di distinta
|
||||||
const char tipodist() const { return ((TRectype&)_righe_dist[0]).get_char("TIPODIST"); }
|
const char tipodist() const { return ((TRectype&)_righe_dist[0]).get_char(EFF_TIPODIST); }
|
||||||
// restituisce il numero di distinta
|
// restituisce il numero di distinta
|
||||||
const long ndist() const { return ((TRectype&)_righe_dist[0]).get_long("NDIST"); }
|
const long ndist() const { return ((TRectype&)_righe_dist[0]).get_long(EFF_NDIST); }
|
||||||
// costruttore di default
|
// costruttore di default
|
||||||
TDistinta() {};
|
TDistinta() {};
|
||||||
// costruttore distinta del tipo e numero passato
|
// costruttore distinta del tipo e numero passato
|
||||||
|
@ -4,9 +4,6 @@
|
|||||||
#include <sheet.h>
|
#include <sheet.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include <lffiles.h>
|
#include <lffiles.h>
|
||||||
#include <effetti.h>
|
|
||||||
#include <reffetti.h>
|
|
||||||
#include <cession.h>
|
|
||||||
#include "ef0.h"
|
#include "ef0.h"
|
||||||
#include "ef0101.h"
|
#include "ef0101.h"
|
||||||
#include "ef0400.h"
|
#include "ef0400.h"
|
||||||
@ -93,7 +90,7 @@ bool TEliminazione_effetti::from_numero_handler(TMask_field& f, KEY k)
|
|||||||
{
|
{
|
||||||
TRectype* from = app()._from;
|
TRectype* from = app()._from;
|
||||||
long num = m.get_long(F_DA_RIBA);
|
long num = m.get_long(F_DA_RIBA);
|
||||||
from->put("NPROGTR", num);
|
from->put(EFF_NPROGTR, num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -109,7 +106,7 @@ bool TEliminazione_effetti::to_numero_handler(TMask_field& f, KEY k)
|
|||||||
{
|
{
|
||||||
TRectype* to = app()._to;
|
TRectype* to = app()._to;
|
||||||
long num = m.get_long(F_A_RIBA);
|
long num = m.get_long(F_A_RIBA);
|
||||||
to->put("NPROGTR", num);
|
to->put(EFF_NPROGTR, num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -126,8 +123,8 @@ bool TEliminazione_effetti::from_data_handler(TMask_field& f, KEY k)
|
|||||||
TRectype* from = app()._from;
|
TRectype* from = app()._from;
|
||||||
TDate data = m.get(F_DA_DATA);
|
TDate data = m.get(F_DA_DATA);
|
||||||
long num = m.get_long(F_DA_RIBA);
|
long num = m.get_long(F_DA_RIBA);
|
||||||
from->put("NPROGTR", num);
|
from->put(EFF_NPROGTR, num);
|
||||||
from->put("DATASCAD", data);
|
from->put(EFF_DATASCAD, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -144,8 +141,8 @@ bool TEliminazione_effetti::to_data_handler(TMask_field& f, KEY k)
|
|||||||
TRectype* to = app()._to;
|
TRectype* to = app()._to;
|
||||||
TDate data = m.get(F_A_DATA);
|
TDate data = m.get(F_A_DATA);
|
||||||
long num = m.get_long(F_A_RIBA);
|
long num = m.get_long(F_A_RIBA);
|
||||||
to->put("NPROGTR", num);
|
to->put(EFF_NPROGTR, num);
|
||||||
to->put("DATASCAD", data);
|
to->put(EFF_DATASCAD, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
231
ef/ef0500.cpp
231
ef/ef0500.cpp
@ -16,24 +16,21 @@
|
|||||||
class TRiba_form;
|
class TRiba_form;
|
||||||
class TDistinta_form;
|
class TDistinta_form;
|
||||||
class TRiba_file;
|
class TRiba_file;
|
||||||
|
enum fo{kb360 = 1, kb720 = 2, kb1200 = 3, kb1440 = 4};
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Classe per l'emissione di effetti e distinte su carta o su floppy //
|
// Classe per l'emissione di effetti e distinte su carta o su floppy //
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
enum fo{kb360 = 1, kb720 = 2, kb1200 = 3, kb1440 = 4};
|
|
||||||
|
|
||||||
class TEmissione: public TApplication
|
class TEmissione: public TApplication
|
||||||
{
|
{
|
||||||
fo _foutput;
|
fo _foutput;
|
||||||
TMask* _msk;
|
TMask* _msk;
|
||||||
TRelation* _firmrel; // relazione di gestione dei dati della ditta corrente
|
TRelation* _firmrel;
|
||||||
TRelation* _rel;
|
TRelation* _rel;
|
||||||
TCursor* _cur;
|
TCursor* _cur;
|
||||||
TRiba_form* _formrb;
|
TRiba_form* _formrb;
|
||||||
TDistinta_form* _formdse;
|
TDistinta_form* _formdse;
|
||||||
TRiba_file* _trasfile;
|
TRiba_file* _trasfile;
|
||||||
int _base_page_no; // numero della pagina base per la stampa del numero di pagina
|
int _base_page_no;
|
||||||
protected:
|
protected:
|
||||||
virtual bool create(void);
|
virtual bool create(void);
|
||||||
virtual bool destroy(void) ;
|
virtual bool destroy(void) ;
|
||||||
@ -56,6 +53,7 @@ protected:
|
|||||||
static bool annulla_handler(TMask_field& f, KEY k);
|
static bool annulla_handler(TMask_field& f, KEY k);
|
||||||
public:
|
public:
|
||||||
int base_no() { return _base_page_no;}
|
int base_no() { return _base_page_no;}
|
||||||
|
const TMask& msk() const {return *_msk;}
|
||||||
TEmissione() {};
|
TEmissione() {};
|
||||||
virtual ~TEmissione() {};
|
virtual ~TEmissione() {};
|
||||||
};
|
};
|
||||||
@ -78,16 +76,15 @@ public:
|
|||||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Classe TDistinta_form customizzata dalla Form per le Distinte //
|
// Classe TDistinta_form customizzata dalla Form per le Distinte //
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
class TDistinta_form: public TForm
|
class TDistinta_form: public TForm
|
||||||
{
|
{
|
||||||
TRelation *_firmrel; // relazione di gestione dei dati della ditta corrente
|
TRelation *_firmrel;
|
||||||
TSorted_cursor *_cursor; // curosore che permette l'ordinamento degli effetti nella distinta
|
TSorted_cursor *_cursor;// curosore che permette l'ordinamento degli effetti nella distinta
|
||||||
protected: // per data scadenza o per dati fattura
|
protected: // per data scadenza o per dati fattura
|
||||||
virtual bool validate(TForm_item &, TToken_string &);
|
virtual bool validate(TForm_item &, TToken_string &);
|
||||||
public:
|
public:
|
||||||
void set_order(const char tipo); // setta l'ordinamento del cursore
|
void set_order(const char tipo);
|
||||||
virtual TCursor* cursor() const { return (TCursor*)_cursor;} // restituisce il cursore
|
virtual TCursor* cursor() const { return (TCursor*)_cursor;}
|
||||||
TDistinta_form(const char*, TRelation *);
|
TDistinta_form(const char*, TRelation *);
|
||||||
virtual ~TDistinta_form();
|
virtual ~TDistinta_form();
|
||||||
};
|
};
|
||||||
@ -115,12 +112,12 @@ public:
|
|||||||
bool TEmissione::create()
|
bool TEmissione::create()
|
||||||
{
|
{
|
||||||
TApplication::create();
|
TApplication::create();
|
||||||
_formrb = NULL; // l'inizializzazione avviene nel metodo print()
|
_formrb = NULL;
|
||||||
_formdse = NULL; // a seconda che si stampino le riba o la distinta
|
_formdse = NULL;
|
||||||
_msk = new TMask("ef0500a");
|
_msk = new TMask("ef0500a");
|
||||||
_firmrel= new TRelation(LF_NDITTE);
|
_firmrel= new TRelation(LF_NDITTE);
|
||||||
_firmrel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR");
|
_firmrel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR");
|
||||||
_firmrel->add(LF_UNLOC,"CODDITTA=CODDITTA"); // si posiziona sulla prima unita' locale della ditta
|
_firmrel->add(LF_UNLOC,"CODDITTA=CODDITTA");
|
||||||
_rel = new TRelation(LF_EFFETTI);
|
_rel = new TRelation(LF_EFFETTI);
|
||||||
_rel->add(LF_REFFETTI, "NPROGTR=NPROGTR");
|
_rel->add(LF_REFFETTI, "NPROGTR=NPROGTR");
|
||||||
_rel->add(LF_CESS, "NPROGTR=NPROGTR");
|
_rel->add(LF_CESS, "NPROGTR=NPROGTR");
|
||||||
@ -129,7 +126,7 @@ bool TEmissione::create()
|
|||||||
_rel->add("%BAN", "CODTAB=CODABI+CODCAB", 1, 0, 402);
|
_rel->add("%BAN", "CODTAB=CODABI+CODCAB", 1, 0, 402);
|
||||||
_rel->add(LF_COMUNI, "STATO=STATOCF|COM=COMCF",1,LF_CLIFO);
|
_rel->add(LF_COMUNI, "STATO=STATOCF|COM=COMCF",1,LF_CLIFO);
|
||||||
_cur = NULL;
|
_cur = NULL;
|
||||||
_trasfile = new TRiba_file("riba_el", "riba.ini");
|
_trasfile = new TRiba_file("ribael.dat", "riba.ini");
|
||||||
_trasfile->set_ditta(get_firm());
|
_trasfile->set_ditta(get_firm());
|
||||||
_msk->set_handler(DLG_CANCEL, annulla_handler);
|
_msk->set_handler(DLG_CANCEL, annulla_handler);
|
||||||
dispatch_e_menu(BAR_ITEM(1));
|
dispatch_e_menu(BAR_ITEM(1));
|
||||||
@ -165,10 +162,10 @@ void TEmissione::on_firm_change()
|
|||||||
bool TEmissione::menu(MENU_TAG)
|
bool TEmissione::menu(MENU_TAG)
|
||||||
{
|
{
|
||||||
KEY key = K_ENTER;
|
KEY key = K_ENTER;
|
||||||
while (key != K_QUIT) // rimane in esecuzione finchè non si chiude la maschera
|
while (key != K_QUIT)
|
||||||
{
|
{
|
||||||
key = _msk->run();
|
key = _msk->run();
|
||||||
if (key == K_ENTER) // se si confermano i dati inseriti
|
if (key == K_ENTER)
|
||||||
conferma();
|
conferma();
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -178,10 +175,10 @@ bool TEmissione::menu(MENU_TAG)
|
|||||||
void TEmissione::conferma()
|
void TEmissione::conferma()
|
||||||
{
|
{
|
||||||
int tipoemis = _msk->get_int(F_TIPOEMIS);
|
int tipoemis = _msk->get_int(F_TIPOEMIS);
|
||||||
if (tipoemis == 1) // emissione su floppy
|
if (tipoemis == 1)
|
||||||
floppy();
|
floppy();
|
||||||
else
|
else
|
||||||
print(); // emissione su carta
|
print();
|
||||||
}
|
}
|
||||||
|
|
||||||
// gestione emissione su floppy
|
// gestione emissione su floppy
|
||||||
@ -190,43 +187,47 @@ void TEmissione::floppy()
|
|||||||
inizializza_cur();
|
inizializza_cur();
|
||||||
inizializza_file();
|
inizializza_file();
|
||||||
long n_eff = _cur->items();
|
long n_eff = _cur->items();
|
||||||
bool condition = !ok_write();
|
bool condition = ok_write();
|
||||||
if (condition)
|
if (!condition)
|
||||||
error_box("Impossibile continuare discetto pieno");
|
error_box("Impossibile continuare discetto pieno");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TProgind* pi;
|
TProgind* pi;
|
||||||
pi = new TProgind(n_eff,"Emissione Ri.Ba. su floppy...",FALSE,TRUE,10);
|
pi = new TProgind(n_eff,"Emissione Ri.Ba. su floppy...",FALSE,TRUE,10);
|
||||||
TAssoc_array& tracciati = _trasfile->tracciati();
|
TAssoc_array& tracciati = _trasfile->tracciati();
|
||||||
header_rb();
|
header_rb();//intestazione flusso effetti
|
||||||
for (*_cur = 0; _cur->pos() < n_eff; ++(*_cur))
|
for (*_cur = 0; _cur->pos() < n_eff; ++(*_cur))//scandisco tutti gli effetti della distinta selezionata
|
||||||
{
|
{
|
||||||
pi->addstatus(1L);
|
pi->addstatus(1L);
|
||||||
save_data_emis();
|
save_data_emis();
|
||||||
THash_object* lavoro = tracciati.get_hashobj();
|
THash_object* lavoro = tracciati.get_hashobj();
|
||||||
for (int i = 0; lavoro != NULL; i++)
|
for (int i = 0; lavoro != NULL; i++)//scandisco tutti i record di un effetto
|
||||||
{
|
{
|
||||||
record(*lavoro);
|
record(*lavoro);//emetto il record
|
||||||
lavoro = tracciati.get_hashobj();
|
lavoro = tracciati.get_hashobj();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
footer_ef();
|
footer_ef(); //chiusura flusso effetti
|
||||||
delete pi;
|
delete pi;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// registro la data ed il numero di emissione dell'effetto corrente
|
||||||
void TEmissione::save_data_emis()
|
void TEmissione::save_data_emis()
|
||||||
{
|
{
|
||||||
const TDate data_emis = _msk->get_date(F_DATAEMIS);
|
const TDate data_emis = _msk->get_date(F_DATAEMIS);
|
||||||
TLocalisamfile& effetti = _cur->file();
|
TLocalisamfile& effetti = _rel->lfile();
|
||||||
TEffetto effetto = effetti.curr();
|
TEffetto effetto = effetti.curr();
|
||||||
long numero = effetto.numero();
|
long numero = effetto.numero();
|
||||||
effetto.put("NUMEMISS", numero);
|
effetto.put(EFF_NUMEMISS, numero);
|
||||||
effetto.put("DATAEMISS", data_emis);
|
effetto.put(EFF_DATAEMISS, data_emis);
|
||||||
effetti.rewrite();
|
effetto.put(EFF_DATARIBA, data_emis);
|
||||||
_cur->relation()->rewrite();
|
bool cond = TRUE;
|
||||||
|
effetto.put(EFF_DISRIBAEST, cond);
|
||||||
|
effetto.rewrite(effetti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//emetto il record d'intestazione del flusso di effetti
|
||||||
void TEmissione::header_rb()
|
void TEmissione::header_rb()
|
||||||
{
|
{
|
||||||
TRecord_text rec;
|
TRecord_text rec;
|
||||||
@ -236,6 +237,7 @@ void TEmissione::header_rb()
|
|||||||
_trasfile->write(rec);
|
_trasfile->write(rec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//emetto il record di chiusura del flusso di effetti
|
||||||
void TEmissione::footer_ef()
|
void TEmissione::footer_ef()
|
||||||
{
|
{
|
||||||
TRecord_text rec;
|
TRecord_text rec;
|
||||||
@ -246,6 +248,7 @@ void TEmissione::footer_ef()
|
|||||||
_trasfile->write_file()->seekp(0, ios::end);
|
_trasfile->write_file()->seekp(0, ios::end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//inizializza il cursore per la gestione dei dati da caricare negli effetti
|
||||||
void TEmissione::inizializza_cur()
|
void TEmissione::inizializza_cur()
|
||||||
{
|
{
|
||||||
const int ndist = _msk->get_int(F_NUMBER);
|
const int ndist = _msk->get_int(F_NUMBER);
|
||||||
@ -253,23 +256,25 @@ void TEmissione::inizializza_cur()
|
|||||||
TRectype from(_rel->lfile().curr()),
|
TRectype from(_rel->lfile().curr()),
|
||||||
to(_rel->lfile().curr());
|
to(_rel->lfile().curr());
|
||||||
from.zero();
|
from.zero();
|
||||||
from.put("TIPODIST", tipodist);
|
from.put(EFF_TIPODIST, tipodist);
|
||||||
from.put("NDIST", ndist);
|
from.put(EFF_NDIST, ndist);
|
||||||
to = from;
|
to = from;
|
||||||
_cur = new TCursor(_rel,"",4,&from,&to);
|
_cur = new TCursor(_rel,"",4,&from,&to);
|
||||||
_cur->freeze();
|
_cur->freeze();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//inizializza il file di testo su cui emettere gli effetti
|
||||||
void TEmissione::inizializza_file()
|
void TEmissione::inizializza_file()
|
||||||
{
|
{
|
||||||
TString unita = _msk->get(F_UNITA);
|
TString unita = _msk->get(F_UNITA);
|
||||||
unita << ":\\ribael.dat";
|
unita << ":\\" << _trasfile->name();
|
||||||
TFilename file(unita);
|
TFilename file(unita);
|
||||||
_trasfile->open(file,'w');
|
_trasfile->open(file,'w');
|
||||||
_trasfile->set_tot_importi(0.0);
|
_trasfile->set_tot_importi(0.0);
|
||||||
_foutput = (fo)_msk->get_int(F_FOR_OUT);
|
_foutput = (fo)_msk->get_int(F_FOR_OUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//emetto un record del flusso di effetti
|
||||||
void TEmissione::record(THash_object& lavoro)
|
void TEmissione::record(THash_object& lavoro)
|
||||||
{
|
{
|
||||||
TString chiave = lavoro.key();
|
TString chiave = lavoro.key();
|
||||||
@ -278,11 +283,13 @@ void TEmissione::record(THash_object& lavoro)
|
|||||||
TTracciato_record& oggetto = (TTracciato_record&)lavoro.obj();
|
TTracciato_record& oggetto = (TTracciato_record&)lavoro.obj();
|
||||||
const TString& tipo = oggetto.type();
|
const TString& tipo = oggetto.type();
|
||||||
TRecord_text rec(tipo);
|
TRecord_text rec(tipo);
|
||||||
_trasfile->autoload(rec, *_cur, &tipo);
|
_trasfile->autoload(rec, *_cur, &tipo);//carico il record da emettere
|
||||||
_trasfile->write(rec);
|
_trasfile->write(rec);//emetto i dati su file
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//controllo che ci sia spazio a sufficenza per emettere il flusso sull'unità scelta dall'utente,
|
||||||
|
//ritorna TRUE se è possibile farlo
|
||||||
bool TEmissione::ok_write()
|
bool TEmissione::ok_write()
|
||||||
{
|
{
|
||||||
long elem = _cur->items();
|
long elem = _cur->items();
|
||||||
@ -300,7 +307,8 @@ bool TEmissione::ok_write()
|
|||||||
drive = 2;
|
drive = 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
_dos_getdiskfree(drive, &diskspace);
|
|
||||||
|
_dos_getdiskfree(drive, &diskspace);// routine uses system call 0x36 to obtain information on the disk drive specified by drive
|
||||||
unsigned long available_clusters = (unsigned long) diskspace.avail_clusters;
|
unsigned long available_clusters = (unsigned long) diskspace.avail_clusters;
|
||||||
unsigned long sectors_per_cluster = (unsigned long) diskspace.sectors_per_cluster;
|
unsigned long sectors_per_cluster = (unsigned long) diskspace.sectors_per_cluster;
|
||||||
unsigned long bytes_per_sector = (unsigned long) diskspace.bytes_per_sector;
|
unsigned long bytes_per_sector = (unsigned long) diskspace.bytes_per_sector;
|
||||||
@ -323,7 +331,7 @@ bool TEmissione::ok_write()
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// aggiorna, su file, numero e data di emissione ed il flag di stampa
|
// aggiorna numero e data di emissione ed il flag di stampa
|
||||||
// su tutti gli effetti nel cursore
|
// su tutti gli effetti nel cursore
|
||||||
void TEmissione::aggiorna_rb(TCursor* cur)
|
void TEmissione::aggiorna_rb(TCursor* cur)
|
||||||
{
|
{
|
||||||
@ -332,16 +340,16 @@ void TEmissione::aggiorna_rb(TCursor* cur)
|
|||||||
{
|
{
|
||||||
TEffetto effetto = eff.curr();
|
TEffetto effetto = eff.curr();
|
||||||
long numero = effetto.numero();
|
long numero = effetto.numero();
|
||||||
effetto.put("NUMEMISS", numero);
|
effetto.put(EFF_NUMEMISS, numero);
|
||||||
TDate data = _msk->get_date(F_DATAEMIS);
|
TDate data = _msk->get_date(F_DATAEMIS);
|
||||||
effetto.put("DATAEMISS", data);
|
effetto.put(EFF_DATAEMISS, data);
|
||||||
bool cond = TRUE;
|
bool cond = TRUE;
|
||||||
effetto.put("EFFSTAMP", cond);
|
effetto.put(EFF_EFFSTAMP, cond);
|
||||||
effetto.rewrite(eff);
|
effetto.rewrite(eff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// aggiorna, su file, il flag di stampa della distinta
|
// aggiorna il flag di stampa della distinta
|
||||||
// su tutti gli effetti nel cursore
|
// su tutti gli effetti nel cursore
|
||||||
void TEmissione::aggiorna_dist(TCursor* cur)
|
void TEmissione::aggiorna_dist(TCursor* cur)
|
||||||
{
|
{
|
||||||
@ -350,37 +358,37 @@ void TEmissione::aggiorna_dist(TCursor* cur)
|
|||||||
{
|
{
|
||||||
TEffetto effetto = eff.curr();
|
TEffetto effetto = eff.curr();
|
||||||
bool cond = TRUE;
|
bool cond = TRUE;
|
||||||
effetto.put("DISTSTAM", cond);
|
effetto.put(EFF_DISTSTAM, cond);
|
||||||
effetto.rewrite(eff);
|
effetto.rewrite(eff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// gestione emissione su carta delle riba
|
// gestione emissione su moduli cartacei delle riba
|
||||||
void TEmissione::print_rb(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis)
|
void TEmissione::print_rb(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis)
|
||||||
{
|
{
|
||||||
TCursor* fcur = _formrb->cursor();
|
TCursor* fcur = _formrb->cursor();
|
||||||
TLocalisamfile &eff = fcur->file(LF_EFFETTI);
|
TLocalisamfile &eff = fcur->file(LF_EFFETTI);
|
||||||
TString16 filter;
|
TString16 filter;
|
||||||
if (tipost == 'D') // se stampa definitiva effetti
|
if (tipost == 'D')// se stampa definitiva effetti
|
||||||
if (!_msk->get_bool(F_RIST)) // se non deve ristampare le riba
|
if (!_msk->get_bool(F_RIST))// se non deve ristampare le riba
|
||||||
filter = "EFFSTAMP=\" \""; // setta il filtro del cursore per ...
|
filter = "EFFSTAMP=\" \"";// setta il filtro del cursore per ...
|
||||||
fcur->setfilter(filter,TRUE); // ... stampare solo gli effetti non ancora stampati
|
fcur->setfilter(filter,TRUE); // ... stampare solo gli effetti non ancora stampati
|
||||||
// setta la chiave 4 per il cursore per poter leggere tutti gli effetti della distinta
|
// setta la chiave 4 per il cursore per poter leggere tutti gli effetti della distinta
|
||||||
fcur->setkey(4);
|
fcur->setkey(4);
|
||||||
TRectype darec(eff.curr()); // fissa i dati per la scelta degli ...
|
TRectype darec(eff.curr());// fissa i dati per la scelta degli ...
|
||||||
darec.zero(); // ... effetti nel primo e nell'ultimo record del cursore
|
darec.zero(); // ... effetti nel primo e nell'ultimo record del cursore
|
||||||
darec.put("NDIST", ndist);
|
darec.put(EFF_NDIST, ndist);
|
||||||
darec.put("TIPODIST", tipodist);
|
darec.put(EFF_TIPODIST, tipodist);
|
||||||
TRectype arec(darec);
|
TRectype arec(darec);
|
||||||
fcur->setregion(darec, arec);
|
fcur->setregion(darec, arec);
|
||||||
long n = fcur->items();
|
long n = fcur->items();
|
||||||
fcur->freeze(); // congela lo stato del cursore
|
fcur->freeze();
|
||||||
// se la stampa non si fa a video istanzia puntatore per la gestione della barra di attesa
|
// se la stampa non si fa a video istanzia puntatore per la gestione della barra di attesa
|
||||||
for (int j=0; j < ncopie; j++)
|
for (int j=0; j < ncopie; j++)
|
||||||
{
|
{
|
||||||
TProgind* pi;
|
TProgind* pi;
|
||||||
if (!is_vis)
|
if (!is_vis)
|
||||||
pi = new TProgind(n,"Stampa Effetti/Distinte...",FALSE,TRUE,10);
|
pi = new TProgind(n,"Stampa Effetti...",FALSE,TRUE,10);
|
||||||
for (*fcur = 0; fcur->pos() < n; ++(*fcur)) // ciclo sugli elementi del cursore di stampa
|
for (*fcur = 0; fcur->pos() < n; ++(*fcur)) // ciclo sugli elementi del cursore di stampa
|
||||||
{
|
{
|
||||||
if (!is_vis)
|
if (!is_vis)
|
||||||
@ -392,7 +400,7 @@ void TEmissione::print_rb(char tipost, int ndist, char tipodist, int ncopie, con
|
|||||||
aggiorna_rb(fcur); // ... devo aggiornare data, numero emissione e flag di stampa effetto
|
aggiorna_rb(fcur); // ... devo aggiornare data, numero emissione e flag di stampa effetto
|
||||||
}
|
}
|
||||||
|
|
||||||
// gestione emissione su carta delle distinte
|
// gestione emissione su moduli cartacei delle distinte
|
||||||
void TEmissione::print_dse(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis)
|
void TEmissione::print_dse(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis)
|
||||||
{
|
{
|
||||||
TCursor* fcur = _formdse->cursor();
|
TCursor* fcur = _formdse->cursor();
|
||||||
@ -401,20 +409,20 @@ void TEmissione::print_dse(char tipost, int ndist, char tipodist, int ncopie, co
|
|||||||
TString16 filter;
|
TString16 filter;
|
||||||
fcur->setfilter(filter,TRUE);
|
fcur->setfilter(filter,TRUE);
|
||||||
fcur->setkey(4);
|
fcur->setkey(4);
|
||||||
TRectype darec(eff.curr()); // fissa i dati per la scelta degli ...
|
TRectype darec(eff.curr()); // fissa i dati per la scelta degli ...
|
||||||
darec.zero(); // ... effetti nel primo e nell'ultimo record del cursore
|
darec.zero(); // ... effetti nel primo e nell'ultimo record del cursore
|
||||||
darec.put("NDIST", ndist);
|
darec.put(EFF_NDIST, ndist);
|
||||||
darec.put("TIPODIST", tipodist);
|
darec.put(EFF_TIPODIST, tipodist);
|
||||||
TRectype arec(darec);
|
TRectype arec(darec);
|
||||||
fcur->setregion(darec, arec);
|
fcur->setregion(darec, arec);
|
||||||
long n = fcur->items();
|
long n = fcur->items();
|
||||||
fcur->freeze(); // congela lo stato del cursore
|
fcur->freeze();
|
||||||
// se la stampa non si fa a video istanzia puntatore per la gestione della barra di attesa
|
// se la stampa non si fa a video istanzia puntatore per la gestione della barra di attesa
|
||||||
for (int j=0; j < ncopie; j++)
|
for (int j=0; j < ncopie; j++)
|
||||||
{
|
{
|
||||||
TProgind* pi;
|
TProgind* pi;
|
||||||
if (!is_vis)
|
if (!is_vis)
|
||||||
pi = new TProgind(n,"Stampa Effetti/Distinte...",FALSE,TRUE,10);
|
pi = new TProgind(n,"Stampa Distinta...",FALSE,TRUE,10);
|
||||||
_base_page_no = 0;
|
_base_page_no = 0;
|
||||||
if (!is_vis)
|
if (!is_vis)
|
||||||
pi->addstatus(1L); // aggiorna la barra d'attesa
|
pi->addstatus(1L); // aggiorna la barra d'attesa
|
||||||
@ -425,7 +433,7 @@ void TEmissione::print_dse(char tipost, int ndist, char tipodist, int ncopie, co
|
|||||||
aggiorna_dist(fcur); // ... devo aggiornare flag di stampa distinta
|
aggiorna_dist(fcur); // ... devo aggiornare flag di stampa distinta
|
||||||
}
|
}
|
||||||
|
|
||||||
// gestione emissione su carta
|
// gestione emissione effetti/distinte su moduli cartacei
|
||||||
void TEmissione::print()
|
void TEmissione::print()
|
||||||
{
|
{
|
||||||
int ncopie = _msk->get_int(F_NCOPIE);
|
int ncopie = _msk->get_int(F_NCOPIE);
|
||||||
@ -435,26 +443,26 @@ void TEmissione::print()
|
|||||||
int emis = _msk->get_int(F_EMIS);
|
int emis = _msk->get_int(F_EMIS);
|
||||||
int ndist = _msk->get_int(F_NUMBER);
|
int ndist = _msk->get_int(F_NUMBER);
|
||||||
char tipodist = _msk->get(F_TIPODIST)[0];
|
char tipodist = _msk->get(F_TIPODIST)[0];
|
||||||
_rel->lfile().put("TIPODIST",tipodist);
|
_rel->lfile().put(EFF_TIPODIST,tipodist);
|
||||||
_rel->lfile().put("NDIST",ndist);
|
_rel->lfile().put(EFF_NDIST,ndist);
|
||||||
_rel->lfile().put("NRIGADIST",1);
|
_rel->lfile().put(EFF_NRIGADIST,1);
|
||||||
_rel->lfile().setkey(4);
|
_rel->lfile().setkey(4);
|
||||||
_rel->read();
|
_rel->read();
|
||||||
long codabi = _rel->lfile().get_long("CODABIP");
|
long codabi = _rel->lfile().get_long(EFF_CODABIP);
|
||||||
char tipost = _msk->get(F_TIPOST)[0];
|
char tipost = _msk->get(F_TIPOST)[0];
|
||||||
char tipord = _msk->get(F_TIPORD)[0];
|
char tipord = _msk->get(F_TIPORD)[0];
|
||||||
// se emetto riba istanzio il form per le riba
|
// se emetto riba istanzio il form per le riba
|
||||||
// se emetto distinta istanzio il form per le distinte
|
// se emetto distinta istanzio il form per le distinte
|
||||||
if (emis == 1) // emetto riba
|
if (emis == 1)
|
||||||
{
|
{
|
||||||
TString16 nomeform;
|
TString16 nomeform;
|
||||||
nomeform.format("rb%05ld.frm",codabi);// compongo il nome del form
|
nomeform.format("rb%05ld.frm",codabi);// compongo il nome del form
|
||||||
if (!fexist(nomeform)) // ne controllo l'esistenza
|
if (!fexist(nomeform)) // ne controllo l'esistenza
|
||||||
nomeform = "rb.frm"; // se non esiste utilizzo il form generico
|
nomeform = "rb.frm"; // se non esiste utilizzo il form generico
|
||||||
_formrb = new TRiba_form(nomeform);
|
_formrb = new TRiba_form(nomeform);
|
||||||
print_rb(tipost,ndist,tipodist,ncopie,is_vis);
|
print_rb(tipost,ndist,tipodist,ncopie,is_vis);
|
||||||
}
|
}
|
||||||
else // emetto distinta
|
else
|
||||||
{
|
{
|
||||||
TString16 nomeform;
|
TString16 nomeform;
|
||||||
nomeform.format("dse%05ld.frm",codabi);// compongo il nome del form
|
nomeform.format("dse%05ld.frm",codabi);// compongo il nome del form
|
||||||
@ -488,10 +496,12 @@ TRiba_form::TRiba_form(const char* name): TForm()
|
|||||||
// gestione dei messaggi estesi nei campi
|
// gestione dei messaggi estesi nei campi
|
||||||
bool TRiba_form::validate(TForm_item &cf, TToken_string &s)
|
bool TRiba_form::validate(TForm_item &cf, TToken_string &s)
|
||||||
{
|
{
|
||||||
const TString code(s.get(0)); // prende il primo parametro, il codice del messaggio
|
const TString code(s.get(0));
|
||||||
TString valore;
|
TString valore;
|
||||||
if (code == "_BANCAP")
|
if (code == "_BANCAP")
|
||||||
{
|
{
|
||||||
|
// gestione dei campi relativi alla banca di presentazione dell'effetto
|
||||||
|
// sintassi: _BANCAP
|
||||||
TCursor* cur = cursor();
|
TCursor* cur = cursor();
|
||||||
TRectype & ban = cur->curr(-204);
|
TRectype & ban = cur->curr(-204);
|
||||||
valore.cut(0);
|
valore.cut(0);
|
||||||
@ -574,10 +584,11 @@ void TDistinta_form::set_order(const char tipo)
|
|||||||
{
|
{
|
||||||
TString ordine;
|
TString ordine;
|
||||||
// ordinamento secondo la data di scadenza dell'effetto
|
// ordinamento secondo la data di scadenza dell'effetto
|
||||||
if (tipo == 'S') ordine = "DATASCAD|TIPODIST|NDIST|NRIGADIST";
|
if (tipo == 'S')
|
||||||
|
ordine = "DATASCAD|TIPODIST|NDIST|NRIGADIST";
|
||||||
// ordinamento seconda il numero e la data della fattura
|
// ordinamento seconda il numero e la data della fattura
|
||||||
else if (tipo == 'F') ordine = "14->NFATT|TIPODIST|NDIST|NRIGADIST";
|
if (tipo == 'F')
|
||||||
|
ordine = "14->NFATT|TIPODIST|NDIST|NRIGADIST";
|
||||||
_cursor = new TSorted_cursor(relation(),ordine);
|
_cursor = new TSorted_cursor(relation(),ordine);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -593,7 +604,9 @@ bool TDistinta_form::validate(TForm_item &cf, TToken_string &s)
|
|||||||
const TString code(s.get(0)); // prende il primo parametro, il codice del messaggio
|
const TString code(s.get(0)); // prende il primo parametro, il codice del messaggio
|
||||||
TString valore;
|
TString valore;
|
||||||
if (code == "_BANCAP")
|
if (code == "_BANCAP")
|
||||||
{
|
{
|
||||||
|
// gestione dei campi relativi alla banca di presentazione della distinta
|
||||||
|
// sintassi: _BANCAP
|
||||||
TCursor* cur = cursor();
|
TCursor* cur = cursor();
|
||||||
TRectype & ban = cur->curr(-204);
|
TRectype & ban = cur->curr(-204);
|
||||||
valore.cut(0);
|
valore.cut(0);
|
||||||
@ -714,7 +727,6 @@ bool TDistinta_form::validate(TForm_item &cf, TToken_string &s)
|
|||||||
return TForm::validate(cf, s);
|
return TForm::validate(cf, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// gestione dei messaggi estesi nei campi
|
// gestione dei messaggi estesi nei campi
|
||||||
void TRiba_file:: validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
void TRiba_file:: validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
||||||
{
|
{
|
||||||
@ -722,6 +734,9 @@ void TRiba_file:: validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TSt
|
|||||||
TString valore;
|
TString valore;
|
||||||
if (code == "_FISSO")
|
if (code == "_FISSO")
|
||||||
{
|
{
|
||||||
|
// gestione dei campi fissi per i record delle riba
|
||||||
|
// sintassi: _FISSO,!<valore>
|
||||||
|
// dove: <valore> è la stringa fissa da emettere
|
||||||
TString in(s.get());
|
TString in(s.get());
|
||||||
if (in[0]=='!')
|
if (in[0]=='!')
|
||||||
{
|
{
|
||||||
@ -729,9 +744,22 @@ void TRiba_file:: validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TSt
|
|||||||
in.trim();
|
in.trim();
|
||||||
valore = in;
|
valore = in;
|
||||||
}
|
}
|
||||||
}
|
}// fine _FISSO
|
||||||
|
if (code == "_DATA")
|
||||||
|
{
|
||||||
|
// gestione della data di emissione delle riba
|
||||||
|
// sintassi: _DATA
|
||||||
|
const TDate data_emis = app().msk().get_date(F_DATAEMIS);
|
||||||
|
valore = data_emis.string();
|
||||||
|
}// fine _DATA
|
||||||
if (code == "_NRIBA")
|
if (code == "_NRIBA")
|
||||||
{
|
{
|
||||||
|
// gestione dei campi relativi al flusso di effetti (riba)
|
||||||
|
// sintassi: _NRIBA,<macro>
|
||||||
|
// dove: <macro> è uno delle macro seguenti:
|
||||||
|
// "!NUM" numero progressivo riba all'interno del flusso
|
||||||
|
// "!TOT" numero di effetti nel flusso
|
||||||
|
// "!NREC" numero di records nel flusso
|
||||||
int items = (int)cur.items();
|
int items = (int)cur.items();
|
||||||
TString in(s.get());
|
TString in(s.get());
|
||||||
if (in[0]=='!')
|
if (in[0]=='!')
|
||||||
@ -754,9 +782,19 @@ void TRiba_file:: validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TSt
|
|||||||
valore << rec;
|
valore << rec;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}// fine _NRIBA
|
||||||
if (code == "_DITTA")
|
if (code == "_DITTA")
|
||||||
{
|
{
|
||||||
|
// gestione di campi della ditta corrente
|
||||||
|
// sintassi: _DITTA,<macro>,<opzione>
|
||||||
|
// dove: <macro> è uno delle macro seguenti:
|
||||||
|
// "!RAGSOC" ragione sociale
|
||||||
|
// dove: <opzione> è uno delle opzioni seguenti:
|
||||||
|
// "0" la ragione sociale andrà ad occupare un unico campo
|
||||||
|
// "1" la ragione sociale andrà ad occupare più campi, primo segmento
|
||||||
|
// "2" la ragione sociale andrà ad occupare più campi, secondo segmento
|
||||||
|
// "3" la ragione sociale andrà ad occupare più campi, terzo segmento
|
||||||
|
// "4" la ragione sociale andrà ad occupare più campi, quarto segmento
|
||||||
TLocalisamfile ditte(LF_NDITTE);
|
TLocalisamfile ditte(LF_NDITTE);
|
||||||
ditte.put("CODDITTA",ditta());
|
ditte.put("CODDITTA",ditta());
|
||||||
ditte.read();
|
ditte.read();
|
||||||
@ -789,9 +827,18 @@ void TRiba_file:: validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TSt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}// fine _DITTA
|
||||||
if (code == "_DEBITORE")
|
if (code == "_DEBITORE")
|
||||||
{
|
{
|
||||||
|
// gestione di campi della ditta corrente
|
||||||
|
// sintassi: _DEBITORE,<macro>,<opzione>
|
||||||
|
// dove: <macro> è uno delle macro seguenti:
|
||||||
|
// "!RAGSOC" ragione sociale
|
||||||
|
// "!INDIRIZZO" indirizzo
|
||||||
|
// "!PIAZZA" comune + sigla provincia
|
||||||
|
// dove: <opzione> è uno delle opzioni seguenti:
|
||||||
|
// "1" la ragione sociale andrà ad occupare più campi, primo segmento
|
||||||
|
// "2" la ragione sociale andrà ad occupare più campi, secondo segmento
|
||||||
TRectype& clifo = cur.curr(LF_CLIFO);
|
TRectype& clifo = cur.curr(LF_CLIFO);
|
||||||
TRectype& comuni = cur.curr(LF_COMUNI);
|
TRectype& comuni = cur.curr(LF_COMUNI);
|
||||||
TString in(s.get());
|
TString in(s.get());
|
||||||
@ -827,9 +874,11 @@ void TRiba_file:: validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TSt
|
|||||||
valore.trim();
|
valore.trim();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}// fine _DEBITORE
|
||||||
if (code == "_BANCA")
|
if (code == "_BANCA")
|
||||||
{
|
{
|
||||||
|
// gestione dei campi relativi alla banca d'appoggio dell'effetto
|
||||||
|
// sintassi: _BANCA
|
||||||
TRectype & ban = cur.curr(-401);
|
TRectype & ban = cur.curr(-401);
|
||||||
valore.cut(0);
|
valore.cut(0);
|
||||||
valore << ban.get("S0");
|
valore << ban.get("S0");
|
||||||
@ -837,9 +886,14 @@ void TRiba_file:: validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TSt
|
|||||||
ban = cur.curr(-402);
|
ban = cur.curr(-402);
|
||||||
valore << " " << ban.get("S0");
|
valore << " " << ban.get("S0");
|
||||||
valore.trim();
|
valore.trim();
|
||||||
}
|
}// fine _BANCA
|
||||||
if (code == "_FATT")
|
if (code == "_FATT")
|
||||||
{
|
{
|
||||||
|
// gestione dei campi relativi alle/a fatture/a a cui si riferisce un effetto
|
||||||
|
// sintassi: _FATT,<opzione>
|
||||||
|
// dove: <opzione> è uno delle opzioni seguenti:
|
||||||
|
// "1" i dati della fattura andranno ad occupare più campi, primo segmento
|
||||||
|
// "2" i dati della fattura andranno ad occupare più campi, secondo segmento
|
||||||
TLocalisamfile &eff = cur.file();
|
TLocalisamfile &eff = cur.file();
|
||||||
TEffetto effetto = eff.curr();
|
TEffetto effetto = eff.curr();
|
||||||
long num = effetto.numero();
|
long num = effetto.numero();
|
||||||
@ -868,9 +922,14 @@ void TRiba_file:: validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TSt
|
|||||||
valore = descfatt.mid(40, l);
|
valore = descfatt.mid(40, l);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}// fine _FATT
|
||||||
if (code == "_IMPORTO")
|
if (code == "_IMPORTO")
|
||||||
{
|
{
|
||||||
|
// gestione di campi degli importi degli effetti nel flusso
|
||||||
|
// sintassi: _IMPORTO,<macro>
|
||||||
|
// dove: <macro> è uno delle macro seguenti:
|
||||||
|
// "!ADD" aggiunge l'importo dell'effetto corrente al totale
|
||||||
|
// "!TOT" emette il totale
|
||||||
TString in(s.get());
|
TString in(s.get());
|
||||||
if (in[0]=='!')
|
if (in[0]=='!')
|
||||||
{
|
{
|
||||||
@ -890,7 +949,7 @@ void TRiba_file:: validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TSt
|
|||||||
set_tot_importi(0.0);
|
set_tot_importi(0.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}// fine _IMPORTO
|
||||||
str = valore;
|
str = valore;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,8 +6,6 @@
|
|||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
#include <real.h>
|
#include <real.h>
|
||||||
#include <printer.h>
|
#include <printer.h>
|
||||||
#include <effetti.h>
|
|
||||||
#include <reffetti.h>
|
|
||||||
#include <clifo.h>
|
#include <clifo.h>
|
||||||
#include "ef0101.h"
|
#include "ef0101.h"
|
||||||
#include "ef0600.h"
|
#include "ef0600.h"
|
||||||
@ -186,8 +184,14 @@ void TPrint_effetti_app::preprocess_header()
|
|||||||
ditte.put("CODDITTA", firm);
|
ditte.put("CODDITTA", firm);
|
||||||
ditte.read();
|
ditte.read();
|
||||||
if (ditte.bad()) ditte.zero();
|
if (ditte.bad()) ditte.zero();
|
||||||
TString s(ditte.get("RAGSOC"));
|
TString s,
|
||||||
set_header(j, "Ditta: %ld %s@125gPag @#", firm, (const char*) s);
|
ditta(ditte.get("RAGSOC"));
|
||||||
|
s = ditta.mid(30,50);
|
||||||
|
s.trim();
|
||||||
|
ditta = ditta.mid(0,30);
|
||||||
|
ditta.trim();
|
||||||
|
ditta << " " << s;
|
||||||
|
set_header(j, "Ditta: %ld %s@125gPag @#", firm, (const char*) ditta);
|
||||||
set_header(j++, "@102gData %s", (const char*) _data_stampa);
|
set_header(j++, "@102gData %s", (const char*) _data_stampa);
|
||||||
|
|
||||||
switch(_pr_type)
|
switch(_pr_type)
|
||||||
@ -212,7 +216,7 @@ void TPrint_effetti_app::preprocess_header()
|
|||||||
// setta l'header per la stampa per data di scadenza
|
// setta l'header per la stampa per data di scadenza
|
||||||
void TPrint_effetti_app::header_scadenza()
|
void TPrint_effetti_app::header_scadenza()
|
||||||
{
|
{
|
||||||
int j =1;
|
int j =2;
|
||||||
set_header(j, "@52gSTAMPA RI.BA. PER SCADENZA"); j++;
|
set_header(j, "@52gSTAMPA RI.BA. PER SCADENZA"); j++;
|
||||||
set_header(j++, (const char *)(TString(132).fill('-')));
|
set_header(j++, (const char *)(TString(132).fill('-')));
|
||||||
set_header(j++, " Scadenza Banca Cliente N.Riba N.Dist Importo Val N.Rata St.Def. Fattura del. N.");
|
set_header(j++, " Scadenza Banca Cliente N.Riba N.Dist Importo Val N.Rata St.Def. Fattura del. N.");
|
||||||
@ -222,7 +226,7 @@ void TPrint_effetti_app::header_scadenza()
|
|||||||
// setta l'header per la stampa per banca di presentazione
|
// setta l'header per la stampa per banca di presentazione
|
||||||
void TPrint_effetti_app::header_banca()
|
void TPrint_effetti_app::header_banca()
|
||||||
{
|
{
|
||||||
int j = 1;
|
int j = 2;
|
||||||
set_header(j, "@45gSTAMPA RI.BA. PER BANCHE DI PRESENTAZIONE"); j++;
|
set_header(j, "@45gSTAMPA RI.BA. PER BANCHE DI PRESENTAZIONE"); j++;
|
||||||
set_header(j++, (const char *)(TString(132).fill('-')));
|
set_header(j++, (const char *)(TString(132).fill('-')));
|
||||||
set_header(j++, " Banca Scadenza Cliente N.Riba N.Dist Importo Val. N.Rata St.Def. Fattura del. N.");
|
set_header(j++, " Banca Scadenza Cliente N.Riba N.Dist Importo Val. N.Rata St.Def. Fattura del. N.");
|
||||||
@ -232,7 +236,7 @@ void TPrint_effetti_app::header_banca()
|
|||||||
// setta l'header per la stampa per distinta di presentazione
|
// setta l'header per la stampa per distinta di presentazione
|
||||||
void TPrint_effetti_app::header_distinta()
|
void TPrint_effetti_app::header_distinta()
|
||||||
{
|
{
|
||||||
int j = 1;
|
int j = 2;
|
||||||
set_header(j, "@55gSTAMPA RI.BA. PER DISTINTE"); j++;
|
set_header(j, "@55gSTAMPA RI.BA. PER DISTINTE"); j++;
|
||||||
set_header(j++, (const char *)(TString(132).fill('-')));
|
set_header(j++, (const char *)(TString(132).fill('-')));
|
||||||
set_header(j++, " Distinta ");
|
set_header(j++, " Distinta ");
|
||||||
@ -243,7 +247,7 @@ void TPrint_effetti_app::header_distinta()
|
|||||||
// setta l'header per la stampa per cliente
|
// setta l'header per la stampa per cliente
|
||||||
void TPrint_effetti_app::header_cliente()
|
void TPrint_effetti_app::header_cliente()
|
||||||
{
|
{
|
||||||
int j =1;
|
int j = 2;
|
||||||
set_header(j, "@52gSTAMPA RI.BA. PER CLIENTE"); j++;
|
set_header(j, "@52gSTAMPA RI.BA. PER CLIENTE"); j++;
|
||||||
set_header(j++, (const char *)(TString(132).fill('-')));
|
set_header(j++, (const char *)(TString(132).fill('-')));
|
||||||
set_header(j++, " Cliente Scadenza Banca N.Riba N.Dist Importo Val N.Rata St.Def. Fattura del. N.");
|
set_header(j++, " Cliente Scadenza Banca N.Riba N.Dist Importo Val N.Rata St.Def. Fattura del. N.");
|
||||||
|
@ -56,10 +56,11 @@ POSITION(3)=8
|
|||||||
LENGTH(3)=5
|
LENGTH(3)=5
|
||||||
|
|
||||||
NAME(4)=DATA EMISSIONE
|
NAME(4)=DATA EMISSIONE
|
||||||
TYPE(4)=DATA
|
TYPE(4)=DATA
|
||||||
FIELD(4)=31->DATAEMISS
|
FIELD(4)=31->DATAEMISS
|
||||||
POSITION(4)=13
|
POSITION(4)=13
|
||||||
LENGTH(4)=6
|
LENGTH(4)=6
|
||||||
|
MESSAGE(4) = _DATA
|
||||||
|
|
||||||
NAME(5)=RAGIONE SOCIALE MITTENTE
|
NAME(5)=RAGIONE SOCIALE MITTENTE
|
||||||
TYPE(5)=STRINGA
|
TYPE(5)=STRINGA
|
||||||
@ -421,11 +422,12 @@ POSITION(3)=8
|
|||||||
LENGTH(3)=5
|
LENGTH(3)=5
|
||||||
|
|
||||||
NAME(4)=DATA EMISSIONE
|
NAME(4)=DATA EMISSIONE
|
||||||
TYPE(4)=DATA
|
TYPE(4)=DATA
|
||||||
FIELD(4)=31->DATAEMISS
|
FIELD(4)=31->DATAEMISS
|
||||||
POSITION(4)=13
|
POSITION(4)=13
|
||||||
LENGTH(4)=6
|
LENGTH(4)=6
|
||||||
|
MESSAGE(4)=_DATA
|
||||||
|
|
||||||
NAME(5)=RAGIONE SOCIALE MITTENTE
|
NAME(5)=RAGIONE SOCIALE MITTENTE
|
||||||
TYPE(5)=STRINGA
|
TYPE(5)=STRINGA
|
||||||
POSITION(5)=19
|
POSITION(5)=19
|
||||||
|
Loading…
x
Reference in New Issue
Block a user