Patch level :

Files correlati     : 777.exe
Ricompilazione Demo : [ ]
Commento            :
Aggiunto programma di trasferimento dati 770 per la Dylog


git-svn-id: svn://10.65.10.50/trunk@7218 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1998-10-06 10:51:26 +00:00
parent 212dc05aef
commit 11be8f4e18
10 changed files with 999 additions and 23 deletions

View File

@ -8,7 +8,7 @@ int main(int argc,char** argv)
switch(n)
{
case 0: m777100(argc, argv); break;
default: break;
default: m777200(argc, argv); break;
}
exit(0);
return 0;

View File

@ -1 +1,2 @@
int m777100(int argc, char* argv[]);
int m777100(int argc, char* argv[]);
int m777200(int argc, char* argv[]);

View File

@ -357,8 +357,7 @@ long TForm770::raggruppa_c()
_positions.add_long(cur.pos()+1);
}
}
return _records.items();
}
@ -422,7 +421,6 @@ long TForm770::trasfer(long codditta, TTrasferimento770& file,
if (items > 0) // Se c'e almeno un record ...
{
cur.freeze(TRUE); // Per efficienza congela il cursore
int rpm = 10; // Righe per modulo
// Inizializza record col primo modulo
TRecord770 rec(rectype);

833
m770/777200.cpp Executable file
View File

@ -0,0 +1,833 @@
#include <fstream.h>
#include <applicat.h>
#include <form.h>
#include <automask.h>
#include <os_dep.h>
#include <progind.h>
#include <recarray.h>
#include <utility.h>
#include "777.h"
#include "777100a.h"
#include <anagr.h>
#include <anafis.h>
#include <anagiu.h>
#include <comuni.h>
#include <nditte.h>
#include "base.h"
#include "quadroc.h"
///////////////////////////////////////////////////////////
// Dichiarazioni
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// TFormDylog
///////////////////////////////////////////////////////////
class TRecordDylog;
class TTrasferimentoDylog;
class TFormDylog : public TForm
{
TCursor* _sortedcur;
int _index;
TArray _records;
TPointer_array _positions;
protected:
bool compatible(const TRectype& r1, const TRectype& r2);
void add_rec(TRectype& r1, const TRectype& r2);
long raggruppa_c();
int first();
int next();
void transfer_section(TPrint_section& body, int rigo,
TRecordDylog& rec, TTrasferimentoDylog& file);
char log2rec(int num, int& rpm) const;
protected:
virtual TCursor* cursor() { return _sortedcur ? _sortedcur : TForm::cursor(); }
public:
long trasfer(long codditta, TTrasferimentoDylog& file, const char* tipo);
TFormDylog(const char* name);
virtual ~TFormDylog();
};
///////////////////////////////////////////////////////////
// TTracciatiDylog
///////////////////////////////////////////////////////////
class TTracciatiDylog : public TObject
{
TAssoc_array _form;
public:
TFormDylog& form(const char* quadro);
void destroy();
TTracciatiDylog();
virtual ~TTracciatiDylog();
} _trcDylog;
///////////////////////////////////////////////////////////
// TRecordDylog
///////////////////////////////////////////////////////////
class TCacheDylog : public TObject
{
TArray _files;
TAssoc_array _tables;
public:
const TRectype& get(int num, const char* key);
const TRectype& get(int num, long key);
void destroy();
TCacheDylog() { }
virtual ~TCacheDylog() { }
} _cacheDylog;
const int REC_SIZE = 630;
class TRecordDylog : public TObject
{
TString _buffer;
protected: // TObject
virtual TObject* dup() const { return new TRecordDylog(*this); }
virtual void print_on(ostream& outs) const;
virtual void read_from(istream& ins);
public:
void set(const char* val, char tipo, int pos, int len);
const TRecordDylog& operator=(const TRecordDylog& rec)
{ _buffer = rec._buffer; return *this; }
const TString& tipo_record() const { return _buffer.left(2); }
void tipo_record(const char* tipo);
bool valid() const;
TRecordDylog();
TRecordDylog(const char* tipo);
TRecordDylog(const TRecordDylog& rec);
virtual ~TRecordDylog();
};
///////////////////////////////////////////////////////////
// TTrasferimentoDylog
///////////////////////////////////////////////////////////
class TTrasferimentoDylog : public TObject
{
TFilename _name;
ifstream* _in_stream;
ofstream* _out_stream;
public:
bool open(const char* path = "", char mode = 'r');
bool close();
bool write(const TRecordDylog& rec);
bool read(TRecordDylog& rec);
bool eof() const { return _in_stream && _in_stream->eof(); }
virtual bool ok() const;
const char* default_name() const { return "MOE"; }
TTrasferimentoDylog& operator<<(const TRecordDylog& rec)
{ write(rec); return *this; }
TTrasferimentoDylog& operator>>(TRecordDylog& rec)
{ read(rec); return *this; }
long append_quadro(const char* quadro, long codditta, TProgind& pi);
bool split(const char* dest_path);
void remove();
TTrasferimentoDylog(const char* name = "", char mode = 'r');
virtual ~TTrasferimentoDylog();
};
///////////////////////////////////////////////////////////
// Implementazioni
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// TFormDylog
///////////////////////////////////////////////////////////
void TFormDylog::transfer_section(TPrint_section& body, int rigo,
TRecordDylog& rec, TTrasferimentoDylog& file)
{
TToken_string trc(16, ',');
TString80 str;
TCursor& cur = *cursor();
body.update();
for (word f = 0; f < body.fields(); f++)
{
TForm_item& fi = body.field(f);
str = fi.get(); str.trim();
if (fi.shown() && str.not_empty())
{
trc = fi.get_special_value("DYLOG");
if (trc.not_empty())
{
const char tipo = trc[0];
const int pos = trc.get_int(1);
const int len = trc.get_int();
rec.set(str, tipo, pos, len);
}
}
}
}
bool TFormDylog::compatible(const TRectype& r1, const TRectype& r2)
{
if (r1.empty() || r2.empty())
return TRUE;
if (r1.get_long(QUC_CODDITTA) != r2.get_long(QUC_CODDITTA))
return FALSE;
if (r1.get_char(QUC_TIPOA) != r2.get_char(QUC_TIPOA))
return FALSE;
if (r1.get_long(QUC_CODANAGR) != r2.get_long(QUC_CODANAGR))
return FALSE;
if (r1.get_char(QUC_CAUSALE) != r2.get_char(QUC_CAUSALE))
return FALSE;
if (r1.get_int(QUC_TASSAZIONE) != r2.get_int(QUC_TASSAZIONE))
return FALSE;
const real p1 = r1.get_real(QUC_PERC);
const real p2 = r2.get_real(QUC_PERC);
bool yes = (p1 == ZERO && p2 != ZERO) || (p1 == p2);
return yes;
}
void TFormDylog::add_rec(TRectype& r1, const TRectype& r2)
{
if (r1.empty())
r1 = r2;
else
{
for (int f = r1.items()-1; f >= 0; f--)
{
const char* name = r1.fieldname(f);
if (r1.type(name) == _realfld)
{
real val = r1.get_real(name);
val += r2.get_real(name);
r1.put(name, val);
}
}
r1.put(QUC_PERC, r2.get(QUC_PERC));
}
}
long TFormDylog::raggruppa_c()
{
TCursor& cur = *cursor();
TRectype& rc = cur.curr();
_records.destroy();
for (cur = 0; cur.ok(); ++cur)
{
bool append = TRUE;
const int last = _records.items()-1;
if (last >= 0)
{
TRectype& sum = (TRectype&)_records[last];
if (compatible(sum, rc))
{
add_rec(sum, rc);
append = FALSE;
}
}
if (append)
{
_records.add(rc);
_positions.add_long(cur.pos()+1);
}
}
return _records.items();
}
int TFormDylog::first()
{
TCursor& cur = *cursor();
cur = 0;
bool ok = cur.ok();
if (cur.file().num() == LF_QUAC)
{
if (ok)
{
raggruppa_c();
_index = 0;
cur.curr() = (TRectype&)_records[0];
}
}
return ok ? NOERR : _iseof;
}
int TFormDylog::next()
{
TCursor& cur = *cursor();
bool ok;
if (cur.file().num() == LF_QUAC)
{
_index++;
ok = _index < _records.items();
if (ok)
{
cur = _positions.get_long(_index) - 1;
cur.curr() = (TRectype&)_records[_index];
}
}
else
{
++cur;
ok = cur.ok();
}
return ok ? NOERR : _iseof;
}
long TFormDylog::trasfer(long codditta, TTrasferimentoDylog& file, const char* tipo)
{
TCursor& cur = *cursor();
// Filtra il cursore sulla ditta corrente
TRectype filter(cur.curr());
filter.zero();
filter.put(BSE_CODDITTA, codditta);
cur.setregion(filter, filter);
const long items = cur.items();
if (items > 0) // Se c'e almeno un record ...
{
cur.freeze(TRUE); // Per efficienza congela il cursore
// Inizializza record col primo modulo
TRecordDylog rec(tipo);
int rigo = 0;
int err = first(); // Deve sempre tornare NOERR
CHECKS(err == NOERR, "Invalid cursor ", tipo);
TPrint_section& head = section('H', first_page);
transfer_section(head, rigo, rec, file);
TPrint_section& body = section('B', odd_page);
for (; err == NOERR; err = next())
{
transfer_section(body, rigo, rec, file);
file << rec;
rigo++;
}
cur.freeze(FALSE);
}
return items;
}
TFormDylog::TFormDylog(const char* name)
: TForm(name), _sortedcur(NULL)
{
const char* key = NULL;
switch (TForm::cursor()->file().num())
{
case LF_QUAC: key = "CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC";
case LF_QUAD: key = "CODDITTA|216@->RAGSOC|TIPOA|CODANAGR"; break;
default : break;
}
if (key)
_sortedcur = new TSorted_cursor(TForm::relation(), key);
}
TFormDylog::~TFormDylog()
{
if (_sortedcur)
delete _sortedcur;
}
///////////////////////////////////////////////////////////
// TTracciatiDylog
///////////////////////////////////////////////////////////
TFormDylog& TTracciatiDylog::form(const char* quadro)
{
CHECK(quadro && *quadro == 'S' && quadro[1] != '\0',
"Codice quadro non valido");
const char* name;
switch(quadro[1])
{
case 'C': name = "77qc"; break;
case 'F': name = "77qd"; break;
case 'G': name = "77qdb"; break;
case 'H': name = "77qd1"; break;
case 'K': name = "77qsk"; break;
case 'L': name = "77ql"; break;
case 'P': name = "77qe"; break;
case 'Q': name = "77qe1"; break;
default : name = NULL; break;
}
TFormDylog* frm = (TFormDylog*)_form.objptr(name);
if (frm == NULL)
{
frm = new TFormDylog(name);
_form.add(name, frm);
}
return *frm;
}
void TTracciatiDylog::destroy()
{
_form.destroy();
}
TTracciatiDylog::TTracciatiDylog()
{
}
TTracciatiDylog::~TTracciatiDylog()
{
destroy(); // Non viene mai chiamato!
}
///////////////////////////////////////////////////////////
// TCacheDylog
///////////////////////////////////////////////////////////
const TRectype& TCacheDylog::get(int num, const char* key)
{
TRecord_cache* rc = (TRecord_cache*)_files.objptr(num);
if (rc == NULL)
{
rc = new TRecord_cache(num);
_files.add(rc, num);
}
return rc->get(key);
}
const TRectype& TCacheDylog::get(int num, long key)
{
TString16 str; str << key;
return get(num, str);
}
void TCacheDylog::destroy()
{
_files.destroy();
_tables.destroy();
}
///////////////////////////////////////////////////////////
// TRecordDylog
///////////////////////////////////////////////////////////
void TRecordDylog::print_on(ostream& outs) const
{
outs.write(_buffer, _buffer.size());
}
void TRecordDylog::read_from(istream& ins)
{
ins.read(_buffer.get_buffer(), _buffer.size());
}
void TRecordDylog::set(const char* val, char tipo, int pos, int len)
{
TString80 str(val); str.upper();
int lenstr = str.len();
if (tipo == 'N')
{
// Controlla date
if (len == 8 && lenstr == 10 && str[2] == '-' && str[5] == '-')
{
str.strip("-");
lenstr = len;
} else
// Controlla numeri reali
if (len == 11)
{
const int point = str.find('.');
if (point >= 0)
str.cut(lenstr = point);
if (real::is_null(str))
str.cut(lenstr = 0);
}
}
if (lenstr > len)
{
#ifdef DBG
NFCHECK("Campo troppo lungo: %s (max. %d)", val, len);
#endif
str.cut(lenstr = len);
}
if (lenstr != len)
{
if (tipo == 'N')
str.right_just(len);
else
str.left_just(len);
}
_buffer.overwrite(str, pos-1);
}
bool TRecordDylog::valid() const
{
if (tipo_record().blank())
return FALSE;
if (_buffer.right(3) != "A\r\n")
return FALSE;
return TRUE;
}
void TRecordDylog::tipo_record(const char* tipo)
{
_buffer.spaces(REC_SIZE);
if (tipo && *tipo)
{
_buffer[0] = tipo[0];
_buffer[1] = tipo[1];
}
_buffer.overwrite("A\r\n", REC_SIZE-3);
}
TRecordDylog::TRecordDylog()
{
tipo_record(NULL);
}
TRecordDylog::TRecordDylog(const char* tipo)
{
tipo_record(tipo);
}
TRecordDylog::TRecordDylog(const TRecordDylog& rec) : _buffer(rec._buffer)
{ }
TRecordDylog::~TRecordDylog()
{ }
///////////////////////////////////////////////////////////
// TTrasferimentoDylog
///////////////////////////////////////////////////////////
bool TTrasferimentoDylog::open(const char* path, char mode)
{
CHECK(mode == 'r' || mode == 'w', "Invalid open mode");
close();
if (path && *path)
{
_name = path;
_name.add(default_name());
}
if (_name.empty())
_name = default_name();
if (mode == 'r')
_in_stream = new ifstream(_name, ios::in | ios::nocreate | ios::binary);
else
_out_stream = new ofstream(_name, ios::out | ios::binary);
return TRUE;
}
bool TTrasferimentoDylog::ok() const
{
if (_in_stream)
return _in_stream->good() != 0;
if (_out_stream)
return _out_stream->good() != 0;
return FALSE;
}
bool TTrasferimentoDylog::close()
{
if (_in_stream)
{
delete _in_stream;
_in_stream = NULL;
}
if (_out_stream)
{
delete _out_stream;
_out_stream = NULL;
}
return TRUE;
}
bool TTrasferimentoDylog::write(const TRecordDylog& rec)
{
bool ok = _out_stream != NULL;
if (ok)
(*_out_stream) << rec;
return ok;
}
bool TTrasferimentoDylog::read(TRecordDylog& rec)
{
bool ok = _in_stream != NULL && !_in_stream->eof();
if (ok)
{
(*_in_stream) >> rec;
ok = rec.valid();
}
return ok;
}
long TTrasferimentoDylog::append_quadro(const char* quadro, long codditta,
TProgind& pi)
{
TString str;
str << "Trasferimento quadro " << quadro << " ditta " << codditta;
pi.set_text(str);
TFormDylog& frm = _trcDylog.form(quadro);
long items = frm.trasfer(codditta, *this, quadro);
return items;
}
bool TTrasferimentoDylog::split(const char* path)
{
close();
long totale[32]; memset(totale, 0, sizeof(totale));
long records = 0;
TRecordDylog rec;
long records_per_disk = 0;
int volumes = 1;
const bool magnetic = ::os_is_removable_drive(path);
if (magnetic)
{
if (!yesno_box("Inserire il primo disco del trasferimento nell'unita' %s\n"
"Tutti i dischi devono essere vuoti ed avere la stesso formato.\n"
"Si desidera iniziare il trasferimento?", path))
return FALSE;
unsigned long disk_size = ::os_get_disk_size(path);
records_per_disk = long(disk_size / REC_SIZE - 2);
volumes = int((records-1)/records_per_disk)+1;
}
TProgind pi(records, "Trasferimento records", FALSE, TRUE);
// Read from start
open("", 'r');
for (int volume = 1; volume <= volumes; volume++)
{
if (magnetic && volume > 1)
{
if (!yesno_box("Inserire il disco %d di %d:\n"
"Si desidera proseguire il trasferimento?",
volume, volumes))
{
break;
}
}
TTrasferimentoDylog outfile(path, 'w');
while (!outfile.ok())
{
if (magnetic)
{
if (yesno_box("Errore di scrittura in %s\n"
"Si desidera ritentare?", (const char*)path))
outfile.open(path, 'w');
else
break;
}
else
{
error_box("Errore di scrittura in %s", (const char*)path);
break;
}
}
// Compila record di testata
// Scrive record testata
// Azzera totali
memset(totale, 0, sizeof(totale));
long written = 0;
while (read(rec))
{
const TString& tipo_rec = rec.tipo_record();
if (tipo_rec == "AA" || tipo_rec == "ZZ")
continue;
const int pos = tipo_rec[1] - 'A';
if (pos >= 0 && pos < 26)
{
outfile << rec;
totale[pos]++;
written++;
pi.addstatus(1);
}
else
error_box("Tipo record non riconosciuto: %c", tipo_rec);
if (magnetic && written > records_per_disk)
break;
}
// Compila record di coda
// Scrive record di coda
}
return TRUE;
}
// Cancella il file
void TTrasferimentoDylog::remove()
{
close();
::remove(_name);
}
TTrasferimentoDylog::TTrasferimentoDylog(const char* path, char mode)
: _in_stream(NULL), _out_stream(NULL)
{
open(path, mode);
}
TTrasferimentoDylog::~TTrasferimentoDylog()
{
close();
}
///////////////////////////////////////////////////////////
// main
///////////////////////////////////////////////////////////
HIDDEN int anno_dic()
{
TConfig ini(CONFIG_STUDIO);
return ini.get_int("AnnoDic");
}
class TTransferDylog_msk : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& of, TField_event fe, long jolly);
public:
TTransferDylog_msk();
virtual ~TTransferDylog_msk() { }
};
bool TTransferDylog_msk::on_field_event(TOperable_field& of, TField_event fe, long jolly)
{
switch (of.dlg())
{
case F_PATH:
if (fe == fe_modify || fe == fe_close)
{
TFilename name = of.get();
if (!name.exist())
return error_box("Il percorso non e' valido");
}
break;
default:
break;
}
return TRUE;
}
TTransferDylog_msk::TTransferDylog_msk() : TAutomask("777100a")
{
set(F_ANNO, anno_dic());
}
class TTransferDylog_app : public TSkeleton_application
{
protected:
virtual void main_loop();
};
void TTransferDylog_app::main_loop()
{
TTransferDylog_msk m;
while (m.run() == K_ENTER)
{
TFilename tmp; tmp.tempdir();
TTrasferimentoDylog t(tmp, 'w');
TRecordDylog rec;
TRelation rel_base(LF_BASE);
TRectype da_rec(LF_BASE), a_rec(LF_BASE);
da_rec.put(BSE_CODDITTA, m.get(F_DADITTA));
a_rec.put(BSE_CODDITTA, m.get(F_ADITTA));
TString filter;
filter << "ANNODIC==" << anno_dic();
TCursor cur_base(&rel_base, filter, 1, &da_rec, &a_rec);
TProgind pi(cur_base.items(), "Generazione file di trasferimento", FALSE, TRUE);
cur_base.freeze();
for (cur_base = 0; cur_base.ok(); ++cur_base)
{
const TRectype& base = cur_base.curr();
const long codditta = base.get_long(BSE_CODDITTA);
pi.addstatus(1);
t.append_quadro("SC", codditta, pi);
t.append_quadro("SF", codditta, pi);
t.append_quadro("SG", codditta, pi);
t.append_quadro("SH", codditta, pi);
t.append_quadro("SL", codditta, pi);
}
pi.close_modal();
if (m.get(F_SUPPORTO) == "D")
tmp = m.get(F_DISK);
else
tmp = m.get(F_PATH);
t.split(tmp);
t.remove();
}
_trcDylog.destroy();
}
int m777200(int argc, char* argv[])
{
TTransferDylog_app app;
app.run(argc, argv, "Invio Dylog");
return 0;
}

