ab0200a.uml: Commentato il campo F_DETTAGLIO poichè non è più utilizzato
ab1.cpp: Aggiunto commenti per descrivere la sintassi per lanciare le varie applicazini ab1200.frm: Tolto il campo F_DETTAGLIO e aggiornato di conseguenza ab2100.cpp, ab2100.h: Completato l'applicazione di ricezione e trasferimento ab2100a.ini: Completato con tutti i tracciati disponibili nel TRDANBI ab2100a.uml: Completata la gestione a livello di maschera dei campi booleani git-svn-id: svn://10.65.10.50/trunk@5741 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
359593271e
commit
8156729afe
@ -82,20 +82,20 @@ BEGIN
|
||||
FLAGS "ZRU"
|
||||
END
|
||||
|
||||
|
||||
LIST F_DETTAGLIO 15
|
||||
BEGIN
|
||||
PROMPT 2 14 "Dettaglio/Movimenti "
|
||||
FIELD LF_ABPCON->DETT
|
||||
ITEM " |Nessuno"
|
||||
ITEM "D|Dettaglio"
|
||||
ITEM "M|Movimenti"
|
||||
END
|
||||
//Questo campo è stato tolto
|
||||
//LIST F_DETTAGLIO 15
|
||||
//BEGIN
|
||||
// PROMPT 2 14 "Dettaglio/Movimenti "
|
||||
// FIELD LF_ABPCON->DETT
|
||||
// ITEM " |Nessuno"
|
||||
// ITEM "D|Dettaglio"
|
||||
// ITEM "M|Movimenti"
|
||||
//END
|
||||
|
||||
BOOLEAN SOSPENDI
|
||||
BEGIN
|
||||
PROMTP 2 16 " Conto sospeso"
|
||||
FIELD LF_ABPCON->SOSPESO
|
||||
PROMTP 2 16 " Conto sospeso"
|
||||
FIELD LF_ABPCON->SOSPESO
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
@ -13,9 +13,9 @@ int main(int argc, char** argv)
|
||||
switch (r)
|
||||
{
|
||||
case 0:
|
||||
rt = ab1100(argc,argv) ; break;
|
||||
rt = ab1100(argc,argv) ; break; // Sintassi ab1 -0 %tabella -utente
|
||||
case 1:
|
||||
rt = ab1200(argc,argv) ; break;
|
||||
rt = ab1200(argc,argv) ; break; // Sintassi ab1 -1 -utente
|
||||
default:
|
||||
error_box(usage, argv[0]) ; break;
|
||||
}
|
||||
|
@ -5,111 +5,98 @@ END
|
||||
|
||||
DESCRIPRION
|
||||
BEGIN
|
||||
78->* "Piano dei Conti"
|
||||
78->* "Piano dei Conti"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
FONT "Courier New"
|
||||
SIZE 7
|
||||
OFFSET 0 0
|
||||
FONT "Courier New"
|
||||
SIZE 7
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 6
|
||||
|
||||
STRINGA 1 80
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 3 "--------------------------------------------------------------------------------"
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 3 "--------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
STRINGA 2 7
|
||||
STRINGA 2 12
|
||||
BEGIN
|
||||
KEY "Intestazione (Codice)"
|
||||
PROMPT 1 4 "Codice"
|
||||
KEY "Intestazione (Codice)"
|
||||
PROMPT 1 4 "Codice"
|
||||
END
|
||||
|
||||
STRINGA 3 40
|
||||
BEGIN
|
||||
KEY "Intestazione (Descrizione)"
|
||||
PROMPT 25 4 "Descrizione"
|
||||
KEY "Intestazione (Descrizione)"
|
||||
PROMPT 25 4 "Descrizione"
|
||||
END
|
||||
|
||||
NUMERO 4 5
|
||||
BEGIN
|
||||
KEY "Intestazione (I.b.)"
|
||||
PROMPT 53 4 "I.b."
|
||||
KEY "Intestazione (I.b.)"
|
||||
PROMPT 53 4 "I.b."
|
||||
END
|
||||
|
||||
STRINGA 5 4
|
||||
STRINGA 5 12
|
||||
BEGIN
|
||||
KEY "Intestazione (d/m)"
|
||||
PROMPT 58 4 "D/M"
|
||||
KEY "Intestazione (Codcontr)"
|
||||
PROMPT 63 4 "Cod. Contr."
|
||||
END
|
||||
|
||||
STRINGA 6 12
|
||||
STRINGA 6 6
|
||||
BEGIN
|
||||
KEY "Intestazione (Codcontr)"
|
||||
PROMPT 63 4 "Cod. Contr."
|
||||
END
|
||||
|
||||
STRINGA 7 6
|
||||
BEGIN
|
||||
KEY "Intestazione (Sosp.)"
|
||||
PROMPT 75 4 "Sosp."
|
||||
KEY "Intestazione (Sosp.)"
|
||||
PROMPT 75 4 "Sosp."
|
||||
END
|
||||
|
||||
STRINGA 8 80
|
||||
STRINGA 7 80
|
||||
BEGIN
|
||||
KEY "Separatore (finale)"
|
||||
PROMPT 1 5 "--------------------------------------------------------------------------------"
|
||||
KEY "Separatore (finale)"
|
||||
PROMPT 1 5 "--------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
END
|
||||
//Il -2 significa che stampa su 1 o 2 righe secondo quello che devo stampare
|
||||
SECTION BODY ODD -2
|
||||
|
||||
STRINGA 1 12
|
||||
STRINGA 2 12
|
||||
BEGIN
|
||||
KEY "Codice"
|
||||
PROMPT 1 1 ""
|
||||
FIELD 78->CODCBL
|
||||
KEY "Codice"
|
||||
PROMPT 1 1 ""
|
||||
FIELD 78->CODCBL
|
||||
END
|
||||
|
||||
//Sintassi: TIPO id lunghezza_per_riga numero_righe
|
||||
STRINGA 2 40 2
|
||||
STRINGA 3 40 2
|
||||
BEGIN
|
||||
KEY "Descrizione"
|
||||
PROMPT 14 1 ""
|
||||
FIELD 78->DESCRIZ
|
||||
KEY "Descrizione"
|
||||
PROMPT 14 1 ""
|
||||
FIELD 78->DESCRIZ
|
||||
END
|
||||
|
||||
NUMERO 3 1
|
||||
NUMERO 4 1
|
||||
BEGIN
|
||||
KEY "Indicatore"
|
||||
PROMPT 55 1 ""
|
||||
FIELD 78->INDBIL
|
||||
END
|
||||
|
||||
STRINGA 4 1
|
||||
BEGIN
|
||||
KEY "Dettaglio"
|
||||
PROMPT 59 1 ""
|
||||
FIELD 78->DETT
|
||||
KEY "Indicatore"
|
||||
PROMPT 55 1 ""
|
||||
FIELD 78->INDBIL
|
||||
END
|
||||
|
||||
STRINGA 5 12
|
||||
BEGIN
|
||||
KEY "Cod. contr."
|
||||
PROMPT 63 1 ""
|
||||
FIELD 78->CODCONTR
|
||||
KEY "Cod. contr."
|
||||
PROMPT 63 1 ""
|
||||
FIELD 78->CODCONTR
|
||||
END
|
||||
|
||||
STRINGA 6 1
|
||||
BEGIN
|
||||
KEY "Sospeso"
|
||||
PROMPT 76 1 ""
|
||||
FIELD 78->SOSPESO
|
||||
KEY "Sospeso"
|
||||
PROMPT 76 1 ""
|
||||
FIELD 78->SOSPESO
|
||||
END
|
||||
|
||||
END
|
||||
|
210
ab/ab2100.cpp
210
ab/ab2100.cpp
@ -1,42 +1,47 @@
|
||||
//AB2100.CPP: Ricezione-Trasferimetno tabelle
|
||||
#include <xvt.h>
|
||||
#include <checks.h>
|
||||
#include <string.h>
|
||||
#include "ab2100a.h"
|
||||
#include "ab2.h"
|
||||
#include "ab2100.h"
|
||||
|
||||
#include "caradd.h"
|
||||
#include "colldich.h"
|
||||
|
||||
bool TRiceTras::create()
|
||||
{
|
||||
{
|
||||
_files.add(new TLocalisamfile(LF_CARADD),1);
|
||||
_files.add(new TLocalisamfile(LF_COLLDICH),2);
|
||||
dispatch_e_menu(BAR_ITEM(1)); //Simula la scelta di una voce di menu
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
TFile_text* TRiceTras::set_config_name(TString &config, const TMask &msk, const TFilename &percorso)
|
||||
{
|
||||
int tipo_ricezione = msk.get_int(F_TIPO_RICE);
|
||||
switch (tipo_ricezione)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
config="ab2100a.ini";
|
||||
_trasfile = new TABfile_text(percorso, config); //Leggo il file di configurazione
|
||||
return _trasfile;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
config="ab2100a.ini"; /*DA CAMBIARE*/
|
||||
_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione
|
||||
return _trasfile;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
config=msk.get(F_PERCORSO_UTENTE); break;
|
||||
_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione
|
||||
return _trasfile;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
if (_trasfile != NULL)
|
||||
delete _trasfile;
|
||||
_trasfile=NULL;
|
||||
int tipo_ricezione = msk.get_int(F_TIPO_RICE);
|
||||
switch (tipo_ricezione)
|
||||
{
|
||||
case 1: // RICEZIONE INTERNA: WINDOWS
|
||||
config="ab2100a.ini"; /*DA CAMBIARE*/
|
||||
break;
|
||||
case 2: //RICEZIONE ESTERNA: AS400
|
||||
config="ab2100a.ini";
|
||||
break;
|
||||
case 3://RICEZIONE ESTERNA: USER DEFINED
|
||||
config=msk.get(F_PERCORSO_UTENTE);
|
||||
break;
|
||||
default:
|
||||
config.cut(0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (config.not_empty())
|
||||
_trasfile = new TABfile_text(percorso, config); //Leggo il file di configurazione
|
||||
|
||||
return _trasfile;
|
||||
}
|
||||
|
||||
bool TRiceTras::destroy() //Distruttore
|
||||
@ -67,4 +72,159 @@ int ab2100(int argc, char **argv)
|
||||
error_box ("Sintassi: \n -0 -R -<utente> per ricezione \n -0 -T -<utente> per trasferimetno");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
TAdditional_car::TAdditional_car() :
|
||||
TRectype(LF_CARADD)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void TAdditional_car::put_str(const char* fieldname, const char* val)
|
||||
{
|
||||
if (strcmp(fieldname,ABCA_ID)==0)
|
||||
{
|
||||
static TString16 id;
|
||||
CHECK(length(ABCA_ID)<=16,"ID in CARADD deve essere max lungo 16");
|
||||
id = val;
|
||||
id.right_just(length(ABCA_ID));
|
||||
TRectype::put_str(fieldname, (const char *)id);
|
||||
} else
|
||||
TRectype::put_str(fieldname, val);
|
||||
}
|
||||
|
||||
bool TAdditional_car::same_as(real other_id)
|
||||
{
|
||||
bool r;
|
||||
//TLocalisamfile ca(LF_CARADD);
|
||||
TAdditional_cars ca;
|
||||
|
||||
ca.put(ABCA_ID,other_id);
|
||||
ca.read();
|
||||
real id=get(ABCA_ID);
|
||||
put(ABCA_ID,ca.get(ABCA_ID));
|
||||
r= (*this == ca.curr());
|
||||
put(ABCA_ID,id);
|
||||
return r;
|
||||
}
|
||||
|
||||
TAdditional_cars::TAdditional_cars(TFilelock lockmode) :
|
||||
TLocalisamfile (LF_CARADD)
|
||||
{
|
||||
set_curr(new TAdditional_car());
|
||||
if (lockmode==_excllock)
|
||||
{
|
||||
lock(); //Il file è già aperto: gli faccio un lock
|
||||
if (last()==NOERR)
|
||||
_lastid=get_long(ABCA_ID);
|
||||
else
|
||||
_lastid=0;
|
||||
} else
|
||||
_lastid=-1;
|
||||
}
|
||||
|
||||
long TAdditional_cars::lastid()
|
||||
{
|
||||
if (_lastid>=0)
|
||||
{
|
||||
return _lastid;
|
||||
} else {
|
||||
TLocalisamfile ca(LF_CARADD);
|
||||
if (ca.last()==NOERR)
|
||||
return atol(get(ABCA_ID));
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int TAdditional_cars::write()
|
||||
{
|
||||
int err;
|
||||
if (_lastid>=0)
|
||||
{
|
||||
curr().put(ABCA_ID,++_lastid);
|
||||
err=TLocalisamfile::write();
|
||||
} else {
|
||||
do {
|
||||
curr().put(ABCA_ID,lastid()+1);
|
||||
err=TLocalisamfile::write();
|
||||
} while (err==_isdupkey);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***********************/
|
||||
TAdditional_col::TAdditional_col() :
|
||||
TRectype(LF_COLLDICH)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
long TAdditional_cols::_lastid = 0;
|
||||
|
||||
TAdditional_cols::TAdditional_cols() :
|
||||
TLocalisamfile (LF_COLLDICH)
|
||||
{
|
||||
set_curr(new TAdditional_col());
|
||||
if (_lastid == 0)
|
||||
{
|
||||
if (last()==NOERR)
|
||||
_lastid=get_long(ABCD_ID);
|
||||
}
|
||||
}
|
||||
|
||||
/*long TAdditional_cols::lastid()
|
||||
{
|
||||
if (_lastid>=0)
|
||||
{
|
||||
return _lastid;
|
||||
} else {
|
||||
TLocalisamfile ca(LF_COLLDICH);
|
||||
if (ca.last()==NOERR)
|
||||
return atol(get(ABCD_ID));
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
} */
|
||||
|
||||
|
||||
int TAdditional_cols::write()
|
||||
{
|
||||
int err = NOERR;
|
||||
bool scrivo = FALSE;
|
||||
|
||||
for (int i = curr().items(); (i > 1) && (!scrivo); i--) //Estraggo il campo
|
||||
{
|
||||
const char * name_field = curr().fieldname(i);
|
||||
const char * str = "";
|
||||
if (name_field) //Inizializzo la stringa solo se il puntatore non è nullo
|
||||
str = curr().get(name_field);
|
||||
if (strlen(str) > 0) //Se la stringa è stata inizilizzata a qualcosa entro per controllare
|
||||
{
|
||||
for (int ii = 0; str[ii]; ii++)
|
||||
{//scorro il contenuto del campo per controllare se è vuoto
|
||||
if ((str[ii] != ' ') && (str[ii] != '0'))
|
||||
{
|
||||
scrivo = TRUE; //se trovo qualcosa di "non vuoto" setto il flag di scrittura
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (scrivo)
|
||||
{
|
||||
do {
|
||||
curr().put(ABCD_ID,++_lastid);
|
||||
err=TLocalisamfile::write();
|
||||
} while (err==_isdupkey);
|
||||
err=TLocalisamfile::write();
|
||||
}
|
||||
else
|
||||
curr().put(ABCD_ID,0); //Il record non è stato scritto ma devo inserire nella chiave del rocord
|
||||
//l'indice (=0) poichè questo andrà inserito in RELANA
|
||||
return err;
|
||||
}
|
58
ab/ab2100.h
58
ab/ab2100.h
@ -78,7 +78,9 @@
|
||||
|
||||
//classe derivata nella quale viene gestita la funzione di trasferimento
|
||||
class TRiceTras: public TApplication
|
||||
{
|
||||
{
|
||||
private:
|
||||
TArray _files;
|
||||
protected:
|
||||
TFile_text* _trasfile; //File di testo
|
||||
|
||||
@ -96,9 +98,9 @@ class TRiceTras: public TApplication
|
||||
class TABfile_text: public TFile_text
|
||||
{
|
||||
TAssoc_array _last_id;
|
||||
static long _idcaradd;
|
||||
// static long _idcaradd;
|
||||
long _idncomp;
|
||||
long _idcoldich;
|
||||
//long _idcoldich;
|
||||
TString _codvc_prec;
|
||||
protected:
|
||||
// virtual void preformat_field(TRelation& rel,const TFieldref&field,const TRecord_text& rec,TString &str);
|
||||
@ -107,10 +109,60 @@ protected:
|
||||
void cambia_data(TString& str);
|
||||
virtual bool pre_writerel(TRelation& rel,const TRecord_text& rec);
|
||||
void scrivi_temp_link(TRelation& rel,const TRecord_text& rec);
|
||||
void aggiorna_rel_link(TLocalisamfile &relvoc);
|
||||
public:
|
||||
TABfile_text(const char* file_name, const char* set_config_name);
|
||||
virtual ~TABfile_text() {}
|
||||
};
|
||||
|
||||
// **********************
|
||||
// da spostare in ablib01
|
||||
|
||||
class TAdditional_car: public TRectype
|
||||
{
|
||||
protected:
|
||||
virtual void put_str(const char* fieldname, const char* val);
|
||||
|
||||
public:
|
||||
bool same_as(real id);
|
||||
TAdditional_car();
|
||||
virtual ~TAdditional_car() {}
|
||||
};
|
||||
|
||||
|
||||
/***************************/
|
||||
|
||||
class TAdditional_cars: public TLocalisamfile
|
||||
{
|
||||
long _lastid; // usato in caso di lock
|
||||
public:
|
||||
long lastid();
|
||||
TAdditional_car & current()
|
||||
{return (TAdditional_car & )(TLocalisamfile::curr());}
|
||||
virtual int write();
|
||||
//int write();
|
||||
TAdditional_cars(TFilelock lockmode=_manulock);
|
||||
virtual ~TAdditional_cars() {}
|
||||
};
|
||||
|
||||
|
||||
|
||||
class TAdditional_col: public TRectype
|
||||
{
|
||||
public:
|
||||
TAdditional_col();
|
||||
virtual ~TAdditional_col() {}
|
||||
};
|
||||
|
||||
class TAdditional_cols: public TLocalisamfile
|
||||
{
|
||||
static long _lastid;
|
||||
public:
|
||||
//long lastid();
|
||||
virtual int write();
|
||||
TAdditional_cols();
|
||||
virtual ~TAdditional_cols() {}
|
||||
};
|
||||
|
||||
#endif //_AB2100_H
|
||||
|
||||
|
@ -190,10 +190,11 @@ POSITION(5)=102
|
||||
|
||||
NAME(6)=FLAG_DETT_MOV
|
||||
TYPE(6)=STRINGA_R
|
||||
FIELD(6)=78->DETT
|
||||
FTYPE(6)=STRINGA_R
|
||||
POSITION(6)=103
|
||||
LENGTH(6)=1
|
||||
// FIELD(6)=78->DETT è stato dolto
|
||||
// FTYPE(6)=STRINGA_R
|
||||
|
||||
|
||||
NAME(7)=CODICE_CONTO_SEZ_OPPOSTA
|
||||
TYPE(7)=FILLED_STRINGA_R10
|
||||
|
@ -27,9 +27,9 @@ END
|
||||
LISTBOX F_TIPO_RICE 15
|
||||
BEGIN
|
||||
PROMPT 2 5 "Tipo: "
|
||||
ITEM "1|AS400"
|
||||
ITEM "1|WINDOWS"
|
||||
MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE
|
||||
ITEM "2|WINDOWS"
|
||||
ITEM "2|AS400"
|
||||
MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE
|
||||
ITEM "3|USER DEFINED"
|
||||
MESSAGE ENABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE
|
||||
@ -55,7 +55,7 @@ END
|
||||
STRING F_TIPO_BILANCIO 2 2
|
||||
BEGIN
|
||||
PROMPT 60 18 ""
|
||||
FLAG "RU"
|
||||
FLAG "DRU"
|
||||
KEY 1
|
||||
USE %NTB KEY 1
|
||||
INPUT %NTB->CODTAB F_TIPO_BILANCIO
|
||||
@ -74,22 +74,26 @@ END
|
||||
BOOLEAN F_PIANO_CONTI
|
||||
BEGIN
|
||||
PROMPT 2 9 "Piano dei conti"
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_PERIODI_BILANCI
|
||||
BEGIN
|
||||
PROMPT 2 11 "Tabella periodi di bilanci"
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_ANALISI
|
||||
BEGIN
|
||||
PROMPT 2 13 "Tabella analisi di bilancio"
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_MOVIMENTI
|
||||
BEGIN
|
||||
PROMPT 2 15 "Movimenti"
|
||||
MESSAGE TRUE ENABLE,F_TIPO_BILANCIO | COPY, F_SALDI
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_SALDI
|
||||
@ -97,6 +101,7 @@ BEGIN
|
||||
PROMPT 40 9 "Saldi"
|
||||
MESSAGE TRUE ENABLE,F_TIPO_BILANCIO
|
||||
MESSAGE FALSE COPY, F_MOVIMENTI | DISABLE, F_TIPO_BILANCIO
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_VOCI
|
||||
|
Loading…
x
Reference in New Issue
Block a user