Patch level : 10.0 854
Files correlati : tc2.exe Ricompilazione Demo : [ ] Commento : Tabelle di riclassificlazione per trasferimento a IPSOA git-svn-id: svn://10.65.10.50/branches/R_10_00@21264 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3c7ec717e2
commit
6e0819cd50
12
tc/ipconf.h
12
tc/ipconf.h
@ -11,9 +11,9 @@
|
||||
#define F_RIPRISTINO 121
|
||||
#define F_ULTINVIO 122
|
||||
#define F_EMCAU 123
|
||||
#define F_LICVPC1 124
|
||||
#define F_LICVPC2 125
|
||||
#define F_LICVPC3 126
|
||||
#define F_LICVPC4 127
|
||||
#define F_LICVPC5 128
|
||||
#define F_LICVPC6 129
|
||||
#define F_LIVPC1 124
|
||||
#define F_LIVPC2 125
|
||||
#define F_LIVPC3 126
|
||||
#define F_LIVPC4 127
|
||||
#define F_LIVPC5 128
|
||||
#define F_LIVPC6 129
|
||||
|
@ -7,15 +7,11 @@ int main(int argc, char** argv)
|
||||
const int op = argc < 2 ? 0 : argv[1][1]-'0';
|
||||
switch (op)
|
||||
{
|
||||
// case 1: tc2200(argc,argv); break;
|
||||
case 2: tc2300(argc,argv); break; // parametri ditta
|
||||
// case 3: tc2400(argc,argv); break;
|
||||
case 2: tc2300(argc,argv); break; // parametri ditta
|
||||
case 4: tc2500(argc,argv); break; //gestore tabelle multirel
|
||||
case 5: tc2600(argc,argv); break; //importazione PCon, Cuas, CodIVA
|
||||
case 6: tc2700(argc,argv); break; //esportazione contabilita' a TeamSystem
|
||||
case 7: tc2800(argc,argv); break; // Riclassificazione conti TeamSystem
|
||||
case 8: tc2900(argc,argv); break; // COnverione archivi CAMPO
|
||||
default: ; tc2100(argc,argv); break;
|
||||
default: ; tc2100(argc,argv); break;
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
|
111
tc/tc2100.cpp
111
tc/tc2100.cpp
@ -1,27 +1,117 @@
|
||||
#include "tc2.h"
|
||||
#include "tctbico.h"
|
||||
|
||||
// gestione tabelle Zucchetti
|
||||
#include <modaut.h>
|
||||
#include <modtbapp.h>
|
||||
#include <tabutil.h>
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TConti_mask
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TConti_mask : public TMask
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
|
||||
public:
|
||||
TConti_mask(const char * maskname);
|
||||
~TConti_mask();
|
||||
};
|
||||
|
||||
TConti_mask::TConti_mask(const char * maskname)
|
||||
: TMask(maskname)
|
||||
{
|
||||
TString disp;
|
||||
int fpos = 0;
|
||||
int pos = 2;
|
||||
TFilename tmp;
|
||||
tmp.tempdir();
|
||||
tmp.add("tmp.msk");
|
||||
|
||||
for (int i = 1; i <= 6; i++)
|
||||
{
|
||||
const int len = ini_get_int(CONFIG_DITTA, "tc", "IPLIVPC", 0, i);
|
||||
const short id = F_CODTAB + i;
|
||||
|
||||
if (len <= 0)
|
||||
{
|
||||
field(id).hide();
|
||||
field(id).disable();
|
||||
}
|
||||
else
|
||||
{
|
||||
ofstream out(tmp);
|
||||
TString prompt = (i == 1) ? "Codice " : "";
|
||||
TEdit_field & kfld = efield(id);
|
||||
|
||||
kfld.set_prompt(prompt);
|
||||
pos += prompt.len() + 2;
|
||||
kfld.set_rect(pos, 2, len, 1, len);
|
||||
pos += len + 2;
|
||||
|
||||
TString80 fld("CODTAB[");
|
||||
|
||||
fld << ++fpos << ',';
|
||||
fpos += len -1;
|
||||
fld << fpos << "]";
|
||||
kfld.set_field(fld);
|
||||
out << "US &ICO\n";
|
||||
|
||||
if (len > 0)
|
||||
{
|
||||
if (i > 1)
|
||||
out << "CO IN " << id - 1 << '\n';
|
||||
out << "IN " << fld << ' ' << id << '\n';
|
||||
disp << "DI \"" << prompt << "@" << max(len, prompt.len()) << "\" " << fld << '\n';
|
||||
out << disp << "DI \"Descrizione@60\" S0\n";
|
||||
if (i > 1)
|
||||
out << "CO OU " << id - 1 << '\n';
|
||||
out << "OU " << id << ' ' << fld << '\n';
|
||||
}
|
||||
out << "EN" << '\n';
|
||||
out.close();
|
||||
TScanner scan(tmp);
|
||||
while (scan.pop() != "EN")
|
||||
kfld.parse_item(scan);
|
||||
}
|
||||
}
|
||||
ofstream out(tmp);
|
||||
TEdit_field & dfld = efield(F_DESC);
|
||||
|
||||
out << "US &ICO KEY 2\n";
|
||||
out << "IN S0 " << F_DESC << '\n';
|
||||
out << "DI \"Descrizione@60\" S0\n" << disp;
|
||||
out << "CO OU " << F_CODTAB1 << '\n';
|
||||
out << "EN" << '\n';
|
||||
out.close();
|
||||
TScanner scan(tmp);
|
||||
while (scan.pop() != "EN")
|
||||
dfld.parse_item(scan);
|
||||
}
|
||||
|
||||
TConti_mask::~TConti_mask()
|
||||
{
|
||||
}
|
||||
|
||||
// applicazione per la gestione delle tabelle di magazzino
|
||||
class Tab_app_teamsystem : public TTable_module_application
|
||||
class Tab_app_IPSOA : public TTable_module_application
|
||||
{
|
||||
|
||||
protected: // TRelation_application
|
||||
virtual bool user_create() ;
|
||||
|
||||
public:
|
||||
Tab_app_teamsystem() {}
|
||||
virtual ~Tab_app_teamsystem() {}
|
||||
Tab_app_IPSOA() {}
|
||||
virtual ~Tab_app_IPSOA() {}
|
||||
};
|
||||
|
||||
HIDDEN inline Tab_app_teamsystem& app() { return (Tab_app_teamsystem&)main_app(); }
|
||||
HIDDEN inline Tab_app_IPSOA& app() { return (Tab_app_IPSOA&)main_app(); }
|
||||
|
||||
|
||||
bool Tab_app_teamsystem::user_create()
|
||||
bool Tab_app_IPSOA::user_create()
|
||||
{
|
||||
/*
|
||||
la Tab_application::user_create() apre la maschera TMask in modo automatico
|
||||
@ -41,15 +131,18 @@ bool Tab_app_teamsystem::user_create()
|
||||
|
||||
if (ok)
|
||||
{
|
||||
//TMask& mask = *set_mask();
|
||||
}
|
||||
|
||||
TMask& mask = *get_mask(MODE_QUERY);
|
||||
TString name = mask.source_file(); name.lower();
|
||||
|
||||
if (name.find("ico") >= 0)
|
||||
set_mask(new TConti_mask(name));
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
int tc2100(int argc, char **argv)
|
||||
{
|
||||
Tab_app_teamsystem a;
|
||||
Tab_app_IPSOA a;
|
||||
a.run(argc, argv, TR("Tabella"));
|
||||
return 0;
|
||||
}
|
||||
|
@ -71,72 +71,58 @@ BEGIN
|
||||
FIELD IPRCAU
|
||||
END
|
||||
|
||||
//???
|
||||
NUMBER F_EMCAU 3
|
||||
BEGIN
|
||||
PROMPT 42 12 "Caus.TS movim.senza causale "
|
||||
USE &ICA
|
||||
INPUT CODTAB F_EMCAU
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@60" S0
|
||||
OUTPUT F_EMCAU CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "Z"
|
||||
FIELD IPREMCAU
|
||||
END
|
||||
|
||||
BOOLEAN F_RICLVALUTE
|
||||
BEGIN
|
||||
PROMPT 2 14 "Trascodifica valute"
|
||||
PROMPT 42 12 "Trascodifica valute"
|
||||
FIELD IPRVAL
|
||||
END
|
||||
|
||||
NUMBER F_LIVPC1 2
|
||||
BEGIN
|
||||
PROMPT 2 16 "Lunghezza livelli piano dei conti : 1 "
|
||||
PROMPT 2 14 "Lunghezza livelli piano dei conti : 1 "
|
||||
FIELD IPLIVPC[1]
|
||||
END
|
||||
|
||||
NUMBER F_LIVPC2 2
|
||||
BEGIN
|
||||
PROMPT 46 16 "2 "
|
||||
PROMPT 46 14 "2 "
|
||||
FIELD IPLIVPC[2]
|
||||
END
|
||||
|
||||
NUMBER F_LIVPC3 2
|
||||
BEGIN
|
||||
PROMPT 52 16 "3 "
|
||||
PROMPT 52 14 "3 "
|
||||
FIELD IPLIVPC[3]
|
||||
END
|
||||
|
||||
NUMBER F_LIVPC3 2
|
||||
NUMBER F_LIVPC4 2
|
||||
BEGIN
|
||||
PROMPT 58 16 "4 "
|
||||
PROMPT 58 14 "4 "
|
||||
FIELD IPLIVPC[4]
|
||||
END
|
||||
|
||||
NUMBER F_LIVPC5 2
|
||||
BEGIN
|
||||
PROMPT 64 16 "5 "
|
||||
PROMPT 64 14 "5 "
|
||||
FIELD IPLIVPC[5]
|
||||
END
|
||||
|
||||
NUMBER F_LIVPC6 2
|
||||
BEGIN
|
||||
PROMPT 70 16 "6 "
|
||||
PROMPT 70 14 "6 "
|
||||
FIELD IPLIVPC[6]
|
||||
END
|
||||
|
||||
BOOLEAN F_RIPRISTINO
|
||||
BEGIN
|
||||
PROMPT 2 18 "Ripristina alla data"
|
||||
PROMPT 2 16 "Ripristina alla data"
|
||||
MESSAGE FALSE DISABLE,F_ULTINVIO
|
||||
MESSAGE TRUE ENABLE,F_ULTINVIO
|
||||
END
|
||||
|
||||
DATE F_ULTINVIO
|
||||
BEGIN
|
||||
PROMPT 42 18 "Data ultimo invio "
|
||||
PROMPT 42 16 "Data ultimo invio "
|
||||
FIELD TSULTINV
|
||||
FLAGS "D"
|
||||
END
|
||||
|
375
tc/tc2600.cpp
375
tc/tc2600.cpp
@ -1,375 +0,0 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <progind.h>
|
||||
#include <reputils.h>
|
||||
#include <utility.h>
|
||||
#include <textset.h>
|
||||
#include <reprint.h>
|
||||
#include <scanner.h>
|
||||
|
||||
#include "tc2.h"
|
||||
#include "tc2600a.h"
|
||||
#include "tabmod.h"
|
||||
|
||||
///////////////////////////////////////////////
|
||||
//// CLASSI DERIVATE PER IMPORTAZIONE DATI ////
|
||||
///////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Recordset specifici per i dati da trasferire
|
||||
/////////////////////////////////////////////////////////////
|
||||
|
||||
//Piano dei conti
|
||||
class TImporta_pconto_recordset : public TCSV_recordset
|
||||
{
|
||||
public:
|
||||
TImporta_pconto_recordset(const char * fileName);
|
||||
};
|
||||
|
||||
TImporta_pconto_recordset::TImporta_pconto_recordset(const char * fileName)
|
||||
: TCSV_recordset("CSV(\"|\")")
|
||||
{
|
||||
load_file(fileName);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////
|
||||
//// DEFINIZIONE CLASSE TAutomask ////
|
||||
///////////////////////////////////////////////
|
||||
|
||||
class TImportaTS_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TImportaTS_mask();
|
||||
};
|
||||
|
||||
TImportaTS_mask::TImportaTS_mask() :TAutomask ("tc2600a")
|
||||
{
|
||||
}
|
||||
|
||||
bool TImportaTS_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||
{
|
||||
switch (f.dlg())
|
||||
{
|
||||
//giochetto per avere la lista dei files validi nella directory di trasferimento!
|
||||
case F_PCONTI:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"),
|
||||
"File@32");
|
||||
TFilename path = get(F_PATH);
|
||||
path.add("*.txt"); //files delle testate
|
||||
list_files(path, as.rows_array());
|
||||
TFilename name;
|
||||
FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
|
||||
{
|
||||
name = *row;
|
||||
*row = name.name();
|
||||
}
|
||||
if (as.run() == K_ENTER)
|
||||
{
|
||||
f.set(as.row(as.selected()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case F_CAUSALI:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"),
|
||||
"File@32");
|
||||
TFilename path = get(F_PATH);
|
||||
path.add("*.txt"); //files delle testate
|
||||
list_files(path, as.rows_array());
|
||||
TFilename name;
|
||||
FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
|
||||
{
|
||||
name = *row;
|
||||
*row = name.name();
|
||||
}
|
||||
if (as.run() == K_ENTER)
|
||||
{
|
||||
f.set(as.row(as.selected()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case F_CODIVA:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"),
|
||||
"File@32");
|
||||
TFilename path = get(F_PATH);
|
||||
path.add("*.txt"); //files delle testate
|
||||
list_files(path, as.rows_array());
|
||||
TFilename name;
|
||||
FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
|
||||
{
|
||||
name = *row;
|
||||
*row = name.name();
|
||||
}
|
||||
if (as.run() == K_ENTER)
|
||||
{
|
||||
f.set(as.row(as.selected()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
///////////////////////////////////////
|
||||
// TSkeleton_application
|
||||
///////////////////////////////////////
|
||||
class TDocTS : public TSkeleton_application
|
||||
{
|
||||
TImportaTS_mask* _msk;
|
||||
|
||||
protected:
|
||||
//metodi che fanno gli inserimenti sulle tabelle di campo
|
||||
void upload_pconti (const TFilename& file, TLog_report& log) const;
|
||||
void upload_causali(const TFilename& file, TLog_report& log) const;
|
||||
void upload_codiva (const TFilename& file, TLog_report& log) const;
|
||||
|
||||
public:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
bool transfer();
|
||||
|
||||
TDocTS() {};
|
||||
};
|
||||
|
||||
TDocTS& app() { return (TDocTS&) main_app(); }
|
||||
|
||||
//funzione che importa il piano dei conto sulla tabella corretta
|
||||
void TDocTS::upload_pconti (const TFilename& file, TLog_report& log) const
|
||||
{
|
||||
TImporta_pconto_recordset s(file); //crea un recordset con struttura predefinita come indicato nella classe opportuna
|
||||
TModule_table pconti("TCO");
|
||||
TProgind pi(s.items(),"Importazione Piano dei Conti in Corso...",true,true);
|
||||
|
||||
for (bool ok=s.move_first();ok;ok=s.move_next())
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
//salto le righe di testata del file
|
||||
//per farlo leggo il gruppo e controllo che sia numerico
|
||||
TString dconto = s.get(1).as_string();
|
||||
if (dconto.blank() || !isdigit(dconto[1]))
|
||||
continue;
|
||||
pconti.zero();
|
||||
|
||||
TString4 gr = dconto.left(2); //leggo il gruppo
|
||||
TString4 co = dconto.mid(3,2); //leggo il conto
|
||||
TString4 sc = dconto.mid(6,3); //leggo il sottoconto
|
||||
TString conto = gr; //leggo il gruppo
|
||||
TString desc = s.get(2).as_string(); //leggo la descrizione
|
||||
|
||||
conto << ((co.blank() || co == "**") ? "00" : co);
|
||||
conto << ((sc.blank() || sc == "***") ? "000" : sc);
|
||||
pconti.put("CODTAB", conto); //put del gruppo
|
||||
pconti.put("S0", desc); //put del conto
|
||||
|
||||
int err = pconti.write_rewrite(); //Tenta di aggiungere un record ma se esiste gia' lo aggiorna
|
||||
TString str = "Il Conto ";
|
||||
|
||||
str << conto;
|
||||
if (err == NOERR)
|
||||
{
|
||||
str << " è stato inserito";
|
||||
log.log(0,str);
|
||||
}
|
||||
else
|
||||
{
|
||||
str << " non è stato inserito, errore " << err;
|
||||
log.log(2,str);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void TDocTS::upload_causali(const TFilename& file, TLog_report& log) const
|
||||
{
|
||||
TScanner s(file); //legge il file che gli passo riga per riga
|
||||
TString curr = s.line();
|
||||
TModule_table causa("TCA");
|
||||
TProgind pi(fsize(file),"Importazione Causali in Corso...",true,true);
|
||||
|
||||
while (s.ok())
|
||||
{
|
||||
if (!pi.addstatus(s.tellg()))
|
||||
break;
|
||||
causa.zero();
|
||||
curr = s.line();
|
||||
|
||||
TString8 cod = curr.mid(1,6);
|
||||
TString desc = curr.mid(7,16);
|
||||
|
||||
//salto le righe di testata del file
|
||||
cod.trim();
|
||||
if (cod.blank() || !real::is_natural(cod))
|
||||
continue;
|
||||
cod.lpad(3, '0');
|
||||
if (cod.len() > 3)
|
||||
{
|
||||
TString errore = "ERRORE:";
|
||||
|
||||
errore <<" la causale con codice " << cod << " non può essere inserita (codice max 3 caratteri)";
|
||||
log.log(2,errore);
|
||||
}
|
||||
causa.put("CODTAB",cod);
|
||||
causa.put("S0",desc);
|
||||
|
||||
int err = causa.write_rewrite(); //Tenta di aggiungere un record ma se esiste gia' lo aggiorna
|
||||
TString str = "La Causale con codice ";
|
||||
|
||||
str << cod;
|
||||
if (err == NOERR)
|
||||
{
|
||||
str << " è stata inserita";
|
||||
log.log(0,str);
|
||||
}
|
||||
else
|
||||
{
|
||||
str << " non è stata inserita, errore " << err;
|
||||
log.log(2,str);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return;
|
||||
};
|
||||
|
||||
//funzione che importa i codici IVA sulla tabella corretta
|
||||
void TDocTS::upload_codiva(const TFilename& file, TLog_report& log) const
|
||||
{
|
||||
TScanner s(file); //crea un recordset con struttura predefinita come indicato nella classe opportuna
|
||||
TModule_table iva("TIV"); //instanzio l'ISAM file che lavota sulla tabella IVA
|
||||
TProgind pi(fsize(file),"Importazione Dati IVA in Corso...",true,true);
|
||||
|
||||
while(s.ok())
|
||||
{
|
||||
if (!pi.addstatus(s.tellg()))
|
||||
break;
|
||||
//salto le righe di testata del file
|
||||
iva.zero();
|
||||
|
||||
TString curr = s.line();
|
||||
TString8 cod = curr.mid(1,8);
|
||||
TString desc = curr.mid(9,18);
|
||||
|
||||
//salto le righe di testata del file
|
||||
cod.trim();
|
||||
if (cod.blank() || !real::is_natural(cod))
|
||||
continue;
|
||||
cod.lpad(3, '0');
|
||||
if (cod.len() > 3)
|
||||
{
|
||||
TString errore = "ERRORE:";
|
||||
|
||||
errore <<" i dati IVA con codice " << cod << " non possono essere inseriti (codice max 3 caratteri)";
|
||||
log.log(2,errore);
|
||||
}
|
||||
iva.put("CODTAB",cod);
|
||||
iva.put("S0",desc);
|
||||
|
||||
int err = iva.write_rewrite(); //Tenta di aggiungere un record ma se esiste gia' lo aggiorna
|
||||
|
||||
TString str = "I dati IVA con codice ";
|
||||
|
||||
str << cod;
|
||||
if (err == NOERR)
|
||||
{
|
||||
str << " sono stati inseriti";
|
||||
log.log(0,str);
|
||||
}
|
||||
else
|
||||
{
|
||||
str << " non sono stati inseriti, errore " << err;
|
||||
log.log(2,str);
|
||||
}
|
||||
}
|
||||
return;
|
||||
};
|
||||
|
||||
bool TDocTS::transfer()
|
||||
{
|
||||
TLog_report log("Importazione documenti da TeamSystem");
|
||||
|
||||
//prelevo il path dei file da caricare dalla maschera
|
||||
TFilename path = _msk->get(F_PATH);
|
||||
|
||||
const short ids [] = {F_PCONTI,F_CAUSALI,F_CODIVA,0};
|
||||
|
||||
//eseguo tutte le importazioni (una alla volta)
|
||||
for (int i = 0; ids[i]; i++)
|
||||
{
|
||||
//prelevo di volta in volta il nome del file giusto dalla maschera:
|
||||
//prima il file Anagrafiche, poi quello delle fatture e poi quello delle ricevute
|
||||
TFilename name = _msk->get(ids[i]);
|
||||
|
||||
//se sono riuscito a prelevare un nome di file, allora:
|
||||
if (name.full())
|
||||
{
|
||||
//costruisco il nome del file
|
||||
TFilename full = path;
|
||||
full.add(name);
|
||||
|
||||
//se eiste il file, esegui l'elaborazione corretta
|
||||
if (full.exist())
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 0: upload_pconti (full, log); break;
|
||||
case 1: upload_causali(full, log); break;
|
||||
case 2: upload_codiva (full, log); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TReport_book buc;
|
||||
|
||||
buc.add(log);
|
||||
if (buc.pages()>0)
|
||||
buc.preview(); //visualizzo il log di importazione dei documenti
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TDocTS::create()
|
||||
{
|
||||
_msk = new TImportaTS_mask();
|
||||
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TDocTS::destroy()
|
||||
{
|
||||
delete _msk;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
void TDocTS::main_loop()
|
||||
{
|
||||
KEY tasto;
|
||||
tasto = _msk->run();
|
||||
if (tasto == K_ENTER)
|
||||
{
|
||||
if (transfer())
|
||||
{
|
||||
message_box(TR("Importazione documenti completata"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int tc2600 (int argc, char* argv[])
|
||||
{
|
||||
TDocTS main_app;
|
||||
main_app.run(argc, argv, TR("Importazione Tabelle"));
|
||||
return true;
|
||||
}
|
@ -1,83 +0,0 @@
|
||||
#include "tc2600a.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_ELABORA 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -11 "~Elabora"
|
||||
PICTURE BMP_ELABORA
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "" 0 -2 0 2
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 9 0 "Profilo "
|
||||
PSELECT
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Importazione dati da TeamSystem" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 76 3
|
||||
BEGIN
|
||||
PROMPT 2 1 "@bDitta corrente"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 2 "Codice "
|
||||
FLAGS "FD"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 23 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 76 6
|
||||
BEGIN
|
||||
PROMPT 2 4 "@bSorgente"
|
||||
END
|
||||
|
||||
STRING F_PATH 256 50
|
||||
BEGIN
|
||||
PROMPT 3 5 "Cartella "
|
||||
DSELECT
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD FileInPath
|
||||
END
|
||||
|
||||
STRING F_PCONTI 25
|
||||
BEGIN
|
||||
PROMPT 3 6 "Piano dei Conti "
|
||||
FIELD PCONTI
|
||||
END
|
||||
|
||||
STRING F_CAUSALI 25
|
||||
BEGIN
|
||||
PROMPT 3 7 "Causali "
|
||||
FIELD CAUSALI
|
||||
END
|
||||
|
||||
STRING F_CODIVA 25
|
||||
BEGIN
|
||||
PROMPT 3 8 "Codici IVA "
|
||||
FIELD CODIVA
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
@ -22,7 +22,7 @@
|
||||
#include "../cg/cglib01.h"
|
||||
#include "../cg/cg2103.h"
|
||||
|
||||
bool TTS_mask::apply_filter(const TRecordset& righe) const
|
||||
bool TIP_mask::apply_filter(const TRecordset& righe) const
|
||||
{
|
||||
const TDate dal = get(F_DATA_DA);
|
||||
const TDate al = get(F_DATA_AL);
|
||||
@ -35,7 +35,7 @@ bool TTS_mask::apply_filter(const TRecordset& righe) const
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TTS_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
bool TIP_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
bool ok = true;
|
||||
switch (o.dlg())
|
||||
@ -49,7 +49,7 @@ bool TTS_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
return ok;
|
||||
}
|
||||
|
||||
void TTS_mask::serialize(bool bSave)
|
||||
void TIP_mask::serialize(bool bSave)
|
||||
{
|
||||
const char* defpar = "tc";
|
||||
TConfig ini(CONFIG_DITTA, defpar);
|
||||
@ -67,24 +67,24 @@ void TTS_mask::serialize(bool bSave)
|
||||
}
|
||||
}
|
||||
|
||||
TTS_mask::TTS_mask(const char * maskname)
|
||||
TIP_mask::TIP_mask(const char * maskname)
|
||||
: TAutomask(maskname), _updating(false), _next_update(0)
|
||||
{
|
||||
serialize(false);
|
||||
}
|
||||
|
||||
TTS_mask::~TTS_mask()
|
||||
TIP_mask::~TIP_mask()
|
||||
{
|
||||
serialize(true);
|
||||
}
|
||||
|
||||
bool TTS_campo_sender::destroy()
|
||||
bool TIP_campo_sender::destroy()
|
||||
{
|
||||
delete _mask;
|
||||
return TTS_sender::destroy();
|
||||
return TIP_sender::destroy();
|
||||
}
|
||||
|
||||
TRecordset & TTS_campo_sender::movrecset()
|
||||
TRecordset & TIP_campo_sender::movrecset()
|
||||
{
|
||||
const TMask & m = get_mask();
|
||||
const TDate from = m.get_date(F_DATA_DA);
|
||||
@ -105,7 +105,7 @@ TRecordset & TTS_campo_sender::movrecset()
|
||||
return *mov;
|
||||
}
|
||||
|
||||
TRecordset & TTS_campo_sender::rmovrecset(const TRecordset & mov)
|
||||
TRecordset & TIP_campo_sender::rmovrecset(const TRecordset & mov)
|
||||
{
|
||||
TRecordset * rmov = get_recset(LF_RMOV);
|
||||
|
||||
@ -119,7 +119,7 @@ TRecordset & TTS_campo_sender::rmovrecset(const TRecordset & mov)
|
||||
return *rmov;
|
||||
}
|
||||
|
||||
TRecordset & TTS_campo_sender::rivarecset(const TRecordset & mov)
|
||||
TRecordset & TIP_campo_sender::rivarecset(const TRecordset & mov)
|
||||
{
|
||||
TRecordset * rmoviva = get_recset(LF_RMOVIVA);
|
||||
|
||||
@ -133,7 +133,7 @@ TRecordset & TTS_campo_sender::rivarecset(const TRecordset & mov)
|
||||
return *rmoviva;
|
||||
}
|
||||
|
||||
const TRecordset& TTS_campo_sender::clirecset(const char tipocf, const long codcf)
|
||||
const TRecordset& TIP_campo_sender::clirecset(const char tipocf, const long codcf)
|
||||
{
|
||||
TRecordset * clifo = get_recset(LF_CLIFO);
|
||||
|
||||
@ -148,7 +148,7 @@ const TRecordset& TTS_campo_sender::clirecset(const char tipocf, const long codc
|
||||
return *clifo;
|
||||
}
|
||||
|
||||
bool TTS_campo_sender::test_swap(const TRecordset& mov)
|
||||
bool TIP_campo_sender::test_swap(const TRecordset& mov)
|
||||
{
|
||||
TRecordset & rmov = rmovrecset(mov);
|
||||
const int anno = mov.get(MOV_ANNOIVA).as_int();
|
||||
@ -160,7 +160,7 @@ bool TTS_campo_sender::test_swap(const TRecordset& mov)
|
||||
return s;
|
||||
}
|
||||
|
||||
bool TTS_campo_sender::swap_ritsoc(const TRecordset& mov)
|
||||
bool TIP_campo_sender::swap_ritsoc(const TRecordset& mov)
|
||||
{
|
||||
TRecordset & rmov = rmovrecset(mov);
|
||||
bool ok = rmov.move_first();
|
||||
@ -182,21 +182,21 @@ bool TTS_campo_sender::swap_ritsoc(const TRecordset& mov)
|
||||
return s;
|
||||
}
|
||||
|
||||
bool TTS_campo_sender::mov_regolarizzazione(const TRecordset& mov)
|
||||
bool TIP_campo_sender::mov_regolarizzazione(const TRecordset& mov)
|
||||
{
|
||||
const TString& codcaus = mov.get(MOV_CODCAUS).as_string();
|
||||
|
||||
return _caus_regolarizzazione.objptr(codcaus) != NULL;
|
||||
}
|
||||
|
||||
bool TTS_campo_sender::mov_intra(const TRecordset& mov)
|
||||
bool TIP_campo_sender::mov_intra(const TRecordset& mov)
|
||||
{
|
||||
const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
|
||||
|
||||
return caus.get_bool(CAU_INTRACOM);
|
||||
}
|
||||
|
||||
bool TTS_campo_sender::mov_reverse_charge(const TRecordset& mov)
|
||||
bool TIP_campo_sender::mov_reverse_charge(const TRecordset& mov)
|
||||
{
|
||||
const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
|
||||
const int regsp = caus.get_int(CAU_REGSPIVA);
|
||||
@ -204,7 +204,7 @@ bool TTS_campo_sender::mov_reverse_charge(const TRecordset& mov)
|
||||
return regsp == 13 || regsp == 50 || regsp == 51;
|
||||
}
|
||||
|
||||
bool TTS_campo_sender::regime_agricolo(const TRecordset& mov) const
|
||||
bool TIP_campo_sender::regime_agricolo(const TRecordset& mov) const
|
||||
{
|
||||
TToken_string key;
|
||||
|
||||
@ -219,11 +219,11 @@ bool TTS_campo_sender::regime_agricolo(const TRecordset& mov) const
|
||||
return attiv.get_bool(ATT_REGAGR);
|
||||
}
|
||||
|
||||
TMask & TTS_campo_sender::get_mask()
|
||||
TMask & TIP_campo_sender::get_mask()
|
||||
{
|
||||
if (_mask == NULL)
|
||||
{
|
||||
_mask = new TTS_mask(mask_name());
|
||||
_mask = new TIP_mask(mask_name());
|
||||
TDate to(TODAY);
|
||||
TConfig configtc(CONFIG_DITTA, "tc");
|
||||
const TDate from(configtc.get("TSULTINV"));
|
||||
@ -243,7 +243,7 @@ TMask & TTS_campo_sender::get_mask()
|
||||
return * _mask;
|
||||
}
|
||||
|
||||
bool TTS_campo_sender::find_regolarizzazione(TRecordset& mov)
|
||||
bool TIP_campo_sender::find_regolarizzazione(TRecordset& mov)
|
||||
{
|
||||
bool found = false;
|
||||
|
||||
@ -299,21 +299,21 @@ bool TTS_campo_sender::find_regolarizzazione(TRecordset& mov)
|
||||
return found;
|
||||
}
|
||||
|
||||
long TTS_campo_sender::iva11_reverse(const TRecordset & mov)
|
||||
long TIP_campo_sender::iva11_reverse(const TRecordset & mov)
|
||||
{
|
||||
const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
|
||||
|
||||
return caus.get_int(CAU_REGSPIVA);
|
||||
}
|
||||
|
||||
const char * TTS_campo_sender::decode_causale(const TRecordset& mov)
|
||||
const char * TIP_campo_sender::decode_causale(const TRecordset& mov)
|
||||
{
|
||||
const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
|
||||
|
||||
return caus.get(CAU_DESCR);
|
||||
}
|
||||
|
||||
void TTS_campo_sender::postprocess_movs(TRecordset & mov)
|
||||
void TIP_campo_sender::postprocess_movs(TRecordset & mov)
|
||||
{
|
||||
if (yesno_box(TR("Confermare il traferimento")))
|
||||
{
|
||||
@ -358,7 +358,7 @@ bool search_reg(const TRelation& rel, void* pJolly)
|
||||
}
|
||||
|
||||
|
||||
bool TTS_campo_sender::create()
|
||||
bool TIP_campo_sender::create()
|
||||
{
|
||||
TRelation rel(LF_CAUSALI);
|
||||
TCursor c(&rel);
|
||||
@ -382,12 +382,12 @@ bool TTS_campo_sender::create()
|
||||
if (big_cli_code)
|
||||
riclassifica().add("TSNOHCLI", EMPTY_STRING);
|
||||
|
||||
return ok && TTS_sender::create();
|
||||
return ok && TIP_sender::create();
|
||||
}
|
||||
|
||||
int tc2700(int argc, char* argv[])
|
||||
{
|
||||
TTS_campo_sender app;
|
||||
app.run(argc, argv, TR("Invio a TeamSystem"));
|
||||
TIP_campo_sender app;
|
||||
app.run(argc, argv, TR("Invio a IPSOA"));
|
||||
return 0;
|
||||
}
|
||||
|
63
tc/tc2700.h
Executable file
63
tc/tc2700.h
Executable file
@ -0,0 +1,63 @@
|
||||
#include <automask.h>
|
||||
#include "tc2701.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TIP_mask
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TIP_mask : public TAutomask
|
||||
{
|
||||
clock_t _next_update;
|
||||
bool _updating;
|
||||
|
||||
private:
|
||||
bool apply_filter(const TRecordset& righe) const;
|
||||
void serialize(bool bSave);
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TIP_mask(const char * maskname);
|
||||
~TIP_mask();
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TIP_campo_sender
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TIP_campo_sender : public TIP_sender
|
||||
{
|
||||
TIP_mask * _mask;
|
||||
TAssoc_array _caus_regolarizzazione;
|
||||
|
||||
protected:
|
||||
virtual TRecordset & movrecset();
|
||||
virtual TRecordset & rmovrecset(const TRecordset & mov);
|
||||
virtual TRecordset & rivarecset(const TRecordset & mov);
|
||||
virtual const TRecordset & clirecset(const char tipocf, const long codcf);
|
||||
virtual TMask & get_mask();
|
||||
virtual const char * mask_name() const {return "tc0700a"; }
|
||||
|
||||
protected:
|
||||
virtual bool find_regolarizzazione(TRecordset& mov);
|
||||
virtual const char * decode_causale(const TRecordset& mov);
|
||||
virtual bool test_swap(const TRecordset& mov);
|
||||
virtual bool swap_ritsoc(const TRecordset& mov);
|
||||
virtual bool mov_regolarizzazione(const TRecordset& mov);
|
||||
virtual bool mov_intra(const TRecordset& mov);
|
||||
virtual bool mov_reverse_charge(const TRecordset& mov);
|
||||
virtual long iva11_reverse(const TRecordset & mov);
|
||||
virtual bool regime_agricolo(const TRecordset& mov) const;
|
||||
|
||||
|
||||
public:
|
||||
virtual void postprocess_movs(TRecordset & mov);
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
|
||||
TIP_campo_sender() : TIP_sender(), _mask(NULL) {}
|
||||
~TIP_campo_sender() {}
|
||||
};
|
||||
|
||||
|
10
tc/tc2700a.h
Executable file
10
tc/tc2700a.h
Executable file
@ -0,0 +1,10 @@
|
||||
// invio dati ad altra procedura (teamsystem)
|
||||
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_MOVIMENTI 103
|
||||
#define F_INTRASTAT 104
|
||||
#define F_PATH 105
|
||||
#define F_FILE 106
|
||||
#define F_DATA_DA 107
|
||||
#define F_DATA_AL 108
|
@ -25,7 +25,7 @@
|
||||
|
||||
HIDDEN const char* const __tiporicconti = "TSCONTI";
|
||||
|
||||
TObject* TTSRiclassifica_cache::key2obj(const char* key)
|
||||
TObject* TIPRiclassifica_cache::key2obj(const char* key)
|
||||
{
|
||||
TToken_string tok(key);
|
||||
TString8 tab, cod;
|
||||
@ -39,7 +39,7 @@ TObject* TTSRiclassifica_cache::key2obj(const char* key)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
long TTSRiclassifica_cache::decode(const char* tab, const TString& cod)
|
||||
long TIPRiclassifica_cache::decode(const char* tab, const TString& cod)
|
||||
{
|
||||
TToken_string tok;
|
||||
tok.add(tab);
|
||||
@ -48,7 +48,7 @@ long TTSRiclassifica_cache::decode(const char* tab, const TString& cod)
|
||||
return (ric ? atol(*ric) : 0);
|
||||
}
|
||||
|
||||
const char * TTSRiclassifica_cache::sdecode(const char* tab, const TString& cod)
|
||||
const char * TIPRiclassifica_cache::sdecode(const char* tab, const TString& cod)
|
||||
{
|
||||
TToken_string tok;
|
||||
tok.add(tab);
|
||||
@ -85,13 +85,13 @@ const long TSbill2ricl(char & t, int gr, int co, long so)
|
||||
return codricl;
|
||||
}
|
||||
|
||||
TTS_sender& app() { return (TTS_sender&)main_app(); }
|
||||
TIP_sender& app() { return (TIP_sender&)main_app(); }
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TTS_textset
|
||||
// TIP_textset
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TTS_textset : public TAS400_recordset
|
||||
class TIP_textset : public TAS400_recordset
|
||||
{
|
||||
TAssoc_array _contatori;
|
||||
|
||||
@ -107,7 +107,7 @@ public:
|
||||
virtual const TString& rec_type(TRecnotype r = -1) const;
|
||||
virtual bool set(const char* field, const TVariant& v);
|
||||
|
||||
TTS_textset(const char* query = "");
|
||||
TIP_textset(const char* query = "");
|
||||
};
|
||||
|
||||
class TIVA_item : public TObject
|
||||
@ -132,7 +132,7 @@ public:
|
||||
virtual ~TIVA_item() {}
|
||||
};
|
||||
|
||||
long TTS_textset::add_count(const char* tipo, long i)
|
||||
long TIP_textset::add_count(const char* tipo, long i)
|
||||
{
|
||||
CHECK(strlen(tipo) == 1, "Tipo record non valido");
|
||||
real* n = (real*)_contatori.objptr(tipo);
|
||||
@ -145,13 +145,13 @@ long TTS_textset::add_count(const char* tipo, long i)
|
||||
return n->integer();
|
||||
}
|
||||
|
||||
const TString& TTS_textset::rec_type(TRecnotype r) const
|
||||
const TString& TIP_textset::rec_type(TRecnotype r) const
|
||||
{
|
||||
const TString& t = TAS400_recordset::rec_type(r);
|
||||
return t;
|
||||
}
|
||||
|
||||
bool TTS_textset::destroy(TRecnotype r)
|
||||
bool TIP_textset::destroy(TRecnotype r)
|
||||
{
|
||||
bool ok;
|
||||
if (r >= 0)
|
||||
@ -171,7 +171,7 @@ bool TTS_textset::destroy(TRecnotype r)
|
||||
return ok;
|
||||
}
|
||||
|
||||
void TTS_textset::add_field(const char* trc, const char* name, int len,
|
||||
void TIP_textset::add_field(const char* trc, const char* name, int len,
|
||||
char tipo, int from, const char* def)
|
||||
{
|
||||
const bool required = false;
|
||||
@ -190,7 +190,7 @@ void TTS_textset::add_field(const char* trc, const char* name, int len,
|
||||
create_field(fname, pos, len, t, required);
|
||||
}
|
||||
|
||||
bool TTS_textset::set(const char* field, const TVariant& var)
|
||||
bool TIP_textset::set(const char* field, const TVariant& var)
|
||||
{
|
||||
const char* err = NULL;
|
||||
int c = -1;
|
||||
@ -242,7 +242,7 @@ bool TTS_textset::set(const char* field, const TVariant& var)
|
||||
return ok;
|
||||
}
|
||||
|
||||
TTS_textset::TTS_textset(const char* query)
|
||||
TIP_textset::TIP_textset(const char* query)
|
||||
: TAS400_recordset(TString("AS400(7001,1,6)\n") << query)
|
||||
{
|
||||
const char an = 'a';
|
||||
@ -529,10 +529,10 @@ TTS_textset::TTS_textset(const char* query)
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TTS_sender
|
||||
// TIP_sender
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
const TString & TTS_sender::descr2agg(const char* d)
|
||||
const TString & TIP_sender::descr2agg(const char* d)
|
||||
{
|
||||
TString & descr = get_tmp_string(128);
|
||||
|
||||
@ -550,13 +550,13 @@ const TString & TTS_sender::descr2agg(const char* d)
|
||||
return descr;
|
||||
}
|
||||
|
||||
bool TTS_sender::new_rec(const char* t)
|
||||
bool TIP_sender::new_rec(const char* t)
|
||||
{
|
||||
CHECK(t && *t, "Tipo non valido");
|
||||
return _tsfile->new_rec(t) >= 0;
|
||||
}
|
||||
|
||||
void TTS_sender::log(int sev, const char* msg)
|
||||
void TIP_sender::log(int sev, const char* msg)
|
||||
{
|
||||
if (_log != NULL)
|
||||
{
|
||||
@ -572,24 +572,24 @@ void TTS_sender::log(int sev, const char* msg)
|
||||
}
|
||||
}
|
||||
|
||||
void TTS_sender::set(const char* field, const TVariant& var)
|
||||
void TIP_sender::set(const char* field, const TVariant& var)
|
||||
{
|
||||
_tsfile->set(field, var);
|
||||
}
|
||||
|
||||
const TVariant& TTS_sender::get(const char* field)
|
||||
const TVariant& TIP_sender::get(const char* field)
|
||||
{
|
||||
return _tsfile->get(field);
|
||||
}
|
||||
|
||||
|
||||
void TTS_sender::remove_last()
|
||||
void TIP_sender::remove_last()
|
||||
{
|
||||
_tsfile->destroy(_tsfile->last());
|
||||
_tsfile->move_last();
|
||||
}
|
||||
|
||||
bool TTS_sender::add_optional_rec(TRecordset& mov, bool rec_to_add)
|
||||
bool TIP_sender::add_optional_rec(TRecordset& mov, bool rec_to_add)
|
||||
{
|
||||
if (rec_to_add)
|
||||
{
|
||||
@ -599,7 +599,7 @@ bool TTS_sender::add_optional_rec(TRecordset& mov, bool rec_to_add)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool TTS_sender::add_regol(TRecordset& mov, bool rec_to_add)
|
||||
bool TIP_sender::add_regol(TRecordset& mov, bool rec_to_add)
|
||||
{
|
||||
rec_to_add = add_optional_rec(mov, rec_to_add);
|
||||
|
||||
@ -644,7 +644,7 @@ bool TTS_sender::add_regol(TRecordset& mov, bool rec_to_add)
|
||||
return rec_to_add;
|
||||
}
|
||||
|
||||
void TTS_sender::add_ulteriori(TRecordset& mov)
|
||||
void TIP_sender::add_ulteriori(TRecordset& mov)
|
||||
{
|
||||
bool rec_to_add = true;
|
||||
|
||||
@ -652,11 +652,11 @@ void TTS_sender::add_ulteriori(TRecordset& mov)
|
||||
add_regol(mov, rec_to_add);
|
||||
}
|
||||
|
||||
void TTS_sender::add_ratei_risconti(const TRecordset& mov)
|
||||
void TIP_sender::add_ratei_risconti(const TRecordset& mov)
|
||||
{
|
||||
}
|
||||
|
||||
const TString & TTS_sender::dittamulti(const TRecordset& mov) const
|
||||
const TString & TIP_sender::dittamulti(const TRecordset& mov) const
|
||||
{
|
||||
if (multi_activity())
|
||||
{
|
||||
@ -678,7 +678,7 @@ const TString & TTS_sender::dittamulti(const TRecordset& mov) const
|
||||
return _dittamulti;
|
||||
}
|
||||
|
||||
void TTS_sender::add_new_rec(const TRecordset& mov)
|
||||
void TIP_sender::add_new_rec(const TRecordset& mov)
|
||||
{
|
||||
set("TRF-80-SEGUENTE", "S");
|
||||
if (new_rec("0"))
|
||||
@ -688,7 +688,7 @@ void TTS_sender::add_new_rec(const TRecordset& mov)
|
||||
}
|
||||
}
|
||||
|
||||
void TTS_sender::add_diversi(const TRecordset& mov, const bool moviva)
|
||||
void TIP_sender::add_diversi(const TRecordset& mov, const bool moviva)
|
||||
{
|
||||
const bool vendite = mov.get(MOV_TIPO).as_string()[0] != 'F';
|
||||
const TString16 codice = scod2ricl("TSREG", mov.get(MOV_REG));
|
||||
@ -865,7 +865,7 @@ void TTS_sender::add_diversi(const TRecordset& mov, const bool moviva)
|
||||
}
|
||||
}
|
||||
|
||||
void TTS_sender::add_conti_ricavo_costo(const TRecordset& mov)
|
||||
void TIP_sender::add_conti_ricavo_costo(const TRecordset& mov)
|
||||
{
|
||||
TRecordset & rmov = rmovrecset(mov);
|
||||
|
||||
@ -945,7 +945,7 @@ void TTS_sender::add_conti_ricavo_costo(const TRecordset& mov)
|
||||
}
|
||||
}
|
||||
|
||||
void TTS_sender::add_tot_fattura(const TRecordset& mov)
|
||||
void TIP_sender::add_tot_fattura(const TRecordset& mov)
|
||||
{
|
||||
const bool vendite = mov.get(MOV_TIPO).as_string()[0] != 'F';
|
||||
real totdoc = mov.get(MOV_TOTDOC).as_real();
|
||||
@ -970,7 +970,7 @@ void TTS_sender::add_tot_fattura(const TRecordset& mov)
|
||||
_rit_acc = ZERO;
|
||||
}
|
||||
|
||||
void TTS_sender::add_datiiva(const TRecordset& mov)
|
||||
void TIP_sender::add_datiiva(const TRecordset& mov)
|
||||
{
|
||||
TRecordset & rmoviva = rivarecset(mov);
|
||||
TString16 codice = scod2ricl("TSREG", mov.get(MOV_REG));
|
||||
@ -1058,7 +1058,7 @@ void TTS_sender::add_datiiva(const TRecordset& mov)
|
||||
}
|
||||
}
|
||||
|
||||
void TTS_sender::add_header(const TRecordset& mov, const bool fullhesd)
|
||||
void TIP_sender::add_header(const TRecordset& mov, const bool fullhesd)
|
||||
{
|
||||
const bool moviva = !mov.get(MOV_REG).is_empty();
|
||||
const TString8 src_caus(mov.get(MOV_CODCAUS).as_string());
|
||||
@ -1121,7 +1121,7 @@ void TTS_sender::add_header(const TRecordset& mov, const bool fullhesd)
|
||||
}
|
||||
}
|
||||
|
||||
void TTS_sender::get_citta_provincia(const TRecordset& cli, TString & dencom, TString & provcom, bool nascita)
|
||||
void TIP_sender::get_citta_provincia(const TRecordset& cli, TString & dencom, TString & provcom, bool nascita)
|
||||
{
|
||||
TString16 key;
|
||||
|
||||
@ -1158,7 +1158,7 @@ void TTS_sender::get_citta_provincia(const TRecordset& cli, TString & dencom, TS
|
||||
}
|
||||
}
|
||||
|
||||
void TTS_sender::add_clifor(char tipocf, long codcf)
|
||||
void TIP_sender::add_clifor(char tipocf, long codcf)
|
||||
{
|
||||
// dati clienti/fornitore
|
||||
if (codcf != 0)
|
||||
@ -1256,7 +1256,7 @@ void TTS_sender::add_clifor(char tipocf, long codcf)
|
||||
}
|
||||
}
|
||||
|
||||
void TTS_sender::add_mov(TRecordset& mov)
|
||||
void TIP_sender::add_mov(TRecordset& mov)
|
||||
{
|
||||
TString msg; msg << TR("Registrazione n.") << ' ' << mov.get(MOV_NUMREG);
|
||||
log(0, msg);
|
||||
@ -1282,7 +1282,7 @@ void TTS_sender::add_mov(TRecordset& mov)
|
||||
}
|
||||
}
|
||||
|
||||
const long TTS_sender::bill2ricl(char & t, int gr, int co, long so, const bool header_cli)
|
||||
const long TIP_sender::bill2ricl(char & t, int gr, int co, long so, const bool header_cli)
|
||||
{
|
||||
long codricl = 0;
|
||||
if (gr > 0)
|
||||
@ -1339,7 +1339,7 @@ const long TTS_sender::bill2ricl(char & t, int gr, int co, long so, const bool h
|
||||
return codricl;
|
||||
}
|
||||
|
||||
const TString & TTS_sender::scod2ricl(const char* tab, const TString& cod)
|
||||
const TString & TIP_sender::scod2ricl(const char* tab, const TString& cod)
|
||||
{
|
||||
TString & codricl = get_tmp_string();
|
||||
if (cod.full())
|
||||
@ -1364,12 +1364,12 @@ const TString & TTS_sender::scod2ricl(const char* tab, const TString& cod)
|
||||
return codricl;
|
||||
}
|
||||
|
||||
const TString & TTS_sender::scod2ricl(const char* tab, const TVariant& cod)
|
||||
const TString & TIP_sender::scod2ricl(const char* tab, const TVariant& cod)
|
||||
{
|
||||
return scod2ricl(tab, cod.as_string());
|
||||
}
|
||||
|
||||
const long TTS_sender::cod2ricl(const char* tab, const TString& cod)
|
||||
const long TIP_sender::cod2ricl(const char* tab, const TString& cod)
|
||||
{
|
||||
long codricl = 0;
|
||||
if (cod.full())
|
||||
@ -1399,12 +1399,12 @@ const long TTS_sender::cod2ricl(const char* tab, const TString& cod)
|
||||
return codricl;
|
||||
}
|
||||
|
||||
const long TTS_sender::cod2ricl(const char* tab, const TVariant& cod)
|
||||
const long TIP_sender::cod2ricl(const char* tab, const TVariant& cod)
|
||||
{
|
||||
return cod2ricl(tab, cod.as_string());
|
||||
}
|
||||
|
||||
void TTS_sender::set_parameters()
|
||||
void TIP_sender::set_parameters()
|
||||
{
|
||||
TConfig configtc(CONFIG_DITTA, "tc");
|
||||
|
||||
@ -1465,26 +1465,26 @@ void TTS_sender::set_parameters()
|
||||
}
|
||||
}
|
||||
|
||||
bool TTS_sender::create()
|
||||
bool TIP_sender::create()
|
||||
{
|
||||
_tabelle = new TTSRiclassifica_cache;
|
||||
_tabelle = new TIPRiclassifica_cache;
|
||||
set_parameters();
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TTS_sender::destroy()
|
||||
bool TIP_sender::destroy()
|
||||
{
|
||||
delete _tabelle;
|
||||
return TSkeleton_application::destroy();
|
||||
}
|
||||
|
||||
void TTS_sender::main_loop()
|
||||
void TIP_sender::main_loop()
|
||||
{
|
||||
TMask & m = get_mask();
|
||||
while (m.run() != K_QUIT)
|
||||
{
|
||||
const char* const title = TR("Invio a TeamSystem");
|
||||
_tsfile = new TTS_textset;
|
||||
_tsfile = new TIP_textset;
|
||||
_log = new TLog_report(title);
|
||||
_errors_logged = false;
|
||||
|
||||
|
114
tc/tc2701.h
Executable file
114
tc/tc2701.h
Executable file
@ -0,0 +1,114 @@
|
||||
#include <applicat.h>
|
||||
#include <recarray.h>
|
||||
#include <relation.h>
|
||||
#include <reputils.h>
|
||||
#include <textset.h>
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TRiclassifica_cache
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TIPRiclassifica_cache : public TCache
|
||||
{
|
||||
TLocalisamfile _multirel;
|
||||
protected:
|
||||
virtual TObject* key2obj(const char* key);
|
||||
public:
|
||||
const char * sdecode(const char* tab, const TString& cod);
|
||||
long decode(const char* tab, const TString& cod);
|
||||
TIPRiclassifica_cache() : _multirel(LF_MULTIREL) { _multirel.setkey(2);}
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TIP_sender
|
||||
///////////////////////////////////////////////////////////
|
||||
const long TSbill2ricl(char & t, int gr, int co, long so);
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TIP_sender
|
||||
///////////////////////////////////////////////////////////
|
||||
class TIP_textset;
|
||||
|
||||
class TIP_sender : public TSkeleton_application
|
||||
{
|
||||
TIPRiclassifica_cache* _tabelle;
|
||||
TAssoc_array _riclassifica;
|
||||
TIP_textset* _tsfile;
|
||||
TLog_report* _log;
|
||||
bool _errors_logged;
|
||||
TString8 _dittamulti;
|
||||
TAssoc_array _dittemulti;
|
||||
long _empty_caus;
|
||||
TArray _recsets;
|
||||
TAssoc_array _iva;
|
||||
TAssoc_array _contiiva;
|
||||
TAssoc_array _contirit;
|
||||
bool _professionista;
|
||||
bool _ventilazione;
|
||||
real _rit_acc;
|
||||
|
||||
protected:
|
||||
TRecordset * get_recset(const int logicnum) const { return (TRecordset *) _recsets.objptr(logicnum);}
|
||||
TRecordset * set_recset(const int logicnum, TRecordset * r) { _recsets.add(r, logicnum); return r;}
|
||||
TArray & recsets() { return _recsets;}
|
||||
const TString & descr2agg(const char* d);
|
||||
bool new_rec(const char* t);
|
||||
void remove_last();
|
||||
void set(const char* field, const TVariant& var);
|
||||
void set(const char* field, const TString & str) { set(field, TVariant(str)); }
|
||||
void set(const char* field, const int n) { set(field, TVariant((long)n)); }
|
||||
void set(const char* field, const char* s) { set(field, TVariant(s)); }
|
||||
void set(const char* field, const TDate& d) { set(field, TVariant(d)); }
|
||||
void set(const char* field, const real& v) { set(field, TVariant(v)); }
|
||||
|
||||
const TVariant& get(const char* field);
|
||||
void add_mov(TRecordset& mov);
|
||||
void add_clifor(char tipocf, long codcf);
|
||||
void add_header(const TRecordset& mov, const bool fullhead = true);
|
||||
void add_datiiva(const TRecordset& mov);
|
||||
void add_tot_fattura(const TRecordset& mov);
|
||||
void add_conti_ricavo_costo(const TRecordset& mov);
|
||||
void add_new_rec(const TRecordset& mov);
|
||||
void add_diversi(const TRecordset& mov, const bool moviva);
|
||||
void add_ratei_risconti(const TRecordset& mov);
|
||||
void add_ulteriori(TRecordset& mov);
|
||||
bool add_regol(TRecordset& mov, bool rec_to_add);
|
||||
bool add_optional_rec(TRecordset& mov, bool rec_to_add);
|
||||
const TString & scod2ricl(const char* tab, const TString& cod);
|
||||
const TString & scod2ricl(const char* tab, const TVariant& cod);
|
||||
const long cod2ricl(const char* tab, const TString& cod);
|
||||
const long cod2ricl(const char* tab, const TVariant& cod);
|
||||
const long bill2ricl(char & t, int gr, int co, long so, const bool header_cli = true);
|
||||
|
||||
virtual void get_citta_provincia(const TRecordset& cli, TString & dencom, TString & provcom, bool nascita = false);
|
||||
virtual const char * decode_causale(const TRecordset& mov) { return EMPTY_STRING; }
|
||||
virtual bool test_swap(const TRecordset& mov) { return false;}
|
||||
virtual bool swap_ritsoc(const TRecordset& mov) { return false;}
|
||||
virtual bool mov_regolarizzazione(const TRecordset& mov) { return false;}
|
||||
virtual bool mov_intra(const TRecordset& mov) { return false;}
|
||||
virtual bool mov_reverse_charge(const TRecordset& mov) { return false;}
|
||||
virtual long iva11_reverse(const TRecordset & mov) { return 0L;}
|
||||
bool add_iva_to_mov(const TRecordset& mov) { return mov_intra(mov) || mov_reverse_charge(mov);}
|
||||
|
||||
protected:
|
||||
virtual bool find_regolarizzazione(TRecordset& mov) {return false;}
|
||||
virtual TRecordset & movrecset() pure;
|
||||
virtual TRecordset & rmovrecset(const TRecordset & mov) pure;
|
||||
virtual TRecordset & rivarecset(const TRecordset & mov) pure;
|
||||
virtual const TRecordset & clirecset(const char tipocf, const long codcf) pure;
|
||||
virtual bool regime_agricolo(const TRecordset& mov) const { return false; }
|
||||
virtual TMask & get_mask() pure ;
|
||||
|
||||
public:
|
||||
void log(int sev, const char* msg);
|
||||
virtual bool multi_activity() const { return true; }
|
||||
virtual const TString & dittamulti(const TRecordset& mov) const ;
|
||||
TAssoc_array & riclassifica() {return _riclassifica;}
|
||||
|
||||
virtual void postprocess_movs(TRecordset & mov) {}
|
||||
virtual void set_parameters();
|
||||
virtual bool create();
|
||||
virtual void main_loop();
|
||||
virtual bool destroy();
|
||||
TIP_sender() : _tabelle(NULL), _tsfile(NULL), _log(NULL) {}
|
||||
};
|
@ -10,15 +10,15 @@
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//MASCHERA
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
class TTS_ricl_msk : public TAutomask
|
||||
class TIP_ricl_msk : public TAutomask
|
||||
{
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TTS_ricl_msk() : TAutomask("tc2800a") {}
|
||||
TIP_ricl_msk() : TAutomask("tc2800a") {}
|
||||
};
|
||||
|
||||
bool TTS_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
bool TIP_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
@ -30,7 +30,7 @@ bool TTS_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly
|
||||
return true;
|
||||
}
|
||||
|
||||
class TTSRiclass_application : public TRelation_application
|
||||
class TIPRiclass_application : public TRelation_application
|
||||
|
||||
// @author:(INTERNAL) Vari
|
||||
// @access:(INTERNAL) Private Member
|
||||
@ -67,17 +67,17 @@ protected:
|
||||
// @access Public Member
|
||||
public:
|
||||
// @cmember Costruttore
|
||||
TTSRiclass_application() : _msk(NULL), _rel(NULL) { }
|
||||
TIPRiclass_application() : _msk(NULL), _rel(NULL) { }
|
||||
|
||||
|
||||
// @cmember Distruttore
|
||||
virtual ~TTSRiclass_application() {}
|
||||
virtual ~TIPRiclass_application() {}
|
||||
};
|
||||
|
||||
|
||||
void TTSRiclass_application::print()
|
||||
void TIPRiclass_application::print()
|
||||
{
|
||||
TFilename rep("tctsricl.rep");
|
||||
TFilename rep("tcipricl.rep");
|
||||
TString cmd;
|
||||
|
||||
rep.custom_path();
|
||||
@ -86,67 +86,61 @@ void TTSRiclass_application::print()
|
||||
stampa.run();
|
||||
}
|
||||
|
||||
void TTSRiclass_application::init_query_mode(TMask& m)
|
||||
void TIPRiclass_application::init_query_mode(TMask& m)
|
||||
{
|
||||
TRelation_application::init_query_mode(m);
|
||||
|
||||
m.show(-1, _use_pcn);
|
||||
m.enable(-1, _use_pcn);
|
||||
m.show(-20, !_use_pcn);
|
||||
m.show(-1);
|
||||
m.enable(-1);
|
||||
m.hide(-2);
|
||||
m.disable(-2);
|
||||
m.disable(-10);
|
||||
}
|
||||
|
||||
void TTSRiclass_application::init_query_insert_mode(TMask& m)
|
||||
void TIPRiclass_application::init_query_insert_mode(TMask& m)
|
||||
{
|
||||
TRelation_application::init_query_insert_mode(m);
|
||||
|
||||
m.hide(-1);
|
||||
m.disable(-1);
|
||||
m.show(-20, !_use_pcn);
|
||||
m.show(-2, _use_pcn);
|
||||
m.enable(-2, _use_pcn);
|
||||
m.enable(-10, _use_pcn);
|
||||
m.show(-2);
|
||||
m.enable(-2);
|
||||
m.enable(-10);
|
||||
}
|
||||
|
||||
void TTSRiclass_application::init_modify_mode(TMask& m)
|
||||
void TIPRiclass_application::init_modify_mode(TMask& m)
|
||||
{
|
||||
TRelation_application::init_modify_mode(m);
|
||||
|
||||
m.show(-1, _use_pcn);
|
||||
m.show(-20, !_use_pcn);
|
||||
m.disable(-1);
|
||||
m.hide(-2);
|
||||
m.disable(-10);
|
||||
}
|
||||
|
||||
void TTSRiclass_application::init_insert_mode(TMask& m)
|
||||
{
|
||||
TRelation_application::init_insert_mode(m);
|
||||
|
||||
m.show(-1, _use_pcn);
|
||||
m.show(-20, !_use_pcn);
|
||||
m.show(-1);
|
||||
m.disable(-1);
|
||||
m.hide(-2);
|
||||
m.disable(-2);
|
||||
m.disable(-10);
|
||||
}
|
||||
|
||||
bool TTSRiclass_application::user_create()
|
||||
void TIPRiclass_application::init_insert_mode(TMask& m)
|
||||
{
|
||||
TRelation_application::init_insert_mode(m);
|
||||
|
||||
m.show(-1);
|
||||
m.disable(-1);
|
||||
m.hide(-2);
|
||||
m.disable(-2);
|
||||
m.disable(-10);
|
||||
}
|
||||
|
||||
bool TIPRiclass_application::user_create()
|
||||
{
|
||||
_rel = new TRelation(LF_RICLPDC);
|
||||
_msk = new TTS_ricl_msk;
|
||||
_msk = new TIP_ricl_msk;
|
||||
|
||||
TConfig config(CONFIG_DITTA);
|
||||
_use_pcn = config.get_bool("TSUSECMPCN");
|
||||
|
||||
_msk->show(-10, _use_pcn);
|
||||
_msk->show(-20, !_use_pcn);
|
||||
set_search_field(_use_pcn ? F_SOTTOCONTO : F_SOTTOCONTO1);
|
||||
set_search_field(F_SOTTOCONTO);
|
||||
|
||||
|
||||
TFilename rep("tctsricl.rep");
|
||||
TFilename rep("tcipricl.rep");
|
||||
|
||||
if (rep.custom_path())
|
||||
enable_menu_item(M_FILE_PRINT);
|
||||
@ -158,7 +152,7 @@ bool TTSRiclass_application::user_create()
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TTSRiclass_application::user_destroy()
|
||||
bool TIPRiclass_application::user_destroy()
|
||||
{
|
||||
if (_msk)
|
||||
delete _msk;
|
||||
@ -172,7 +166,7 @@ bool TTSRiclass_application::user_destroy()
|
||||
|
||||
int tc2800(int argc, char* argv[])
|
||||
{
|
||||
TTSRiclass_application a;
|
||||
TIPRiclass_application a;
|
||||
|
||||
a.run(argc, argv, TR("Riclassificazione piano dei conti Team System"));
|
||||
return 0;
|
||||
|
17
tc/tc2800a.h
Executable file
17
tc/tc2800a.h
Executable file
@ -0,0 +1,17 @@
|
||||
//id campi maschera tc0800a (file piano dei conti Team System)
|
||||
//campi normali
|
||||
#define F_COD 101
|
||||
#define F_IPCONTO 103
|
||||
#define F_DESCRIZ 105
|
||||
#define F_GRUPPO 106
|
||||
#define F_CONTO 107
|
||||
#define F_SOTTOCONTO 108
|
||||
#define F_DESCG 109
|
||||
#define F_DESCC 110
|
||||
#define F_IPDESCR 111
|
||||
#define F_GRUPPO1 112
|
||||
#define F_CONTO1 113
|
||||
#define F_SOTTOCONTO1 114
|
||||
#define F_GRUPPO2 115
|
||||
#define F_CONTO2 116
|
||||
#define F_SOTTOCONTO2 117
|
218
tc/tc2800a.uml
Executable file
218
tc/tc2800a.uml
Executable file
@ -0,0 +1,218 @@
|
||||
#include "tc0800a.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include <relapbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Riclassificazione Conti" 0 2 0 0
|
||||
|
||||
LIST F_COD 7
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
ITEM "IPCONTI|IPCONTI"
|
||||
FIELD TIPORIC
|
||||
FLAGS "D"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 9
|
||||
BEGIN
|
||||
PROMPT 1 1 "Conto Campo"
|
||||
END
|
||||
|
||||
NUMBER F_GRUPPO2 3
|
||||
BEGIN
|
||||
PROMPT 2 2 "Gruppo "
|
||||
HELP "Codice del gruppo"
|
||||
FIELD GRUPPO
|
||||
USE LF_RICLPDC
|
||||
JOIN LF_PCON INTO GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
|
||||
JOIN &ICO TO LF_RICLPDC INTO CODTAB==CODICE
|
||||
INPUT TIPORIC F_COD SELECT
|
||||
INPUT GRUPPO F_GRUPPO2
|
||||
INPUT CONTO F_CONTO2
|
||||
INPUT SOTTOCONTO F_SOTTOCONTO2
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" LF_PCON->DESCR
|
||||
DISPLAY "Gruppo TS" CODICE[1,2]
|
||||
DISPLAY "Conto TS" CODICE[3,4]
|
||||
DISPLAY "Sottoconto TS" CODICE[5,7]
|
||||
DISPLAY "Descrizione@50" &TCO->S0
|
||||
OUTPUT F_GRUPPO2 GRUPPO
|
||||
OUTPUT F_CONTO2 CONTO
|
||||
OUTPUT F_SOTTOCONTO2 SOTTOCONTO
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||
KEY 1
|
||||
GROUP 1
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_GRUPPO 3
|
||||
BEGIN
|
||||
PROMPT 2 2 "Gruppo "
|
||||
HELP "Codice del gruppo"
|
||||
FIELD GRUPPO
|
||||
KEY 1
|
||||
GROUP 2
|
||||
USE LF_PCON KEY 1 SELECT CONTO=""
|
||||
JOIN LF_RICLPDC INTO TIPORIC=="TSCONTI" GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
|
||||
JOIN &ICO TO LF_RICLPDC INTO CODTAB==CODICE
|
||||
INPUT GRUPPO F_GRUPPO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Gruppo TS" LF_RICLPDC->CODICE[1,2]
|
||||
DISPLAY "Conto TS" LF_RICLPDC->CODICE[3,4]
|
||||
DISPLAY "Sottoconto TS" LF_RICLPDC->CODICE[5,7]
|
||||
DISPLAY "Descrizione@50" &TCO->S0
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_GRUPPO2 GRUPPO
|
||||
OUTPUT F_DESCG DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
ADD RUN cg0 -0
|
||||
FLAGS "G"
|
||||
END
|
||||
|
||||
STRING F_DESCG 50
|
||||
BEGIN
|
||||
PROMPT 24 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CONTO2 3
|
||||
BEGIN
|
||||
PROMPT 2 4 "Conto "
|
||||
HELP "Codice dell'eventuale conto"
|
||||
FIELD CONTO
|
||||
COPY ALL F_GRUPPO2
|
||||
KEY 1
|
||||
GROUP 1
|
||||
CHECKTYPE NORMAL
|
||||
WARNING "Manca il conto"
|
||||
END
|
||||
|
||||
NUMBER F_CONTO 12
|
||||
BEGIN
|
||||
PROMPT 2 4 "Conto "
|
||||
HELP "Codice dell'eventuale conto"
|
||||
FIELD CONTO
|
||||
KEY 1
|
||||
GROUP 2
|
||||
USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO=""))
|
||||
JOIN LF_RICLPDC INTO TIPORIC=="IPCONTI" GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
|
||||
JOIN &ICO TO LF_RICLPDC INTO CODTAB==CODICE
|
||||
COPY INPUT F_GRUPPO
|
||||
INPUT CONTO F_CONTO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Conto IPSOA" LF_RICLPDC->CODICE
|
||||
DISPLAY "Descrizione@50" &ICO->S0
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_GRUPPO2 GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
OUTPUT F_CONTO2 CONTO
|
||||
OUTPUT F_DESCC DESCR
|
||||
CHECKTYPE NORMAL
|
||||
WARNING "Manca il conto"
|
||||
ADD RUN cg0 -0
|
||||
FLAGS "G"
|
||||
END
|
||||
|
||||
STRING F_DESCC 50
|
||||
BEGIN
|
||||
PROMPT 24 4 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOCONTO2 6
|
||||
BEGIN
|
||||
PROMPT 2 6 "Sottoconto "
|
||||
HELP "Codice dell'eventuale sottoconto"
|
||||
FIELD SOTTOCONTO
|
||||
COPY ALL F_GRUPPO2
|
||||
KEY 1
|
||||
GROUP 1
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOCONTO 6
|
||||
BEGIN
|
||||
PROMPT 2 6 "Sottoconto "
|
||||
HELP "Codice dell'eventuale sottoconto"
|
||||
FIELD SOTTOCONTO
|
||||
KEY 1
|
||||
GROUP 2
|
||||
USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="")
|
||||
JOIN LF_RICLPDC INTO TIPORIC=="IPCONTI" GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
|
||||
JOIN &ICO TO LF_RICLPDC INTO CODTAB==CODICE
|
||||
COPY INPUT F_CONTO
|
||||
INPUT SOTTOCONTO F_SOTTOCONTO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Sosp." SOSPESO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Conto IPSOA" LF_RICLPDC->CODICE
|
||||
DISPLAY "Descrizione@50" &ICO->S0
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_GRUPPO2 GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
OUTPUT F_CONTO2 CONTO
|
||||
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||
OUTPUT F_SOTTOCONTO2 SOTTOCONTO
|
||||
OUTPUT F_DESCRIZ DESCR
|
||||
ADD RUN cg0 -0
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "G"
|
||||
END
|
||||
|
||||
STRING F_DESCRIZ 50
|
||||
BEGIN
|
||||
PROMPT 2 8 "Descrizione"
|
||||
USE LF_PCON KEY 2
|
||||
JOIN LF_RICLPDC INTO TIPORIC=="IPCONTI" GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
|
||||
JOIN &ICO TO LF_RICLPDC INTO CODTAB==CODICE
|
||||
INPUT DESCR F_DESCRIZ
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Conto IPSOA" LF_RICLPDC->CODICE
|
||||
DISPLAY "Descrizione@50" &ICO->S0
|
||||
COPY OUTPUT F_SOTTOCONTO
|
||||
KEY 2
|
||||
CHECKTYPE REQUIRED
|
||||
GROUP 10
|
||||
END
|
||||
|
||||
STRING F_IPCONTO 12
|
||||
BEGIN
|
||||
PROMPT 2 10 "Conto IPSOA "
|
||||
CHECKTYPE SEARCH
|
||||
USE &ICO
|
||||
INPUT CODTAB F_IPCONTO
|
||||
DISPLAY "Conto IPSOA" CODTAB
|
||||
DISPLAY "Descrizione@60" S0
|
||||
OUTPUT F_IPCONTO CODTAB
|
||||
OUTPUT F_IPDESCR S0
|
||||
FIELD CODICE
|
||||
END
|
||||
|
||||
STRING F_IPDESCR 50
|
||||
BEGIN
|
||||
PROMPT 2 12 "Descrizione "
|
||||
USE &ICO KEY 2
|
||||
INPUT S0 F_IPDESCR
|
||||
DISPLAY "Descrizione@60" S0
|
||||
DISPLAY "Conto IPSOA" CODTAB
|
||||
COPY OUTPUT F_IPCONTO
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
1357
tc/tc2900.cpp
1357
tc/tc2900.cpp
File diff suppressed because it is too large
Load Diff
@ -1,77 +0,0 @@
|
||||
#include "tc2900a.h"
|
||||
|
||||
PAGE "Invio a TeamSystem da transfer AS400" -1 -1 78 20
|
||||
|
||||
GROUPBOX DLG_NULL 76 3
|
||||
BEGIN
|
||||
PROMPT 2 1 "@bDitta corrente"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 2 "Codice "
|
||||
FLAGS "FD"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 23 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 76 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "Sorgente"
|
||||
END
|
||||
|
||||
STRING F_INPATH 256 39
|
||||
BEGIN
|
||||
PROMPT 3 5 "Cartella "
|
||||
DSELECT
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD TSTAInPath
|
||||
END
|
||||
|
||||
STRING F_INFILET 18
|
||||
BEGIN
|
||||
PROMPT 3 6 "File transfer "
|
||||
FIELD TSTAInFile
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 76 4
|
||||
BEGIN
|
||||
PROMPT 2 8 "Destinazione"
|
||||
END
|
||||
|
||||
STRING F_PATH 256 39
|
||||
BEGIN
|
||||
PROMPT 3 9 "Cartella "
|
||||
DSELECT
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD TSTADestPath
|
||||
END
|
||||
|
||||
STRING F_FILE 18
|
||||
BEGIN
|
||||
PROMPT 3 10 "File "
|
||||
FIELD TSTADestFile
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
117
tc/tcipatt.uml
Executable file
117
tc/tcipatt.uml
Executable file
@ -0,0 +1,117 @@
|
||||
#include "tcts.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include "relapbar.h"
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Valute" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 1 "Codice Attività Campo "
|
||||
END
|
||||
|
||||
LIST F_COD 5
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
ITEM "IPATT|IPATT"
|
||||
FIELD COD
|
||||
FLAGS "D"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 2 "Codice "
|
||||
FLAGS "FD"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 23 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_CODTAB 3
|
||||
BEGIN
|
||||
PROMPT 2 2 ""
|
||||
USE LF_MULTIREL
|
||||
JOIN LF_ATTIV INTO CODDITTA==#F_CODITTA CODATT==FIRST
|
||||
JOIN &IAT INTO CODTAB==DATA
|
||||
INPUT COD F_COD SELECT
|
||||
INPUT FIRST F_CODTAB
|
||||
DISPLAY "Codice Attivita" FIRST
|
||||
DISPLAY "Descrizione@60" LF_ATTIV->S0
|
||||
DISPLAY "Codice attività IPSOA" DATA
|
||||
DISPLAY "Descrizione@50" &IAT->S0
|
||||
OUTPUT F_CODTAB FIRST
|
||||
OUTPUT F_DESC %VAL->S0
|
||||
OUTPUT F_COD_CAMPO DATA
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD FIRST
|
||||
FLAGS "UZG"
|
||||
KEY 1
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING F_CODTAB1 3
|
||||
BEGIN
|
||||
PROMPT 2 4 ""
|
||||
USE LF_ATTIV
|
||||
JOIN LF_MULTIREL INTO COD=="IPATT" FIRST==CODATT
|
||||
JOIN &IAT TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT CODDITTA F_CODDITTA SELECT
|
||||
INPUT CODATT F_CODTAB1
|
||||
DISPLAY "Cod." CODATT
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice attività IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &IAT->S0
|
||||
OUTPUT F_CODTAB CODATT
|
||||
OUTPUT F_CODTAB1 CODATT
|
||||
OUTPUT F_DESC S0
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD FIRST
|
||||
FLAGS "UZ"
|
||||
KEY 1
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRING F_DESC 50
|
||||
BEGIN
|
||||
PROMPT 10 4 "Descrizione "
|
||||
FLAGS "D"
|
||||
GROUP 3
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_COD_CAMPO 2
|
||||
BEGIN
|
||||
PROMPT 2 6 "Codice Attività IPSOA "
|
||||
FIELD DATA
|
||||
FLAGS "UZ"
|
||||
USE &IAT
|
||||
INPUT CODTAB F_COD_CAMPO
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_COD_CAMPO CODTAB
|
||||
OUTPUT F_DESC1 S0
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESC1 50 35
|
||||
BEGIN
|
||||
PROMPT 37 6 ""
|
||||
USE &IAT KEY 2
|
||||
INPUT S0 F_DESC1
|
||||
DISPLAY "Descrizione@60" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_COD_CAMPO
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
@ -14,7 +14,7 @@ END
|
||||
LIST F_COD 5
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
ITEM "TSCAU|TSCAU"
|
||||
ITEM "IPCAU|IPCAU"
|
||||
FIELD COD
|
||||
FLAGS "D"
|
||||
KEY 1
|
||||
@ -25,13 +25,13 @@ BEGIN
|
||||
PROMPT 2 2 ""
|
||||
USE LF_MULTIREL
|
||||
JOIN LF_CAUSALI INTO CODCAUS==FIRST
|
||||
JOIN &TCA INTO CODTAB==DATA
|
||||
JOIN &ICA INTO CODTAB==DATA
|
||||
INPUT COD F_COD SELECT
|
||||
INPUT FIRST F_CODTAB
|
||||
DISPLAY "Codice" FIRST
|
||||
DISPLAY "Descrizione@60" LF_CAUSALI->DESCR
|
||||
DISPLAY "Causale Teamsystem" DATA
|
||||
DISPLAY "Descrizione@50" &TCA->S0
|
||||
DISPLAY "Causale IPSOA" DATA
|
||||
DISPLAY "Descrizione@50" &ICA->S0
|
||||
OUTPUT F_CODTAB FIRST
|
||||
OUTPUT F_CODTAB1 FIRST
|
||||
OUTPUT F_COD_CAMPO DATA
|
||||
@ -46,13 +46,13 @@ NUMBER F_CODTAB1 3
|
||||
BEGIN
|
||||
PROMPT 2 2 ""
|
||||
USE LF_CAUSALI
|
||||
JOIN LF_MULTIREL INTO COD=="TSCAU" FIRST==CODCAUS
|
||||
JOIN LF_MULTIREL INTO COD=="IPCAU" FIRST==CODCAUS
|
||||
JOIN &TCA TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT CODCAUS F_CODTAB1
|
||||
DISPLAY "Cod." CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Causale Teamsystem" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &TCA->S0
|
||||
DISPLAY "Causale IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &ICA->S0
|
||||
DISPLAY "Documento" TIPODOC
|
||||
DISPLAY "Registro" REG
|
||||
DISPLAY "Tipo movimento" TIPOMOV
|
||||
@ -78,19 +78,19 @@ BEGIN
|
||||
INPUT DESCR F_DESC
|
||||
DISPLAY "Descrizione@60" DESCR
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Causale Teamsystem" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &TCA->S0
|
||||
DISPLAY "Causale IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &ICA->S0
|
||||
COPY OUTPUT F_CODTAB1
|
||||
KEY 2
|
||||
GROUP 3
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_COD_CAMPO 3
|
||||
NUMBER F_COD_CAMPO 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "Causale Teamsystem"
|
||||
PROMPT 2 4 "Causale IPSOA "
|
||||
FIELD DATA
|
||||
USE &TCA
|
||||
USE &ICA
|
||||
INPUT CODTAB F_COD_CAMPO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@60" S0
|
||||
|
@ -13,7 +13,7 @@ END
|
||||
LIST F_COD 5
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
ITEM "TSCDP|TSCDP"
|
||||
ITEM "IPCDP|IPCDP"
|
||||
FIELD COD
|
||||
FLAGS "D"
|
||||
KEY 1
|
||||
@ -29,8 +29,8 @@ BEGIN
|
||||
INPUT FIRST F_CODTAB
|
||||
DISPLAY "Codice" FIRST
|
||||
DISPLAY "Descrizione@60" %CPG->S0
|
||||
DISPLAY "Condizione TeamSystem" DATA
|
||||
DISPLAY "Descrizione@50" &TPG->S0
|
||||
DISPLAY "Condizione IPSOA" DATA
|
||||
DISPLAY "Descrizione@50" &IPG->S0
|
||||
OUTPUT F_CODTAB FIRST
|
||||
OUTPUT F_CODTAB1 FIRST
|
||||
OUTPUT F_COD_CAMPO DATA
|
||||
@ -46,13 +46,13 @@ BEGIN
|
||||
PROMPT 2 2 ""
|
||||
CHECKTYPE REQUIRED
|
||||
USE %CPG
|
||||
JOIN LF_MULTIREL INTO COD=="TSCDP" FIRST==CODTAB
|
||||
JOIN &TPG TO LF_MULTIREL INTO CODTAB==DATA
|
||||
JOIN LF_MULTIREL INTO COD=="IPCDP" FIRST==CODTAB
|
||||
JOIN &IPG TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT CODTAB F_CODTAB1
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Condizione TeamSystem" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &TPG->S0
|
||||
DISPLAY "Condizione IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &IPG->S0
|
||||
OUTPUT F_CODTAB CODTAB
|
||||
OUTPUT F_CODTAB1 CODTAB
|
||||
OUTPUT F_DESC S0
|
||||
@ -67,14 +67,14 @@ STRING F_DESC 50
|
||||
BEGIN
|
||||
PROMPT 10 2 "Descrizione "
|
||||
USE %CPG KEY 2
|
||||
JOIN LF_MULTIREL INTO COD=="TSCDP" FIRST==CODTAB
|
||||
JOIN &TPG TO LF_MULTIREL INTO CODTAB==DATA
|
||||
JOIN LF_MULTIREL INTO COD=="IPCDP" FIRST==CODTAB
|
||||
JOIN &IPG TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT CODTAB F_CODTAB1
|
||||
INPUT S0 F_DESC
|
||||
DISPLAY "Descrizione@60" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Condizione TeamSystem" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &TPG->S0
|
||||
DISPLAY "Condizione IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &IPG->S0
|
||||
COPY OUTPUT F_CODTAB1
|
||||
GROUP 3
|
||||
KEY 2
|
||||
@ -83,9 +83,9 @@ END
|
||||
|
||||
NUMBER F_COD_CAMPO 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "Pagamento TeamSystem "
|
||||
PROMPT 2 4 "Pagamento IPSOA "
|
||||
FIELD DATA
|
||||
USE &TPG
|
||||
USE &IPG
|
||||
INPUT CODTAB F_COD_CAMPO
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
@ -98,7 +98,7 @@ END
|
||||
STRING F_DESC1 50 40
|
||||
BEGIN
|
||||
PROMPT 32 4 ""
|
||||
USE &TPG KEY 2
|
||||
USE &IPG KEY 2
|
||||
INPUT S0 F_DESC1
|
||||
DISPLAY "Descrizione@60" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
|
@ -14,7 +14,7 @@ END
|
||||
LIST F_COD 5
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
ITEM "TSIVA|TSIVA"
|
||||
ITEM "IPIVA|IPIVA"
|
||||
FIELD COD
|
||||
FLAGS "D"
|
||||
KEY 1
|
||||
@ -25,13 +25,13 @@ BEGIN
|
||||
PROMPT 2 2 ""
|
||||
USE LF_MULTIREL
|
||||
JOIN %IVA INTO CODTAB==FIRST
|
||||
JOIN &TIV INTO CODTAB==DATA
|
||||
JOIN &IIV INTO CODTAB==DATA
|
||||
INPUT COD F_COD SELECT
|
||||
INPUT FIRST F_CODTAB
|
||||
DISPLAY "Codice IVA" FIRST
|
||||
DISPLAY "Descrizione@60" %IVA->S0
|
||||
DISPLAY "Codice IVA Teamsystem" DATA
|
||||
DISPLAY "Descrizione@50" &TIV->S0
|
||||
DISPLAY "Codice IVA IPSOA" DATA
|
||||
DISPLAY "Descrizione@50" &IIV->S0
|
||||
OUTPUT F_CODTAB FIRST
|
||||
OUTPUT F_CODTAB1 FIRST
|
||||
OUTPUT F_COD_CAMPO DATA
|
||||
@ -49,13 +49,13 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD FIRST
|
||||
USE %IVA
|
||||
JOIN LF_MULTIREL INTO COD=="TSIVA" FIRST==CODTAB
|
||||
JOIN &TIV TO LF_MULTIREL INTO CODTAB==DATA
|
||||
JOIN LF_MULTIREL INTO COD=="IPIVA" FIRST==CODTAB
|
||||
JOIN &IIV TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT CODTAB F_CODTAB1
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice IVA Teamsystem" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &TIV->S0
|
||||
DISPLAY "Codice IVA IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &IIV->S0
|
||||
OUTPUT F_CODTAB1 CODTAB
|
||||
OUTPUT F_CODTAB CODTAB
|
||||
OUTPUT F_DESC S0
|
||||
@ -69,13 +69,13 @@ STRING F_DESC 50
|
||||
BEGIN
|
||||
PROMPT 10 2 "Descrizione "
|
||||
USE %IVA KEY 2
|
||||
JOIN LF_MULTIREL INTO COD=="TSIVA" FIRST==CODTAB
|
||||
JOIN &TIV TO LF_MULTIREL INTO CODTAB==DATA
|
||||
JOIN LF_MULTIREL INTO COD=="IPIVA" FIRST==CODTAB
|
||||
JOIN &IIV TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT S0 F_DESC
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Codice IVA Teamsystem" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &TIV->S0
|
||||
DISPLAY "Codice IVA IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &IIV->S0
|
||||
COPY OUTPUT F_CODTAB1
|
||||
KEY 2
|
||||
GROUP 3
|
||||
@ -84,10 +84,10 @@ END
|
||||
|
||||
NUMBER F_COD_CAMPO 3
|
||||
BEGIN
|
||||
PROMPT 2 4 "Codice IVA Teamsystem "
|
||||
PROMPT 2 4 "Codice IVA IPSOA "
|
||||
FIELD DATA
|
||||
FLAGS "Z"
|
||||
USE &TIV
|
||||
USE &IIV
|
||||
INPUT CODTAB F_COD_CAMPO
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
@ -99,7 +99,7 @@ END
|
||||
STRING F_DESC1 50 40
|
||||
BEGIN
|
||||
PROMPT 32 4 ""
|
||||
USE &TIV KEY 2
|
||||
USE &IIV KEY 2
|
||||
INPUT S0 F_DESC1
|
||||
DISPLAY "Descrizione@60" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
|
@ -14,7 +14,7 @@ END
|
||||
LIST F_COD 5
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
ITEM "TSNAZ|TSNAZ"
|
||||
ITEM "IPNAZ|IPNAZ"
|
||||
FIELD COD
|
||||
FLAGS "D"
|
||||
KEY 1
|
||||
@ -25,13 +25,13 @@ BEGIN
|
||||
PROMPT 2 2 ""
|
||||
USE LF_MULTIREL
|
||||
JOIN %STA INTO CODTAB==FIRST
|
||||
JOIN &TNA INTO CODTAB==DATA
|
||||
JOIN &INA INTO CODTAB==DATA
|
||||
INPUT COD F_COD SELECT
|
||||
INPUT FIRST F_CODTAB
|
||||
DISPLAY "Codice stato" FIRST
|
||||
DISPLAY "Descrizione@60" %STA->S0
|
||||
DISPLAY "Nazione Teamsystem" DATA
|
||||
DISPLAY "Descrizione@50" &TNA->S0
|
||||
DISPLAY "Nazione IPSOA" DATA
|
||||
DISPLAY "Descrizione@50" &INA->S0
|
||||
OUTPUT F_CODTAB FIRST
|
||||
OUTPUT F_CODTAB1 FIRST
|
||||
CHECKTYPE REQUIRED
|
||||
@ -45,13 +45,13 @@ NUMBER F_CODTAB1 3
|
||||
BEGIN
|
||||
PROMPT 2 2 ""
|
||||
USE %STA
|
||||
JOIN LF_MULTIREL INTO COD=="TSNAZ" FIRST==CODTAB
|
||||
JOIN &TNA TO LF_MULTIREL INTO CODTAB==DATA
|
||||
JOIN LF_MULTIREL INTO COD=="IPNAZ" FIRST==CODTAB
|
||||
JOIN &INA TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT CODTAB F_CODTAB1
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Nazione Teamsystem" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &TNA->S0
|
||||
DISPLAY "Nazione IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &INA->S0
|
||||
OUTPUT F_CODTAB CODTAB
|
||||
OUTPUT F_CODTAB1 CODTAB
|
||||
OUTPUT F_DESC S0
|
||||
@ -66,13 +66,13 @@ STRING F_DESC 50
|
||||
BEGIN
|
||||
PROMPT 10 2 "Descrizione "
|
||||
USE %STA KEY 2
|
||||
JOIN LF_MULTIREL INTO COD=="TSNAZ" FIRST==CODTAB
|
||||
JOIN &TNA TO LF_MULTIREL INTO CODTAB==DATA
|
||||
JOIN LF_MULTIREL INTO COD=="IPNAZ" FIRST==CODTAB
|
||||
JOIN &INA TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT S0 F_DESC
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Nazione Teamsystem" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &TNA->S0
|
||||
DISPLAY "Nazione IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &INA->S0
|
||||
COPY OUTPUT F_CODTAB1
|
||||
KEY 2
|
||||
GROUP 3
|
||||
@ -81,7 +81,7 @@ END
|
||||
|
||||
NUMBER F_COD_CAMPO 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "Nazione Teamsystem "
|
||||
PROMPT 2 4 "Nazione IPSOA "
|
||||
FIELD DATA
|
||||
FLAGS "Z"
|
||||
USE &TNA
|
||||
@ -96,7 +96,7 @@ END
|
||||
STRING F_DESC1 50 40
|
||||
BEGIN
|
||||
PROMPT 32 4 ""
|
||||
USE &TNA KEY 2
|
||||
USE &INA KEY 2
|
||||
INPUT S0 F_DESC1
|
||||
DISPLAY "Descrizione@60" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
|
@ -13,7 +13,7 @@ END
|
||||
LIST F_COD 5
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
ITEM "TSREG|TSREG"
|
||||
ITEM "IPREG|IPREG"
|
||||
FIELD COD
|
||||
FLAGS "D"
|
||||
KEY 1
|
||||
@ -29,13 +29,12 @@ STRING F_CODTAB 3
|
||||
BEGIN
|
||||
PROMPT 2 2 ""
|
||||
USE LF_MULTIREL
|
||||
JOIN &TRE INTO CODTAB==DATA
|
||||
JOIN &IRE INTO CODTAB==DATA
|
||||
INPUT COD F_COD SELECT
|
||||
INPUT FIRST F_CODTAB
|
||||
DISPLAY "Codice registro" FIRST
|
||||
DISPLAY "Tipo" DATA[1,1]
|
||||
DISPLAY "Codice registro" DATA[2,3]
|
||||
DISPLAY "Descrizione@50" &TRE->S0
|
||||
DISPLAY "Codice registro" CODICE
|
||||
DISPLAY "Descrizione@50" &IRE->S0
|
||||
OUTPUT F_CODTAB FIRST
|
||||
OUTPUT F_CODTAB1 FIRST
|
||||
FLAGS "UZ"
|
||||
@ -49,15 +48,14 @@ STRING F_CODTAB1 3
|
||||
BEGIN
|
||||
PROMPT 2 2 ""
|
||||
USE REG
|
||||
JOIN LF_MULTIREL INTO COD=="TSREG" FIRST==CODTAB[5,7]
|
||||
JOIN &TRE TO LF_MULTIREL INTO CODTAB==DATA
|
||||
JOIN LF_MULTIREL INTO COD=="IPREG" FIRST==CODTAB[5,7]
|
||||
JOIN &IRE TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT CODTAB[1,4] F_ANNO SELECT
|
||||
INPUT CODTAB[5,7] F_COD_CAMPO
|
||||
DISPLAY "Codice" CODTAB[5,7]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Tipo" LF_MULTIREL->DATA[1,1]
|
||||
DISPLAY "Codice registro" LF_MULTIREL->DATA[2,3]
|
||||
DISPLAY "Descrizione@50" &TRE->S0
|
||||
DISPLAY "Codice registro" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &IRE->S0
|
||||
OUTPUT F_CODTAB CODTAB[5,7]
|
||||
OUTPUT F_CODTAB1 CODTAB[5,7]
|
||||
OUTPUT F_DESC S0
|
||||
@ -72,41 +70,28 @@ STRING F_DESC 50
|
||||
BEGIN
|
||||
PROMPT 10 2 ""
|
||||
USE REG KEY 2
|
||||
JOIN LF_MULTIREL INTO COD=="TSREG" FIRST==CODTAB[5,7]
|
||||
JOIN &TRE TO LF_MULTIREL INTO CODTAB==DATA
|
||||
JOIN LF_MULTIREL INTO COD=="IPREG" FIRST==CODTAB[5,7]
|
||||
JOIN &IRE TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT S0 F_DESC
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Anno" CODTAB[1,4]
|
||||
DISPLAY "Codice" CODTAB[5,7]
|
||||
DISPLAY "Tipo" LF_MULTIREL->DATA[1,1]
|
||||
DISPLAY "Codice registro" LF_MULTIREL->DATA[2,3]
|
||||
DISPLAY "Descrizione@50" &TRE->S0
|
||||
DISPLAY "Codice registro IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &IRE->S0
|
||||
COPY OUTPUT F_CODTAB1
|
||||
KEY 2
|
||||
GROUP 3
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
LIST F_TIPO 1 13
|
||||
BEGIN
|
||||
PROMPT 2 4 "Tipo "
|
||||
ITEM "A|Acquisti"
|
||||
ITEM "C|Corrispettivi"
|
||||
ITEM "V|Vendite"
|
||||
FIELD DATA[1,1]
|
||||
END
|
||||
|
||||
STRING F_COD_CAMPO 2
|
||||
BEGIN
|
||||
PROMPT 2 6 "Registro TeamSystem"
|
||||
FIELD DATA[2,3]
|
||||
USE &TRE
|
||||
INPUT CODTAB[1,1] F_TIPO
|
||||
INPUT CODTAB[2,3] F_COD_CAMPO
|
||||
PROMPT 2 6 "Registro IPSOA"
|
||||
FIELD DATA
|
||||
USE &IRE
|
||||
INPUT CODTAB F_COD_CAMPO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPO CODTAB[1,1]
|
||||
OUTPUT F_COD_CAMPO CODTAB[2,3]
|
||||
OUTPUT F_DESC1 S0
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
@ -114,7 +99,7 @@ END
|
||||
STRING F_DESC1 50 40
|
||||
BEGIN
|
||||
PROMPT 32 6 ""
|
||||
USE &TRE KEY 2
|
||||
USE &IRE KEY 2
|
||||
INPUT S0 F_DESC1
|
||||
DISPLAY "Descrizione@60" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
|
109
tc/tcipval.uml
Executable file
109
tc/tcipval.uml
Executable file
@ -0,0 +1,109 @@
|
||||
#include "tcts.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include "relapbar.h"
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Valute" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 1 "Codice Valuta Campo "
|
||||
END
|
||||
|
||||
LIST F_COD 5
|
||||
BEGIN
|
||||
PROMPT 50 50 ""
|
||||
ITEM "IPVAL|IPVAL"
|
||||
FIELD COD
|
||||
FLAGS "D"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_CODTAB 3
|
||||
BEGIN
|
||||
PROMPT 2 2 ""
|
||||
USE LF_MULTIREL
|
||||
JOIN %VAL INTO CODTAB==FIRST
|
||||
JOIN &IVA INTO CODTAB==DATA
|
||||
INPUT COD F_COD SELECT
|
||||
INPUT FIRST F_CODTAB
|
||||
DISPLAY "Codice valuta" FIRST
|
||||
DISPLAY "Descrizione@60" %VAL->S0
|
||||
DISPLAY "Sigla valuta IPSOA" DATA
|
||||
DISPLAY "Descrizione@50" &IVA->S0
|
||||
OUTPUT F_CODTAB FIRST
|
||||
OUTPUT F_DESC %VAL->S0
|
||||
OUTPUT F_COD_CAMPO DATA
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD FIRST
|
||||
FLAGS "UZG"
|
||||
KEY 1
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING F_CODTAB1 3
|
||||
BEGIN
|
||||
PROMPT 2 2 ""
|
||||
USE %VAL
|
||||
JOIN LF_MULTIREL INTO COD=="IPVAL" FIRST==CODTAB
|
||||
JOIN &IVA TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT CODTAB F_CODTAB1
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Sigla valuta IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &IVA->S0
|
||||
OUTPUT F_CODTAB CODTAB
|
||||
OUTPUT F_CODTAB1 CODTAB
|
||||
OUTPUT F_DESC S0
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD FIRST
|
||||
FLAGS "UZ"
|
||||
KEY 1
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRING F_DESC 50
|
||||
BEGIN
|
||||
PROMPT 10 2 "Descrizione "
|
||||
USE %VAL KEY 2
|
||||
JOIN LF_MULTIREL INTO COD=="IPVAL" FIRST==CODTAB
|
||||
JOIN &IVA TO LF_MULTIREL INTO CODTAB==DATA
|
||||
INPUT S0 F_DESC
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Sigla valuta IPSOA" LF_MULTIREL->DATA
|
||||
DISPLAY "Descrizione@50" &IVA->S0
|
||||
COPY OUTPUT F_CODTAB1
|
||||
KEY 2
|
||||
GROUP 3
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_COD_CAMPO 3
|
||||
BEGIN
|
||||
PROMPT 2 4 "Codice Valuta IPSOA "
|
||||
FIELD DATA
|
||||
FLAGS "UZ"
|
||||
USE &IVA
|
||||
INPUT CODTAB F_COD_CAMPO
|
||||
DISPLAY "Cod." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_COD_CAMPO CODTAB
|
||||
OUTPUT F_DESC1 S0
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESC1 50 35
|
||||
BEGIN
|
||||
PROMPT 37 4 ""
|
||||
USE &IVA KEY 2
|
||||
INPUT S0 F_DESC1
|
||||
DISPLAY "Descrizione@60" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_COD_CAMPO
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
@ -127,8 +127,8 @@ Item_01 = "Causali", "tc2 -0 &ICA", ""
|
||||
Item_02 = "Condizioni di pagamento", "tc2 -0 &IPG", ""
|
||||
Item_03 = "Stati esteri", "tc2 -0 &INA", ""
|
||||
Item_04 = "Registri", "tc2 -0 &IRE", ""
|
||||
Item_05 = "Codici IVA", "tc2 -0 &TIV", ""
|
||||
Item_06 = "Valute", "tc2 -0 &IIV", ""
|
||||
Item_05 = "Codici IVA", "tc2 -0 &IIV", ""
|
||||
Item_06 = "Valute", "tc2 -0 &IVA", ""
|
||||
Item_07 = "Attività", "tc2 -0 &IAT", ""
|
||||
Item_08 = "Piano dei conti", "tc2 -0 &ICO", ""
|
||||
|
||||
|
2
tc/tctbiat.h
Executable file
2
tc/tctbiat.h
Executable file
@ -0,0 +1,2 @@
|
||||
#define F_CODTAB 102
|
||||
#define F_DESC 103
|
2
tc/tctbica.h
Executable file
2
tc/tctbica.h
Executable file
@ -0,0 +1,2 @@
|
||||
#define F_CODTAB 102
|
||||
#define F_DESC 103
|
@ -1,3 +1,4 @@
|
||||
#define F_CODTAB 100
|
||||
#define F_CODTAB1 101
|
||||
#define F_CODTAB2 102
|
||||
#define F_CODTAB3 103
|
||||
|
@ -13,97 +13,57 @@ END
|
||||
|
||||
STRING F_CODTAB1 12
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice : 1 "
|
||||
USE &ICO
|
||||
INPUT CODTAB[1,2] F_CODTAB1
|
||||
INPUT CODTAB[3,4] F_CODTAB2
|
||||
INPUT CODTAB[5,6] F_CODTAB3
|
||||
INPUT CODTAB[7,8] F_CODTAB4
|
||||
INPUT CODTAB[9,10] F_CODTAB5
|
||||
INPUT CODTAB[11,12] F_CODTAB6
|
||||
DISPLAY "Livello 1" CODTAB[1,2]
|
||||
DISPLAY "Livello 2" CODTAB[3,4]
|
||||
DISPLAY "Livello 3" CODTAB[5,6]
|
||||
DISPLAY "Livello 4" CODTAB[7,8]
|
||||
DISPLAY "Livello 5" CODTAB[9,10]
|
||||
DISPLAY "Livello 6" CODTAB[11,12]
|
||||
DISPLAY "Descrizione@60" S0
|
||||
OUTPUT F_CODTAB1 CODTAB[1,2]
|
||||
OUTPUT F_CODTAB2 CODTAB[3,4]
|
||||
OUTPUT F_CODTAB3 CODTAB[5,6]
|
||||
OUTPUT F_CODTAB4 CODTAB[7,8]
|
||||
OUTPUT F_CODTAB5 CODTAB[9,10]
|
||||
OUTPUT F_CODTAB6 CODTAB[11,12]
|
||||
OUTPUT F_DESC S0
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD CODTAB[1,2]
|
||||
PROMPT 2 2 "Codice "
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "B"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_CODTAB2 2
|
||||
STRING F_CODTAB2 12
|
||||
BEGIN
|
||||
PROMPT 20 2 "2 "
|
||||
COPY ALL F_CODTAB1
|
||||
CHECKTYPE SEARCH
|
||||
FIELD CODTAB[3,4]
|
||||
VALIDATE FIXLEN_FUNC 2
|
||||
CHECKTYPE SEARCH
|
||||
FLAGS "B"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_CODTAB3 2
|
||||
STRING F_CODTAB3 12
|
||||
BEGIN
|
||||
PROMPT 26 2 "3 "
|
||||
COPY ALL F_CODTAB1
|
||||
CHECKTYPE SEARCH
|
||||
FIELD CODTAB[5,6]
|
||||
VALIDATE FIXLEN_FUNC 2
|
||||
CHECKTYPE SEARCH
|
||||
FLAGS "B"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_CODTAB4 2
|
||||
STRING F_CODTAB4 12
|
||||
BEGIN
|
||||
PROMPT 26 2 "4 "
|
||||
COPY ALL F_CODTAB1
|
||||
CHECKTYPE SEARCH
|
||||
FIELD CODTAB[7,8]
|
||||
VALIDATE FIXLEN_FUNC 2
|
||||
CHECKTYPE SEARCH
|
||||
FLAGS "B"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_CODTAB5 2
|
||||
STRING F_CODTAB5 12
|
||||
BEGIN
|
||||
PROMPT 26 2 "5 "
|
||||
COPY ALL F_CODTAB1
|
||||
CHECKTYPE SEARCH
|
||||
FIELD CODTAB[9,10]
|
||||
VALIDATE FIXLEN_FUNC 2
|
||||
CHECKTYPE SEARCH
|
||||
FLAGS "B"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_CODTAB6 2
|
||||
STRING F_CODTAB6 12
|
||||
BEGIN
|
||||
PROMPT 26 2 "4 "
|
||||
COPY ALL F_CODTAB1
|
||||
CHECKTYPE SEARCH
|
||||
FIELD CODTAB[11,12]
|
||||
VALIDATE FIXLEN_FUNC 2
|
||||
PROMPT 26 2 "6 "
|
||||
CHECKTYPE SEARCH
|
||||
FLAGS "B"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_DESC 50
|
||||
BEGIN
|
||||
PROMPT 2 5 "Descrizione "
|
||||
USE &ICO KEY 2
|
||||
INPUT S0 F_DESC
|
||||
DISPLAY "Descrizione@60" S0
|
||||
DISPLAY "Livello 1" CODTAB[1,2]
|
||||
DISPLAY "Livello 2" CODTAB[3,4]
|
||||
DISPLAY "Livello 3" CODTAB[5,6]
|
||||
DISPLAY "Livello 4" CODTAB[7,8]
|
||||
DISPLAY "Livello 5" CODTAB[9,10]
|
||||
DISPLAY "Livello 6" CODTAB[11,12]
|
||||
COPY OUTPUT F_CODTAB
|
||||
FIELD S0
|
||||
FLAGS "B"
|
||||
KEY 2
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
2
tc/tctbiiv.h
Executable file
2
tc/tctbiiv.h
Executable file
@ -0,0 +1,2 @@
|
||||
#define F_CODTAB 102
|
||||
#define F_DESC 103
|
2
tc/tctbina.h
Executable file
2
tc/tctbina.h
Executable file
@ -0,0 +1,2 @@
|
||||
#define F_CODTAB 102
|
||||
#define F_DESC 103
|
2
tc/tctbipg.h
Executable file
2
tc/tctbipg.h
Executable file
@ -0,0 +1,2 @@
|
||||
#define F_CODTAB 102
|
||||
#define F_DESC 103
|
@ -11,7 +11,7 @@ BEGIN
|
||||
PROMPT 1 1 "Codice Pagamento IPSOA"
|
||||
END
|
||||
|
||||
NUMBER F_CODTAB 4
|
||||
NUMBER F_CODTAB 3
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice "
|
||||
USE &IPG
|
||||
|
2
tc/tctbiva.h
Executable file
2
tc/tctbiva.h
Executable file
@ -0,0 +1,2 @@
|
||||
#define F_CODTAB 102
|
||||
#define F_DESC 103
|
Loading…
x
Reference in New Issue
Block a user