View File

@ -38,12 +38,14 @@ BEGIN
PROMPT 53 5 ""
FIELD 116@->COFI
SPECIAL STRINGA TRASFER "SC0101" ""
SPECIAL STRINGA DYLOG "AN,3,16" ""
END
STRINGA 3
BEGIN
KEY "CODICE FISCALE DEL SOSTITUTO D'IMPOSTA"
PROMPT 85 5 ""
SPECIAL STRINGA DYLOG "AN,19,16" ""
END
NUMBER 4
@ -70,6 +72,7 @@ BEGIN
PROMPT 9 2 ""
FIELD 216@->COFI
SPECIAL STRINGA TRASFER "SC0201" ""
SPECIAL STRINGA DYLOG "AN,35,16" ""
END
STRING 2
@ -78,6 +81,7 @@ BEGIN
PROMPT 42 2 ""
FIELD 216@->RAGSOC[1,30]
SPECIAL STRINGA TRASFER "SC0202" ""
SPECIAL STRINGA DYLOG "AN,51,24" ""
GROUP 1
END
@ -87,6 +91,7 @@ BEGIN
PROMPT 79 2 ""
FIELD 216@->RAGSOC[31,50]
SPECIAL STRINGA TRASFER "SC0203" ""
SPECIAL STRINGA DYLOG "AN,75,20" ""
GROUP 1
END
@ -96,6 +101,7 @@ BEGIN
PROMPT 112 2 ""
FIELD 218@->DATANASC
SPECIAL STRINGA TRASFER "SC0204" ""
SPECIAL STRINGA DYLOG "NU,95,8" ""
END
STRING 5
@ -104,6 +110,7 @@ BEGIN
PROMPT 126 2 ""
FIELD 218@->SESSO
SPECIAL STRINGA TRASFER "SC0205" ""
SPECIAL STRINGA DYLOG "AN,103,1" ""
END
STRING 6
@ -112,6 +119,7 @@ BEGIN
PROMPT 9 4 ""
FIELD 313@->DENCOM
SPECIAL STRINGA TRASFER "SC0206" ""
SPECIAL STRINGA DYLOG "AN,104,21" ""
GROUP 1
END
@ -121,6 +129,7 @@ BEGIN
PROMPT 46 4 ""
FIELD 313@->PROVCOM
SPECIAL STRINGA TRASFER "SC0207" ""
SPECIAL STRINGA DYLOG "AN,125,2" ""
GROUP 1
END
@ -130,6 +139,7 @@ BEGIN
PROMPT 52 4 ""
FIELD 413@->DENCOM
SPECIAL STRINGA TRASFER "SC0208" ""
SPECIAL STRINGA DYLOG "AN,127,21" ""
GROUP 1
END
@ -139,6 +149,7 @@ BEGIN
PROMPT 88 4 ""
FIELD 413@->PROVCOM
SPECIAL STRINGA TRASFER "SC0209" ""
SPECIAL STRINGA DYLOG "AN,148,2" ""
END
STRING 101
@ -164,6 +175,7 @@ BEGIN
KEY "VIA RES. + numcivres"
PROMPT 93 4 ""
SPECIAL STRINGA TRASFER "SC0210" ""
SPECIAL STRINGA DYLOG "AN,150,35" ""
GROUP 1
END
@ -173,6 +185,7 @@ BEGIN
PROMPT 9 6 ""
FIELD CAUSALE
SPECIAL STRINGA TRASFER "SC0211" ""
SPECIAL STRINGA DYLOG "AN,185,1" ""
END
STRING 12
@ -181,6 +194,7 @@ BEGIN
PROMPT 20 6 ""
FIELD TASSAZIONE
SPECIAL STRINGA TRASFER "SC0212" ""
SPECIAL STRINGA DYLOG "AN,186,1" ""
END
NUMBER 13
@ -190,6 +204,7 @@ BEGIN
PICTURE "###.###.###^^^"
FIELD AMMLORDO
SPECIAL STRINGA TRASFER "SC0213" ""
SPECIAL STRINGA DYLOG "NU,187,11" ""
END
NUMBER 14
@ -199,6 +214,7 @@ BEGIN
PICTURE "###.###.###^^^"
FIELD CONTROBB
SPECIAL STRINGA TRASFER "SC0214" ""
SPECIAL STRINGA DYLOG "NU,198,11" ""
END
NUMBER 15
@ -208,6 +224,7 @@ BEGIN
PICTURE "###.###.###^^^"
FIELD SOMNONSOGG
SPECIAL STRINGA TRASFER "SC0215" ""
SPECIAL STRINGA DYLOG "NU,209,11" ""
END
NUMBER 16
@ -217,6 +234,7 @@ BEGIN
PICTURE "###.###.###^^^"
FIELD IMPONIBILE
SPECIAL STRINGA TRASFER "SC0216" ""
SPECIAL STRINGA DYLOG "NU,220,11" ""
END
NUMBER 17
@ -226,6 +244,7 @@ BEGIN
PICTURE "###.###.###^^^"
FIELD IMPOSTA
SPECIAL STRINGA TRASFER "SC0217" ""
SPECIAL STRINGA DYLOG "NU,231,11" ""
END
NUMBER 18
@ -235,6 +254,7 @@ BEGIN
PICTURE "###.###.###^^^"
FIELD DETCARFAM
SPECIAL STRINGA TRASFER "SC0218" ""
SPECIAL STRINGA DYLOG "NU,242,11" ""
END
NUMBER 19
@ -243,6 +263,7 @@ BEGIN
PROMPT 36 8 ""
FIELD GGLAVDIP
SPECIAL STRINGA TRASFER "SC0219" ""
SPECIAL STRINGA DYLOG "NU,253,3" ""
END
NUMBER 20
@ -252,6 +273,7 @@ BEGIN
PICTURE "###.###.###^^^"
FIELD DETLAVDIP
SPECIAL STRINGA TRASFER "SC0220" ""
SPECIAL STRINGA DYLOG "NU,256,11" ""
END
NUMBER 21
@ -261,6 +283,7 @@ BEGIN
PICTURE "###.###.###^^^"
FIELD TOTDET
SPECIAL STRINGA TRASFER "SC0221" ""
SPECIAL STRINGA DYLOG "NU,267,11" ""
END
NUMBER 22
@ -270,6 +293,7 @@ BEGIN
PICTURE "###.###.###^^^"
FIELD RITENUTE
SPECIAL STRINGA TRASFER "SC0222" ""
SPECIAL STRINGA DYLOG "NU,278,11" ""
END
NUMBER 23

