Per il modulo ab1 (stampe) sono state commentate delle righe di codice che non
servivano. Le maschere sono state modificate solo dal punto di vista estetico. Il modulo ab2 (invio e ricezione) è stato completato: esegue ricezioni da as400 e interne, ed esegue invii ad as400 (tranne la parte di analisi) e invii interni. Il file ab2100a.ini è il file di configurazione per as400 Il file ab2100b.ini è il file di configurazione per l'interno git-svn-id: svn://10.65.10.50/trunk@6073 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3e6d3d0bd4
commit
22557d5d80
@ -1,4 +1,4 @@
|
||||
// ab1100 Stampa tabelle
|
||||
// ab1100 Stampa tabelle
|
||||
//
|
||||
// legge un file con estenzione .rpt che descrive la stampa.
|
||||
// Vedi file leggimi.txt per il formato del file
|
||||
@ -26,8 +26,8 @@ class AB1100_application : public TPrintapp
|
||||
int _logicnum;
|
||||
TString_array _string_roman, _string_compound;
|
||||
TString_array _field_roman, _field_compound;
|
||||
bool _stampa_registri;
|
||||
bool _stampa_ca7; //tabella causali 770
|
||||
// bool _stampa_registri;
|
||||
// bool _stampa_ca7; //tabella causali 770
|
||||
bool _tabella_comune;
|
||||
|
||||
public:
|
||||
@ -78,7 +78,6 @@ bool AB1100_application::set_print(int)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_cur->setregion (from, to);
|
||||
|
||||
set_headers();
|
||||
@ -144,7 +143,7 @@ bool AB1100_application::preprocess_page(int , int)
|
||||
}
|
||||
}
|
||||
// Stampa tabella registri. Calcolo: pagine residue = pagine - stampate
|
||||
if (_stampa_registri)
|
||||
/* if (_stampa_registri)
|
||||
{
|
||||
const int pagine = _cur->file().get_int("I2");
|
||||
const int stampate = _cur->file().get_int("I1");
|
||||
@ -153,7 +152,7 @@ bool AB1100_application::preprocess_page(int , int)
|
||||
set_row(1, "@126g%4d", residue);
|
||||
else
|
||||
set_row(1, "@126g%4s", " ");
|
||||
}
|
||||
} */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -197,11 +196,11 @@ void AB1100_application::set_headers()
|
||||
riga.overwrite(format("Ditta %4ld %s", codditta,(const char *)ragsoc));
|
||||
}
|
||||
|
||||
if (_stampa_ca7)
|
||||
/* if (_stampa_ca7)
|
||||
{
|
||||
TDate d (_msk->get(F_DATASTAMPA));
|
||||
printer().setdate(d);
|
||||
}
|
||||
} */
|
||||
|
||||
riga.overwrite ("Data @< Pag. @#", riga.len()-22);
|
||||
|
||||
@ -214,8 +213,8 @@ void AB1100_application::set_headers()
|
||||
NomeTabella.left_just (LungRiga);
|
||||
/* else
|
||||
NomeTabella.center_just (LungRiga); */
|
||||
if (_stampa_ca7)
|
||||
NomeTabella.center_just (LungRiga);
|
||||
/* if (_stampa_ca7)
|
||||
NomeTabella.center_just (LungRiga); */
|
||||
|
||||
set_header (last_riga++, "@b%s", (const char *)NomeTabella);
|
||||
|
||||
@ -408,8 +407,8 @@ bool AB1100_application::user_create()
|
||||
|
||||
// Flag per la stampa tabella registri
|
||||
_tabname.upper();
|
||||
_stampa_registri = (_tabname == "REG");
|
||||
_stampa_ca7 = (_tabname == "%CA7");
|
||||
// _stampa_registri = (_tabname == "REG");
|
||||
// _stampa_ca7 = (_tabname == "%CA7");
|
||||
|
||||
_rel = new TRelation (_tabname);
|
||||
_cur = new TCursor (_rel);
|
||||
|
@ -11,7 +11,7 @@ BEGIN
|
||||
DISPLAY "Codice@12" CODCBL
|
||||
DISPLAY "Descrizione@40" DESCRIZ
|
||||
DISPLAY "I.B.@5" INDBIL
|
||||
DISPLAY "D/M@5" DETT
|
||||
// DISPLAY "D/M@5" DETT
|
||||
DISPLAY "Con.C.@12" CODCONTR
|
||||
DISPALY "SOSP.@5" SOSPESO
|
||||
OUTPUT F_INIZIO CODCBL
|
||||
|
63
ab/ab2100.h
63
ab/ab2100.h
@ -196,14 +196,15 @@ class TRicezione_userdef : public TObject_reception
|
||||
|
||||
|
||||
//classe derivata nella quale viene gestita la funzione di trasferimento
|
||||
class TTrasfer: public TApplication
|
||||
//class TTrasfer: public TApplication
|
||||
class TTrasfer: public TSkeleton_application
|
||||
{
|
||||
// private:
|
||||
// TArray _files;
|
||||
protected:
|
||||
// TFile_text* _trasfile; //File di testo
|
||||
virtual bool menu(MENU_TAG) pure; //Gli dico che non è implementata in questa classe, ma obbligatoriamente in un'altra
|
||||
|
||||
// virtual bool menu(MENU_TAG) pure; //Gli dico che non è implementata in questa classe, ma obbligatoriamente in un'altra
|
||||
virtual void main_loop() pure; //Gli dico che non è implementata in questa classe, ma obbligatoriamente in un'altra
|
||||
//Controlla che il percorso e il file specificati esistono
|
||||
static bool inseriscipercorso(TMask_field& f, KEY k);
|
||||
public:
|
||||
@ -220,9 +221,10 @@ class TRicezione:public TTrasfer
|
||||
TObject_reception *_rice;
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual bool menu(MENU_TAG);
|
||||
// virtual bool create();
|
||||
// virtual bool destroy();
|
||||
// virtual bool menu(MENU_TAG);
|
||||
virtual void main_loop();
|
||||
|
||||
|
||||
public:
|
||||
@ -234,31 +236,64 @@ class TRicezione:public TTrasfer
|
||||
|
||||
|
||||
TFile_text * trans_file() {return _rice->trans_file();}
|
||||
TRicezione() {}
|
||||
TRicezione() {_rice=NULL;}
|
||||
virtual ~TRicezione() {}
|
||||
};
|
||||
|
||||
|
||||
class TObject_send:public TObject
|
||||
{
|
||||
protected:
|
||||
TFile_text* _trasfile; //File di testo da cui ricevere
|
||||
public:
|
||||
TFile_text * trans_file() {return _trasfile;}
|
||||
|
||||
virtual void converti(int);
|
||||
virtual void converti(int main_file,const char * tabname);
|
||||
TObject_send() {_trasfile = NULL;}
|
||||
TObject_send(const TFilename &percorso);
|
||||
virtual ~TObject_send() { delete _trasfile;}
|
||||
};
|
||||
|
||||
//Classe derivata per il trasferimento
|
||||
class TInvio_AS400:public TTrasfer
|
||||
class TInvio:public TTrasfer
|
||||
{
|
||||
TFile_text* _trasfile; //File di testo da cui ricevere
|
||||
TObject_send *_invio;
|
||||
protected:
|
||||
virtual bool menu(MENU_TAG);
|
||||
//virtual bool menu(MENU_TAG);
|
||||
virtual void main_loop();
|
||||
static bool inseriscipercorso(TMask_field& f, KEY k);
|
||||
//Esegue il ciclo di ricezione
|
||||
void converti(int);
|
||||
public:
|
||||
TInvio() {}
|
||||
virtual ~TInvio() {}
|
||||
};
|
||||
|
||||
|
||||
class TInvio_AS400:public TObject_send
|
||||
{
|
||||
protected:
|
||||
void trasferisci_albero(TRectype &,TRecord_text&, TAssoc_array&);
|
||||
bool cerca_padre(TLocalisamfile &, TRectype &);
|
||||
long my_num(TLocalisamfile&, TAssoc_array&);
|
||||
bool mov_da_scrivere(TRectype &);
|
||||
void formatta(TRecord_text&,TRectype&,int&);
|
||||
|
||||
public:
|
||||
TInvio_AS400() {}
|
||||
virtual void converti(int);
|
||||
TInvio_AS400(const TFilename &percorso);
|
||||
virtual ~TInvio_AS400() {}
|
||||
|
||||
};
|
||||
|
||||
class TInvio_user_defined:public TObject_send
|
||||
{
|
||||
public:
|
||||
// virtual void converti(int) {} //DA definire
|
||||
TInvio_user_defined(const TString & config, const TFilename &percorso);
|
||||
virtual ~TInvio_user_defined() {}
|
||||
};
|
||||
|
||||
|
||||
|
||||
// **********************
|
||||
// da spostare in ablib01
|
||||
|
||||
|
1408
ab/ab2100a.ini
1408
ab/ab2100a.ini
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
#include "ab2100a.h"
|
||||
PAGE "" 0 -1 0 19
|
||||
PAGE "Ricezione e Invio di Bilanci & Analisi" 0 -1 0 19
|
||||
|
||||
GROUPBOX DLG_NULL 76 5
|
||||
BEGIN
|
||||
@ -28,11 +28,11 @@ LISTBOX F_TIPO_RICE 15
|
||||
BEGIN
|
||||
PROMPT 2 5 "Tipo: "
|
||||
ITEM "1|WINDOWS"
|
||||
MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE
|
||||
MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE|HIDE, F_TIPO_BILANCIO
|
||||
ITEM "2|AS400"
|
||||
MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE
|
||||
MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE|SHOW, F_TIPO_BILANCIO
|
||||
ITEM "3|USER DEFINED"
|
||||
MESSAGE ENABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE
|
||||
MESSAGE ENABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE|SHOW, F_TIPO_BILANCIO
|
||||
END
|
||||
|
||||
TEXT F_TESTO_UTENTE
|
||||
@ -75,18 +75,21 @@ BOOLEAN F_PIANO_CONTI
|
||||
BEGIN
|
||||
PROMPT 2 9 "Piano dei conti"
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BOOLEAN F_PERIODI_BILANCI
|
||||
BEGIN
|
||||
PROMPT 2 11 "Tabella periodi di bilanci"
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BOOLEAN F_ANALISI
|
||||
BEGIN
|
||||
PROMPT 2 13 "Tabella analisi di bilancio"
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BOOLEAN F_MOVIMENTI
|
||||
@ -94,6 +97,7 @@ BEGIN
|
||||
PROMPT 2 15 "Movimenti"
|
||||
MESSAGE TRUE ENABLE,F_TIPO_BILANCIO | COPY, F_SALDI
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BOOLEAN F_SALDI
|
||||
@ -102,6 +106,7 @@ BEGIN
|
||||
MESSAGE TRUE ENABLE,F_TIPO_BILANCIO
|
||||
MESSAGE FALSE COPY, F_MOVIMENTI | DISABLE, F_TIPO_BILANCIO
|
||||
FLAG "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BOOLEAN F_VOCI
|
||||
@ -109,6 +114,7 @@ BEGIN
|
||||
PROMPT 40 11 "Voci"
|
||||
MESSAGE TRUE COPY, F_RELAZ | COPY, F_SRELAZ
|
||||
MESSAGE FALSE COPY, F_RELAZ | COPY, F_SRELAZ
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BOOLEAN F_RELAZ
|
||||
@ -116,6 +122,7 @@ BEGIN
|
||||
PROMTP 40 13 "Relazioni"
|
||||
MESSAGE TRUE COPY, F_VOCI | COPY, F_SRELAZ
|
||||
MESSAGE FALSE COPY, F_VOCI | COPY, F_SRELAZ
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BOOLENAN F_SRELAZ
|
||||
@ -123,6 +130,7 @@ BEGIN
|
||||
PROMPT 40 15 "Sottorelazioni"
|
||||
MESSAGE TRUE COPY, F_RELAZ | COPY, F_VOCI
|
||||
MESSAGE FALSE COPY, F_RELAZ | COPY, F_VOCI
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
|
200
ab/ab2100b.ini
Executable file
200
ab/ab2100b.ini
Executable file
@ -0,0 +1,200 @@
|
||||
[MAIN]
|
||||
DECSEP =
|
||||
FIELDSEP = |
|
||||
RECORDSEP =
|
||||
RECORDSIZE = 0
|
||||
TYPEFIELD = 0
|
||||
|
||||
[RECORD PIACO]
|
||||
USE = 78
|
||||
|
||||
FIELD(1) = CODCBL
|
||||
FIELD(2) = DESCRIZ
|
||||
ALIGN(2) = L
|
||||
FIELD(3) = INDBIL
|
||||
FIELD(4) = CODCONTR
|
||||
FIELD(5) = SOSPESO
|
||||
|
||||
[RECORD NTBBB]
|
||||
USE = %NTB
|
||||
|
||||
FIELD(1) = COD
|
||||
FIELD(2) = CODTAB
|
||||
ALING(2) = L
|
||||
FIELD(3) = S0
|
||||
ALIGN(3) = L
|
||||
|
||||
[RECORD TBBBD]
|
||||
USE = %PDB
|
||||
|
||||
FIELD(1) = COD
|
||||
FIELD(2) = CODTAB
|
||||
ALIGN(2) = L
|
||||
FIELD(3) = S0
|
||||
ALIGN(3) = L
|
||||
FIELD(4) = I0
|
||||
FIELD(5) = I1
|
||||
FIELD(6) = I2
|
||||
FIELD(7) = I3
|
||||
|
||||
|
||||
[RECORD SALDI]
|
||||
USE = 79
|
||||
|
||||
FIELD(1) = CODDITTA
|
||||
FIELD(2) = ANNO
|
||||
FIELD(3) = CODPDB
|
||||
FIELD(4) = TIPOBIL
|
||||
FIELD(5) = CODCBL
|
||||
FIELD(6) = FLDA
|
||||
FIELD(7) = SALDO
|
||||
FIELD(8) = PDARE
|
||||
FIELD(9) = PAVERE
|
||||
FIELD(10) = RDARE
|
||||
FIELD(11) = RAVERE
|
||||
FIELD(12) = IDMOVDETT
|
||||
ALIGN(12) = L
|
||||
|
||||
[RECORD ANALI]
|
||||
USE = 82
|
||||
|
||||
FIELD(1) = CODAN
|
||||
FIELD(2) = DESCRIZ
|
||||
ALIGN(2) = L
|
||||
FIELD(3) = TIPOAN
|
||||
FIELD(4) = PFSTAL
|
||||
FIELD(5) = PFSTRF
|
||||
FIELD(6) = NOTE
|
||||
|
||||
[RECORD CARAD]
|
||||
USE = 126
|
||||
|
||||
FIELD(1) = ID
|
||||
FIELD(2) = STD
|
||||
FIELD(3) = CLI
|
||||
FIELD(4) = SPI
|
||||
FIELD(5) = STI
|
||||
FIELD(6) = DST
|
||||
ALING(6) = L
|
||||
FIELD(7) = CLT
|
||||
FIELD(8) = SPT
|
||||
FIELD(9) = STT
|
||||
FIELD(10) = SVT
|
||||
FIELD(11) = LST
|
||||
FIELD(12) = ODA
|
||||
FIELD(13) = SKI
|
||||
FIELD(14) = SKT
|
||||
FIELD(15) = NDV
|
||||
FIELD(16) = RII
|
||||
FIELD(17) = RIT
|
||||
FIELD(18) = TVL
|
||||
|
||||
[RECORD COLLD]
|
||||
USE = 127
|
||||
|
||||
FIELD(1) = ID
|
||||
FIELD(2) = F4A
|
||||
FIELD(3) = F4B
|
||||
FIELD(4) = P4A
|
||||
FIELD(5) = P4B
|
||||
FIELD(6) = A5A
|
||||
FIELD(7) = A5B
|
||||
FIELD(8) = P5A
|
||||
FIELD(9) = P5B
|
||||
FIELD(10) = A6A
|
||||
FIELD(11) = A6B
|
||||
FIELD(12) = X4A
|
||||
FIELD(13) = X4B
|
||||
FIELD(14) = X5A
|
||||
FIELD(15) = X5B
|
||||
FIELD(16) = X6A
|
||||
FIELD(17) = X6B
|
||||
FIELD(18) = P6A
|
||||
FIELD(19) = P6B
|
||||
FIELD(20) = K4A
|
||||
FIELD(21) = K5A
|
||||
FIELD(22) = K6A
|
||||
|
||||
[RECORD MOVDE]
|
||||
USE = 80
|
||||
|
||||
FIELD(1) = CODDITTA
|
||||
FIELD(2) = ANNO
|
||||
FIELD(3) = CODPDB
|
||||
FIELD(4) = TIPOBIL
|
||||
FIELD(5) = CODCBL
|
||||
FIELD(6) = ID
|
||||
FIELD(7) = TIPODETT
|
||||
FIELD(8) = CODDETT
|
||||
ALING(8) = L
|
||||
FIELD(9) = DESCRIZ
|
||||
ALIGN(9) = L
|
||||
FIELD(10) = FLDA
|
||||
FIELD(11) = IMPORTO
|
||||
FIELD(12) = PDARE
|
||||
FIELD(13) = PAVERE
|
||||
FIELD(14) = RDARE
|
||||
FIELD(15) = RAVERE
|
||||
FIELD(16) = DATAREG
|
||||
FIELD(17) = ANR
|
||||
FIELD(18) = DATADOC
|
||||
FIELD(19) = NDOC
|
||||
FIELD(20) = CAUS
|
||||
FIELD(21) = IMMESSO
|
||||
FIELD(22) = DETT
|
||||
FIELD(23) = INDIR
|
||||
FIELD(24) = LOC
|
||||
FIELD(25) = PROV
|
||||
FIELD(26) = CAP
|
||||
FIELD(27) = COFI
|
||||
FIELD(28) = STATOPAIV
|
||||
FIELD(29) = PAIV
|
||||
FIELD(30) = IDPADRE
|
||||
FIELD(31) = IDFIGLIO
|
||||
FIELD(32) = IDSUCC
|
||||
FIELD(33) = IDPREC
|
||||
|
||||
[RECORD RELNA]
|
||||
USE = 85
|
||||
|
||||
FIELD(1) = CODAN
|
||||
FIELD(2) = ID
|
||||
FIELD(3) = IDPADRE
|
||||
FIELD(4) = IDFIGLIO
|
||||
FIELD(5) = IDPREC
|
||||
FIELD(6) = IDSUCC
|
||||
FIELD(7) = TIPOCOD
|
||||
FIELD(8) = CODVC
|
||||
ALING(8) = R
|
||||
LENGTH(8)= 10
|
||||
FIELD(9) = IDCOMP
|
||||
FIELD(10) = DESCRIZ
|
||||
ALIGN(10) = L
|
||||
FIELD(11) = IDCARADD
|
||||
FIELD(12) = USACARADD
|
||||
FIELD(13) = IDCOLDICH
|
||||
FIELD(14) = VOCEINCID
|
||||
|
||||
[RECORD RELVC]
|
||||
USE = 84
|
||||
|
||||
FIELD(1) = TIPOCOD
|
||||
FIELD(2) = CODVC
|
||||
FIELD(3) = IDCOMP
|
||||
FIELD(4) = NEXTCOMP
|
||||
FIELD(5) = PREVCOMP
|
||||
FIELD(6) = COMP
|
||||
ALING(6) = L
|
||||
|
||||
[RECORD TVOCI]
|
||||
USE = 83
|
||||
|
||||
FIELD(1) = CODVC
|
||||
FIELD(2) = DESCRIZ
|
||||
ALING(2) = L
|
||||
FIELD(3) = TIPOVC
|
||||
FIELD(4) = CODCBL
|
||||
FIELD(5) = INDBIL
|
||||
FIELD(6) = IDCARADD
|
||||
FIELD(7) = TVL
|
||||
FIELD(8) = CLASSEVOCE
|
@ -190,9 +190,8 @@ bool TFile_text_AS400::pre_writerel(TRelation& rel,const TRecord_text& rec)
|
||||
if (logic_num==LF_ABSALDI)
|
||||
{//Parte riservata ai SALDI: modifico (immetto) il tipo di bilancio con il valore passato da maschera
|
||||
//solo se questo campo è vuoto, nel caso contratio lascio il valore letto
|
||||
TString prova = rel.lfile().get(ABMD_TIPOBIL);
|
||||
if ( rel.lfile().get(ABMD_TIPOBIL) == "" )
|
||||
rel.lfile().put(ABMD_TIPOBIL,get_tipo_bil());
|
||||
// TString prova = get_tipo_bil();
|
||||
rel.lfile().put(ABMD_TIPOBIL,get_tipo_bil());
|
||||
return TRUE;
|
||||
}//Fine parte riservata ai SALDI
|
||||
|
||||
@ -307,7 +306,7 @@ bool TFile_text_AS400::pre_writerel(TRelation& rel,const TRecord_text& rec)
|
||||
{//Scrivo la chiave anche sul file secondario della relazione
|
||||
real idcaradd_ra;
|
||||
idcaradd_ra = 0;
|
||||
TString prova = *idcaradd_ra.string();
|
||||
// TString prova = *idcaradd_ra.string();
|
||||
TLocalisamfile fil(LF_VOCI);
|
||||
fil.curr()=rel.curr();
|
||||
if (fil.read() != NOERR)
|
||||
@ -397,7 +396,7 @@ bool TFile_text_AS400::pre_writerel(TRelation& rel,const TRecord_text& rec)
|
||||
//Non ho trovato la VOCE o CARATTERISTICA ADDIZIONALE oppure è diversa
|
||||
caradd.write();
|
||||
rel.lfile().put(ABRA_USACARADD,TRUE); //Setto il flag
|
||||
long prova = atol (caradd.get(ABCA_ID)); //Solo per debug
|
||||
// long prova = atol (caradd.get(ABCA_ID)); //Solo per debug
|
||||
rel.lfile().put(ABRA_IDCARADD,caradd.get(ABCA_ID)); //Aggiungo il collegamento alla carat. add.
|
||||
}
|
||||
else
|
||||
@ -450,7 +449,7 @@ bool TTrasfer::inseriscipercorso(TMask_field& f, KEY k)
|
||||
if (((f.dlg() == F_PERCORSO) || (f.dlg() == F_TIPO_RICE ))&& modificato)
|
||||
{//Entro in questo if tutte le volte che è stato modificato il campo F_PERCORSO
|
||||
//o F_TIPO_RICE
|
||||
if (f.mask().get_int(F_TIPO_RICE) == 2)
|
||||
if (f.mask().get_int(F_TIPO_RICE) == RICEZIONE_AS400)
|
||||
{ //Questa parte dell'handler è riservata solo al campo F_PERCORSO
|
||||
//se è abilitata la ricezione da AS400: in tutti gli altri casi
|
||||
//non è garantito che ci sia un record di testa
|
||||
@ -509,7 +508,7 @@ bool TTrasfer::inseriscipercorso(TMask_field& f, KEY k)
|
||||
/* ********************************************************************************************************* */
|
||||
/* TRicezione */
|
||||
/*********************************************************************************************************** */
|
||||
|
||||
/*
|
||||
bool TRicezione::create()
|
||||
{
|
||||
_files.add(new TLocalisamfile(LF_CARADD),1);
|
||||
@ -521,13 +520,17 @@ bool TRicezione::create()
|
||||
bool TRicezione::destroy() //Distruttore
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
} */
|
||||
|
||||
|
||||
|
||||
//Funzione membro che effettua la conversione
|
||||
bool TRicezione::menu(MENU_TAG)
|
||||
{
|
||||
//bool TRicezione::menu(MENU_TAG)
|
||||
void TRicezione::main_loop()
|
||||
{
|
||||
_files.add(new TLocalisamfile(LF_CARADD),1);
|
||||
_files.add(new TLocalisamfile(LF_COLLDICH),2);
|
||||
|
||||
TString config_file; //Nome del file di configurazione
|
||||
TMask msk("AB2100A"); //Maschera dove si chiede di immettere il percorso del file sorgente
|
||||
TFilename percorso; //Contiene il percorso completo del file sorgente
|
||||
@ -539,7 +542,7 @@ bool TRicezione::menu(MENU_TAG)
|
||||
if (msk.run()== K_ENTER) //Eseguo la maschera
|
||||
{
|
||||
//Visualizza una finestra di attesa
|
||||
TIndwin idle(0,"Attendere: aggiornamento della tabella in corso. L'operazione potrebbe richiedere qualche minuto ... ",FALSE,FALSE,60);
|
||||
TIndwin idle(0,"Attendere: aggiornamento della tabella in corso. \n L'operazione potrebbe richiedere qualche minuto ... ",FALSE,FALSE,60);
|
||||
percorso=msk.get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO
|
||||
|
||||
|
||||
@ -570,7 +573,7 @@ bool TRicezione::menu(MENU_TAG)
|
||||
//messaggio finale
|
||||
message_box(" ... aggiornamento delle tabelle selezionate effettuato");
|
||||
} //end if (msk.run())
|
||||
return FALSE;
|
||||
// return FALSE;
|
||||
}
|
||||
|
||||
|
||||
@ -578,8 +581,9 @@ void TObject_reception::ricevi(TMask & msk)
|
||||
{
|
||||
TRecord_text rec; //Istanzio un tipo record_text
|
||||
|
||||
if (msk.get_bool(F_VOCI))
|
||||
{
|
||||
if ((msk.get_bool(F_VOCI)) &&
|
||||
(msk.get_int(F_TIPO_RICE) == RICEZIONE_AS400))
|
||||
{//Eseguo questa parte solo per la ricezione AS400
|
||||
TRelation *r=_trasfile->t_rec(LF_VOCI)->relation();
|
||||
TAdditional_cars * ca=new TAdditional_cars(_excllock);
|
||||
r->replacef(ca,LF_CARADD);
|
||||
@ -619,6 +623,12 @@ void TObject_reception::ricevi(TMask & msk)
|
||||
if (msk.get_bool(F_RELAZ))
|
||||
{
|
||||
_trasfile->autosave(rec,LF_RELVOCI);
|
||||
if (msk.get_int(F_TIPO_RICE) != RICEZIONE_AS400)
|
||||
{// Se è abilitito è abilitato la RICEZIONE_INTERNA devo ricevere anche questi files
|
||||
_trasfile->autosave(rec,LF_RELANA);
|
||||
_trasfile->autosave(rec,LF_CARADD);
|
||||
_trasfile->autosave(rec,LF_COLLDICH);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -948,7 +958,7 @@ void TRicezione_AS400::build_relana(TString& config_file, const TMask &msk, cons
|
||||
|
||||
//ft = set_config_name(config_file,msk,percorso);
|
||||
ft = trans_file();
|
||||
ft->close(); //Chiudo il file
|
||||
// ft->close(); //Chiudo il file
|
||||
ft->open('r'); //Apro il file di testo in lettura
|
||||
|
||||
//Inizia il ciclo sulle Analisi in radici
|
||||
@ -1008,8 +1018,8 @@ void TRicezione_AS400::build_relana(TString& config_file, const TMask &msk, cons
|
||||
// modifica e scarica il record
|
||||
|
||||
|
||||
TRectype prova(LF_COLLDICH);
|
||||
prova= rel.lfile(LF_COLLDICH).curr();
|
||||
// TRectype prova(LF_COLLDICH);
|
||||
// prova= rel.lfile(LF_COLLDICH).curr();
|
||||
ft->autosave(rel,rec); //La relazione principale è basata su RELANA
|
||||
tabtree.remove(key);
|
||||
} while ((ft->read(rec) == NOERR) && (rec.type() == TIPO_SRELAZ));
|
||||
@ -1150,15 +1160,23 @@ void TRicezione_AS400::print_ana_tree(int &level,TRectype & nodo,FILE * stream)
|
||||
|
||||
void TRicezione_AS400::ricevi(TMask & msk)
|
||||
{
|
||||
trasfile()->set_tipo_bilancio(msk.get(F_TIPO_BILANCIO));
|
||||
// Eseguo la ricezione normale
|
||||
TObject_reception::ricevi(msk);
|
||||
trasfile()->set_tipo_bilancio(msk.get(F_TIPO_BILANCIO));
|
||||
|
||||
|
||||
// E aggiungo il resto ...
|
||||
if (msk.get_bool(F_MOVIMENTI))
|
||||
{
|
||||
build_balancetree(LF_MOVDETT);
|
||||
}
|
||||
|
||||
if (msk.get_bool(F_SRELAZ))
|
||||
{
|
||||
TString config_file;
|
||||
TFilename percorso;
|
||||
percorso=msk.get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO: è stato controllato prima
|
||||
build_relana(config_file,msk,percorso);
|
||||
}
|
||||
//La chiusura del _trasfile non può essere eseguita prima poichè questo
|
||||
//serve nella costruzione dell'albero dei movimenti
|
||||
if (_trasfile != NULL)
|
||||
@ -1167,13 +1185,6 @@ void TRicezione_AS400::ricevi(TMask & msk)
|
||||
delete _trasfile;
|
||||
_trasfile =NULL;
|
||||
}
|
||||
if (msk.get_bool(F_SRELAZ))
|
||||
{
|
||||
TString config_file;
|
||||
TFilename percorso;
|
||||
percorso=msk.get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO: è stato controllato prima
|
||||
build_relana(config_file,msk,percorso);
|
||||
}
|
||||
}
|
||||
|
||||
TObject_reception::TObject_reception(const TFilename &percorso)
|
||||
@ -1181,6 +1192,7 @@ TObject_reception::TObject_reception(const TFilename &percorso)
|
||||
if (_trasfile != NULL)
|
||||
delete _trasfile;
|
||||
_trasfile = new TFile_text(percorso, "C:/SAURO/TEMP/AB2100B.INI"); /*DA CAMBIARE*/
|
||||
_trasfile->open('r'); //apro il TFile_text in lettura
|
||||
//_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione
|
||||
}
|
||||
|
||||
@ -1191,12 +1203,15 @@ TRicezione_AS400::TRicezione_AS400(const TFilename &percorso)
|
||||
delete _trasfile;
|
||||
TString config("ab2100a.ini");
|
||||
_trasfile = new TFile_text_AS400(percorso, config); //Leggo il file di configurazione
|
||||
_trasfile->open('r'); //apro il TFile_text in lettura
|
||||
}
|
||||
|
||||
TRicezione_userdef ::TRicezione_userdef(const TString & config, const TFilename &percorso)
|
||||
{
|
||||
if (_trasfile != NULL)
|
||||
delete _trasfile;
|
||||
_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione
|
||||
_trasfile->open('r'); //apro il TFile_text in lettura
|
||||
}
|
||||
|
||||
|
||||
|
182
ab/ab2102.cpp
182
ab/ab2102.cpp
@ -10,7 +10,7 @@
|
||||
#include <assoc.h>
|
||||
#include <varrec.h>
|
||||
|
||||
|
||||
#define TABELLA_TIPO_BILANCI "NTBBB"
|
||||
|
||||
const char* get_ordinamento(TVariable_rectype & rec)
|
||||
{
|
||||
@ -250,12 +250,60 @@ void TInvio_AS400::formatta(TRecord_text &rec, TRectype &node, int &logic_num)
|
||||
rec.add(SIGLA_TABELLA_PERIODI,SIGLA_TAB_PER);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TObject_send::converti(int logic_num)
|
||||
{
|
||||
TRelation *tr_relation=_trasfile->t_rec(logic_num)->relation();
|
||||
TRecord_text rec(_trasfile->t_rec(logic_num)->type()); //Istanzio un tipo record_text
|
||||
TCursor *cur=NULL;
|
||||
cur = new TCursor(tr_relation);
|
||||
|
||||
//Leggo il numero di records da convertire
|
||||
long items =cur->items();
|
||||
//Barra scorrevole di attesa
|
||||
TProgind idle(items,"Attendere: conversione in corso ...",TRUE,TRUE,60);
|
||||
|
||||
//Ciclo principale di conversione
|
||||
for (*cur=0;cur->pos()<items;++*cur)
|
||||
{
|
||||
idle.addstatus(1);
|
||||
_trasfile->autoload(rec,logic_num);
|
||||
rec.add(rec.type(),0);
|
||||
_trasfile->write(rec);
|
||||
}
|
||||
delete cur;
|
||||
}
|
||||
|
||||
void TObject_send::converti(int main_file, const char * tabname)
|
||||
{
|
||||
TRelation *tr_relation=_trasfile->t_rec(main_file,tabname)->relation();
|
||||
TRecord_text rec(_trasfile->t_rec(main_file,tabname)->type()); //Istanzio un tipo record_text
|
||||
TCursor *cur=NULL;
|
||||
cur = new TCursor(tr_relation);
|
||||
|
||||
int logic_num= tr_relation->lfile().num();
|
||||
//Leggo il numero di records da convertire
|
||||
long items =cur->items();
|
||||
//Barra scorrevole di attesa
|
||||
TProgind idle(items,"Attendere: conversione in corso ...",TRUE,TRUE,60);
|
||||
|
||||
//Ciclo principale di conversione
|
||||
for (*cur=0;cur->pos()<items;++*cur)
|
||||
{
|
||||
idle.addstatus(1);
|
||||
// _trasfile->autoload(rec,logic_num);
|
||||
_trasfile->autoload(rec,tabname);
|
||||
rec.add(rec.type(),0);
|
||||
_trasfile->write(rec);
|
||||
}
|
||||
delete cur;
|
||||
}
|
||||
|
||||
void TInvio_AS400::converti(int logic_num)
|
||||
{
|
||||
|
||||
TRelation *tr_relation=_trasfile->t_rec(logic_num)->relation();
|
||||
TRecord_text rec(_trasfile->t_rec(logic_num)->type()); //Istanzio un tipo record_text
|
||||
TRelation *tr_relation=trans_file()->t_rec(logic_num)->relation();
|
||||
TRecord_text rec(trans_file()->t_rec(logic_num)->type()); //Istanzio un tipo record_text
|
||||
TCursor *cur=NULL;
|
||||
TAssoc_array progressivi;
|
||||
|
||||
@ -289,27 +337,27 @@ void TInvio_AS400::converti(int logic_num)
|
||||
if (logic_num == LF_MOVDETT)
|
||||
{//In questo caso la conversione è un po' particolare
|
||||
rec.set_type(tr_relation->lfile().get(ABMD_TIPO_TRACCIATO));
|
||||
_trasfile->autoload(rec,*cur,&rec.type());
|
||||
trans_file()->autoload(rec,*cur,&rec.type());
|
||||
if (mov_da_scrivere(tr_relation->lfile().curr()))
|
||||
{
|
||||
trasferisci_albero(tr_relation->lfile().curr(),rec,progressivi);
|
||||
formatta(rec,tr_relation->lfile().curr(),logic_num);
|
||||
_trasfile->write(rec);
|
||||
trans_file()->write(rec);
|
||||
}
|
||||
}
|
||||
else
|
||||
{//in tutti gli altri casi la conversione è semplice
|
||||
_trasfile->autoload(rec,logic_num);
|
||||
trans_file()->autoload(rec,logic_num);
|
||||
if (logic_num == LF_ABSALDI || logic_num == LF_TABCOM)
|
||||
formatta(rec,tr_relation->lfile().curr(),logic_num);
|
||||
_trasfile->write(rec);
|
||||
trans_file()->write(rec);
|
||||
}
|
||||
}
|
||||
delete cur;
|
||||
}
|
||||
|
||||
//Handler per l'inserimento del percorso completo
|
||||
bool TInvio_AS400::inseriscipercorso(TMask_field& f, KEY k)
|
||||
bool TInvio::inseriscipercorso(TMask_field& f, KEY k)
|
||||
{
|
||||
TString percorso;
|
||||
percorso=f.get(); //Leggo il contenuto del campo
|
||||
@ -318,9 +366,9 @@ bool TInvio_AS400::inseriscipercorso(TMask_field& f, KEY k)
|
||||
|
||||
|
||||
//Funzione membro che esegue la conversione di trasferimento
|
||||
bool TInvio_AS400::menu(MENU_TAG)
|
||||
//bool TInvio_AS400::menu(MENU_TAG)
|
||||
void TInvio::main_loop()
|
||||
{
|
||||
TString config_file("ab2100b"); //Nome del file di configurazione
|
||||
TMask msk("AB2100A"); //Maschera dove si chiede di immettere il percorso del file sorgente
|
||||
TFilename percorso; //Contiene il percorso completo del file sorgente
|
||||
|
||||
@ -328,53 +376,129 @@ bool TInvio_AS400::menu(MENU_TAG)
|
||||
msk.set_handler(F_PERCORSO, inseriscipercorso); //Assegno un handler al campo F_PERCORSO
|
||||
//inseriscipercorso controlla che il percorso (e il file) esista e sia corretto
|
||||
msk.set_handler(F_PERCORSO_UTENTE, inseriscipercorso);
|
||||
|
||||
|
||||
msk.hide(F_TIPO_BILANCIO); //nascondo questo campo poichè non mi serve
|
||||
msk.hide(F_TESTO_TIPOBIL); //nascondo questo campo poichè non mi serve
|
||||
msk.hide(F_VOCI); //nascondo questo campo poichè non mi serve
|
||||
msk.hide(F_RELAZ); //nascondo questo campo poichè non mi serve
|
||||
msk.hide(F_SRELAZ); //nascondo questo campo poichè non mi serve
|
||||
msk.enable(-1,TRUE);
|
||||
if (msk.run()== K_ENTER) //Eseguo la maschera
|
||||
{
|
||||
//A questo punto il percorso e' corretto
|
||||
percorso=msk.get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO
|
||||
|
||||
_trasfile = new TFile_text_AS400(percorso, config_file); //Leggo il file di configurazione
|
||||
_trasfile->open(percorso,'w'); //Apro il file di testo in rettura
|
||||
|
||||
if (msk.get_int(F_TIPO_RICE) == RICEZIONE_AS400)
|
||||
{
|
||||
if ((msk.get_bool(F_VOCI) == TRUE) ||
|
||||
(msk.get_bool(F_RELAZ) == TRUE) ||
|
||||
(msk.get_bool(F_SRELAZ) == TRUE))
|
||||
{
|
||||
message_box("L'ivio a AS400 delle VOCI, RELAZIONI e SOTTORELAZIONI non è attualmente previsto");
|
||||
}
|
||||
_invio = new TInvio_AS400(percorso);
|
||||
}
|
||||
|
||||
if (msk.get_int(F_TIPO_RICE) == RICEZIONE_INTERNA)
|
||||
{
|
||||
_invio = new TObject_send(percorso);
|
||||
}
|
||||
if (msk.get_int(F_TIPO_RICE) == RICEZIONE_USER_DEFINED)
|
||||
{
|
||||
TString config_file(msk.get(F_PERCORSO_UTENTE)); //Nome del file di configurazione
|
||||
_invio = new TInvio_user_defined(config_file,percorso);
|
||||
}
|
||||
|
||||
// Parte di invio
|
||||
if (msk.get_bool(F_PIANO_CONTI)==TRUE) //Controllo se si è scelto di convertire il piano dei conti
|
||||
{
|
||||
converti(LF_ABPCON); //Conversione
|
||||
_invio->converti(LF_ABPCON); //Conversione
|
||||
}
|
||||
|
||||
|
||||
if (msk.get_bool(F_PERIODI_BILANCI)==TRUE) //Scelta di convertire la tabella periodi bilanci
|
||||
{
|
||||
converti(LF_TABCOM);
|
||||
if (msk.get_int(F_TIPO_RICE) == RICEZIONE_AS400)
|
||||
{//Se eseguo un invio a AS400 converto passando il numero del file
|
||||
_invio->converti(LF_TABCOM);
|
||||
}
|
||||
else
|
||||
{ //Se eseguo un invio interno converto passando il nome della tabella comune
|
||||
_invio->converti(LF_TABCOM,"%PDB");
|
||||
_invio->converti(LF_TABCOM,"%NTB");
|
||||
}
|
||||
}
|
||||
|
||||
if (msk.get_bool(F_ANALISI)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio
|
||||
{
|
||||
converti(LF_ANALISI);
|
||||
_invio->converti(LF_ANALISI);
|
||||
}
|
||||
|
||||
if (msk.get_bool(F_MOVIMENTI)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio
|
||||
{
|
||||
converti(LF_MOVDETT);
|
||||
_invio->converti(LF_MOVDETT);
|
||||
}
|
||||
|
||||
if (msk.get_bool(F_SALDI)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio
|
||||
{
|
||||
converti(LF_ABSALDI);
|
||||
_invio->converti(LF_ABSALDI);
|
||||
}
|
||||
_trasfile->close();
|
||||
delete _trasfile;
|
||||
|
||||
if (msk.get_int(F_TIPO_RICE) != RICEZIONE_AS400)
|
||||
{// Solo se non è un invio ad AS400
|
||||
if (msk.get_bool(F_VOCI)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio
|
||||
{
|
||||
_invio->converti(LF_VOCI);
|
||||
}
|
||||
|
||||
if (msk.get_bool(F_RELAZ)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio
|
||||
{
|
||||
_invio->converti(LF_RELVOCI);
|
||||
}
|
||||
|
||||
if (msk.get_bool(F_SRELAZ)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio
|
||||
{
|
||||
if (msk.get_int(F_TIPO_RICE) == RICEZIONE_INTERNA)
|
||||
{
|
||||
_invio->converti(LF_CARADD);
|
||||
_invio->converti(LF_COLLDICH);
|
||||
}
|
||||
_invio->converti(LF_RELANA);
|
||||
}
|
||||
}
|
||||
delete _invio;
|
||||
|
||||
//messaggio finale
|
||||
|
||||
message_box(" ... aggiornamento delle tabelle effettuato");
|
||||
} //end if (msk.run())
|
||||
return FALSE;
|
||||
// return FALSE;
|
||||
}
|
||||
|
||||
int ab2102(int argc, char **argv)
|
||||
{
|
||||
TInvio_AS400 a;
|
||||
TInvio a;
|
||||
a.run(argc,argv,"Trasferimento su file di testo");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
TObject_send::TObject_send(const TFilename &percorso)
|
||||
{
|
||||
if (_trasfile != NULL)
|
||||
delete _trasfile;
|
||||
_trasfile = new TFile_text(percorso, "AB2100B.INI"); /*DA CAMBIARE*/
|
||||
_trasfile->open('w'); //apro il TFile_text in lettura
|
||||
}
|
||||
|
||||
TInvio_AS400::TInvio_AS400(const TFilename &percorso)
|
||||
{
|
||||
if (_trasfile != NULL)
|
||||
delete _trasfile;
|
||||
_trasfile = new TFile_text(percorso, "AB2100A.INI"); /*DA CAMBIARE*/
|
||||
_trasfile->open('w'); //apro il TFile_text in lettura
|
||||
|
||||
}
|
||||
|
||||
TInvio_user_defined::TInvio_user_defined(const TString & config, const TFilename &percorso)
|
||||
{
|
||||
if (_trasfile != NULL)
|
||||
delete _trasfile;
|
||||
_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione
|
||||
_trasfile->open('w'); //apro il TFile_text in lettura
|
||||
}
|
||||
|
@ -9,9 +9,9 @@ BEGIN
|
||||
USE %ARB
|
||||
INPUT CODTAB[1,5] F_INIZIO1
|
||||
DISPLAY "Codice" CODTAB[1,5]
|
||||
DISPLAY "Anno" CODTAB[6,9]
|
||||
DISPLAY "Periodo" CODTAB[10,12]
|
||||
DISPLAY "Tipo" CODTAB[13,15]
|
||||
DISPLAY "Anno@15" CODTAB[6,9]
|
||||
DISPLAY "Periodo@15" CODTAB[10,12]
|
||||
DISPLAY "Tipo@15" CODTAB[13,15]
|
||||
OUTPUT F_INIZIO1 CODTAB[1,5]
|
||||
GROUP 1
|
||||
FIELD CODTAB[1,5]
|
||||
|
Loading…
x
Reference in New Issue
Block a user