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:
parent
212dc05aef
commit
11be8f4e18
@ -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;
|
||||
|
@ -1 +1,2 @@
|
||||
int m777100(int argc, char* argv[]);
|
||||
int m777100(int argc, char* argv[]);
|
||||
int m777200(int argc, char* argv[]);
|
@ -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
833
m770/777200.cpp
Executable 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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user