View File

@ -77,12 +77,14 @@ BEGIN
PROMPT 55 8 ""
FIELD 206@->COFI
SPECIAL STRING TRASFER "SF0101" ""
SPECIAL STRING DYLOG "AN,3,16" ""
END
STRINGA 13
BEGIN
KEY "CODICE FISCALE DICHIARANTE"
PROMPT 88 8 ""
SPECIAL STRING DYLOG "AN,19,16" ""
END
NUMBER 14
@ -109,8 +111,14 @@ BEGIN
KEY "Tipo anagrafica"
PROMPT 1 1 ""
FIELD TIPOA
ITEM "F| " MESSAGE SHOW,1@|HIDE,2@
ITEM "G| " MESSAGE SHOW,2@|HIDE,1@
ITEM "F| " MESSAGE SHOW,1@|HIDE,2@|"1",98
ITEM "G| " MESSAGE SHOW,2@|HIDE,1@|"2",98
END
STRINGA 98
BEGIN
KEY "Tipo anagrafica 1/2"
SPECIAL STRING DYLOG "NU,51,1" ""
END
STRINGA 1
@ -119,6 +127,7 @@ BEGIN
PROMPT 10 1 ""
FIELD 216@->COFI
SPECIAL STRING TRASFER "SF0201" ""
SPECIAL STRING DYLOG "AN,35,16" ""
END
STRINGA 2
@ -128,6 +137,7 @@ BEGIN
FIELD 216@->RAGSOC[1,30]
GROUP 1
SPECIAL STRING TRASFER "SF0202" ""
SPECIAL STRING DYLOG "AN,52,24" ""
END
STRINGA 3
@ -137,6 +147,7 @@ BEGIN
FIELD 216@->RAGSOC[31,50]
GROUP 1
SPECIAL STRING TRASFER "SF0203" ""
SPECIAL STRING DYLOG "AN,76,20" ""
END
STRINGA 102
@ -146,6 +157,7 @@ BEGIN
FIELD 216@->RAGSOC
GROUP 2
SPECIAL STRING TRASFER "SF0202" ""
SPECIAL STRING DYLOG "AN,186,60" ""
END
STRINGA 4
@ -155,6 +167,7 @@ BEGIN
FIELD 218@->SESSO
GROUP 1
SPECIAL STRING TRASFER "SF0204" ""
SPECIAL STRING DYLOG "AN,104,1" ""
END
STRINGA 5
@ -165,6 +178,7 @@ BEGIN
PICTURE "##^ ##^ ####"
GROUP 1
SPECIAL STRING TRASFER "SF0205" ""
SPECIAL STRING DYLOG "NU,96,8" ""
END
STRINGA 6
@ -174,6 +188,7 @@ BEGIN
FIELD 313@->DENCOM
GROUP 1
SPECIAL STRING TRASFER "SF0206" ""
SPECIAL STRING DYLOG "AN,105,21" ""
END
STRINGA 7
@ -183,6 +198,7 @@ BEGIN
FIELD 313@->PROVCOM
GROUP 1
SPECIAL STRING TRASFER "SF0207" ""
SPECIAL STRING DYLOG "AN,126,2" ""
END
STRINGA 8
@ -192,6 +208,8 @@ BEGIN
FIELD 513@->DENCOM
MESSAGE EMPTY SHOW,3@|HIDE,4@
MESSAGE SHOW,4@|HIDE,3@
SPECIAL STRING TRASFER "SF0208" ""
SPECIAL STRING DYLOG "AN,128,21" ""
END
STRINGA 80
@ -201,6 +219,7 @@ BEGIN
FIELD 413@->DENCOM
GROUP 3
SPECIAL STRING TRASFER "SF0208" ""
SPECIAL STRING DYLOG "AN,128,21" ""
END
STRINGA 9
@ -210,6 +229,7 @@ BEGIN
FIELD 513@->PROVCOM
FIELD 413@->PROVCOM
SPECIAL STRING TRASFER "SF0209" ""
SPECIAL STRING DYLOG "AN,149,2" ""
END
STRINGA 101
@ -234,6 +254,7 @@ BEGIN
PROMPT 78 5 ""
GROUP 3
SPECIAL STRING TRASFER "SF0210" ""
SPECIAL STRING DYLOG "AN,151,35" ""
END
STRINGA 103
@ -257,14 +278,20 @@ BEGIN
KEY "VIA RF + NUMCIVRF"
PROMPT 78 5 ""
GROUP 4
SPECIAL STRING DYLOG "AN,128,35" ""
END
NUMBER 97
BEGIN
SPECIAL STRING DYLOG "NU,304,1" ""
END
LISTA 11
BEGIN
KEY "FLAG DI NON RESIDENTE"
PROMPT 10 7 ""
ITEM "| " MESSAGE HIDE,5@
ITEM "X|X" MESSAGE SHOW,5@
ITEM "| " MESSAGE HIDE,5@|"0",97
ITEM "X|X" MESSAGE SHOW,5@|"1",97
FIELD 216@->SOGGNRES
SPECIAL STRING TRASFER "SF0211" ""
END
@ -276,6 +303,7 @@ BEGIN
FIELD 104@->S0
GROUP 5
SPECIAL STRING TRASFER "SF0212" ""
SPECIAL STRING DYLOG "AN,305,35" ""
END
STRINGA 13
@ -285,6 +313,7 @@ BEGIN
FIELD 216@->STATORES
GROUP 5
SPECIAL STRING TRASFER "SF0213" ""
SPECIAL STRING DYLOG "NU,340,3" ""
END
STRINGA 14
@ -294,6 +323,7 @@ BEGIN
FIELD 216@->COFIEST
GROUP 5
SPECIAL STRING TRASFER "SF0214" ""
SPECIAL STRING DYLOG "AN,343,20" ""
END
STRINGA 15
@ -302,6 +332,7 @@ BEGIN
PROMPT 13 9 ""
FIELD CAUSALE
SPECIAL STRING TRASFER "SF0215" ""
SPECIAL STRING DYLOG "AN,363,1" ""
END
NUMBER 16
@ -311,6 +342,7 @@ BEGIN
FIELD TOTALE
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SF0216" ""
SPECIAL STRING DYLOG "NU,364,11" ""
END
NUMBER 17
@ -320,6 +352,7 @@ BEGIN
FIELD SOMME
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SF0217" ""
SPECIAL STRING DYLOG "NU,375,11" ""
END
NUMBER 18
@ -329,6 +362,7 @@ BEGIN
FIELD SOMREGCONV
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SF0218" ""
SPECIAL STRING DYLOG "NU,386,11" ""
END
NUMBER 19
@ -338,6 +372,7 @@ BEGIN
FIELD IMPONIBILE
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SF0219" ""
SPECIAL STRING DYLOG "NU,397,11" ""
END
NUMBER 20
@ -347,6 +382,7 @@ BEGIN
FIELD IMPORTO
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SF0220" ""
SPECIAL STRING DYLOG "NU,408,11" ""
END
NUMBER 21

