Riportata la versione 98.01.01CD sul main trunk

git-svn-id: svn://10.65.10.50/trunk@5988 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1998-01-20 15:45:20 +00:00
parent b5be931a6b
commit f875bb3841
21 changed files with 1457 additions and 532 deletions

View File

@ -36,28 +36,30 @@ bool TConfig::_read_paragraph()
if (l[0] == '#' || l[0] == '/') continue; // Riga di commento
const int ind = l.find('=');
if (ind == -1)
if (ind == -1)
{
error_box("Errore configurazione:\n file %s, vicino alla riga %u\n %s",
(const char*)_file, scan.linenum(), (const char*)l);
continue;
}
key = l.left(ind); key.trim();
val = l.mid(ind+1); val.trim();
if (val[0] == '%')
{
if (val == "%yr%")
{
// val.format("%04d", TDate(TODAY).year());
{
if (val == "%yr%")
{
// val.format("%04d", TDate(TODAY).year());
time_t ora; time(&ora);
struct tm * oggi = localtime(&ora);
val.format("%04d", 1900 + oggi->tm_year);
if (oggi == NULL)
fatal_box("Impossibile reperire la data corrente del sistema.");
val.format("%04d", 1900 + oggi->tm_year);
}
else
if (val == "%frm%") val.format("%05ld", prefix().get_codditta());
}
if (val == "%frm%") val.format("%05ld", prefix().get_codditta());
}
// sostituzione abilitata
_data.add(key,val,TRUE);
}
@ -72,12 +74,12 @@ void TConfig::_write_paragraph(
ofstream& out) // @parm Indirizzo dell'utput sul quale scrivere il paragrafo
// @comm Scrive sullo stream <p>out le variabili del paragrafo attivo.
{
{
if (_data.items() > 0) // Inutile scrivere paragrafi vuoti!
{
out << '[' << _paragraph << ']' << endl;
/*
_data.restart();
out << '[' << _paragraph << ']' << endl;
/*
_data.restart();
for (THash_object* o = _data.get_hashobj(); o; o = _data.get_hashobj())
out << o->key() << " = " << (TString&)(o->obj()) << '\n';
*/
@ -89,21 +91,21 @@ void TConfig::_write_paragraph(
out << name << " = ";
out << get(name) << endl;
}
out << endl;
}
}
}
void TConfig::_write_file()
{
ifstream in(_file);
ifstream in(_file);
TFilename temp;
temp.temp("cnf");
ofstream out(temp);
TString l(1024);
TString l(1024);
TString cnf; cnf << '[' << _paragraph << ']';
bool skip = FALSE, done = FALSE, skip_empty = TRUE;
while (!in.eof())
@ -117,29 +119,29 @@ void TConfig::_write_file()
_write_paragraph(out);
skip = skip_empty = done = TRUE;
}
else
{
if (skip)
else
{
if (skip)
skip = l[0] != '[';
if (!skip)
if (!skip)
{
const bool empty = l.empty();
if (!empty || !skip_empty)
out << l << endl;
skip_empty = empty;
}
}
}
}
// new paragraph
if (!done) _write_paragraph(out);
out.close(); in.close();
if (fexist(_file))
{
while (access(_file, 02) != 0)
message_box("Il file %s e' gia' in uso", (const char*)_file);
}
}
fcopy(temp, _file); // Copia dalla tempdir al nuovo .ini
::remove(temp); // Cancella file temporaneo
}
@ -149,9 +151,9 @@ bool TConfig::set_paragraph(const char* section)
bool ok = TRUE;
if (section != NULL && _paragraph != section)
{
if (_dirty)
if (_dirty)
_write_file();
_paragraph = section;
_paragraph = section;
_dirty = FALSE;
ok = _read_paragraph();
}
@ -176,11 +178,11 @@ bool TConfig::exist(
{
if (index >= 0)
{
TString key(80);
TString key(80);
key << var << '(' << index << ')';
return _data.is_key(key);
return _data.is_key(key);
}
return _data.is_key(var);
return _data.is_key(var);
}
// @doc EXTERNAL
@ -200,7 +202,7 @@ bool TConfig::remove(
// normale passata in <p var>.
{
TString key(var);
if (index >= 0)
if (index >= 0)
key << '(' << index << ')';
const bool ok = _data.remove(key);
if (ok) _dirty = TRUE;
@ -208,12 +210,12 @@ bool TConfig::remove(
}
void TConfig::remove_all()
{
{
if (_data.items() > 0)
{
_data.destroy();
_dirty = TRUE;
}
}
}
@ -240,14 +242,14 @@ TString& TConfig::get(
{
if (section) // Cambia paragrafo se necessario
set_paragraph(section);
TString* val;
if (index >= 0)
{
TString v(80);
v << var << '(' << index << ')';
val = (TString*)_data.objptr(v);
}
}
else
val = (TString*)_data.objptr(var);
@ -256,7 +258,7 @@ TString& TConfig::get(
set(var, def, section, TRUE, index);
val = &get(var, NULL, index);
}
return *val;
}
@ -280,17 +282,17 @@ long TConfig::get_long(
//
// @xref <mf TConfig::get> <mf TConfig::get_int> <mf TConfig::get_bool>
// <mf TConfig::get_color>
{
{
const char* n = get(var,section,index);
if (*n)
if (*n)
def = atol(n);
else
{
TString16 d; d << def;
set(var, d, section, TRUE, index);
}
return def;
}
return def;
}
// @doc EXTERNAL
@ -313,16 +315,16 @@ char TConfig::get_char(
//
// @xref <mf TConfig::get> <mf TConfig::get_int> <mf TConfig::get_bool>
// <mf TConfig::get_color>
{
{
const char* n = get(var,section,index);
if (*n)
if (*n)
def = *n;
else
else
{
const char d[2] = { def, '\0' };
set(var, d, section, TRUE, index);
}
return def;
}
return def;
}
// @doc EXTERNAL
@ -373,7 +375,7 @@ bool TConfig::get_bool(
//
// @xref <mf TConfig::get> <mf TConfig::get_long> <mf TConfig::get_int>
// <mf TConfig::get_color>
{
{
const char* d = def ? "X" : "";
const TString& s = get(var, section, index, d).upper();
return s != "" && (s == "X" || s == "Y" || s == "1" || s == "ON" || s == "YES" || s == "OK" || s == "TRUE");
@ -395,10 +397,10 @@ COLOR TConfig::get_color(
//
// @xref <mf TConfig::get> <mf TConfig::get_long> <mf TConfig::get_int>
// <mf TConfig::get_bool>
{
{
const char* c = get(var, section, index);
if (*c)
{
{
TToken_string s(c, ',');
const byte r = (byte)s.get_int();
const byte g = (byte)s.get_int();
@ -407,12 +409,12 @@ COLOR TConfig::get_color(
}
else
{
TString16 d;
d.format("%d,%d,%d",
TString16 d;
d.format("%d,%d,%d",
XVT_COLOR_GET_RED(def), XVT_COLOR_GET_GREEN(def), XVT_COLOR_GET_BLUE(def));
set(var, d, section, TRUE, index);
}
}
return def;
}
@ -440,13 +442,13 @@ bool TConfig::set(
// <nl>Passando <p index> <gt>= 0 viene appeso al nome variabile per
// implementare un array.
// <nl>Il paragrafo passato in <p section> diventa quello attivo.
if (section && *section)
if (section && *section)
set_paragraph(section);
/*
const bool itwas = exist(var, index);
if (itwas && !force)
error_box("Tentativo di ridefinizione simbolo: %s(%d)", var, index);
else
@ -461,16 +463,16 @@ bool TConfig::set(
key << '(' << index << ')';
TString* val = (TString*)_data.objptr(key);
const bool itwas = val != NULL;
if (itwas && !force)
error_box("Tentativo di ridefinizione simbolo: %s", (const char*)key);
else
{
if (itwas)
{
{
const TFixed_string str(value);
// Se la variabile esisteva ed aveva un valore diverso ...
if (*val != str && !(str.blank() && val->empty()))
if (*val != str && !(str.blank() && val->empty()))
{
*val = str; // ... allora la sostituisco ...
val->trim();
@ -478,28 +480,28 @@ bool TConfig::set(
}
}
else
{
{
// Se la variabile non esisteva allora la aggiungo e metto a dirty.
val = new TString(value);
val->trim();
_data.add(key, val, TRUE);
_dirty = TRUE;
}
}
}
return itwas;
}
bool TConfig::set(const char* var, long value, const char* section,
bool TConfig::set(const char* var, long value, const char* section,
bool force, int index)
{
TString16 t; t << value;
return set(var,t,section,force,index);
}
bool TConfig::set_color(const char* var, COLOR col, const char* section,
bool TConfig::set_color(const char* var, COLOR col, const char* section,
bool force, int index)
{
TString16 t;
TString16 t;
t.format("%d,%d,%d", XVT_COLOR_GET_RED(col), XVT_COLOR_GET_GREEN(col), XVT_COLOR_GET_BLUE(col));
return set(var,t,section,force,index);
}
@ -534,37 +536,37 @@ void TConfig::init(
{
_file = fn;
_paragraph = pa;
_dirty = FALSE;
_dirty = FALSE;
if (!fexist(_file))
{
if (warning)
warning_box("Creazione del file di configurazione %s", fn );
ofstream c(fn);
c.close();
}
}
if (_paragraph.blank())
{
{
TFilename name;
HINSTANCE HInstance = (HINSTANCE)xvt_vobj_get_attr(NULL_WIN, ATTR_WIN_INSTANCE);
GetModuleFileName(HInstance, name.get_buffer(), name.size());
_paragraph = name.name();
_paragraph.cut(2);
_paragraph.cut(2);
_paragraph.lower();
}
_ispresent = _read_paragraph();
}
int TConfig::list_paragraphs(TString_array& pl)
{
{
TScanner s(_file);
pl.destroy();
while (s.line().not_empty())
{
if (s.token()[0] == '[')
{
if (s.token()[0] == '[')
{
TToken_string* p = new TToken_string(s.token());
p->strip("[]");
pl.add(p);
@ -574,10 +576,10 @@ int TConfig::list_paragraphs(TString_array& pl)
}
int TConfig::list_variables(TString_array& vl, bool value, const char* section)
{
{
set_paragraph(section);
vl.destroy();
_data.restart();
_data.restart();
for (int i = 0; i < _data.items(); i++)
{
@ -598,14 +600,14 @@ TAssoc_array& TConfig::list_variables(const char* section)
TConfig::TConfig(int which_config, const char* paragraph)
{
{
switch (which_config)
{
case CONFIG_DITTA:
_file = firm2dir(prefix().get_codditta());
_file.add("prassid.ini");
if (!fexist(_file))
fcopy("prassid.ini", _file);
if (!fexist(_file))
fcopy("prassid.ini", _file);
break;
case CONFIG_STUDIO:
case CONFIG_USER:
@ -614,16 +616,16 @@ TConfig::TConfig(int which_config, const char* paragraph)
_file.add("config"); // Directory config
if (!fexist(_file)) // Creala se necessario
make_dir(_file);
switch (which_config)
{
{
case CONFIG_STUDIO:
_file.add("prassis.ini");
if (!fexist(_file))
_file.add("prassis.ini");
if (!fexist(_file))
fcopy("prassis.ini", _file);
break;
case CONFIG_STAMPE:
_file.add("print.ini");
_file.add("print.ini");
break;
case CONFIG_USER:
{
@ -631,20 +633,20 @@ TConfig::TConfig(int which_config, const char* paragraph)
if (u.blank())
u = "PRASSI";
else
u.upper();
u.upper();
_file.add(u);
_file.ext("ini");
if (u != "PRASSI" && !fexist(_file))
if (u != "PRASSI" && !fexist(_file))
{
TFilename prassi = _file.path();
prassi.add("prassi.ini");
fcopy(prassi, _file);
}
}
}
}
break;
default:
break;
}
break;
}
break;
case CONFIG_FCONV:
_file = "fconv.ini";
@ -653,22 +655,22 @@ TConfig::TConfig(int which_config, const char* paragraph)
_file = CGetPrawinName();
break;
default:
_file = "prassi.ini";
_file = "prassi.ini";
CHECK(0, "Chi ca$$o usa prassi.ini?");
break;
}
}
init(_file, paragraph, TRUE);
}
TConfig::TConfig(const char *fn, const char* pa)
TConfig::TConfig(const char *fn, const char* pa)
{ init(fn, pa, FALSE); }
TConfig::~TConfig()
{
// il distruttore riscrive il file con le modifiche se necessario
if (_dirty)
// il distruttore riscrive il file con le modifiche se necessario
if (_dirty)
_write_file();
}

View File

@ -41,6 +41,8 @@ TDate::TDate(long l) : _val(l)
{
if (time(&lt) == -1) return ;
timeloc = localtime(&lt) ;
if (timeloc == NULL)
fatal_box("Impossibile reperire la data corrente del sistema.");
_val = makedata(timeloc->tm_mday, timeloc->tm_mon+1, timeloc->tm_year + 1900);
}
else
@ -55,6 +57,8 @@ TDate::TDate(long l) : _val(l)
if (time(&lt) == -1) return ;
timeloc = localtime(&lt) ;
if (timeloc == NULL)
fatal_box("Impossibile reperire la data corrente del sistema.");
_val = makedata(timeloc->tm_mday, timeloc->tm_mon+1, timeloc->tm_year + 1900);
#endif
} else

View File

@ -865,6 +865,10 @@ TCodesym TExpression::__gettoken(bool /* reduct */)
_tok[i++] = *(_s++);
_tok[i] = '\0';
return _comma;
case ';' :
_tok[i++] = *(_s++);
_tok[i] = '\0';
return _semicolon;
case '(' :
_tok[i++] = *(_s++);
_tok[i] = '\0';
@ -1113,10 +1117,12 @@ TCodesym TExpression::__function(int nparms, bool fixed_num)
if (sym == _rpar)
return nparms <= 0 || !fixed_num ? __gettoken(TRUE) : _invalid;
__parms_found++;
while ((sym = __expression(sym)) == _comma)
sym = __expression(sym);
while (sym == _comma || sym == _semicolon)
{
sym = __gettoken(TRUE);
__parms_found++;
sym = __expression(sym);
}
if (sym == _rpar)
return nparms < 0 || __parms_found == nparms || (__parms_found < nparms && !fixed_num) ?

View File

@ -17,6 +17,7 @@ enum TCodesym {
_invalid, // @emem Simbolo non riconosciuto
_endsym, // @emem Segnaposto per simbolo finale
_comma, // @emem Simbolo virgola ","
_semicolon, // @emem Simbolo punto e virgola ";"
_lpar, // @emem Simbolo aperta parentesi "("
_rpar, // @emem Simbolo chiusa parentesi ")"
_variable, // @emem Nome di una variabile

View File

@ -4894,7 +4894,8 @@ bool TForm::validate(TForm_item &cf, TToken_string &s)
if (code== "_NUMEXPR" || code== "_STREXPR")
{
// Messaggio per la valutazione di espressioni numeriche e stringhe
TExpression rval(s.get(),code[1]=='N' ? _numexpr:_strexpr,TRUE);
int comma = s.find(',');
TExpression rval(s.mid(comma+1),code[1]=='N' ? _numexpr:_strexpr,TRUE);
cf.section().eval_expr(rval);
const char *res = (const char *)rval;
if (!rval.error())

View File

@ -50,7 +50,7 @@ class TForm_item;
class TPrint_section;
class TForm_subsection ;
const int MAXCOLUMNS = 32;
const int MAXCOLUMNS = 64;
const int MAXSUBSECTIONS = 9;
// @doc EXTERNAL

View File

@ -533,11 +533,11 @@ void TImage::convert_transparent_color(COLOR transparent)
if (trans != (transparent & 0x00FFFFFF) &&
xvt_image_get_format(_image) == XVT_IMAGE_CL8)
{
for (int index = 0; index < 256; index++)
for (int index = xvt_image_get_ncolors(_image)-1; index >=0; index--)
if (trans == (xvt_image_get_clut(_image, index) & 0x00FFFFFF))
{
xvt_image_set_clut(_image, index, transparent);
break;
// break; don't break: replace all colors equal to upper left in the palette
}
}
}

View File

@ -43,7 +43,7 @@ PAGE "Province" -1 -1 78 18
DISPLAY "Descrizione @50" S0
OUTPUT 103 CODTAB
OUTPUT 104 S0
CH REQUIRED
CH NORMAL
WARNING "Regione errata"
END

BIN
ve/bolla.bmp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 KiB

BIN
ve/fattura.bmp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

View File

@ -96,6 +96,12 @@
#define GROUPKEY(x) format( "%5d", x )
#define Usage "Sintassi: VE0 -3 <Nome file di profilo> [-f<stdfile>]"
#define B0_POSITION 47
#define S0_POSITION 2
#define S3_POSITION 5
class TMaschera : public TObject
{
private:
@ -196,7 +202,22 @@ public:
};
// Classe per memorizzare gli elementi di FRD
class _TableItem : public TObject
{
bool _b0;
TString _s0,_s3;
public:
virtual TObject* dup() const { return new _TableItem(*this); }
const bool b0() { return _b0;}
const TString& s0() { return _s0;}
const TString& s3() { return _s3;}
void set_b0(const bool b) { _b0 = b;}
void set_s0(const TString& s) { _s0 = s;}
void set_s3(const TString& s) { _s3 = s;}
_TableItem() {_b0 = FALSE;}
virtual ~_TableItem() {}
};
class TMask_generator
{
@ -221,7 +242,7 @@ private:
// File .INI di input
TConfig* _pro;
TConfig _ditta;
//TConfig _ditta;
// Tabelle per la generazione
@ -232,6 +253,10 @@ private:
TString_array _tab0300b;
TAssoc_array _gruppi;
// Tabella caricata dal file testo
TAssoc_array _frdtable;
TString _tablefile;
TMaschera *_m;
@ -280,16 +305,19 @@ public:
TMaschera& maschera( ){ return *_m; }
// Costruttore, vuole il nome del file .INI
TMask_generator( const TString& profilo );
TMask_generator( const TString& profilo, const TString& tablefile);
// Attiva la generazione della maschera
void genera( const TString& );
// Genera l'intestazione di una pagina ( non la prima )
void intestazione_pagina( );
// Carica la tabella FRD da file testo
void load_table();
TConfig& profilo( ){ return *_pro; }
TConfig& ditta( ){ return _ditta; }
//TConfig& ditta( ){ return _ditta; }
TConfig& groupsini( ){ return _groupsini; }
TConfig& fieldsini( ){ return _fieldsini; }
@ -515,7 +543,7 @@ public:
TToken_string& configs( ){ return _configs; }
TConfig& profilo( ) { CHECK(_grp, "NULL group in field"); return grp().generatore().profilo(); }
TConfig& ditta( ) { CHECK(_grp, "NULL group in field"); return grp().generatore().ditta(); }
//TConfig& ditta( ) { CHECK(_grp, "NULL group in field"); return grp().generatore().ditta(); }
TConfig& groupsini( ) { CHECK(_grp, "NULL group in field"); return grp().generatore().groupsini(); }
TConfig& fieldsini( ) { CHECK(_grp, "NULL group in field"); return grp().generatore().fieldsini(); }
@ -730,27 +758,6 @@ int TField::stato_reale()
// Utilizza poi la minore delle due.
int stato = S_OBBLIGATORIO;
{
TToken_string config(fieldsini().get( "CONFIGS", _nome ));
const int items = config.items();
for ( int i = 0; i < items; i += 3 )
{
TString80 chiave(config.get(i));
const TString80 valore(config.get(i + 1));
const int pos = chiave.find( '[' );
int index = -1;
if ( pos >= 0 )
{
index = atoi(chiave.sub(pos + 1, chiave.find( ']')));
chiave.cut(pos);
}
if ( valore == ditta( ).get( chiave, "ve", index))
stato = config.get_int(i + 2);
}
}
TToken_string riga_profilo(grp().generatore().profilo().get(_nome, "PROFILO"));
const int stato_profilo = riga_profilo.get_int(P_STATO);
@ -760,18 +767,7 @@ int TField::stato_reale()
if (stato > S_NASCOSTO)
{
const TString80 gruppo(fieldsini().get("GROUP", _nome));
TToken_string config(groupsini().get("CONFIGS", gruppo));
const int items = config.items( );
int stato_gruppo = S_OBBLIGATORIO;
for ( int i = 0; i < items; i += 3 )
{
const TString80 chiave = config.get( i );
const TString80 valore = config.get( i + 1 );
if (valore == ditta( ).get( chiave, "ve"))
stato_gruppo = config.get_int(i + 2);
};
if (stato > stato_gruppo)
stato = stato_gruppo;
@ -781,7 +777,7 @@ int TField::stato_reale()
stato = stato_gruppo_profilo;
}
return stato;
}
}
void TField::configura( TConfig& pro )
{
@ -852,7 +848,7 @@ void TField::genera( )
// Definizione dei metodi di_generator
// -----------------------------------------
TMask_generator::TMask_generator( const TString& profilo ) : _fieldsini( "ve0300a.ini" ), _groupsini( "ve0300c.ini" ), _ditta( CONFIG_DITTA )
TMask_generator::TMask_generator( const TString& profilo, const TString& tablefile ) : _fieldsini( "ve0300a.ini" ), _groupsini( "ve0300c.ini" )//, _ditta( CONFIG_DITTA )
{
CHECK( fexist( "ve0300a.ini" ), "Il file ve0300a.ini non esiste!" );
_fieldsini.list_paragraphs( _fields );
@ -861,6 +857,7 @@ TMask_generator::TMask_generator( const TString& profilo ) : _fieldsini( "ve0300
carica_dati_campi( "ve0300a.ini", _gruppi );
TString16 param( profilo );
param.lower( );
_tablefile = tablefile;
if( param == "-all" )
{
TString_array profiles;
@ -893,7 +890,7 @@ TMask_generator::TMask_generator( const TString& profilo ) : _fieldsini( "ve0300
genera(profile);
bar.addstatus(1);
}
_ditta.set( "CHANGED", "", "ve" );
//_ditta.set( "CHANGED", "", "ve" );
}
else genera( profilo );
}
@ -1141,6 +1138,63 @@ void TMask_generator::intestazione_pagina( )
}
void TMask_generator::load_table()
{
_frdtable.destroy();
if (!fexist(_tablefile))
fatal_box("Il file %s per il caricamento formule documento non esiste.", (const char*) _tablefile);
TScanner f(_tablefile);
TToken_string s(1024);
TString token;
int b0pos = B0_POSITION, s0pos = S0_POSITION, s3pos = S3_POSITION;
if (f.paragraph("Header"))
{
s = f.line();
if (s.find("Version") > -1)
s = f.line();
int totitem = 0;
while (s.find("Fields") > -1)
{
const int items = s.items();
for (int i = 0; i < items; i++)
{
int pos = totitem + i;
if (strstr(s.get(i),"S0") != NULL)
s0pos = pos;
if (strstr(s.get(i),"S3") != NULL)
s3pos = pos;
if (strstr(s.get(i),"B0") != NULL)
b0pos = pos;
}
totitem += items;
s = f.line();
}
}
if (!f.paragraph("Data"))
fatal_box("Manca il paragrafo [Data] nel file %s.", (const char*) _tablefile);
s = f.line();
while (s.not_empty())
{
s.restart();
token = s.get(0);
if (token == "FRD")
{
token = s.get(1);
if (_frdtable.objptr(token) == NULL)
{
_TableItem* t = new _TableItem;
t->set_b0(s.get(b0pos)[0] == 'X');
t->set_s0(s.get(s0pos));
t->set_s3(s.get(s3pos));
_frdtable.add(token, t);
}
}
s = f.line();
}
}
void TMask_generator::genera( const TString& profilo )
{
int i, last;
@ -1446,22 +1500,33 @@ void TMask_generator::genera( const TString& profilo )
// Generazione pagina dei piedi
{
TToken_string s(_pro->get("CAMPICALC", "MAIN"));
const bool usefiles = _tablefile.empty();
if (s.not_empty())
{
intestazione_pagina( );
TTable frd( "%FRD" );
TTable* frd = NULL;
if (usefiles)
frd = new TTable( "%FRD" );
else
load_table();
int nr = 1;
int id = 0;
for (const char * cp = s.get(0); cp && *cp; cp = s.get())
{
const TString16 codpiede(cp);
do_events();
frd.zero( );
frd.put( "CODTAB", codpiede );
if ( frd.read( ) == NOERR )
if (usefiles)
{
const TString80 picture(frd.get( "S3"));
frd->zero( );
frd->put( "CODTAB", codpiede );
}
_TableItem* t = (_TableItem*) _frdtable.objptr(codpiede);
if ( (usefiles && frd->read( ) == NOERR) || t != NULL )
{
const TString80 picture(usefiles ? frd->get( "S3") : t->s3() );
const int len = picture.len() > 0 ? picture.len() : 18;
int dec = picture.find(',');
if (dec >= 0)
@ -1470,13 +1535,14 @@ void TMask_generator::genera( const TString& profilo )
dec = 0;
id++;
if (frd.get_bool("B0"))
if ((usefiles && frd->get_bool("B0")) || t->b0())
_m->control( T_NUMERO, BASE_PIEDE + id, len * 100 + dec);
else
_m->control( T_STRINGA, BASE_PIEDE + id, len * 100);
_m->begin( );
TString80 header(frd.get("S0")); header.left_just(58 - len);
TString80 header(usefiles ? frd->get("S0") : t->s0());
header.left_just(58 - len);
_m->prompt( 2, 7 + nr, header );
_m->field(codpiede);
@ -1496,6 +1562,9 @@ void TMask_generator::genera( const TString& profilo )
}
}
_m->end( );
if (frd != NULL)
delete frd;
}
}
_m->endmask( );
@ -1515,12 +1584,18 @@ void TMask_generator::genera( const TString& profilo )
class TGenMask_application : public TApplication
{
bool _use_files;
TString _tablefile;
protected:
virtual bool use_files() const
{ return _use_files; }
virtual bool create ( );
virtual bool destroy( );
public:
void set_files(const bool b = TRUE) {_use_files = b;}
void set_tablefile(const TString& t) {_tablefile = t;}
};
@ -1528,7 +1603,7 @@ bool TGenMask_application::create( )
{
TApplication::create( );
TMask_generator *a = new TMask_generator(argv(2));
TMask_generator *a = new TMask_generator(argv(2), _tablefile);
delete a;
return FALSE;
}
@ -1540,11 +1615,29 @@ bool TGenMask_application::destroy( )
int ve0300( int argc, char** argv )
{
TGenMask_application a;
a.set_files(TRUE);
TString tablefile;
if ( argc < 3 )
fatal_box( "Sintassi: VE0 -3 <Nome file di profilo>" );
fatal_box( Usage );
TGenMask_application a;
if ( argc > 4)
{
if (strncmp(argv[3],"-f",2) == 0)
{
a.set_files(FALSE);
if (argv[3][2] != '\0')
{
tablefile = argv[3];
tablefile.ltrim(2);
}
else
tablefile = "std/vetab.txt";
}
}
a.set_tablefile(tablefile);
a.run ( argc, argv, "Generazione in corso ..." );
return 0;
}

View File

@ -45,69 +45,11 @@
// MESSAGE HIDE 101
// ITEM "No|Risposta negativa"
// MESSAGE SHOW 101
// CONFIGS h il parametro della conigurazione vendite da cui dipende la presenza o meno del campo
// CONFIGS=Chiave|Valore|Stato|Chiave|Valore|Stato....
// Gli stati sono:
// S_NASCOSTO
// S_DISABILITATO
// S_NORMALE
// S_OBBLIGATORIO
//
// Tra il valore indicato in questo campo e quello indicato nel profilo documento per lo stato in
// quel documento, uso sempre il minore; se ad esempio in configurazione vendite ho che GESLIN=0,
// e in CONFIGS di un campo ho che CONFIGS=GESLIN|0|0|GESLIN|1|3, indipendentemente dal profilo
// documento il campo sar` nascosto
#include "veuml.h"
#include "veuml1.h"
#include "veini.h"
// non dovrebbero piu' servire !!!!!
//
//[TIPOCF]
//GROUP=101
//X=1
//Y=1
//FIELDNAME=TIPOCF
//MSKID=F_TIPOCF
//TYPE=T_STRINGA
//SIZE=1
//PROMPT=Tipo cliente/fornitore
//[CODCF]
//GROUP=100
//X=1
//Y=1
//FIELDNAME=CODCF
//MSKID=F_CODCF
//TYPE=T_NUMERO
// se CODCF="F" cioe' fornitore il PROMPT=Fornitore
//PROMPT=Cliente
//SIZE=6
//FLAG=R
//USE=20~JO LF_CFVEN TO LF_CLIFO INTO TIPOCF=TIPOCF CODCF=CODCF
//INPUT=TIPOCF F_TIPOCF SELECT~CODCF F_CODCF
//DISPLAY="Codice" CODCF~"Ragione sociale@50" RAGSOC~"Indirizzo@35" INDCF
//OUTPUT=F_CODCF CODCF~F_RAGSOC RAGSOC~F_INDCF INDCF~F_CIVCF CIVCF~F_CODAG CODAG~F_OCCAS OCCAS~F_CODLIN CODLIN~F_CODABIA CODABI~F_CODCABA CODCAB~F_CODLIST LF_CFVEN->CODLIST~F_CODPAG CODPAG
//SPECIAL=ME 9,F_CODLIN~ME 9,F_CODABIA~ME 9,F_CODCABA~ME 9,F_CODPAG
//WARNING=Cliente non presente
//HELP=Inserire il codice del cliente
//[RAGSOC]
/// il campo e' letto nel file 20 clifo
//GROUP=100
//X=15
//Y=1
//MSKID=F_RAGSOC
//TYPE=T_STRINGA
//SIZE=50
//USE=LF_CLIFO KE 2
//INPUT=TIPOCF F_TIPOCF SELECT~RAGSOC F_RAGSOC
//DISPLAY="Ragione sociale@50" RAGSOC~"Codice" CODCF~"Indirizzo@35" INDCF
//OUTPUT=F_CODCF CODCF~F_RAGSOC RAGSOC
//WARNING=Ragione sociale non trovata
//HELP=Inserire la ragione sociale della ditta
[OCCASEDIT]
GROUP=100
TYPE=T_BOTTONE

View File

@ -11,7 +11,7 @@ BEGIN
USE %LNG
INPUT CODTAB FS_CODLIN
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@30" S0
DISPLAY "Descrizione@50" S0
OUTPUT FS_CODLIN CODTAB
// OUTPUT FS_DESCR S0
CHECKTYPE REQUIRED

View File

@ -64,7 +64,7 @@ Item_08 = "Nazioni", "ba3 -0 %STA", ""
Item_09 = "Lingue", "ba3 -0 %LNG", ""
Item_10 = "Divise", "ba3 -0 %VAL", ""
Item_11 = "Cambi giornalieri", "ba3 -0 CAM", ""
Item_12 = "Esercizi", "ba3 -0 esc", ""
Item_12 = "Esercizi", "cg0 -5 esc", ""
[ACQVEN_006]
Caption = "Tabelle magazzino"
@ -81,6 +81,8 @@ Item_07 = "Categorie acquisti articoli", "ba3 -0 CAA", ""
Item_08 = "Raggrupp. fiscali articoli", "ba3 -0 RFA", ""
Item_09 = "Raggruppamenti causali magazzino", "mg0 -0 %RFC", ""
Item_10 = "Causali magazzino", "mg0 -0 %CAU", ""
Item_11 = "Gruppi codice articoli", "mg0 -0 GCA", ""
Item_12 = "Gruppi codice giacenze", "mg0 -0 GCG", ""
[ACQVEN_007]
Caption = "Stampa tabelle"

View File

@ -1,15 +1,14 @@
USE 33
JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 TO 34 INTO CODART==CODART
JOIN 47 INTO CODART==CODART
JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
JOIN 122 TO 33 ALIAS 202 INTO CODAGE==CODAG
JOIN 122 TO 33 INTO CODAGE==CODAG
JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO
JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA
JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1
JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1
JOIN %ABE TO 33 ALIAS 206 INTO CODTAB==ASPBENI1
JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP
JOIN 13 TO 205@ ALIAS 208 INTO COM==S9
END
DESCRIPTION
@ -19,13 +18,12 @@ BEGIN
16->* "Indirizzi di spedizione (destinazione)"
47->* "Anagrafica magazzino"
201@->* "Tabella condizioni di pagamento"
202@->* "Tabella agenti"
122->* "Archivio agenti"
203@->* "Tabella porto"
204@->* "Tabella banche"
205@->* "Tabella vettori"
206@->* "Tabella aspetto beni"
207@->* "Tabella causali di trasporto"
208@->* "Comuni"
END
GENERAL
@ -46,54 +44,54 @@ SECTION HEADER ODD 33
STRING 1 36 1
BEGIN
KEY "nome ditta"
PROMPT 5 6 ""
PROMPT 5 5 ""
MESSAGE _DITTA,!RAGSOC
END
STRING 2 36 1
BEGIN
KEY "indirizzo ditta"
PROMPT 5 7 ""
PROMPT 5 6 ""
MESSAGE _DITTA,!IND
END
STRING 3 5 1
BEGIN
KEY "cap ditta"
PROMPT 5 8 ""
PROMPT 5 7 ""
MESSAGE _DITTA,!CAP
END
STRING 4 30 1
BEGIN
KEY "comune ditta"
PROMPT 12 8 ""
PROMPT 12 7 ""
MESSAGE _DITTA,!COM
END
STRING 5 5 1
BEGIN
KEY "scritta P.IVA"
PROMPT 5 9 "P.IVA"
PROMPT 5 8 "P.IVA"
END
STRING 6 16 1
BEGIN
KEY "partita iva ditta"
PROMPT 11 9 ""
PROMPT 11 8 ""
MESSAGE _DITTA,!IVA
END
STRING 7 9 1
BEGIN
KEY "scritta COD.FISC."
PROMPT 5 10 "COD.FISC."
PROMPT 5 9 "COD.FISC."
END
STRING 8 16 1
BEGIN
KEY "codice fiscale ditta"
PROMPT 15 10 ""
PROMPT 15 9 ""
MESSAGE _DITTA,!CF
END
@ -135,7 +133,7 @@ END
DATE 14 8 1
BEGIN
KEY "data bolla"
PROMPT 60 25 ""
PROMPT 59 25 ""
FIELD 33->DATADOC
FORMAT "1442-"
END
@ -143,21 +141,21 @@ END
NUMBER 15 7
BEGIN
KEY "numero bolla"
PROMPT 71 25 ""
PROMPT 70 25 ""
FIELD NDOC
END
STRING 16 30 2
BEGIN
KEY "destinazione, indirizzo"
PROMPT 5 16 ""
PROMPT 3 16 ""
FIELD 16->INDIR
END
STRING 17 5 1
BEGIN
KEY "destinazione, cap"
PROMPT 5 18 ""
PROMPT 3 18 ""
FIELD 16->CAP
END
@ -172,14 +170,14 @@ END
STRING 19 21
BEGIN
KEY "destinazione, comune"
PROMPT 5 20 ""
PROMPT 3 20 ""
MESSAGE _ISAMREAD,13,COM=#18,DENCOM
END
STRING 20 2 1
BEGIN
KEY "destinazione, provincia"
PROMPT 28 20 ""
PROMPT 26 20 ""
MESSAGE _ISAMREAD,13,COM=#18,PROVCOM
END
@ -190,12 +188,12 @@ BEGIN
FIELD NUMDOCRIF
END
DATE 22 10
DATE 22 8 1
BEGIN
KEY "data conferma"
PROMPT 16 25 ""
PROMPT 18 25 ""
FIELD DATADOCRIF
FORMAT "1444-"
FORMAT "1442-"
END
STRING 23 48 1
@ -223,20 +221,20 @@ STRING 26 11 1
BEGIN
KEY "partita iva cliente"
PROMPT 12 29 ""
MESSAGE _CLIENTE,PIVA
MESSAGE _CLIENTE,PAIV
END
STRING 27 18 1
BEGIN
KEY "porto"
PROMPT 41 25 ""
PROMPT 40 25 ""
FIELD 203@->S0
END
NUMBER 28
BEGIN
KEY "codice agente"
PROMPT 29 29 ""
PROMPT 28 29 ""
FIELD CODAG
END
@ -244,7 +242,22 @@ STRING 29 28 1
BEGIN
KEY "nome agente"
PROMPT 33 29 ""
FIELD 202@->RAGSOC
FIELD 202@->S0
FLAGS "D"
END
STRINGA 30 2
BEGIN
KEY "Numero di pagina"
PROMPT 79 25 ""
MESSAGE _PAGENO
END
STRING 31 18
BEGIN
KEY "causale"
PROMPT 63 29 ""
FIELD 207@->S0
END
END
@ -254,33 +267,33 @@ SECTION BODY ODD 5
STRING 51 13 1
BEGIN
KEY "codice articolo"
PROMPT 5 1 ""
PROMPT 3 1 ""
FIELD 34->CODART
END
STRING 52 25 4
STRING 52 38 4
BEGIN
KEY "descrizione articolo"
PROMPT 25 1 ""
PROMPT 23 1 ""
MESSAGE _DESCRIGA
END
STRING 53 2
BEGIN
KEY "unità di misura"
PROMPT 56 1 ""
PROMPT 62 1 ""
FIELD 34->UMQTA
MESSAGE _ALIGN,#52,BOTTOM
MESSAGE _ALIGN,#52,TOP
END
NUMBER 54 10
NUMBER 54 15
BEGIN
KEY "quantita"
PROMPT 60 1 ""
PICTURE "######"
GROUP 30
PROMPT 66 1 ""
PICTURE "###.###.###"
GROUP 30
FIELD 34->QTA
MESSAGE _ALIGN,#52,BOTTOM
MESSAGE _ALIGN,#52,TOP
END
NUMBER 55 20
@ -290,29 +303,30 @@ BEGIN
FIELD 34->QTA
PICTURE "LETTERE"
MESSAGE _ALIGN,#52,BOTTOM
FLAGS "D"
END
END
SECTION FOOTER ODD 9
SECTION FOOTER ODD -57
STRING 81 5 1
STRING 81 5
BEGIN
KEY "scritta SEGUE"
PROMPT 72 9 "SEGUE"
PROMPT 72 13 "SEGUE"
END
END
SECTION FOOTER LAST 9
SECTION FOOTER LAST -57
LIST 101 1 1
BEGIN
KEY "trasporto a cura del mittente"
PROMPT 4 1 ""
PROMPT 4 2 ""
FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D| "
ITEM "D| "
ITEM "M|X" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "V| "
END
@ -320,7 +334,7 @@ END
LIST 102 1 1
BEGIN
KEY "trasporto a cura del destinatario"
PROMPT 13 1 ""
PROMPT 12 2 ""
FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D|X" MESSAGE DISABLE,6@|ENABLE,5@
@ -331,14 +345,20 @@ END
LIST 103 1 1
BEGIN
KEY "trasporto a cura del vettore"
PROMPT 23 1 ""
PROMPT 21 2 ""
FIELD CODSPMEZZO
ITEM "|"
ITEM "|" // default
ITEM "D| "
ITEM "M| "
ITEM "V|X" MESSAGE DISABLE,5@|ENABLE,6@
END
STRING 113 8 1
BEGIN
KEY "scritta COD.FISC."
PROMPT 24 2 "Vettore"
END
STRING 104 45 1
BEGIN
KEY "nome vettore"
@ -350,103 +370,72 @@ STRING 105 45 1
BEGIN
KEY "indirizzo vettore"
PROMPT 3 6 ""
FIELD 205@->S1[1,35]
FIELD 205@->S1
END
STRING 106 10 1
BEGIN
KEY "n civico vettore"
PROMPT 30 6 ""
FIELD 205@->S1[36,45]
FLAGS "D"
END
STRING 107 25 1
BEGIN
KEY "localita' vettore"
PROMPT 50 6 ""
FIELD 205@->S1[46,70]
FLAGS "D"
END
STRING 108 25 1
BEGIN
KEY "comune vettore"
PROMPT 75 6 ""
FIELD 208@->DENCOM
FLAGS "D"
END
DATE 109 8 1
DATE 106 8 1
BEGIN
KEY "data inizio trasporto/consegna"
PROMPT 51 3 ""
PROMPT 49 4 ""
FIELD DATAPART
FORMAT "1442-"
GROUP 5
END
STRING 110 5 1
STRING 107 5 1
BEGIN
KEY "ora inizio trasporto/consegna"
PROMPT 60 3 ""
PROMPT 58 4 ""
PICTURE "## ##"
FIELD ORAPART
GROUP 5
END
DATE 111 8 1
DATE 108 8 1
BEGIN
KEY "data ritiro da parte del vettore"
PROMPT 51 3 ""
KEY "data ritiro"
PROMPT 49 4 ""
FIELD DATAPART
GROUP 6
FORMAT "1442-"
FLAGS "D"
GROUP 6
END
STRING 109 5 1
BEGIN
KEY "ora ritiro"
PROMPT 58 4 ""
PICTURE "## ##"
FIELD ORAPART
FLAGS "D"
GROUP 6
END
STRING 110 27 1
BEGIN
KEY "aspetto beni"
PROMPT 37 2 ""
FIELD 206@->S0
END
STRING 111 7 1
BEGIN
KEY "peso"
PROMPT 73 2 ""
FIELD PNETTO
END
STRING 112 5 1
BEGIN
KEY "ora ritiro da parte del vettore"
PROMPT 60 3 ""
PICTURE "## ##"
FIELD ORAPART
GROUP 6
END
STRING 113 27 1
BEGIN
KEY "aspetto beni"
PROMPT 37 1 ""
FIELD 206@->S0
END
STRING 114 7 1
BEGIN
KEY "peso"
PROMPT 73 1 ""
FIELD PNETTO
END
STRING 115 5 1
BEGIN
KEY "colli"
PROMPT 66 1 ""
PROMPT 66 2 ""
FIELD NCOLLI
END
STRING 116 15
BEGIN
KEY "causale di trasporto"
PROMPT 25 4 ""
FIELD 207@->S0
FLAGS "H"
END
END
END
// NOTE SULLA COMPILAZIONE DEI FORM DI STAMPA
//
// SEZIONE GENERAL

View File

@ -3,11 +3,11 @@ JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 INTO CODART==CODART
JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
JOIN 122 TO 33 ALIAS 202 INTO CODAGE==CODAG
JOIN 122 TO 33 INTO CODAGE==CODAG
JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO
JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA
JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1
JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1
JOIN %ABE TO 33 ALIAS 206 INTO CODTAB==ASPBENI1
JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP
END
@ -18,7 +18,7 @@ BEGIN
16->* "Indirizzi di spedizione (destinazione)"
47->* "Anagrafica magazzino"
201@->* "Tabella condizioni di pagamento"
202@->* "Tabella agenti"
122->* "Archivio agenti"
203@->* "Tabella porto"
204@->* "Tabella banche"
205@->* "Tabella vettori"
@ -41,14 +41,14 @@ END
SECTION GRAPHICS ODD
FIGURA 99 80 65
FIGURA 99 79 63
BEGIN
PROMPT 1 1 "bolla.bmp"
PROMPT 2 7 "bolla.bmp"
END
END
SECTION HEADER ODD 29
SECTION HEADER ODD 33
STRING 1 36 1
BEGIN
@ -107,42 +107,42 @@ END
STRING 9 35 2
BEGIN
KEY "destinatario, ditta"
PROMPT 44 14 ""
PROMPT 44 16 ""
MESSAGE _CLIENTE,!RAGSOC
END
STRING 10 35 2
BEGIN
KEY "destinatario, indirizzo con numero civico"
PROMPT 44 16 ""
PROMPT 44 18 ""
MESSAGE _CLIENTE,!INDNUM
END
STRING 11 5 1
BEGIN
KEY "destinatario, cap"
PROMPT 44 18 ""
PROMPT 44 20 ""
MESSAGE _CLIENTE,CAPCF
END
STRING 12 30 2
BEGIN
KEY "destinatario, comune"
PROMPT 50 18 ""
PROMPT 50 20 ""
MESSAGE _CLIENTE,!COM->DENCOM
END
STRING 13 2
BEGIN
KEY "destinatario, provincia"
PROMPT 72 19 ""
PROMPT 72 21 ""
MESSAGE _CLIENTE,!COM->PROVCOM
END
DATE 14 8 1
BEGIN
KEY "data bolla"
PROMPT 60 21 ""
PROMPT 59 25 ""
FIELD 33->DATADOC
FORMAT "1442-"
END
@ -150,21 +150,21 @@ END
NUMBER 15 7
BEGIN
KEY "numero bolla"
PROMPT 71 21 ""
PROMPT 70 25 ""
FIELD NDOC
END
STRING 16 30 2
BEGIN
KEY "destinazione, indirizzo"
PROMPT 5 14 ""
PROMPT 3 16 ""
FIELD 16->INDIR
END
STRING 17 5 1
BEGIN
KEY "destinazione, cap"
PROMPT 5 16 ""
PROMPT 3 18 ""
FIELD 16->CAP
END
@ -179,28 +179,28 @@ END
STRING 19 21
BEGIN
KEY "destinazione, comune"
PROMPT 5 18 ""
PROMPT 3 20 ""
MESSAGE _ISAMREAD,13,COM=#18,DENCOM
END
STRING 20 2 1
BEGIN
KEY "destinazione, provincia"
PROMPT 28 18 ""
PROMPT 26 20 ""
MESSAGE _ISAMREAD,13,COM=#18,PROVCOM
END
NUMBER 21
BEGIN
KEY "ordine"
PROMPT 3 21 ""
PROMPT 3 25 ""
FIELD NUMDOCRIF
END
DATE 22 8 1
BEGIN
KEY "data conferma"
PROMPT 43 21 ""
PROMPT 18 25 ""
FIELD DATADOCRIF
FORMAT "1442-"
END
@ -208,43 +208,42 @@ END
STRING 23 48 1
BEGIN
KEY "condizioni pagamento"
PROMPT 3 23 ""
PROMPT 3 27 ""
FIELD 201@->S0
END
STRING 24 29 1
BEGIN
KEY "banca appoggio"
PROMPT 53 23 ""
PROMPT 53 27 ""
FIELD 204@->S0
END
STRING 25 7 1
BEGIN
KEY "codice cliente"
PROMPT 8 25 ""
PROMPT 3 29 ""
FIELD CODCF
END
STRING 26 11 1
BEGIN
KEY "partita iva cliente"
PROMPT 18 25 ""
MESSAGE _CLIENTE,PIVA
PROMPT 12 29 ""
MESSAGE _CLIENTE,PAIV
END
STRING 27 18 1
BEGIN
KEY "porto"
PROMPT 41 25 ""
PROMPT 40 25 ""
FIELD 203@->S0
FLAGS "D"
END
NUMBER 28
BEGIN
KEY "codice agente"
PROMPT 2 25 ""
PROMPT 28 29 ""
FIELD CODAG
END
@ -252,10 +251,24 @@ STRING 29 28 1
BEGIN
KEY "nome agente"
PROMPT 33 29 ""
FIELD 202@->RAGSOC
FIELD 202@->S0
FLAGS "D"
END
STRINGA 30 2
BEGIN
KEY "Numero di pagina"
PROMPT 79 25 ""
MESSAGE _PAGENO
END
STRING 31 18
BEGIN
KEY "causale"
PROMPT 63 29 ""
FIELD 207@->S0
END
END
SECTION BODY ODD 5
@ -263,30 +276,30 @@ SECTION BODY ODD 5
STRING 51 13 1
BEGIN
KEY "codice articolo"
PROMPT 5 1 ""
PROMPT 3 1 ""
FIELD 34->CODART
END
STRING 52 29 4
STRING 52 38 4
BEGIN
KEY "descrizione articolo"
PROMPT 48 1 ""
PROMPT 23 1 ""
MESSAGE _DESCRIGA
END
STRING 53 2
BEGIN
KEY "unità di misura"
PROMPT 30 1 ""
PROMPT 62 1 ""
FIELD 34->UMQTA
MESSAGE _ALIGN,#52,TOP
END
NUMBER 54 10
NUMBER 54 15
BEGIN
KEY "quantita"
PROMPT 17 1 ""
PICTURE "######"
PROMPT 66 1 ""
PICTURE "###.###.###"
GROUP 30
FIELD 34->QTA
MESSAGE _ALIGN,#52,TOP
@ -304,7 +317,7 @@ END
END
SECTION FOOTER ODD 15
SECTION FOOTER ODD -57
STRING 81 5
BEGIN
@ -314,12 +327,12 @@ END
END
SECTION FOOTER LAST 15
SECTION FOOTER LAST -57
LIST 101 1 1
BEGIN
KEY "trasporto a cura del mittente"
PROMPT 2 4 ""
PROMPT 4 2 ""
FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D| "
@ -330,7 +343,7 @@ END
LIST 102 1 1
BEGIN
KEY "trasporto a cura del destinatario"
PROMPT 9 4 ""
PROMPT 12 2 ""
FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D|X" MESSAGE DISABLE,6@|ENABLE,5@
@ -341,7 +354,7 @@ END
LIST 103 1 1
BEGIN
KEY "trasporto a cura del vettore"
PROMPT 17 4 ""
PROMPT 21 2 ""
FIELD CODSPMEZZO
ITEM "|" // default
ITEM "D| "
@ -349,24 +362,30 @@ BEGIN
ITEM "V|X" MESSAGE DISABLE,5@|ENABLE,6@
END
STRING 113 8 1
BEGIN
KEY "scritta COD.FISC."
PROMPT 24 2 "Vettore"
END
STRING 104 45 1
BEGIN
KEY "nome vettore"
PROMPT 3 6 ""
PROMPT 3 4 ""
FIELD 205@->S0
END
STRING 105 45 1
BEGIN
KEY "indirizzo vettore"
PROMPT 3 8 ""
PROMPT 3 6 ""
FIELD 205@->S1
END
DATE 106 8 1
BEGIN
KEY "data inizio trasporto/consegna"
PROMPT 48 4 ""
PROMPT 49 4 ""
FIELD DATAPART
FORMAT "1442-"
GROUP 5
@ -375,7 +394,7 @@ END
STRING 107 5 1
BEGIN
KEY "ora inizio trasporto/consegna"
PROMPT 60 4 ""
PROMPT 58 4 ""
PICTURE "## ##"
FIELD ORAPART
GROUP 5
@ -384,7 +403,7 @@ END
DATE 108 8 1
BEGIN
KEY "data ritiro"
PROMPT 51 7 ""
PROMPT 49 4 ""
FIELD DATAPART
FORMAT "1442-"
FLAGS "D"
@ -394,7 +413,7 @@ END
STRING 109 5 1
BEGIN
KEY "ora ritiro"
PROMPT 60 7 ""
PROMPT 58 4 ""
PICTURE "## ##"
FIELD ORAPART
FLAGS "D"
@ -404,31 +423,24 @@ END
STRING 110 27 1
BEGIN
KEY "aspetto beni"
PROMPT 1 8 ""
PROMPT 37 2 ""
FIELD 206@->S0
END
STRING 111 7 1
BEGIN
KEY "peso"
PROMPT 45 10 ""
PROMPT 73 2 ""
FIELD PNETTO
END
STRING 112 5 1
BEGIN
KEY "colli"
PROMPT 60 10 ""
PROMPT 66 2 ""
FIELD NCOLLI
END
STRING 113 15
BEGIN
KEY "causale"
PROMPT 25 4 ""
FIELD 207@->S0
END
END
END

View File

@ -6,7 +6,7 @@ JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 TO 34 INTO CODART==CODART
JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
JOIN 122 TO 33 ALIAS 202 INTO CODAGE==CODAG
JOIN 122 TO 33 INTO CODAGE==CODAG
JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO
JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA
JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1
@ -30,7 +30,6 @@ BEGIN
204@->* "Tabella banche"
205@->* "Tabella vettori"
206@->* "Tabella aspetto beni"
207@->* "Tabella causali di trasporto"
END
GENERAL
@ -76,150 +75,91 @@ BEGIN
MESSAGE _DITTA,!COM
END
STRINGA 5 2 1
STRINGA 5 8 1
BEGIN
KEY "provincia ditta"
PROMPT 30 6 ""
MESSAGE _DITTA,!PROV
KEY "scritta P.IVA"
PROMPT 3 7 "P.IVA IT"
END
STRINGA 6 20 1
STRINGA 6 16 1
BEGIN
KEY "telefono ditta"
PROMPT 3 7 "Tel. "
MESSAGE _DITTA,!TEL
END
STRINGA 7 20 1
BEGIN
KEY "fax ditta"
PROMPT 3 8 "Fax "
MESSAGE _DITTA,!FAX
END
STRINGA 8 25 1
BEGIN
KEY "Partita iva ditta"
PROMPT 3 9 "P.IVA IT "
KEY "partita iva ditta"
PROMPT 12 7 ""
MESSAGE _DITTA,!IVA
END
STRINGA 9 30 1
STRINGA 7 12 1
BEGIN
KEY "Codice fiscale ditta"
PROMPT 3 10 "COD.FISC. IT "
KEY "scritta COD.FISC."
PROMPT 3 8 "COD.FISC. IT"
END
STRINGA 8 16 1
BEGIN
KEY "codice fiscale ditta"
PROMPT 16 8 ""
MESSAGE _DITTA,!CF
END
NUMERO 10 30 1
NUMERO 9 30 1
BEGIN
KEY "reg.soc.trib...."
PROMPT 3 11 "REG.SOC.TRIB.R.E. "
PROMPT 3 9 "REG.SOC.TRIB.R.E. "
MESSAGE _DITTA,!REGSOC
FLAGS "D"
END
NUMERO 11 30 1
NUMERO 10 30 1
BEGIN
KEY "c.c.i.a.a. ....."
PROMPT 3 12 "C.C.I.A.A. "
PROMPT 3 10 "C.C.I.A.A. "
MESSAGE _DITTA,!CCIAA
FLAGS "D"
END
STRINGA 12 38 2
BEGIN
KEY "cliente ragione sociale "
PROMPT 44 11 ""
MESSAGE _CLIENTE,!RAGSOC
END
STRINGA 13 35 2
BEGIN
KEY "cliente indirizzo con numero civico"
PROMPT 44 13 ""
MESSAGE _CLIENTE,!INDNUM
END
STRINGA 14 5 1
BEGIN
KEY "cliente cap"
PROMPT 44 15 ""
MESSAGE _CLIENTE,CAPCF
END
STRINGA 15 30 1
BEGIN
KEY "cliente comune"
PROMPT 50 15 ""
MESSAGE _CLIENTE,!COM->DENCOM
END
STRINGA 16 2 1
BEGIN
KEY "cliente provincia"
PROMPT 73 16 ""
MESSAGE _CLIENTE,!COM->PROVCOM
END
STRINGA 17 3 1
BEGIN
KEY "cliente codice stato"
PROMPT 44 17 ""
MESSAGE _CLIENTE,STATOCF
FLAGS "H"
END
STRINGA 18 25 1
BEGIN
KEY "cliente nome stato"
PROMPT 44 17 ""
MESSAGE _TABLEREAD,%STA,#26,S0
END
STRINGA 19 10 1
STRINGA 11 10 1
BEGIN
KEY "data fattura"
PROMPT 58 21 ""
FIELD 33->DATADOC
END
STRINGA 20 7
STRINGA 12 7
BEGIN
KEY "numero fattura"
PROMPT 73 21 ""
FIELD 33->NDOC
END
STRINGA 21 2
BEGIN
KEY "Numero di pagina"
PROMPT 80 21 ""
MESSAGE _PAGENO
END
STRINGA 22 4 1
STRINGA 13 4 1
BEGIN
KEY "codice cliente"
PROMPT 3 23 ""
FIELD 33->CODCF
END
STRINGA 23 2 1
STRINGA 14 2 1
BEGIN
KEY "codice agente"
PROMPT 9 23 ""
FIELD 33->CODAG
END
NUMERO 24 7 1
STRINGA 15 14 1
BEGIN
KEY "porto"
PROMPT 52 23 ""
FIELD 203@->S0
END
NUMERO 16 7 1
BEGIN
KEY "ordine"
PROMPT 12 23 ""
FIELD 33->NUMDOCRIF
END
DATA 25 10 1
DATA 17 10 1
BEGIN
KEY "data conferma"
PROMPT 20 23 ""
@ -227,48 +167,98 @@ BEGIN
FORMAT "1444-"
END
STRING 26 2 1
BEGIN
KEY "codice iso iva cliente"
PROMPT 34 23 ""
MESSAGE _CLIENTE,STATOPAIV
END
STRING 27 11 1
BEGIN
KEY "partita iva cliente"
PROMPT 37 23 ""
MESSAGE _CLIENTE,PAIV
END
STRINGA 28 14 1
BEGIN
KEY "porto"
PROMPT 52 23 ""
FIELD 203@->S0
END
STRING 29 15
BEGIN
KEY "causale di trasporto"
PROMPT 67 23 ""
FIELD 207@->S0
END
STRINGA 30 49 1
STRINGA 18 49 1
BEGIN
KEY "condizioni di pagamento"
PROMPT 3 25 ""
FIELD 201@->S0
END
STRINGA 31 29 1
STRINGA 19 29 1
BEGIN
KEY "banca d'appoggio"
PROMPT 54 25 ""
FIELD 204@->S0
END
STRINGA 20 38 2
BEGIN
KEY "cliente ragione sociale "
PROMPT 44 11 ""
MESSAGE _CLIENTE,!RAGSOC
END
STRINGA 21 35 2
BEGIN
KEY "cliente indirizzo con numero civico"
PROMPT 44 13 ""
MESSAGE _CLIENTE,!INDNUM
END
STRINGA 22 2
BEGIN
KEY "Numero di pagina"
PROMPT 80 21 ""
MESSAGE _PAGENO
END
STRINGA 23 5 1
BEGIN
KEY "cliente cap"
PROMPT 44 15 ""
MESSAGE _CLIENTE,CAPCF
END
STRINGA 24 30 1
BEGIN
KEY "cliente comune"
PROMPT 50 15 ""
MESSAGE _CLIENTE,!COM->DENCOM
END
STRINGA 25 2 1
BEGIN
KEY "cliente provincia"
PROMPT 73 16 ""
MESSAGE _CLIENTE,!COM->PROVCOM
END
STRINGA 26 3 1
BEGIN
KEY "cliente codice stato"
PROMPT 44 17 ""
MESSAGE _CLIENTE,STATOCF
FLAGS "H"
END
STRINGA 27 25 1
BEGIN
KEY "cliente nome stato"
PROMPT 44 17 ""
MESSAGE _TABLEREAD,%STA,#26,S0
END
STRING 28 11 1
BEGIN
KEY "partita iva cliente"
PROMPT 37 23 ""
MESSAGE _CLIENTE,PAIV
END
STRING 29 2 1
BEGIN
KEY "codice iso iva cliente"
PROMPT 34 23 ""
MESSAGE _CLIENTE,STATOPAIV
END
STRING 30 15
BEGIN
KEY "causale di trasporto"
PROMPT 67 23 ""
FIELD 207@->S0
END
END
SECTION BODY ODD 5
@ -334,7 +324,7 @@ BEGIN
MESSAGE _ALIGN,#52,BOTTOM
END
STRINGA 58 4
STRINGA 58 3
BEGIN
KEY "iva"
PROMPT 79 1 ""
@ -421,7 +411,7 @@ END
NUMBER 104 8
BEGIN
KEY "spese di incasso"
PROMPT 53 11 ""
PROMPT 55 11 ""
PICTURE "###.###"
FIELD SPESINC
GROUP 31
@ -436,7 +426,7 @@ BEGIN
FLAGS "D"
END
STRING 106 4
STRING 106 3
BEGIN
KEY "codice iva 1"
PROMPT 1 3 ""
@ -469,7 +459,7 @@ BEGIN
GROUP 31
END
STRING 110 4
STRING 110 3
BEGIN
KEY "codice iva 2"
PROMPT 1 4 ""
@ -502,7 +492,7 @@ BEGIN
GROUP 31
END
STRING 114 4
STRING 114 3
BEGIN
KEY "codice iva 3"
PROMPT 1 5 ""
@ -544,7 +534,7 @@ BEGIN
GROUP 31
END
STRINGA 119 4
STRINGA 119 3
BEGIN
KEY "codice iva 4"
PROMPT 1 7 ""
@ -567,7 +557,7 @@ BEGIN
GROUP 31
END
STRINGA 122 4
STRINGA 122 3
BEGIN
KEY "codice iva 5"
PROMPT 1 8 ""
@ -599,10 +589,10 @@ BEGIN
GROUP 31
END
NUMBER 126 12
NUMBER 126 15
BEGIN
KEY "totale esenti"
PROMPT 33 11 ""
PROMPT 35 11 ""
MESSAGE _TOTIMPONIBILI,28
PICTURE "###.###.###"
GROUP 31
@ -629,14 +619,14 @@ END
DATA 129 10 1
BEGIN
KEY "scadenza pagamento 1"
PROMPT 3 14 ""
PROMPT 1 13 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 130 12
BEGIN
KEY "importo scadenza 1"
PROMPT 15 13 ""
PROMPT 13 13 ""
MESSAGE _SCADENZE,IMPORTO,1
PICTURE "###.###.###"
GROUP 31
@ -645,14 +635,14 @@ END
DATA 131 10 1
BEGIN
KEY "scadenza pagamento 2"
PROMPT 3 15 ""
PROMPT 27 13 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 132 12
BEGIN
KEY "importo scadenza 2"
PROMPT 15 15 ""
PROMPT 39 13 ""
MESSAGE _SCADENZE,IMPORTO,1
PICTURE "###.###.###"
GROUP 31
@ -661,14 +651,14 @@ END
DATA 133 10 1
BEGIN
KEY "scadenza pagamento 3"
PROMPT 29 15 ""
PROMPT 1 14 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 134 12
BEGIN
KEY "importo scadenza 3"
PROMPT 41 15 ""
PROMPT 14 14 ""
MESSAGE _SCADENZE,IMPORTO,1
PICTURE "###.###.###"
GROUP 31
@ -677,14 +667,14 @@ END
DATA 135 10 1
BEGIN
KEY "scadenza pagamento 4"
PROMPT 55 15 ""
PROMPT 27 14 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 136 12
BEGIN
KEY "importo scadenza 4"
PROMPT 67 15 ""
PROMPT 39 14 ""
MESSAGE _SCADENZE,IMPORTO,1
PICTURE "###.###.###"
GROUP 31
@ -693,14 +683,14 @@ END
DATA 137 10 1
BEGIN
KEY "scadenza pagamento 5"
PROMPT 3 16 ""
PROMPT 3 15 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 138 15
BEGIN
KEY "importo scadenza 5"
PROMPT 15 16 ""
PROMPT 16 15 ""
MESSAGE _SCADENZE,IMPORTO,1
PICTURE "###.###.###"
GROUP 31

881
ve/vefatbmp.frm Executable file
View File

@ -0,0 +1,881 @@
USE 33
JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 TO 34 INTO CODART==CODART
JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
JOIN 122 TO 33 INTO CODAGE==CODAG
JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO
JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA
JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1
JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1
JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP
END
DESCRIPTION
BEGIN
34->* "Righe documenti di vendita"
33->* "Documenti di vendita"
17->* "Clienti/Fornitori per vendite"
20->* "Clienti/Fornitori"
16->* "Indirizzi di spedizione (destinazione)"
116@->* "Indirizzi di spedizione (destinatario)"
47->* "Anagrafica magazzino"
201@->* "Tabella condizioni di pagamento"
122->* "Archivio agenti"
203@->* "Tabella porto"
204@->* "Tabella banche"
205@->* "Tabella vettori"
206@->* "Tabella aspetto beni"
END
GENERAL
BEGIN
OFFSET 0 0
FONT "Courier New"
SIZE 12
MODULE "STANDARD_FATTURA_01"
PRI_DECIMALS 0 2
QTA_DECIMALS 3 3
IMP_DECIMALS 0 2
EXCLUDE ","
END
SECTION GRAPHICS ODD
FIGURA 99 82 70
BEGIN
PROMPT 1 1 "fattura.bmp"
END
END
SECTION HEADER ODD 28
STRINGA 1 35 1
BEGIN
KEY "nome ditta"
PROMPT 3 4 ""
MESSAGE _DITTA,!RAGSOC
END
STRINGA 2 35 1
BEGIN
KEY "indirizzo ditta"
PROMPT 3 5 ""
MESSAGE _DITTA,!IND
END
STRINGA 3 5 1
BEGIN
KEY "cap ditta"
PROMPT 3 6 ""
MESSAGE _DITTA,!CAP
END
STRINGA 4 30 1
BEGIN
KEY "comune ditta"
PROMPT 10 6 ""
MESSAGE _DITTA,!COM
END
STRINGA 5 8 1
BEGIN
KEY "scritta P.IVA"
PROMPT 3 7 "P.IVA IT"
END
STRINGA 6 16 1
BEGIN
KEY "partita iva ditta"
PROMPT 12 7 ""
MESSAGE _DITTA,!IVA
END
STRINGA 7 12 1
BEGIN
KEY "scritta COD.FISC."
PROMPT 3 8 "COD.FISC. IT"
END
STRINGA 8 16 1
BEGIN
KEY "codice fiscale ditta"
PROMPT 16 8 ""
MESSAGE _DITTA,!CF
END
NUMERO 9 30 1
BEGIN
KEY "reg.soc.trib...."
PROMPT 3 9 "REG.SOC.TRIB.R.E. "
MESSAGE _DITTA,!REGSOC
FLAGS "D"
END
NUMERO 10 30 1
BEGIN
KEY "c.c.i.a.a. ....."
PROMPT 3 10 "C.C.I.A.A. "
MESSAGE _DITTA,!CCIAA
FLAGS "D"
END
STRINGA 11 10 1
BEGIN
KEY "data fattura"
PROMPT 58 21 ""
FIELD 33->DATADOC
END
STRINGA 12 7
BEGIN
KEY "numero fattura"
PROMPT 73 21 ""
FIELD 33->NDOC
END
STRINGA 13 6 1
BEGIN
KEY "codice cliente"
PROMPT 1 23 ""
FIELD 33->CODCF
END
STRINGA 14 2 1
BEGIN
KEY "codice agente"
PROMPT 7 23 ""
FIELD 33->CODAG
END
STRINGA 15 14 1
BEGIN
KEY "porto"
PROMPT 52 23 ""
FIELD 203@->S0
END
NUMERO 16 7 1
BEGIN
KEY "ordine"
PROMPT 12 23 ""
FIELD 33->NUMDOCRIF
END
DATA 17 10 1
BEGIN
KEY "data conferma"
PROMPT 20 23 ""
FIELD 33->DATADOCRIF
FORMAT "1444-"
END
STRINGA 18 49 1
BEGIN
KEY "condizioni di pagamento"
PROMPT 3 25 ""
FIELD 201@->S0
END
STRINGA 19 28 1
BEGIN
KEY "banca d'appoggio"
PROMPT 53 25 ""
FIELD 204@->S0
END
STRINGA 20 38 2
BEGIN
KEY "cliente ragione sociale "
PROMPT 44 11 ""
MESSAGE _CLIENTE,!RAGSOC
END
STRINGA 21 35 2
BEGIN
KEY "cliente indirizzo con numero civico"
PROMPT 44 13 ""
MESSAGE _CLIENTE,!INDNUM
END
STRINGA 22 2
BEGIN
KEY "Numero di pagina"
PROMPT 80 21 ""
MESSAGE _PAGENO
END
STRINGA 23 5 1
BEGIN
KEY "cliente cap"
PROMPT 44 15 ""
MESSAGE _CLIENTE,CAPCF
END
STRINGA 24 30 1
BEGIN
KEY "cliente comune"
PROMPT 50 15 ""
MESSAGE _CLIENTE,!COM->DENCOM
END
STRINGA 25 2 1
BEGIN
KEY "cliente provincia"
PROMPT 73 16 ""
MESSAGE _CLIENTE,!COM->PROVCOM
END
STRINGA 26 3 1
BEGIN
KEY "cliente codice stato"
PROMPT 44 17 ""
MESSAGE _CLIENTE,STATOCF
FLAGS "H"
END
STRINGA 27 25 1
BEGIN
KEY "cliente nome stato"
PROMPT 44 17 ""
MESSAGE _TABLEREAD,%STA,#26,S0
END
STRING 28 11 1
BEGIN
KEY "partita iva cliente"
PROMPT 37 23 ""
MESSAGE _CLIENTE,PAIV
END
STRING 29 2 1
BEGIN
KEY "codice iso iva cliente"
PROMPT 34 23 ""
MESSAGE _CLIENTE,STATOPAIV
END
STRING 30 15
BEGIN
KEY "causale di trasporto"
PROMPT 67 23 ""
FIELD 207@->S0
END
END
SECTION BODY ODD 5
STRINGA 51 12 1
BEGIN
KEY "codice articolo"
FIELD 34->CODART
PROMPT 2 1 ""
END
STRINGA 52 20 4
BEGIN
KEY "descrizione articolo"
MESSAGE _DESCRIGA
PROMPT 16 1 ""
END
STRINGA 53 2
BEGIN
KEY "unita' di misura"
PROMPT 37 1 ""
FIELD 34->UMQTA
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 54 9
BEGIN
KEY "quantita'"
PROMPT 40 1 ""
FIELD 34->QTA
PICTURE "#########"
GROUP 30
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 55 11
BEGIN
KEY "prezzo unitario"
PROMPT 50 1 ""
FIELD 34->PREZZO
PICTURE "###.###.###"
GROUP 29
MESSAGE _ALIGN,#52,BOTTOM
END
STRINGA 56 3
BEGIN
KEY "sconto"
PROMPT 63 1 ""
FIELD 34->SCONTO
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 57 12
BEGIN
KEY "importo netto"
PROMPT 66 1 ""
FIELD 34->IMPNN
PICTURE "###.###.###"
GROUP 29
MESSAGE _ALIGN,#52,BOTTOM
END
STRINGA 58 3
BEGIN
KEY "iva"
PROMPT 79 1 ""
FIELD 34->CODIVA
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 59 15
BEGIN
KEY "prezzo unitario scontato"
PROMPT 68 1 ""
PICTURE "###.###.###.###"
FIELD 34->PREZZONS
GROUP 29
MESSAGE _ALIGN,#52,BOTTOM
FLAGS "H"
END
NUMBER 60 15
BEGIN
KEY "provvigione"
PROMPT 68 1 ""
PICTURE "###.###.###.###"
FIELD 34->PROVVR
MESSAGE _ALIGN,#52,BOTTOM
GROUP 31
FLAGS "H"
END
NUMBER 61 15
BEGIN
KEY "Imposta"
PROMPT 68 1 ""
PICTURE "###.###.###.###"
FIELD 34->IMPOSTA
MESSAGE _ALIGN,#52,BOTTOM
GROUP 31
FLAGS "H"
END
END
SECTION FOOTER ODD -52
STRINGA 81 5 1
BEGIN
KEY "stampa 'segue' in coda"
PROMPT 73 13 "SEGUE"
END
END
SECTION FOOTER LAST -52
NUMBER 101 12
BEGIN
KEY "spese"
PROMPT 69 1 ""
PICTURE "###.###.###"
FIELD SPESE
GROUP 31
END
NUMBER 102 15
BEGIN
KEY "spese di trasporto"
PROMPT 56 1 ""
PICTURE "###.###.###"
FIELD SPESE
FLAGS "H"
GROUP 31
END
NUMBER 103 15
BEGIN
KEY "spese di imballo"
PROMPT 56 1 ""
PICTURE "###.###.###"
FIELD SPESE
FLAGS "H"
GROUP 31
END
NUMBER 104 7
BEGIN
KEY "spese di incasso"
PROMPT 54 11 ""
PICTURE "###.###"
FIELD SPESINC
GROUP 31
END
NUMBER 105 11
BEGIN
KEY "spese bolli"
PROMPT 60 11 ""
FIELD BOLLI
GROUP 31
FLAGS "D"
END
STRING 106 3
BEGIN
KEY "codice iva 1"
PROMPT 1 3 ""
MESSAGE _RIEPILOGOIVA,1,COD,0
END
NUMBER 107 12
BEGIN
KEY "imponibile 1"
PROMPT 6 3 ""
MESSAGE _RIEPILOGOIVA,1,IMP,0
PICTURE "###.###.###"
GROUP 31
END
NUMBER 108 2
BEGIN
KEY "iva 1"
PROMPT 18 3 ""
MESSAGE _RIEPILOGOIVA,1,ALI,0
PICTURE "##"
END
NUMBER 109 10
BEGIN
KEY "imposta 1"
PROMPT 22 3 ""
MESSAGE _RIEPILOGOIVA,1,IVA,1
PICTURE "##.###.###"
GROUP 31
END
STRING 110 3
BEGIN
KEY "codice iva 2"
PROMPT 1 4 ""
MESSAGE _RIEPILOGOIVA,1,COD,0
END
NUMBER 111 12
BEGIN
KEY "imponibile 2"
PROMPT 6 4 ""
MESSAGE _RIEPILOGOIVA,1,IMP,0
PICTURE "###.###.###"
GROUP 31
END
NUMBER 112 2
BEGIN
KEY "iva 2"
PROMPT 18 4 ""
MESSAGE _RIEPILOGOIVA,1,ALI,0
PICTURE "##"
END
NUMBER 113 10
BEGIN
KEY "imposta 2"
PROMPT 22 4 ""
MESSAGE _RIEPILOGOIVA,1,IVA,1
PICTURE "##.###.###"
GROUP 31
END
STRING 114 3
BEGIN
KEY "codice iva 3"
PROMPT 1 5 ""
MESSAGE _RIEPILOGOIVA,1,COD,0
END
NUMBER 115 12
BEGIN
KEY "imponibile 3"
PROMPT 6 5 ""
MESSAGE _RIEPILOGOIVA,1,IMP,0
PICTURE "###.###.###"
GROUP 31
END
NUMBER 116 2
BEGIN
KEY "iva 3"
PROMPT 18 5 ""
MESSAGE _RIEPILOGOIVA,1,ALI,0
PICTURE "##"
END
NUMBER 117 10
BEGIN
KEY "imposta 3"
PROMPT 22 5 ""
MESSAGE _RIEPILOGOIVA,1,IVA,1
PICTURE "##.###.###"
GROUP 31
END
NUMBER 118 12
BEGIN
KEY "imponibile 4"
PROMPT 6 7 ""
MESSAGE _RIEPILOGOIVA,30,IMP,0
PICTURE "###.###.###"
GROUP 31
END
STRINGA 119 3
BEGIN
KEY "codice iva 4"
PROMPT 1 7 ""
MESSAGE _RIEPILOGOIVA,30,COD,0
END
STRINGA 120 45
BEGIN
KEY "descrizione altri 4"
PROMPT 34 7 ""
MESSAGE _RIEPILOGOIVA,30,DES,1
END
NUMBER 121 12
BEGIN
KEY "imponibile 5"
PROMPT 6 8 ""
MESSAGE _RIEPILOGOIVA,30,IMP,0
PICTURE "###.###.###"
GROUP 31
END
STRINGA 122 3
BEGIN
KEY "codice iva 5"
PROMPT 1 8 ""
MESSAGE _RIEPILOGOIVA,30,COD,0
END
STRINGA 123 45
BEGIN
KEY "descrizione altri 5"
PROMPT 34 8 ""
MESSAGE _RIEPILOGOIVA,30,DES,1
END
NUMBER 124 15
BEGIN
KEY "totale imponibile"
PROMPT 4 11 ""
MESSAGE _TOTIMPONIBILI,29
PICTURE "#.###.###.###"
GROUP 31
END
NUMBER 125 14
BEGIN
KEY "totale imposta"
PROMPT 18 11 ""
FIELD IMPOSTE
PICTURE "##.###.###.###"
GROUP 31
END
NUMBER 126 10
BEGIN
KEY "totale esenti"
PROMPT 34 11 ""
MESSAGE _TOTIMPONIBILI,28
PICTURE "##.###.###"
GROUP 31
END
NUMBER 127 15
BEGIN
KEY "totale importi netti (non scontati)"
PROMPT 2 1 ""
FIELD TOTMER
PICTURE "###.###.###"
GROUP 31
END
NUMBER 128 12
BEGIN
KEY "totale fattura"
PROMPT 69 11 ""
FIELD TOTDOC
PICTURE "###.###.###"
GROUP 31
END
DATA 129 10 1
BEGIN
KEY "scadenza pagamento 1"
PROMPT 1 13 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 130 12
BEGIN
KEY "importo scadenza 1"
PROMPT 13 13 ""
MESSAGE _SCADENZE,IMPORTO,1
PICTURE "###.###.###"
GROUP 31
END
DATA 131 10 1
BEGIN
KEY "scadenza pagamento 2"
PROMPT 27 13 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 132 12
BEGIN
KEY "importo scadenza 2"
PROMPT 39 13 ""
MESSAGE _SCADENZE,IMPORTO,1
PICTURE "###.###.###"
GROUP 31
END
DATA 133 10 1
BEGIN
KEY "scadenza pagamento 3"
PROMPT 51 13 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 134 12
BEGIN
KEY "importo scadenza 3"
PROMPT 65 13 ""
MESSAGE _SCADENZE,IMPORTO,1
PICTURE "###.###.###"
GROUP 31
END
DATA 135 10 1
BEGIN
KEY "scadenza pagamento 4"
PROMPT 1 14 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 136 12
BEGIN
KEY "importo scadenza 4"
PROMPT 13 14 ""
MESSAGE _SCADENZE,IMPORTO,1
PICTURE "###.###.###"
GROUP 31
END
DATA 137 10 1
BEGIN
KEY "scadenza pagamento 5"
PROMPT 27 14 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 138 15
BEGIN
KEY "importo scadenza 5"
PROMPT 39 14 ""
MESSAGE _SCADENZE,IMPORTO,1
PICTURE "###.###.###"
GROUP 31
END
END
// NOTE SULLA COMPILAZIONE DEI FORM DI STAMPA
//
// SEZIONE GENERAL
// ===============
// Posizionamento:
// e' possibile effettuari posizionamenti manuali dei form con le seguenti istruzioni:
// CARATTERE <S>
// INIZIALE <N> <N>
// FINALE <N> <N>
// dove:
// CARATTERE indica il carattere da stampare per contrassegnare il posizionamento, racchiuso tra doppi apici (eg "X")
// INIZIALE indica le coordinate X ed Y per il posizionamento iniziale (dove stampare il primo carattere)
// FINALE indica le coordinate X ed Y per il posizionamento finale (dove stampare il secondo carattere)
// FINALE puo' essere omesso; se definito e' comunque buona norma tenere la coordinata verticale (Y) uguale
// a quella indicata in INIZIALE, se diversi il programma tiene conto solo della prima.
// Non e' possibile definire sia posizionamenti manuali che OFFSET, quindi o l'uno o l'altro, preferibilmente
// e' meglio scegliere OFFSET.
//
// Modificatori di pictures:
// i parametri IMP_DECIMALS, QTA_DECIMALS, e PRI_DECIMALS settano i decimali da stampare/arrotondare
// per i seguenti: importi in genere, quantita', e prezzi. Il primo parametro intero e' per gli importi in lire
// il secondo per gli importi in valuta. Naturalmente per le quantita' non ha senso fare una cosa del genere, ma per completezza
// e' stata implementata.
// PRI_DECIMALS corrisponde al gruppo 29
// QTA_DECIMALS corrisponde al gruppo 30
// IMP_DECIMALS corrisponde al gruppo 31
// pertanto tutti i campi che apparterranno al gruppo 29,30 o 31 avranno gli importi stampati al numero di decimali impostati a
// seconda se il documento e' in lire o valuta. Se il numero di decimali e' 0 la picture rimarra' invariata.
// Altri gruppi definiti dall'utente saranno cosi' sintatticamente impostati:
// NEW_GROUP <n> <lit_dec> <val_dec>
// Dove <n> e' il numero del gruppo
// <lit_dec> e' il numero di decimali per i documenti in lire
// <val_dec> e' il numero di decimali per i documenti in valuta
//
// Definizione di liste di esclusione (facoltativo):
// EXCLUDE esclude dalla stampa le righe che soddisfano la condizione specificata.
// Si indicano in questo modo: "<tipo riga>,<cod. art>". Naturalmente si possono indicare tutti gli EXLCUDE che si vogliono.
// Es: EXCLUDE "V01,ART1" escludera' tutte le righe di tipo V01 con codice articolo ART1
// EXCLUDE ",ART1" escludera' tutte le righe che hanno codice articolo ART1
// EXCLUDE "V01," escludera' tutte le righe che hanno tipo riga V01
// EXCLUDE "," non escludera' nulla.
//
// MESSAGGI UTENTE
// ===============
// Note sui messaggi della testata/body/footer:
//
// _ISAMREAD:
// lettura generica di un file del database
// sintassi: _ISAMREAD,<file>,<espressione input>[!<espressione input>!...],{<campo file>|<espressione output>[!<espressione output>!...]}
// dove: <file> è il numero logico del file o il nome della tabella
// <espressione input> è un'espressione del tipo <campo file>=<espressione campi form>
// <espressione campi form> è un'espressione di costanti numeriche, stringhe e valori di campi della form (indicati con il loro numero preceduto da #)
// <espressione output> è un'espressione del tipo <campo form o gruppo>=<campo file> (se è un gruppo deve essere seguito da @) oppure solo <campo file> (il campo della form è quello corrente)
//
// _TABLEREAD:
// lettura generica di un campo di una tabella
// sintassi: _TABLEREAD,<tabella>,<chiave>,<campo file>
// dove: <tabella> nome tabella da leggere
// <chiave> costante stringa o riferimento a campo della form (preceduto da '#') da usare come chiave di ricerca
// <campo file> identificativo del campo da leggere dalla tabella
//
// _DITTA:
// lettura dei dati della ditta
// sintassi: _DITTA,{<campo relazione>|<macro>}
// dove: <campo relazione> è un riferimento alla relazione di gestione dei dati della ditta (es. 113@->DENCOM è la denominazione del comune di residenza della ditta)
// <macro> è uno delle macro seguenti:
// !RAGSOC ragione sociale
// !IND indirizzo (fiscale se c'è, oppure di residenza)
// !NUM numero civico (fiscale se c'è, oppure di residenza)
// !CAP CAP (fiscale se c'è, oppure di residenza)
// !COM comune (fiscale se c'è, oppure di residenza)
// !PROV provincia (fiscale se c'è, oppure di residenza)
// !IVA partita iva
// !CF codice fiscale
// !TEL numero di telefono (con prefisso)
// !FAX numero di fax (con prefisso)
// !REGSOC numero di registrazione presso il Tribunale
// !CCIAA numero di registrazione presso la camera di commercio
// nota: la relazione della ditta è così strutturata:
// %NDITTE (9) Dati ditte
// + %ANAGR (6) Anagrafica generale (indirizzo, ecc.)
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di residenza fiscale
// viene utilizzato perche' non e' possibile stabilire altrimenti una relazione con il file ditte
// dall'interno del form.
//
// _CLIENTE
// lettura dei dati del cliente
// sintassi: _CLIENTE,{<campo relazione>|<macro>}
// dove: <campo relazione> è un riferimento alla relazione di gestione dei dati del cliente
// <macro> è uno delle macro seguenti:
// !RAGSOC ragione sociale
// !IND indirizzo
// !NUM numero civico
// !INDNUM indirizzo + numero civico
// !TEL primo numero di telefono (con prefisso)
// !TEL2 secondo numero di telefono (con prefisso)
// !TEL3 terzo numero di telefono (con prefisso)
// !FAX numero di fax (con prefisso)
// !COM-><FIELD> accede ai campi del comune di residenza cliente
// !COMN-><FIELD> accede ai campi del comune di nascita del cliente
// nota: la relazione del cliente è così strutturata:
// CLIFO (20) Clienti/fornitori
// + CFVEN (17) Clienti/fornitori per vendite
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di nascita
// viene utilizzato al posto del file 17 collegato perche' vi sono particolari
// accorgimenti per quanto riguarda i clienti occasionali.
//
// _DESCRIGA:
// Messaggio per reperire e formattare anche la descrizione estesa sulle righe del documento
//
// _ALIGN:
// allineamento della posizione di un campo rispetto ad un altro
// sintassi: _ALIGN,<campo form>[,<allineamento>][,<allineamento>...]
// dove: <campo form> è il campo della form (preceduto da '#') da cui prendere l'allineamento
// <allineamento> è uno dei seguenti valori:
// TOP allinea sulla riga d'inizio
// MIDDLE allinea al centro (effettivo)
// BOTTOM allinea sulla riga di fine (effettiva, non preimpostata)
// LEFT allinea sulla colonna d'inizio
// RIGHT allinea sulla colonna di fine
//
// _PAGENO:
// Messaggio per stampare il numero di pagina corrente
//
// _RIEPILOGOIVA:
// messaggio per stampare la tabella ripelogativa delle aliquote IVA e relative imposte
// sintassi: _RIEPILOGOIVA,<selettore>,<macro>,<cambio codice>
// dove: <selettore> è uno dei seguenti:
// 1 = codici IVA a regime normale
// 2 = codici IVA da ventilare
// 4 = codici IVA esenti
// 8 = codici IVA non imponibili
// 16 = codici IVA non soggetti
// oppure la combinazione di uno o piu' di essi:
// 12 = 4+8, 19 = 1+2+16, 29 = 1+4+8+16 ecc...
// pertanto per avere i non imponibili in totale il selettore sara' 1,
// per avere gli esenti il selettore sara' 4; per avere i non soggetti + esenti
// il selettore sara' 20 e cosi' via.
// dove: <macro> è uno dei seguenti:
// COD colonna dei codici
// IMP colonna degli imponibili
// IVA colonna delle imposte
// ALI colonna delle aliquote
// DES colonna delle descrizioni (stampata solo se il regime IVA non e' normale)
// dove: <cambio codice> è uno dei seguenti:
// 0 indica di non leggere il successivo codice IVA nella tabella riepilogativa
// 1 indica di leggere il successivo codice IVA nella tabella riepilogativa
//
// _TOTIMPONIBILI:
// messaggio per stampare diverse totalizzazioni di imponibili
// sintassi: _TOTIMPONIBILI,<selettore>
// dove: <selettore> funge da filtro per la somma degli imponibili
// vedi _RIEPILOGOIVA per la spiegazione dei filtri selettivi
//
// _SCADENZE:
// messaggio per stampare le scadenze
// sintassi: _SCADENZE,<macro>,<cambio codice>
// dove <macro> e' uno dei seguenti:
// DATA : stampa la data di scadenza
// IMPORTO : stampa l'importo in scadenza
// dove <cambio codice> vale 0 o 1 se indica di rendere corrente la prossima scadenza
//
// CAMPI VIRTUALI
// ==============
// Oltre a stampare i campi normali del file e' anche possibile stampare i campi virtuali
// definiti nei profili semplicemente indicandoli nella istruzione FIELD:
// per la testata del documento:
// BOLLI, BASESCONTO, IMPOSTE, PROVVD, SCONTOD, SPESEINC, TOTDOC, TOTMER, TOTNS, TOTPRE, TOTSPE
// per le righe:
// IMPLN, IMPLS, IMPNN, IMPNS, IMPOSTA, PREZZOLN, PREZZOLS, PREZZONN, PREZZONS, PROVVR, SCONTOR
// oltre, naturalmente a quelli definiti dall'utente

BIN
ve/veprassi.hlp Executable file

Binary file not shown.

View File

@ -13,17 +13,19 @@ CTR|VEN|Vendita||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |
ELD|CONT|Contabilizzazione fatture||F01 F01|TC|5|F01|F01|24|F01|9|3|||||||||||||||||||||||||||||||||||X| |X| | | | | | | |
ELD|EFF1|generazione effetti||F01||3|F01|F01|2|F01|1|5||||||||||||||||||||||||||||||||||| | | | | | | | | | |
ELD|FAT1|Fatture differite| XXXXXX XXX|B01|FB|3||F01|2|F01|1|2||||||||||||||||||||||||||||||||||| |X| | | | | | | | |
FRD|BASESCONTO|Importo di riferimento per gli sconti|SOMMA("IMPNS","(TIPO()!='S') && (TIPO()!='C')")||###.###.###.##@,@@@||||||||||||||||||||||||||||||||||||||||||X| | | | | | | | | |
FRD|BASESCONTO|Importo di riferimento per gli sconti|SOMMA("IMPONIBILE()","(TIPO()!='S')&&(TIPO()!='C')")||###.###.###.##@,@@@||||||||||||||||||||||||||||||||||||||||||X| | | | | | | | | |
FRD|BOLLI|Spese bolli|BOLLI(_TOTDOC, 1, 0)||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|IMPOSTE|Totale imposte|IMPOSTE()||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|IMPONIBILI|Totale imponibili|IMPONIBILI(1)||###.###.###.##@,@@@||||||||||||||||||||||||||||||||||||||||||X| | | | | | | | | |
FRD|IMPOSTE|Totale imposte|IMPOSTE(1)||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|OMAGGI|Valore omaggi|SOMMA("PREZZONS*QTA","TIPO()=='O'")||###.###.###.##@,@@@||||||||||||||||||||||||||||||||||||||||||X| | | | | | | | | |
FRD|PROVVD|Totale provvigioni|SOMMA("PROVVR")||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|SCONTOD|Totale sconti|SOMMA("SCONTOR")||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|SCONTOT|Totale sconti di testa|-SOMMA("IMPONIBILE()","TIPO()=='C'")||###.###.###.##@,@@@||||||||||||||||||||||||||||||||||||||||||X| | | | | | | | | |
FRD|SPESE|Totale spese da addebitare|SOMMA("IMPONIBILE()","TIPO()=='S'")||###.###.###.##@,@@@||||||||||||||||||||||||||||||||||||||||||X| | | | | | | | | |
FRD|SPESINC|Spese incasso|SPESEINC(_TOTDOC,1,0)||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|TOTDOC|Totale fattura|IMPONIBILI()+IMPOSTE()||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|TOTMER|Totale importi netti merce non scontati|SOMMA("IMPNN","TIPO()=='M'")||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|TOTNS|Totale importi netti scontati|SOMMA("IMPNS")||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|TOTPRE|Totale prestazioni|SOMMA("IMPNN","TIPO()=='P'")||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|TOTSPE|Totale spese da addebitare|SOMMA("IMPNN",'TIPO()=="S"')||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|TOTMER|Totale importi netti merce|SOMMA("IMPONIBILE()","TIPO()=='M'")||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRD|TOTPRE|Totale prestazioni|SOMMA("IMPONIBILE()","TIPO()=='P'")||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRR|IMPLN|Importo riga lordo non scontato|IMPORTO(0, 1)||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRR|IMPLS|Importo lordo riga scontato|IMPORTO(1,1)||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |
FRR|IMPNN|Importo netto non scontato|IMPORTO()||###.###.###.##@,@@@||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | |