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:
sauro 1997-12-15 11:12:32 +00:00
parent 359593271e
commit 8156729afe
7 changed files with 304 additions and 99 deletions

View File

@ -82,20 +82,20 @@ BEGIN
FLAGS "ZRU" FLAGS "ZRU"
END END
//Questo campo è stato tolto
LIST F_DETTAGLIO 15 //LIST F_DETTAGLIO 15
BEGIN //BEGIN
PROMPT 2 14 "Dettaglio/Movimenti " // PROMPT 2 14 "Dettaglio/Movimenti "
FIELD LF_ABPCON->DETT // FIELD LF_ABPCON->DETT
ITEM " |Nessuno" // ITEM " |Nessuno"
ITEM "D|Dettaglio" // ITEM "D|Dettaglio"
ITEM "M|Movimenti" // ITEM "M|Movimenti"
END //END
BOOLEAN SOSPENDI BOOLEAN SOSPENDI
BEGIN BEGIN
PROMTP 2 16 " Conto sospeso" PROMTP 2 16 " Conto sospeso"
FIELD LF_ABPCON->SOSPESO FIELD LF_ABPCON->SOSPESO
END END
ENDPAGE ENDPAGE

View File

@ -13,9 +13,9 @@ int main(int argc, char** argv)
switch (r) switch (r)
{ {
case 0: case 0:
rt = ab1100(argc,argv) ; break; rt = ab1100(argc,argv) ; break; // Sintassi ab1 -0 %tabella -utente
case 1: case 1:
rt = ab1200(argc,argv) ; break; rt = ab1200(argc,argv) ; break; // Sintassi ab1 -1 -utente
default: default:
error_box(usage, argv[0]) ; break; error_box(usage, argv[0]) ; break;
} }

View File

@ -5,111 +5,98 @@ END
DESCRIPRION DESCRIPRION
BEGIN BEGIN
78->* "Piano dei Conti" 78->* "Piano dei Conti"
END END
GENERAL GENERAL
BEGIN BEGIN
OFFSET 0 0 OFFSET 0 0
FONT "Courier New" FONT "Courier New"
SIZE 7 SIZE 7
END END
SECTION HEADER ODD 6 SECTION HEADER ODD 6
STRINGA 1 80 STRINGA 1 80
BEGIN BEGIN
KEY "Separatore (iniziale)" KEY "Separatore (iniziale)"
PROMPT 1 3 "--------------------------------------------------------------------------------" PROMPT 1 3 "--------------------------------------------------------------------------------"
END END
STRINGA 2 7 STRINGA 2 12
BEGIN BEGIN
KEY "Intestazione (Codice)" KEY "Intestazione (Codice)"
PROMPT 1 4 "Codice" PROMPT 1 4 "Codice"
END END
STRINGA 3 40 STRINGA 3 40
BEGIN BEGIN
KEY "Intestazione (Descrizione)" KEY "Intestazione (Descrizione)"
PROMPT 25 4 "Descrizione" PROMPT 25 4 "Descrizione"
END END
NUMERO 4 5 NUMERO 4 5
BEGIN BEGIN
KEY "Intestazione (I.b.)" KEY "Intestazione (I.b.)"
PROMPT 53 4 "I.b." PROMPT 53 4 "I.b."
END END
STRINGA 5 4 STRINGA 5 12
BEGIN BEGIN
KEY "Intestazione (d/m)" KEY "Intestazione (Codcontr)"
PROMPT 58 4 "D/M" PROMPT 63 4 "Cod. Contr."
END END
STRINGA 6 12 STRINGA 6 6
BEGIN BEGIN
KEY "Intestazione (Codcontr)" KEY "Intestazione (Sosp.)"
PROMPT 63 4 "Cod. Contr." PROMPT 75 4 "Sosp."
END
STRINGA 7 6
BEGIN
KEY "Intestazione (Sosp.)"
PROMPT 75 4 "Sosp."
END END
STRINGA 8 80 STRINGA 7 80
BEGIN BEGIN
KEY "Separatore (finale)" KEY "Separatore (finale)"
PROMPT 1 5 "--------------------------------------------------------------------------------" PROMPT 1 5 "--------------------------------------------------------------------------------"
END END
END END
//Il -2 significa che stampa su 1 o 2 righe secondo quello che devo stampare //Il -2 significa che stampa su 1 o 2 righe secondo quello che devo stampare
SECTION BODY ODD -2 SECTION BODY ODD -2
STRINGA 1 12 STRINGA 2 12
BEGIN BEGIN
KEY "Codice" KEY "Codice"
PROMPT 1 1 "" PROMPT 1 1 ""
FIELD 78->CODCBL FIELD 78->CODCBL
END END
//Sintassi: TIPO id lunghezza_per_riga numero_righe //Sintassi: TIPO id lunghezza_per_riga numero_righe
STRINGA 2 40 2 STRINGA 3 40 2
BEGIN BEGIN
KEY "Descrizione" KEY "Descrizione"
PROMPT 14 1 "" PROMPT 14 1 ""
FIELD 78->DESCRIZ FIELD 78->DESCRIZ
END END
NUMERO 3 1 NUMERO 4 1
BEGIN BEGIN
KEY "Indicatore" KEY "Indicatore"
PROMPT 55 1 "" PROMPT 55 1 ""
FIELD 78->INDBIL FIELD 78->INDBIL
END
STRINGA 4 1
BEGIN
KEY "Dettaglio"
PROMPT 59 1 ""
FIELD 78->DETT
END END
STRINGA 5 12 STRINGA 5 12
BEGIN BEGIN
KEY "Cod. contr." KEY "Cod. contr."
PROMPT 63 1 "" PROMPT 63 1 ""
FIELD 78->CODCONTR FIELD 78->CODCONTR
END END
STRINGA 6 1 STRINGA 6 1
BEGIN BEGIN
KEY "Sospeso" KEY "Sospeso"
PROMPT 76 1 "" PROMPT 76 1 ""
FIELD 78->SOSPESO FIELD 78->SOSPESO
END END
END END

View File

@ -1,42 +1,47 @@
//AB2100.CPP: Ricezione-Trasferimetno tabelle //AB2100.CPP: Ricezione-Trasferimetno tabelle
#include <xvt.h> #include <xvt.h>
#include <checks.h> #include <checks.h>
#include <string.h>
#include "ab2100a.h" #include "ab2100a.h"
#include "ab2.h" #include "ab2.h"
#include "ab2100.h" #include "ab2100.h"
#include "caradd.h"
#include "colldich.h"
bool TRiceTras::create() 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 dispatch_e_menu(BAR_ITEM(1)); //Simula la scelta di una voce di menu
return TRUE; return TRUE;
} }
TFile_text* TRiceTras::set_config_name(TString &config, const TMask &msk, const TFilename &percorso) TFile_text* TRiceTras::set_config_name(TString &config, const TMask &msk, const TFilename &percorso)
{ {
int tipo_ricezione = msk.get_int(F_TIPO_RICE); if (_trasfile != NULL)
switch (tipo_ricezione) delete _trasfile;
{ _trasfile=NULL;
case 1: int tipo_ricezione = msk.get_int(F_TIPO_RICE);
{ switch (tipo_ricezione)
config="ab2100a.ini"; {
_trasfile = new TABfile_text(percorso, config); //Leggo il file di configurazione case 1: // RICEZIONE INTERNA: WINDOWS
return _trasfile; config="ab2100a.ini"; /*DA CAMBIARE*/
} break;
case 2: case 2: //RICEZIONE ESTERNA: AS400
{ config="ab2100a.ini";
config="ab2100a.ini"; /*DA CAMBIARE*/ break;
_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione case 3://RICEZIONE ESTERNA: USER DEFINED
return _trasfile; config=msk.get(F_PERCORSO_UTENTE);
} break;
case 3: default:
{ config.cut(0);
config=msk.get(F_PERCORSO_UTENTE); break; break;
_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione }
return _trasfile;
} if (config.not_empty())
} _trasfile = new TABfile_text(percorso, config); //Leggo il file di configurazione
return NULL;
return _trasfile;
} }
bool TRiceTras::destroy() //Distruttore 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"); error_box ("Sintassi: \n -0 -R -<utente> per ricezione \n -0 -T -<utente> per trasferimetno");
} }
return 0; 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;
} }

View File

@ -78,7 +78,9 @@
//classe derivata nella quale viene gestita la funzione di trasferimento //classe derivata nella quale viene gestita la funzione di trasferimento
class TRiceTras: public TApplication class TRiceTras: public TApplication
{ {
private:
TArray _files;
protected: protected:
TFile_text* _trasfile; //File di testo TFile_text* _trasfile; //File di testo
@ -96,9 +98,9 @@ class TRiceTras: public TApplication
class TABfile_text: public TFile_text class TABfile_text: public TFile_text
{ {
TAssoc_array _last_id; TAssoc_array _last_id;
static long _idcaradd; // static long _idcaradd;
long _idncomp; long _idncomp;
long _idcoldich; //long _idcoldich;
TString _codvc_prec; TString _codvc_prec;
protected: protected:
// virtual void preformat_field(TRelation& rel,const TFieldref&field,const TRecord_text& rec,TString &str); // 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); void cambia_data(TString& str);
virtual bool pre_writerel(TRelation& rel,const TRecord_text& rec); virtual bool pre_writerel(TRelation& rel,const TRecord_text& rec);
void scrivi_temp_link(TRelation& rel,const TRecord_text& rec); void scrivi_temp_link(TRelation& rel,const TRecord_text& rec);
void aggiorna_rel_link(TLocalisamfile &relvoc);
public: public:
TABfile_text(const char* file_name, const char* set_config_name); TABfile_text(const char* file_name, const char* set_config_name);
virtual ~TABfile_text() {} 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 #endif //_AB2100_H

View File

@ -190,10 +190,11 @@ POSITION(5)=102
NAME(6)=FLAG_DETT_MOV NAME(6)=FLAG_DETT_MOV
TYPE(6)=STRINGA_R TYPE(6)=STRINGA_R
FIELD(6)=78->DETT
FTYPE(6)=STRINGA_R
POSITION(6)=103 POSITION(6)=103
LENGTH(6)=1 LENGTH(6)=1
// FIELD(6)=78->DETT è stato dolto
// FTYPE(6)=STRINGA_R
NAME(7)=CODICE_CONTO_SEZ_OPPOSTA NAME(7)=CODICE_CONTO_SEZ_OPPOSTA
TYPE(7)=FILLED_STRINGA_R10 TYPE(7)=FILLED_STRINGA_R10

View File

@ -27,9 +27,9 @@ END
LISTBOX F_TIPO_RICE 15 LISTBOX F_TIPO_RICE 15
BEGIN BEGIN
PROMPT 2 5 "Tipo: " PROMPT 2 5 "Tipo: "
ITEM "1|AS400" ITEM "1|WINDOWS"
MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE
ITEM "2|WINDOWS" ITEM "2|AS400"
MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE
ITEM "3|USER DEFINED" ITEM "3|USER DEFINED"
MESSAGE ENABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE MESSAGE ENABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE
@ -55,7 +55,7 @@ END
STRING F_TIPO_BILANCIO 2 2 STRING F_TIPO_BILANCIO 2 2
BEGIN BEGIN
PROMPT 60 18 "" PROMPT 60 18 ""
FLAG "RU" FLAG "DRU"
KEY 1 KEY 1
USE %NTB KEY 1 USE %NTB KEY 1
INPUT %NTB->CODTAB F_TIPO_BILANCIO INPUT %NTB->CODTAB F_TIPO_BILANCIO
@ -74,22 +74,26 @@ END
BOOLEAN F_PIANO_CONTI BOOLEAN F_PIANO_CONTI
BEGIN BEGIN
PROMPT 2 9 "Piano dei conti" PROMPT 2 9 "Piano dei conti"
FLAG "D"
END END
BOOLEAN F_PERIODI_BILANCI BOOLEAN F_PERIODI_BILANCI
BEGIN BEGIN
PROMPT 2 11 "Tabella periodi di bilanci" PROMPT 2 11 "Tabella periodi di bilanci"
FLAG "D"
END END
BOOLEAN F_ANALISI BOOLEAN F_ANALISI
BEGIN BEGIN
PROMPT 2 13 "Tabella analisi di bilancio" PROMPT 2 13 "Tabella analisi di bilancio"
FLAG "D"
END END
BOOLEAN F_MOVIMENTI BOOLEAN F_MOVIMENTI
BEGIN BEGIN
PROMPT 2 15 "Movimenti" PROMPT 2 15 "Movimenti"
MESSAGE TRUE ENABLE,F_TIPO_BILANCIO | COPY, F_SALDI MESSAGE TRUE ENABLE,F_TIPO_BILANCIO | COPY, F_SALDI
FLAG "D"
END END
BOOLEAN F_SALDI BOOLEAN F_SALDI
@ -97,6 +101,7 @@ BEGIN
PROMPT 40 9 "Saldi" PROMPT 40 9 "Saldi"
MESSAGE TRUE ENABLE,F_TIPO_BILANCIO MESSAGE TRUE ENABLE,F_TIPO_BILANCIO
MESSAGE FALSE COPY, F_MOVIMENTI | DISABLE, F_TIPO_BILANCIO MESSAGE FALSE COPY, F_MOVIMENTI | DISABLE, F_TIPO_BILANCIO
FLAG "D"
END END
BOOLEAN F_VOCI BOOLEAN F_VOCI