View File

@ -75,12 +75,14 @@ BEGIN
PROMPT 55 8 ""
FIELD 106@->COFI
SPECIAL STRING TRASFER "SH0101" ""
SPECIAL STRING DYLOG "AN,3,16" ""
END
STRINGA 13
BEGIN
KEY "CODICE FISCALE DICHIARANTE"
PROMPT 88 8 ""
SPECIAL STRING DYLOG "AN,19,16" ""
END
NUMBER 14
@ -102,8 +104,13 @@ BEGIN
KEY "Tipo anagrafica"
PROMPT 1 1 ""
FIELD TIPOA
ITEM "F| " MESSAGE SHOW,1@|HIDE,2@
ITEM "G| " MESSAGE SHOW,2@|HIDE,1@
ITEM "F| " MESSAGE SHOW,1@|HIDE,2@|"1",98
ITEM "G| " MESSAGE SHOW,2@|HIDE,1@|"2",98
END
NUMERO 98
BEGIN
SPECIAL STRING DYLOG "NU,51,1" ""
END
STRINGA 1
@ -112,6 +119,7 @@ BEGIN
PROMPT 9 1 ""
FIELD 216@->COFI
SPECIAL STRING TRASFER "SH0201" ""
SPECIAL STRING DYLOG "AN,35,16" ""
END
STRINGA 2
@ -121,6 +129,7 @@ BEGIN
FIELD 216@->RAGSOC[1,30]
GROUP 1
SPECIAL STRING TRASFER "SH0202" ""
SPECIAL STRING DYLOG "AN,52,24" ""
END
STRINGA 3
@ -130,6 +139,7 @@ BEGIN
FIELD 216@->RAGSOC[31,50]
GROUP 1
SPECIAL STRING TRASFER "SH0203" ""
SPECIAL STRING DYLOG "AN,76,20" ""
END
STRINGA 102
@ -139,6 +149,7 @@ BEGIN
FIELD 216@->RAGSOC
GROUP 2
SPECIAL STRING TRASFER "SH0202" ""
SPECIAL STRING DYLOG "AN,186,60" ""
END
STRINGA 4
@ -148,6 +159,7 @@ BEGIN
FIELD 218@->SESSO
GROUP 1
SPECIAL STRING TRASFER "SH0204" ""
SPECIAL STRING DYLOG "AN,104,1" ""
END
STRINGA 5
@ -158,6 +170,7 @@ BEGIN
PICTURE "##^ ##^ ####"
GROUP 1
SPECIAL STRING TRASFER "SH0205" ""
SPECIAL STRING DYLOG "NU,96,8" ""
END
STRINGA 6
@ -167,6 +180,7 @@ BEGIN
FIELD 313@->DENCOM
GROUP 1
SPECIAL STRING TRASFER "SH0206" ""
SPECIAL STRING DYLOG "AN,105,21" ""
END
STRINGA 7
@ -176,6 +190,7 @@ BEGIN
FIELD 313@->PROVCOM
GROUP 1
SPECIAL STRING TRASFER "SH0207" ""
SPECIAL STRING DYLOG "AN,126,2" ""
END
STRINGA 8
@ -186,6 +201,7 @@ BEGIN
MESSAGE EMPTY SHOW,3@|HIDE,4@
MESSAGE SHOW,4@|HIDE,3@
SPECIAL STRING TRASFER "SH0208" ""
SPECIAL STRING DYLOG "AN,128,21" ""
END
STRINGA 80
@ -195,6 +211,7 @@ BEGIN
FIELD 413@->DENCOM
GROUP 3
SPECIAL STRING TRASFER "SH0208" ""
SPECIAL STRING DYLOG "AN,128,21" ""
END
STRINGA 9
@ -204,6 +221,7 @@ BEGIN
FIELD 513@->PROVCOM
FIELD 413@->PROVCOM
SPECIAL STRING TRASFER "SH0209" ""
SPECIAL STRING DYLOG "AN,149,2" ""
END
STRINGA 101
@ -228,6 +246,7 @@ BEGIN
PROMPT 78 5 ""
GROUP 3
SPECIAL STRING TRASFER "SH0210" ""
SPECIAL STRING DYLOG "AN,151,35" ""
END
STRINGA 103
@ -252,6 +271,7 @@ BEGIN
PROMPT 78 5 ""
GROUP 4
SPECIAL STRING TRASFER "SH0210" ""
SPECIAL STRING DYLOG "AN,151,35" ""
END
STRING 11
@ -260,6 +280,7 @@ BEGIN
PROMPT 10 7 ""
FIELD CAUSALE
SPECIAL STRING TRASFER "SH0211" ""
SPECIAL STRING DYLOG "AN,304,1" ""
END
NUMBER 12
@ -269,6 +290,7 @@ BEGIN
FIELD TOTALE
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SH0212" ""
SPECIAL STRING DYLOG "NU,305,11" ""
END
NUMBER 13
@ -278,6 +300,7 @@ BEGIN
FIELD SPESEANT
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SH0213" ""
SPECIAL STRING DYLOG "NU,316,11" ""
END
NUMBER 14
@ -287,6 +310,7 @@ BEGIN
FIELD QUOTAPRO
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SH0214" ""
SPECIAL STRING DYLOG "NU,327,11" ""
END
NUMBER 15
@ -296,6 +320,7 @@ BEGIN
FIELD IMPONIBILE
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SH0215" ""
SPECIAL STRING DYLOG "NU,338,11" ""
END
NUMBER 16
@ -305,6 +330,7 @@ BEGIN
FIELD IMPORTO
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SH0216" ""
SPECIAL STRING DYLOG "NU,349,11" ""
END
NUMBER 17

View File

@ -75,12 +75,14 @@ BEGIN
KEY "CODICE FISCALE"
PROMPT 55 8 ""
FIELD 106@->COFI
SPECIAL STRING DYLOG "AN,3,16" ""
END
STRINGA 13
BEGIN
KEY "CODICE FISCALE DICHIARANTE"
PROMPT 88 8 ""
SPECIAL STRING DYLOG "AN,19,16" ""
END
NUMERO 14
@ -100,11 +102,17 @@ SECTION BODY ODD 10
LISTA 99
BEGIN
KEY "Tipo anagrafica"
KEY "Tipo anagrafica F/G"
PROMPT 1 1 ""
FIELD TIPOA
ITEM "F| " MESSAGE SHOW,1@|HIDE,2@
ITEM "G| " MESSAGE SHOW,2@|HIDE,1@
ITEM "F|1" MESSAGE SHOW,1@|HIDE,2@|"1",98
ITEM "G|2" MESSAGE SHOW,2@|HIDE,1@|"2",98
END
STRINGA 98
BEGIN
KEY "Tipo anagrafica 1/2"
SPECIAL STRING DYLOG "AN,51,1" ""
END
STRINGA 1
@ -113,6 +121,7 @@ BEGIN
PROMPT 9 1 ""
FIELD 216@->COFI
SPECIAL STRING TRASFER "SG0101" ""
SPECIAL STRING DYLOG "AN,35,16" ""
END
STRINGA 2
@ -122,6 +131,7 @@ BEGIN
FIELD 216@->RAGSOC[1,30]
GROUP 1
SPECIAL STRING TRASFER "SG0201" ""
SPECIAL STRING DYLOG "AN,52,24" ""
END
STRINGA 3
@ -131,6 +141,7 @@ BEGIN
FIELD 216@->RAGSOC[31,50]
GROUP 1
SPECIAL STRING TRASFER "SG0202" ""
SPECIAL STRING DYLOG "AN,76,20" ""
END
STRINGA 102
@ -140,6 +151,7 @@ BEGIN
FIELD 216@->RAGSOC
GROUP 2
SPECIAL STRING TRASFER "SG0201" ""
SPECIAL STRING DYLOG "AN,186,60" ""
END
STRINGA 4
@ -149,6 +161,7 @@ BEGIN
FIELD 218@->SESSO
GROUP 1
SPECIAL STRING TRASFER "SG0204" ""
SPECIAL STRING DYLOG "AN,104,1" ""
END
STRINGA 5
@ -159,6 +172,7 @@ BEGIN
PICTURE "##^ ##^ ####"
GROUP 1
SPECIAL STRING TRASFER "SG0205" ""
SPECIAL STRING DYLOG "NU,96,8" ""
END
STRINGA 6
@ -168,6 +182,7 @@ BEGIN
FIELD 313@->DENCOM
GROUP 1
SPECIAL STRING TRASFER "SG0206" ""
SPECIAL STRING DYLOG "AN,105,21" ""
END
STRINGA 7
@ -176,6 +191,7 @@ BEGIN
PROMPT 126 3 ""
FIELD 313@->PROVCOM
GROUP 1
SPECIAL STRING DYLOG "AN,126,2" ""
SPECIAL STRING TRASFER "SG0207" ""
END
@ -187,6 +203,7 @@ BEGIN
MESSAGE EMPTY SHOW,3@|HIDE,4@
MESSAGE SHOW,4@|HIDE,3@
SPECIAL STRING TRASFER "SG0208" ""
SPECIAL STRING DYLOG "AN,128,21" ""
END
STRINGA 80
@ -196,6 +213,7 @@ BEGIN
FIELD 413@->DENCOM
GROUP 3
SPECIAL STRING TRASFER "SG0208" ""
SPECIAL STRING DYLOG "AN,128,21" ""
END
STRINGA 9
@ -205,6 +223,7 @@ BEGIN
FIELD 513@->PROVCOM
FIELD 413@->PROVCOM
SPECIAL STRING TRASFER "SG0209" ""
SPECIAL STRING DYLOG "AN,149,2" ""
END
STRINGA 101
@ -229,6 +248,7 @@ BEGIN
PROMPT 78 5 ""
GROUP 3
SPECIAL STRING TRASFER "SG0210" ""
SPECIAL STRING DYLOG "AN,151,35" ""
END
STRINGA 103
@ -253,18 +273,25 @@ BEGIN
PROMPT 78 5 ""
GROUP 4
SPECIAL STRING TRASFER "SG0210" ""
SPECIAL STRING DYLOG "AN,151,35" ""
END
LISTA 11
BEGIN
KEY "FLAG DI NON RESIDENTE"
PROMPT 10 7 ""
ITEM "| " MESSAGE HIDE,5@
ITEM "X|X" MESSAGE SHOW,5@
ITEM "| " MESSAGE HIDE,5@|"0",97
ITEM "X|X" MESSAGE SHOW,5@|"1",97
FIELD 216@->SOGGNRES
SPECIAL STRING TRASFER "SG0211" ""
END
NUMERO 97
BEGIN
KEY "FLAG DI NON RESIDENTE 0/1"
SPECIAL STRING DYLOG "NU,304,1" ""
END
STRINGA 12
BEGIN
KEY "STATO ESTERO DI RES."
@ -272,6 +299,7 @@ BEGIN
FIELD 104@->S0
GROUP 5
SPECIAL STRING TRASFER "SG0212" ""
SPECIAL STRING DYLOG "AN,305,35" ""
END
STRINGA 13
@ -281,6 +309,7 @@ BEGIN
FIELD 216@->STATORES
GROUP 5
SPECIAL STRING TRASFER "SG0213" ""
SPECIAL STRING DYLOG "NU,340,3" ""
END
STRINGA 14
@ -290,6 +319,7 @@ BEGIN
FIELD 216@->COFIEST
GROUP 5
SPECIAL STRING TRASFER "SG0214" ""
SPECIAL STRING DYLOG "AN,343,20" ""
END
STRINGA 15
@ -298,6 +328,7 @@ BEGIN
PROMPT 10 9 ""
FIELD CAUSALE
SPECIAL STRING TRASFER "SG0215" ""
SPECIAL STRING DYLOG "AN,363,1" ""
END
NUMERO 16
@ -307,6 +338,7 @@ BEGIN
FIELD TOTALE
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SG0216" ""
SPECIAL STRING DYLOG "NU,364,11" ""
END
NUMERO 17
@ -316,6 +348,7 @@ BEGIN
FIELD SOMME
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SG0217" ""
SPECIAL STRING DYLOG "NU,375,11" ""
END
NUMERO 18
@ -325,6 +358,7 @@ BEGIN
FIELD SOMREGCONV
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SG0218" ""
SPECIAL STRING DYLOG "NU,386,11" ""
END
NUMERO 19
@ -334,6 +368,7 @@ BEGIN
FIELD IMPONIBILE
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SG0219" ""
SPECIAL STRING DYLOG "NU,397,11" ""
END
NUMERO 20
@ -343,6 +378,7 @@ BEGIN
FIELD IMPORTO
PICTURE "###.###.###^^^"
SPECIAL STRING TRASFER "SG0220" ""
SPECIAL STRING DYLOG "NU,408,11" ""
END
NUMERO 21
@ -360,6 +396,7 @@ BEGIN
PROMPT 124 9 ""
FIELD CONTR10
SPECIAL STRING TRASFER "SG0222" ""
SPECIAL STRING DYLOG "AN,419,1" ""
END
END

View File

@ -49,12 +49,14 @@ BEGIN
KEY "CODICE FISCALE DICHIARANTE"
PROMPT 54 8 ""
FIELD 116@->COFI
SPECIAL STRINGA DYLOG "AN,3,16" ""
END
STRINGA 13
BEGIN
KEY "CODICE FISCALE DEL SOSTITUTO D'IMPOSTA"
PROMPT 88 8 ""
SPECIAL STRINGA DYLOG "AN,19,16" ""
END
NUMBER 14
@ -76,6 +78,7 @@ BEGIN
KEY "ENTE PREVIDENZIALE"
PROMPT 10 1 ""
FIELD 214@->S0
SPECIAL STRINGA DYLOG "AN,35,60" ""
END
NUMBER 12
@ -84,6 +87,7 @@ BEGIN
PROMPT 86 1 ""
PICTURE "###.###.###^^^"
FIELD 43->H1DAT
SPECIAL STRINGA DYLOG "NU,95,11" ""
END
NUMBER 13
@ -92,6 +96,7 @@ BEGIN
PROMPT 119 1 ""
PICTURE "###.###.###^^^"
FIELD 43->H1LAV
SPECIAL STRINGA DYLOG "NU,106,11" ""
END
END

View File

@ -39,12 +39,14 @@ BEGIN
KEY "CODICE FISCALE DEL DICHIARANTE"
PROMPT 53 5 ""
FIELD 106@->COFI
SPECIAL STRING DYLOG "AN,3,16" ""
END
STRINGA 3
BEGIN
KEY "CODICE FISCALE DEL SOSTITUTO IMPOSTA"
PROMPT 85 5 ""
SPECIAL STRING DYLOG "AN,19,16" ""
END
NUMERO 4
@ -105,15 +107,18 @@ BEGIN
KEY "Mese rif."
PROMPT 23 2 ""
PICTURE "@@"
FIELD 42->QLMP
MESSAGE COPY,100
SPECIAL STRING DYLOG "NU,65,2" ""
END
NUMERO 2
BEGIN
KEY "Anno rif."
PROMPT 28 2 ""
FIELD 42->QLAP
FIELD 42->QLAP[3,4]
MESSAGE ADD,100
SPECIAL STRING DYLOG "NU,67,2" ""
END
STRING 100
@ -130,6 +135,7 @@ BEGIN
FIELD 42->QLRITEFF
PICTURE "###.###.###.###^^^"
MESSAGE ADD,FL->1
SPECIAL STRING DYLOG "NU,69,11" ""
END
NUMERO 4
@ -139,24 +145,32 @@ BEGIN
FIELD 42->QLRITVER
PICTURE "###.###.###.###^^^"
MESSAGE ADD,FL->2
SPECIAL STRING DYLOG "NU,80,11" ""
END
LISTA 5
BEGIN
KEY "RSS"
PROMPT 99 2 ""
ITEM " | "
ITEM "1|VA"
ITEM "2|SA"
ITEM "3|SI"
ITEM " | " MESSAGE " ",50
ITEM "1|VA" MESSAGE "VA",50
ITEM "2|SA" MESSAGE "SA",50
ITEM "3|SI" MESSAGE "SI",50
FIELD 42->QLRSS
END
STRING 50
BEGIN
KEY "RSS decodificato"
SPECIAL STRING DYLOG "NU,96,2" ""
END
STRINGA 6
BEGIN
KEY "Note"
PROMPT 109 2 ""
FIELD 42->QLNOTE
SPECIAL STRING DYLOG "AN,98,16" ""
END
STRINGA 7
@ -192,6 +206,7 @@ BEGIN
PROMPT 53 4 ""
FIELD 42->QLAB
SPECIAL STRING TRASFER "SL0108" ""
SPECIAL STRING DYLOG "AN,63,2" ""
END
STRINGA 11
@ -201,6 +216,7 @@ BEGIN
FIELD 42->QLDV
PICTURE " ## ^ ## ^####"
SPECIAL STRING TRASFER "SL0104" ""
SPECIAL STRING DYLOG "NU,35,8" ""
END
STRINGA 12
@ -208,6 +224,7 @@ BEGIN
KEY "SERIE"
PROMPT 81 4 ""
FIELD 42->QLSERIE
SPECIAL STRING DYLOG "NU,43,5" ""
END
STRINGA 13
@ -220,9 +237,8 @@ END
STRINGA 14
BEGIN
KEY "NUMERO COMPLETO"
PROMPT 96 4 ""
FIELD 42->QLNUMERO
FLAGS "H"
SPECIAL STRING DYLOG "NU,48,11" ""
END
END