Patch level : 12.0 no patch

Files correlati     : 
Commento            :

Aggiornati programmi personalizzati per poterli compilare.
Manca ps0883

git-svn-id: svn://10.65.10.50/branches/R_10_00@23224 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2016-09-08 20:06:48 +00:00
parent 05f6b4d1eb
commit d327a5c85f
66 changed files with 6256 additions and 6229 deletions

View File

@ -293,7 +293,7 @@ bool TOmasa::transfer()
TRecord_text curr; TRecord_text curr;
while (_trasfile->read(curr) == NOERR) while (_trasfile->read(curr) == NOERR)
{ {
pi.setstatus(_trasfile->read_file()->tellg()); pi.setstatus((long)_trasfile->read_file()->tellg());
TString impstr = curr.get(F_VALOREVOCE); TString impstr = curr.get(F_VALOREVOCE);
impstr.insert(".",11); impstr.insert(".",11);
negativo(impstr); negativo(impstr);

View File

@ -101,9 +101,11 @@ void TPartite2Euroasis::main_loop()
const TDate oggi(TODAY); const TDate oggi(TODAY);
TString16 ora; TString16 ora;
time_t tempo; time_t tempo;
time(&tempo); struct tm d;
const struct tm* d = localtime(&tempo);
ora.format("%02d:%02d:%02d", d->tm_hour, d->tm_min, d->tm_sec); time(&tempo);
localtime_s(&d, &tempo);
ora.format("%02d:%02d:%02d", d.tm_hour, d.tm_min, d.tm_sec);
const TDate dataanalisi = m.get_date(F_DATA); const TDate dataanalisi = m.get_date(F_DATA);
const int giorni = m.get_int(F_GIORNI); const int giorni = m.get_int(F_GIORNI);
const TDate dataesposto = dataanalisi - (long) giorni; const TDate dataesposto = dataanalisi - (long) giorni;

View File

@ -1,15 +1,15 @@
#include <xvt.h> #include <xvt.h>
#include "pg0067.h" #include "pg0067.h"
int main( int argc, char** argv ) int main( int argc, char** argv )
{ {
const int r = (argc > 1) ? argv[1][1]-'0' : -1; const int r = (argc > 1) ? argv[1][1]-'0' : -1;
switch (r) switch (r)
{ {
case 0: pg0067100(argc, argv); break; // distributore di F24 bancari case 0: pg0067100(argc, argv); break; // distributore di F24 bancari
default: break; default: break;
} }
return 0; return 0;
} }

View File

@ -1 +1 @@
int pg0067100(int, char**); int pg0067100(int, char**);

View File

@ -1,291 +1,305 @@
#include <applicat.h> #include <applicat.h>
#include <automask.h> #include <automask.h>
#include <defmask.h> #include <defmask.h>
#include <golem.h> #include <golem.h>
#include <modaut.h> #include <modaut.h>
#include <progind.h> #include <progind.h>
#include <reputils.h> #include <reputils.h>
#include <textset.h> #include <textset.h>
#include <utility.h> #include <utility.h>
#include "pg0067100a.h" #include "pg0067100a.h"
/////////////////////////////////////////////// ///////////////////////////////////////////////
// MASCHERA // MASCHERA
/////////////////////////////////////////////// ///////////////////////////////////////////////
class TDistribuzione_f24_mask : public TAutomask class TDistribuzione_f24_mask : public TAutomask
{ {
protected: protected:
TRecordset* create_recordset() const; TRecordset* create_recordset() const;
void print_stats(const bool stampa) const; void print_stats(const bool stampa) const;
void export_stats() const; void export_stats() const;
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public: public:
TDistribuzione_f24_mask(); TDistribuzione_f24_mask();
}; };
TDistribuzione_f24_mask::TDistribuzione_f24_mask() : TAutomask("pg0067100a") TDistribuzione_f24_mask::TDistribuzione_f24_mask() : TAutomask("pg0067100a")
{ {
} }
bool TDistribuzione_f24_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TDistribuzione_f24_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
switch(o.dlg()) switch(o.dlg())
{ {
case DLG_PRINT: //stampa case DLG_PRINT: //stampa
if (e == fe_button) if (e == fe_button)
{ {
print_stats(true); print_stats(true);
} }
break; break;
case DLG_PREVIEW: //stampa case DLG_PREVIEW: //stampa
if (e == fe_button) if (e == fe_button)
{ {
print_stats(false); print_stats(false);
} }
break; break;
case DLG_EXPORT: //esporta in excel case DLG_EXPORT: //esporta in excel
if (e == fe_button) if (e == fe_button)
{ {
export_stats(); export_stats();
} }
break; break;
default: default:
break; break;
} }
return true; return true;
} }
//metodo comune di generazione del recordset //metodo comune di generazione del recordset
//recordset che deve ordinare, per piva e anno, i files pdf che trova nelle sottocartelle della.. //recordset che deve ordinare, per piva e anno, i files pdf che trova nelle sottocartelle della..
//..cartella radice di destinazione //..cartella radice di destinazione
TRecordset* TDistribuzione_f24_mask::create_recordset() const TRecordset* TDistribuzione_f24_mask::create_recordset() const
{ {
TAS400_recordset* recset = new TAS400_recordset("AS400(58)"); TAS400_recordset* recset = new TAS400_recordset("AS400(58)");
recset->create_field("CODICE_FISCALE", 0, 16, _alfafld, true); recset->create_field("CODICE_FISCALE", 0, 16, _alfafld, true);
for (int j = 2006; j < 2016; j++) for (int j = 2006; j < 2016; j++)
{ {
TString8 anno; TString8 anno;
anno << "F24_" << j; anno << "F24_" << j;
recset->create_field(anno, -1, 4, _intfld, true); recset->create_field(anno, -1, 4, _intfld, true);
} }
recset->create_field("CR", -1, 2, _alfafld, true, TVariant("\n\r")); recset->create_field("CR", -1, 2, _alfafld, true, TVariant("\n\r"));
//cartella radice di destinazione //cartella radice di destinazione
const TString& dest_dir = get(F_PATH_DST); const TString& dest_dir = get(F_PATH_DST);
TFilename dest_pivas = dest_dir; dest_pivas.add("*"); TFilename dest_pivas = dest_dir; dest_pivas.add("*");
SLIST pivas = xvt_fsys_list_files(DIR_TYPE, dest_pivas, true); SLIST pivas = xvt_fsys_list_files(DIR_TYPE, dest_pivas, true);
for (SLIST_ELT e = xvt_slist_get_first(pivas); e; e = xvt_slist_get_next(pivas, e)) for (SLIST_ELT e = xvt_slist_get_first(pivas); e; e = xvt_slist_get_next(pivas, e))
{ {
TFilename dest_years = xvt_slist_get(pivas, e, NULL); TFilename dest_years = xvt_slist_get(pivas, e, NULL);
const TString& piva = dest_years.name_only(); const TString& piva = dest_years.name_only();
if (piva.len() < 11 || piva.len() > 16) if (piva.len() < 11 || piva.len() > 16)
continue; continue;
recset->new_rec(""); recset->new_rec("");
recset->set("CODICE_FISCALE", piva); recset->set("CODICE_FISCALE", piva);
dest_years.add("20??"); dest_years.add("20??");
SLIST years = xvt_fsys_list_files(DIR_TYPE, dest_years, true); SLIST years = xvt_fsys_list_files(DIR_TYPE, dest_years, true);
for (SLIST_ELT e = xvt_slist_get_first(years); e; e = xvt_slist_get_next(years, e)) for (SLIST_ELT e = xvt_slist_get_first(years); e; e = xvt_slist_get_next(years, e))
{ {
TFilename dest_year = xvt_slist_get(years, e, NULL); TFilename dest_year = xvt_slist_get(years, e, NULL);
const TString4 year = dest_year.name_only(); const TString4 year = dest_year.name_only();
dest_year.add("*.pdf"); dest_year.add("*.pdf");
SLIST files = xvt_fsys_list_files("", dest_year, false); SLIST files = xvt_fsys_list_files("", dest_year, false);
const long count = xvt_slist_count(files); const long count = xvt_slist_count(files);
xvt_slist_destroy(files); xvt_slist_destroy(files);
//aggiunge la riga al recordset //aggiunge la riga al recordset
TString8 fld; fld << "F24_" << year; TString8 fld; fld << "F24_" << year;
recset->set(fld, count); recset->set(fld, count);
} }
xvt_slist_destroy(years); xvt_slist_destroy(years);
} }
xvt_slist_destroy(pivas); xvt_slist_destroy(pivas);
//ordina il recordset per cofi/piva //ordina il recordset per cofi/piva
recset->sort(); recset->sort();
return recset; return recset;
} }
void TDistribuzione_f24_mask::print_stats(const bool stampa) const void TDistribuzione_f24_mask::print_stats(const bool stampa) const
{ {
TRecordset* recset = create_recordset(); TRecordset* recset = create_recordset();
TReport rep; TReport rep;
rep.load("pg0067100"); rep.load("pg0067100");
rep.set_recordset(recset); rep.set_recordset(recset);
if (stampa) if (stampa)
rep.print(); rep.print();
else else
rep.preview(); rep.preview();
} }
void TDistribuzione_f24_mask::export_stats() const void TDistribuzione_f24_mask::export_stats() const
{ {
TRecordset* recset = create_recordset(); TRecordset* recset = create_recordset();
TFilename temp; TFilename temp;
temp.temp("", "xls"); temp.temp("", "xls");
if (recset->save_as(temp, fmt_html)) if (recset->save_as(temp, fmt_html))
goto_url(temp); goto_url(temp);
delete recset; delete recset;
} }
////////////////////////////////////////////// //////////////////////////////////////////////
// APPLICAZIONE // APPLICAZIONE
///////////////////////////////////////////// /////////////////////////////////////////////
//Ridistributore di F24 per il computer //Ridistributore di F24 per il computer
class TDistribuzione_f24 : public TSkeleton_application class TDistribuzione_f24 : public TSkeleton_application
{ {
TDistribuzione_f24_mask* _mask; TDistribuzione_f24_mask* _mask;
virtual bool check_autorization() const {return false;} virtual bool check_autorization() const {return false;}
protected: protected:
virtual const char * extra_modules() const {return "rs";} virtual const char * extra_modules() const {return "rs";}
virtual bool create(); virtual bool create();
void elabora(); void elabora();
public: public:
virtual void main_loop(); virtual void main_loop();
}; };
void TDistribuzione_f24::elabora() void TDistribuzione_f24::elabora()
{ {
TFilename src_files = _mask->get(F_PATH_SRC); TFilename src_files = _mask->get(F_PATH_SRC);
src_files.add("*.pdf"); TString regexp = _mask->get(F_ELIMINA_EXPR);
TString_array src_files_list;
//dalla cartella origine prende tutti i files .pdf e crea una simpatica lista if (regexp.starts_with("$"))
const int n_files_pdf = list_files(src_files, src_files_list); regexp = regexp.mid(1);
else
const TString& dst_root_path = _mask->get(F_PATH_DST); if (!regexp.starts_with("*"))
const bool delete_src_files = _mask->get_bool(F_ERASE_TRANSFERRED); regexp.insert("*");
if (regexp.ends_with("^"))
//scansione dello string_array per il trasferimento (con tanto di progind e log) regexp.rtrim(1);
TProgind pi(n_files_pdf, TR("Trasferimento F24 in corso..."), true, true); else
TLog_report log("ERRORI DI TRASFERIMENTO"); regexp << "*";
src_files.add("*.pdf");
TToken_string curr_tok_file(_MAX_PATH, '_'); TString_array src_files_list;
//dalla cartella origine prende tutti i files .pdf e crea una simpatica lista
for (int i = 0; i < n_files_pdf; i++) const int n_files_pdf = list_files(src_files, src_files_list);
{
if (!pi.addstatus(1)) const TString& dst_root_path = _mask->get(F_PATH_DST);
break; const bool delete_src_files = _mask->get_bool(F_ERASE_TRANSFERRED);
//file in formato filename e token_string (per prendere i pezzi) //scansione dello string_array per il trasferimento (con tanto di progind e log)
const TFilename curr_fname = src_files_list.row(i); TProgind pi(n_files_pdf, TR("Trasferimento F24 in corso..."), true, true);
curr_tok_file = curr_fname.name_only(); TLog_report log("ERRORI DI TRASFERIMENTO");
//anno e relativo controllo TToken_string curr_tok_file(_MAX_PATH, '_');
const int anno = curr_tok_file.get_int(0);
if (anno < 2000) for (int i = 0; i < n_files_pdf; i++)
{ {
TString msg; if (!pi.addstatus(1))
msg.format("File %s ha ANNO errato", (const char*)curr_tok_file); break;
log.log(1, msg);
continue; //file in formato filename e token_string (per prendere i pezzi)
} const TFilename curr_fname = src_files_list.row(i);
curr_tok_file = curr_fname.name_only();
//piva e relativo controllo
const TString16 piva = curr_tok_file.get(1); //anno e relativo controllo
if (piva.len() < 11) const int anno = curr_tok_file.get_int(0);
{ if (anno < 2000)
TString msg; {
msg.format("File %s ha P.IVA o C.F. errato", (const char*)curr_tok_file); TString msg;
log.log(1, msg); msg.format("File %s ha ANNO errato", (const char*)curr_tok_file);
continue; log.log(1, msg);
} continue;
}
//controllo della cartella di destinazione
TFilename dst_file = dst_root_path; //piva e relativo controllo
dst_file.add(piva); const TString16 piva = curr_tok_file.get(1);
TString4 str_anno; if (piva.len() < 11)
str_anno << anno; {
dst_file.add(str_anno); TString msg;
const bool crea_dir = make_dir(dst_file); msg.format("File %s ha P.IVA o C.F. errato", (const char*)curr_tok_file);
//non riesce a crearla! deve dare errore di grave livello! log.log(1, msg);
if (!crea_dir) continue;
{ }
TString msg;
msg.format("Impossibile creare la cartella %s !", dst_file); //controllo della cartella di destinazione
log.log(2, msg); TFilename dst_file = dst_root_path;
continue; dst_file.add(piva);
} TString4 str_anno;
str_anno << anno;
//se invece crea/trova la cartella -> copia il file dst_file.add(str_anno);
dst_file.add(curr_fname.name()); const bool crea_dir = make_dir(dst_file);
//non riesce a crearla! deve dare errore di grave livello!
const bool copia_riuscita = fcopy(curr_fname, dst_file); if (!crea_dir)
if (!copia_riuscita) {
{ TString msg;
TString msg; msg.format("Impossibile creare la cartella %s !", dst_file);
msg.format("Impossibile copiare il file %s !", curr_fname.name()); log.log(2, msg);
log.log(2, msg); continue;
continue; }
}
//se invece crea/trova la cartella -> copia il file
//controllo dell'avvenuta copia e della correttezza del file destinazione if (!curr_fname.match(regexp))
//controllo sulle dimensioni {
const long src_size = fsize(curr_fname); dst_file.add(curr_fname.name());
const long dst_size = fsize(dst_file);
const bool copia_riuscita = fcopy(curr_fname, dst_file);
if (src_size != dst_size) if (!copia_riuscita)
{ {
TString msg; TString msg;
msg.format("Copia del file %s non completata !", curr_fname.name()); msg.format("Impossibile copiare il file %s !", curr_fname.name());
log.log(2, msg); log.log(2, msg);
continue; continue;
} }
//eliminazione del file sorgente //controllo dell'avvenuta copia e della correttezza del file destinazione
if (delete_src_files) //controllo sulle dimensioni
{ const long src_size = fsize(curr_fname);
const bool src_file_removed = remove_file(curr_fname); const long dst_size = fsize(dst_file);
if (!src_file_removed)
{ if (src_size != dst_size)
TString msg; {
msg.format("Impossibile eliminare il file origine %s ", curr_fname.name()); TString msg;
log.log(1, msg); msg.format("Copia del file %s non completata !", curr_fname.name());
continue; log.log(2, msg);
} continue;
} }
} //for(int i... }
message_box(TR("Elaborazione completata")); //eliminazione del file sorgente
if (delete_src_files)
const int items = log.recordset()->items(); {
if (items > 0) const bool src_file_removed = remove_file(curr_fname);
log.preview(); if (!src_file_removed)
} {
TString msg;
bool TDistribuzione_f24::create() msg.format("Impossibile eliminare il file origine %s ", curr_fname.name());
{ log.log(1, msg);
//se non ha il modulo RS non può proseguire continue;
if (!has_module(RSAUT)) }
return error_box(TR("Modulo non autorizzato")); }
} //for(int i...
return TSkeleton_application::create();
} message_box(TR("Elaborazione completata"));
void TDistribuzione_f24::main_loop() const int items = log.recordset()->items();
{ if (items > 0)
_mask = new TDistribuzione_f24_mask; log.preview();
if (_mask->run() != K_QUIT) }
elabora();
bool TDistribuzione_f24::create()
delete _mask; {
_mask = NULL; //se non ha il modulo RS non può proseguire
} if (!has_module(RSAUT))
return error_box(TR("Modulo non autorizzato"));
int pg0067100 (int argc, char **argv)
{ return TSkeleton_application::create();
TDistribuzione_f24 a; }
a.run(argc,argv, TR("Archiviazione F24"));
return true; void TDistribuzione_f24::main_loop()
} {
_mask = new TDistribuzione_f24_mask;
if (_mask->run() != K_QUIT)
elabora();
delete _mask;
_mask = NULL;
}
int pg0067100 (int argc, char **argv)
{
TDistribuzione_f24 a;
a.run(argc,argv, TR("Archiviazione F24"));
return true;
}

View File

@ -1,124 +1,124 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<report name="pg0067100" lpi="6"> <report name="pg0067100" lpi="6">
<description>Statistiche archiviazione F24</description> <description>Statistiche archiviazione F24</description>
<font face="Arial" size="8" /> <font face="Arial" size="8" />
<section type="Head"> <section type="Head">
<font face="Arial" bold="1" size="8" /> <font face="Arial" bold="1" size="8" />
<field x="73.5" type="Testo" align="center" width="6" pattern="1" text="Totale" /> <field x="73.5" type="Testo" align="center" width="6" pattern="1" text="Totale" />
<field x="2" y="0.5" type="Testo" width="10" pattern="1" text="C.F.&#2F;p.IVA" /> <field x="2" y="0.5" type="Testo" width="10" pattern="1" text="C.F.&#2F;p.IVA" />
<field x="20" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2006" /> <field x="20" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2006" />
<field x="25" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2007" /> <field x="25" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2007" />
<field x="30" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2008" /> <field x="30" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2008" />
<field x="35" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2009" /> <field x="35" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2009" />
<field x="40" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2010" /> <field x="40" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2010" />
<field x="45" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2011" /> <field x="45" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2011" />
<field x="50" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2012" /> <field x="50" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2012" />
<field x="55" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2013" /> <field x="55" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2013" />
<field x="60" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2014" /> <field x="60" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2014" />
<field x="65" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2015" /> <field x="65" y="0.5" type="Testo" align="center" width="4" pattern="1" text="2015" />
<field x="70.5" y="0.75" type="Testo" align="center" width="12" pattern="1" text="CF&#2F;pIVA" /> <field x="70.5" y="0.75" type="Testo" align="center" width="12" pattern="1" text="CF&#2F;pIVA" />
<field border="1" x="1" y="1.5" type="Linea" width="80" height="0" pattern="1" /> <field border="1" x="1" y="1.5" type="Linea" width="80" height="0" pattern="1" />
</section> </section>
<section type="Head" level="1" height="4.5"> <section type="Head" level="1" height="4.5">
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1</prescript> <prescript description="H1 PRESCRIPT">MESSAGE RESET,F1</prescript>
<field border="1" radius="50" x="10" y="0.5" type="Testo" valign="center" align="center" shade_offset="50" width="60" height="3" text="STATISTICHE ARCHIVIAZIONE F24"> <field border="1" radius="50" x="10" y="0.5" type="Testo" valign="center" align="center" shade_offset="50" width="60" height="3" text="STATISTICHE ARCHIVIAZIONE F24">
<font face="Arial" bold="1" size="14" /> <font face="Arial" bold="1" size="14" />
</field> </field>
</section> </section>
<section type="Body" /> <section type="Body" />
<section type="Body" level="1"> <section type="Body" level="1">
<field x="2" type="Stringa" width="16" pattern="1"> <field x="2" type="Stringa" width="16" pattern="1">
<source>CODICE_FISCALE</source> <source>CODICE_FISCALE</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE RESET,B1.200</prescript> <prescript description="B1.0 PRESCRIPT">MESSAGE RESET,B1.200</prescript>
</field> </field>
<field x="19.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1"> <field x="19.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
<source>F24_2006</source> <source>F24_2006</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200 <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
MESSAGE ADD,F1.101</prescript> MESSAGE ADD,F1.101</prescript>
</field> </field>
<field x="24.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1"> <field x="24.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
<source>F24_2007</source> <source>F24_2007</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200 <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
MESSAGE ADD,F1.102</prescript> MESSAGE ADD,F1.102</prescript>
</field> </field>
<field x="29.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1"> <field x="29.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
<source>F24_2008</source> <source>F24_2008</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200 <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
MESSAGE ADD,F1.103</prescript> MESSAGE ADD,F1.103</prescript>
</field> </field>
<field x="34.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1"> <field x="34.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
<source>F24_2009</source> <source>F24_2009</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200 <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
MESSAGE ADD,F1.104</prescript> MESSAGE ADD,F1.104</prescript>
</field> </field>
<field x="39.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1"> <field x="39.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
<source>F24_2010</source> <source>F24_2010</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200 <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
MESSAGE ADD,F1.105</prescript> MESSAGE ADD,F1.105</prescript>
</field> </field>
<field x="44.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1"> <field x="44.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
<source>F24_2011</source> <source>F24_2011</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200 <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
MESSAGE ADD,F1.106</prescript> MESSAGE ADD,F1.106</prescript>
</field> </field>
<field x="49.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1"> <field x="49.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
<source>F24_2012</source> <source>F24_2012</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200 <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
MESSAGE ADD,F1.107</prescript> MESSAGE ADD,F1.107</prescript>
</field> </field>
<field x="54.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1"> <field x="54.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
<source>F24_2013</source> <source>F24_2013</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200 <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
MESSAGE ADD,F1.108</prescript> MESSAGE ADD,F1.108</prescript>
</field> </field>
<field x="59.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1"> <field x="59.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
<source>F24_2014</source> <source>F24_2014</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200 <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
MESSAGE ADD,F1.109</prescript> MESSAGE ADD,F1.109</prescript>
</field> </field>
<field x="64.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1"> <field x="64.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
<source>F24_2015</source> <source>F24_2015</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200 <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
MESSAGE ADD,F1.110</prescript> MESSAGE ADD,F1.110</prescript>
</field> </field>
<field x="74" type="Numero" align="right" width="5" id="200" pattern="1"> <field x="74" type="Numero" align="right" width="5" id="200" pattern="1">
<prescript description="B1.200 PRESCRIPT">MESSAGE ADD,F1.200</prescript> <prescript description="B1.200 PRESCRIPT">MESSAGE ADD,F1.200</prescript>
</field> </field>
</section> </section>
<section type="Foot"> <section type="Foot">
<field border="1" x="1" y="0.5" type="Linea" width="80" height="0" pattern="1" /> <field border="1" x="1" y="0.5" type="Linea" width="80" height="0" pattern="1" />
<field x="71" y="0.75" type="Testo" width="5" pattern="1" text="Pag." /> <field x="71" y="0.75" type="Testo" width="5" pattern="1" text="Pag." />
<field x="76" y="0.75" type="Numero" align="right" width="3" pattern="1"> <field x="76" y="0.75" type="Numero" align="right" width="3" pattern="1">
<source>#REPORT.PAGE</source> <source>#REPORT.PAGE</source>
</field> </field>
</section> </section>
<section type="Foot" level="1"> <section type="Foot" level="1">
<font italic="1" face="Arial" bold="1" size="8" /> <font italic="1" face="Arial" bold="1" size="8" />
<field border="1" x="1" y="0.25" type="Linea" width="80" height="0" pattern="1" /> <field border="1" x="1" y="0.25" type="Linea" width="80" height="0" pattern="1" />
<field x="1" y="0.75" type="Testo" width="15" pattern="1" text="Totali per anno" /> <field x="1" y="0.75" type="Testo" width="15" pattern="1" text="Totali per anno" />
<field border="1" x="1" y="2.5" type="Linea" width="80" height="0" pattern="1" /> <field border="1" x="1" y="2.5" type="Linea" width="80" height="0" pattern="1" />
<field x="72.5" y="2.75" type="Testo" align="center" width="8" pattern="1" text="Totale" /> <field x="72.5" y="2.75" type="Testo" align="center" width="8" pattern="1" text="Totale" />
<field x="20" y="3" type="Testo" align="center" width="4" pattern="1" text="2006" /> <field x="20" y="3" type="Testo" align="center" width="4" pattern="1" text="2006" />
<field x="25" y="3" type="Testo" align="center" width="4" pattern="1" text="2007" /> <field x="25" y="3" type="Testo" align="center" width="4" pattern="1" text="2007" />
<field x="30" y="3" type="Testo" align="center" width="4" pattern="1" text="2008" /> <field x="30" y="3" type="Testo" align="center" width="4" pattern="1" text="2008" />
<field x="35" y="3" type="Testo" align="center" width="4" pattern="1" text="2009" /> <field x="35" y="3" type="Testo" align="center" width="4" pattern="1" text="2009" />
<field x="40" y="3" type="Testo" align="center" width="4" pattern="1" text="2010" /> <field x="40" y="3" type="Testo" align="center" width="4" pattern="1" text="2010" />
<field x="45" y="3" type="Testo" align="center" width="4" pattern="1" text="2011" /> <field x="45" y="3" type="Testo" align="center" width="4" pattern="1" text="2011" />
<field x="50" y="3" type="Testo" align="center" width="4" pattern="1" text="2012" /> <field x="50" y="3" type="Testo" align="center" width="4" pattern="1" text="2012" />
<field x="55" y="3" type="Testo" align="center" width="4" pattern="1" text="2013" /> <field x="55" y="3" type="Testo" align="center" width="4" pattern="1" text="2013" />
<field x="60" y="3" type="Testo" align="center" width="4" pattern="1" text="2014" /> <field x="60" y="3" type="Testo" align="center" width="4" pattern="1" text="2014" />
<field x="65" y="3" type="Testo" align="center" width="4" pattern="1" text="2015" /> <field x="65" y="3" type="Testo" align="center" width="4" pattern="1" text="2015" />
<field x="71.5" y="3.5" type="Testo" align="center" width="10" pattern="1" text="archiviati" /> <field x="71.5" y="3.5" type="Testo" align="center" width="10" pattern="1" text="archiviati" />
<field x="18.5" y="0.75" type="Numero" align="right" width="5" id="101" pattern="1" /> <field x="18.5" y="0.75" type="Numero" align="right" width="5" id="101" pattern="1" />
<field x="23.5" y="0.75" type="Numero" align="right" width="5" id="102" pattern="1" /> <field x="23.5" y="0.75" type="Numero" align="right" width="5" id="102" pattern="1" />
<field x="28.5" y="0.75" type="Numero" align="right" width="5" id="103" pattern="1" /> <field x="28.5" y="0.75" type="Numero" align="right" width="5" id="103" pattern="1" />
<field x="33.5" y="0.75" type="Numero" align="right" width="5" id="104" pattern="1" /> <field x="33.5" y="0.75" type="Numero" align="right" width="5" id="104" pattern="1" />
<field x="38.5" y="0.75" type="Numero" align="right" width="5" id="105" pattern="1" /> <field x="38.5" y="0.75" type="Numero" align="right" width="5" id="105" pattern="1" />
<field x="43.5" y="0.75" type="Numero" align="right" width="5" id="106" pattern="1" /> <field x="43.5" y="0.75" type="Numero" align="right" width="5" id="106" pattern="1" />
<field x="48.5" y="0.75" type="Numero" align="right" width="5" id="107" pattern="1" /> <field x="48.5" y="0.75" type="Numero" align="right" width="5" id="107" pattern="1" />
<field x="53.5" y="0.75" type="Numero" align="right" width="5" id="108" pattern="1" /> <field x="53.5" y="0.75" type="Numero" align="right" width="5" id="108" pattern="1" />
<field x="58.5" y="0.75" type="Numero" align="right" width="5" id="109" pattern="1" /> <field x="58.5" y="0.75" type="Numero" align="right" width="5" id="109" pattern="1" />
<field x="63.5" y="0.75" type="Numero" align="right" width="5" id="110" pattern="1" /> <field x="63.5" y="0.75" type="Numero" align="right" width="5" id="110" pattern="1" />
<field x="73" y="0.75" type="Numero" align="right" width="6" id="200" pattern="1" /> <field x="73" y="0.75" type="Numero" align="right" width="6" id="200" pattern="1" />
</section> </section>
</report> </report>

View File

@ -1,3 +1,4 @@
#define F_PATH_SRC 101 #define F_PATH_SRC 101
#define F_PATH_DST 102 #define F_PATH_DST 102
#define F_ERASE_TRANSFERRED 103 #define F_ERASE_TRANSFERRED 103
#define F_ELIMINA_EXPR 104

View File

@ -1,71 +1,76 @@
#include "pg0067100a.h" #include "pg0067100a.h"
PAGE "Trasferimento F24" -1 -1 78 6 PAGE "Trasferimento F24" -1 -1 78 6
STRING F_PATH_SRC 255 45 STRING F_PATH_SRC 255 45
BEGIN BEGIN
PROMPT 1 1 "Cartella di origine " PROMPT 1 1 "Cartella di origine "
DSELECT DSELECT
FLAGS "M" FLAGS "M"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Selezionare una cartella origine valida!" WARNING "Selezionare una cartella origine valida!"
END END
STRING F_PATH_DST 255 45 STRING F_PATH_DST 255 45
BEGIN BEGIN
PROMPT 1 2 "Cartella di destinazione " PROMPT 1 2 "Cartella di destinazione "
DSELECT DSELECT
FLAGS "M" FLAGS "M"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Selezionare una cartella destinazione valida!" WARNING "Selezionare una cartella destinazione valida!"
END END
BOOLEAN F_ERASE_TRANSFERRED STRING F_ELIMINA_EXPR 80 45
BEGIN BEGIN
PROMPT 1 4 "Eliminare i file di origine dopo la copia" PROMPT 1 3 "Elimina i seguenti file "
END END
STRING DLG_PROFILE 50 BOOLEAN F_ERASE_TRANSFERRED
BEGIN BEGIN
PROMPT 1 -1 "Profilo " PROMPT 1 4 "Eliminare i file di origine dopo la copia"
PSELECT END
END
STRING DLG_PROFILE 50
ENDPAGE BEGIN
PROMPT 1 -1 "Profilo "
TOOLBAR "" 0 0 0 2 PSELECT
END
BUTTON DLG_OK 2 2
BEGIN ENDPAGE
PROMPT 1 1 "~Archivia"
PICTURE TOOL_ELABORA TOOLBAR "" 0 0 0 2
END
BUTTON DLG_OK 2 2
BUTTON DLG_NULL 2 2 BEGIN
BEGIN PROMPT 1 1 "~Archivia"
PROMPT 2 1 "" PICTURE TOOL_ELABORA
END END
BUTTON DLG_PRINT 2 2 BUTTON DLG_NULL 2 2
BEGIN BEGIN
PROMPT 3 1 "~Stampa" PROMPT 2 1 ""
PICTURE TOOL_PRINTELENCO END
END
BUTTON DLG_PRINT 2 2
BUTTON DLG_PREVIEW 2 2 BEGIN
BEGIN PROMPT 3 1 "~Stampa"
PROMPT 4 1 "A~nteprima" PICTURE TOOL_PRINTELENCO
PICTURE TOOL_PREVIEW END
END
BUTTON DLG_PREVIEW 2 2
BUTTON DLG_EXPORT 2 2 BEGIN
BEGIN PROMPT 4 1 "A~nteprima"
PROMPT 5 1 "~Excel" PICTURE TOOL_PREVIEW
PICTURE TOOL_EXCEL END
END
BUTTON DLG_EXPORT 2 2
#include <helpbar.h> BEGIN
PROMPT 5 1 "~Excel"
ENDPAGE PICTURE TOOL_EXCEL
END
ENDMASK
#include <helpbar.h>
ENDPAGE
ENDMASK

View File

@ -1,15 +1,15 @@
#include <xvt.h> #include <xvt.h>
#include "pg0068.h" #include "pg0068.h"
int main( int argc, char** argv ) int main( int argc, char** argv )
{ {
const int r = (argc > 1) ? argv[1][1]-'0' : -1; const int r = (argc > 1) ? argv[1][1]-'0' : -1;
switch (r) switch (r)
{ {
case 0: pg0068100(argc, argv); break; // contabilizzazione Hair Kulture case 0: pg0068100(argc, argv); break; // contabilizzazione Hair Kulture
default: break; default: break;
} }
return 0; return 0;
} }

View File

@ -1 +1 @@
int pg0068100(int, char**); int pg0068100(int, char**);

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,19 @@
// Include file per pg0068100a.uml // Include file per pg0068100a.uml
#define F_ELAB_COSTI 101 #define F_ELAB_COSTI 101
#define F_ELAB_COSTI_DESCR 102 #define F_ELAB_COSTI_DESCR 102
#define F_ELAB_PROVV 103 #define F_ELAB_PROVV 103
#define F_ELAB_PROVV_DESCR 104 #define F_ELAB_PROVV_DESCR 104
#define F_DATA_INI 105 #define F_DATA_INI 105
#define F_DATA_FIN 106 #define F_DATA_FIN 106
#define F_DATA_AUTO 107 #define F_DATA_AUTO 107
#define F_DATA_REG 108 #define F_DATA_REG 108
#define F_CAUS_COSTI 109 #define F_CAUS_COSTI 109
#define F_CAUS_COSTI_DESCR 110 #define F_CAUS_COSTI_DESCR 110
#define F_CAUS_PROVV 111 #define F_CAUS_PROVV 111
#define F_CAUS_PROVV_DESCR 112 #define F_CAUS_PROVV_DESCR 112
#define F_AUTO_DATA_REG 113 #define F_AUTO_DATA_REG 113
#define F_GRUPPO 114 #define F_GRUPPO 114
#define F_CONTO 115 #define F_CONTO 115
#define F_SOTTOCONTO 116 #define F_SOTTOCONTO 116
#define F_DESC 117 #define F_DESC 117

View File

@ -1,249 +1,249 @@
#include "pg0068100a.h" #include "pg0068100a.h"
TOOLBAR "topbar" 0 0 0 2 TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_USER 10 2 BUTTON DLG_USER 10 2
BEGIN BEGIN
PROMPT -12 -1 "~Selezione" PROMPT -12 -1 "~Selezione"
PICTURE TOOL_MULTISEL PICTURE TOOL_MULTISEL
END END
#include <elabar.h> #include <elabar.h>
ENDPAGE ENDPAGE
PAGE "Contabilizzazione HAIR KULTURE" 0 2 0 0 PAGE "Contabilizzazione HAIR KULTURE" 0 2 0 0
GROUPBOX DLG_NULL 77 4 GROUPBOX DLG_NULL 77 4
BEGIN BEGIN
PROMPT 1 0 "@bElaborazioni" PROMPT 1 0 "@bElaborazioni"
END END
STRING F_ELAB_COSTI 8 STRING F_ELAB_COSTI 8
BEGIN BEGIN
PROMPT 2 1 "Costi " PROMPT 2 1 "Costi "
FLAG "U" FLAG "U"
USE %ELD SELECT I0 == 7 USE %ELD SELECT I0 == 7
INPUT CODTAB F_ELAB_COSTI INPUT CODTAB F_ELAB_COSTI
DISPLAY "Codice@8" CODTAB DISPLAY "Codice@8" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_ELAB_COSTI CODTAB OUTPUT F_ELAB_COSTI CODTAB
OUTPUT F_ELAB_COSTI_DESCR S0 OUTPUT F_ELAB_COSTI_DESCR S0
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "E' necessario specificare il codice elaborazione" WARNING "E' necessario specificare il codice elaborazione"
END END
STRING F_ELAB_COSTI_DESCR 50 STRING F_ELAB_COSTI_DESCR 50
BEGIN BEGIN
PROMPT 25 1 "" PROMPT 25 1 ""
USE %ELD KEY 2 SELECT I0 == 7 USE %ELD KEY 2 SELECT I0 == 7
INPUT S0 F_ELAB_COSTI_DESCR INPUT S0 F_ELAB_COSTI_DESCR
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice@8" CODTAB DISPLAY "Codice@8" CODTAB
COPY OUTPUT F_ELAB_COSTI COPY OUTPUT F_ELAB_COSTI
END END
STRING F_ELAB_PROVV 8 STRING F_ELAB_PROVV 8
BEGIN BEGIN
PROMPT 2 2 "Provvigioni " PROMPT 2 2 "Provvigioni "
FLAG "U" FLAG "U"
USE %ELD SELECT I0 == 7 USE %ELD SELECT I0 == 7
INPUT CODTAB F_ELAB_PROVV INPUT CODTAB F_ELAB_PROVV
DISPLAY "Codice@8" CODTAB DISPLAY "Codice@8" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_ELAB_PROVV CODTAB OUTPUT F_ELAB_PROVV CODTAB
OUTPUT F_ELAB_PROVV_DESCR S0 OUTPUT F_ELAB_PROVV_DESCR S0
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "E' necessario specificare il codice elaborazione" WARNING "E' necessario specificare il codice elaborazione"
END END
STRING F_ELAB_PROVV_DESCR 50 STRING F_ELAB_PROVV_DESCR 50
BEGIN BEGIN
PROMPT 25 2 "" PROMPT 25 2 ""
USE %ELD KEY 2 SELECT I0 == 7 USE %ELD KEY 2 SELECT I0 == 7
INPUT S0 F_ELAB_PROVV_DESCR INPUT S0 F_ELAB_PROVV_DESCR
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice@8" CODTAB DISPLAY "Codice@8" CODTAB
COPY OUTPUT F_ELAB_PROVV COPY OUTPUT F_ELAB_PROVV
END END
GROUPBOX DLG_NULL 77 3 GROUPBOX DLG_NULL 77 3
BEGIN BEGIN
PROMPT 1 4 "@bDate intervallo documenti" PROMPT 1 4 "@bDate intervallo documenti"
END END
DATE F_DATA_INI DATE F_DATA_INI
BEGIN BEGIN
PROMPT 2 5 "Inizio " PROMPT 2 5 "Inizio "
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "La data di inizio intervallo e' obbligatoria" WARNING "La data di inizio intervallo e' obbligatoria"
END END
DATE F_DATA_FIN DATE F_DATA_FIN
BEGIN BEGIN
PROMPT 25 5 "Fine " PROMPT 25 5 "Fine "
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "La data di fine intervallo deve essere successiva a quella di inizio" WARNING "La data di fine intervallo deve essere successiva a quella di inizio"
VALIDATE DATE_CMP_FUNC >= F_DATA_INI VALIDATE DATE_CMP_FUNC >= F_DATA_INI
END END
GROUPBOX DLG_NULL 77 8 GROUPBOX DLG_NULL 77 8
BEGIN BEGIN
PROMPT 1 7 "@bParametri movimenti generati" PROMPT 1 7 "@bParametri movimenti generati"
END END
TEXT -1 TEXT -1
BEGIN BEGIN
PROMPT 2 8 "@bCausali" PROMPT 2 8 "@bCausali"
END END
STRING F_CAUS_COSTI 3 STRING F_CAUS_COSTI 3
BEGIN BEGIN
PROMPT 3 9 "Costi " PROMPT 3 9 "Costi "
FLAGS "UZ" FLAGS "UZ"
USE LF_CAUSALI USE LF_CAUSALI
INPUT CODCAUS F_CAUS_COSTI INPUT CODCAUS F_CAUS_COSTI
DISPLAY "Cod." CODCAUS DISPLAY "Cod." CODCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Documento" TIPODOC DISPLAY "Documento" TIPODOC
DISPLAY "Tipo movimento" TIPOMOV DISPLAY "Tipo movimento" TIPOMOV
DISPLAY "Inc./Pag." CODCAUSIM DISPLAY "Inc./Pag." CODCAUSIM
OUTPUT F_CAUS_COSTI CODCAUS OUTPUT F_CAUS_COSTI CODCAUS
OUTPUT F_CAUS_COSTI_DESCR DESCR OUTPUT F_CAUS_COSTI_DESCR DESCR
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_CAUS_COSTI_DESCR 50 STRING F_CAUS_COSTI_DESCR 50
BEGIN BEGIN
PROMPT 22 9 "" PROMPT 22 9 ""
USE LF_CAUSALI KEY 2 USE LF_CAUSALI KEY 2
INPUT DESCR F_CAUS_COSTI_DESCR INPUT DESCR F_CAUS_COSTI_DESCR
DISPLAY "Descrizione @50" DESCR DISPLAY "Descrizione @50" DESCR
DISPLAY "Cod." CODCAUS DISPLAY "Cod." CODCAUS
DISPLAY "Documento" TIPODOC DISPLAY "Documento" TIPODOC
DISPLAY "Movimento" TIPOMOV DISPLAY "Movimento" TIPOMOV
DISPLAY "Inc./Pag." CODCAUSIM DISPLAY "Inc./Pag." CODCAUSIM
COPY OUTPUT F_CAUS_COSTI COPY OUTPUT F_CAUS_COSTI
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_CAUS_PROVV 3 STRING F_CAUS_PROVV 3
BEGIN BEGIN
PROMPT 3 10 "Provvigioni " PROMPT 3 10 "Provvigioni "
FLAGS "UZ" FLAGS "UZ"
USE LF_CAUSALI USE LF_CAUSALI
INPUT CODCAUS F_CAUS_PROVV INPUT CODCAUS F_CAUS_PROVV
DISPLAY "Cod." CODCAUS DISPLAY "Cod." CODCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Documento" TIPODOC DISPLAY "Documento" TIPODOC
DISPLAY "Tipo movimento" TIPOMOV DISPLAY "Tipo movimento" TIPOMOV
DISPLAY "Inc./Pag." CODCAUSIM DISPLAY "Inc./Pag." CODCAUSIM
OUTPUT F_CAUS_PROVV CODCAUS OUTPUT F_CAUS_PROVV CODCAUS
OUTPUT F_CAUS_PROVV_DESCR DESCR OUTPUT F_CAUS_PROVV_DESCR DESCR
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_CAUS_PROVV_DESCR 50 STRING F_CAUS_PROVV_DESCR 50
BEGIN BEGIN
PROMPT 22 10 "" PROMPT 22 10 ""
USE LF_CAUSALI KEY 2 USE LF_CAUSALI KEY 2
INPUT DESCR F_CAUS_PROVV_DESCR INPUT DESCR F_CAUS_PROVV_DESCR
DISPLAY "Descrizione @50" DESCR DISPLAY "Descrizione @50" DESCR
DISPLAY "Cod." CODCAUS DISPLAY "Cod." CODCAUS
DISPLAY "Documento" TIPODOC DISPLAY "Documento" TIPODOC
DISPLAY "Movimento" TIPOMOV DISPLAY "Movimento" TIPOMOV
DISPLAY "Inc./Pag." CODCAUSIM DISPLAY "Inc./Pag." CODCAUSIM
COPY OUTPUT F_CAUS_PROVV COPY OUTPUT F_CAUS_PROVV
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
TEXT -1 TEXT -1
BEGIN BEGIN
PROMPT 2 11 "@bConto omaggi" PROMPT 2 11 "@bConto omaggi"
END END
NUMBER F_GRUPPO 3 NUMBER F_GRUPPO 3
BEGIN BEGIN
PROMPT 3 12 "" PROMPT 3 12 ""
FLAGS "R" FLAGS "R"
USE LF_PCON SELECT CONTO="" USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_GRUPPO INPUT GRUPPO F_GRUPPO
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPO GRUPPO OUTPUT F_GRUPPO GRUPPO
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
NUMBER F_CONTO 3 NUMBER F_CONTO 3
BEGIN BEGIN
PROMPT 9 12 "" PROMPT 9 12 ""
FLAGS "R" FLAGS "R"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")) USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO=""))
COPY INPUT F_GRUPPO COPY INPUT F_GRUPPO
INPUT CONTO F_CONTO INPUT CONTO F_CONTO
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPO GRUPPO OUTPUT F_GRUPPO GRUPPO
OUTPUT F_CONTO CONTO OUTPUT F_CONTO CONTO
CHECKTYPE NORMAL CHECKTYPE NORMAL
VALIDATE REQIF_FUNC 1 F_SOTTOCONTO VALIDATE REQIF_FUNC 1 F_SOTTOCONTO
WARNING "Manca il conto" WARNING "Manca il conto"
END END
NUMBER F_SOTTOCONTO 6 NUMBER F_SOTTOCONTO 6
BEGIN BEGIN
PROMPT 15 12 "" PROMPT 15 12 ""
USE LF_PCON SELECT (SOTTOCONTO!="")&&(ANALITICA="X") USE LF_PCON SELECT (SOTTOCONTO!="")&&(ANALITICA="X")
COPY INPUT F_CONTO COPY INPUT F_CONTO
INPUT SOTTOCONTO F_SOTTOCONTO INPUT SOTTOCONTO F_SOTTOCONTO
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Sosp." SOSPESO DISPLAY "Sosp." SOSPESO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_SOTTOCONTO SOTTOCONTO OUTPUT F_SOTTOCONTO SOTTOCONTO
OUTPUT F_GRUPPO GRUPPO OUTPUT F_GRUPPO GRUPPO
OUTPUT F_CONTO CONTO OUTPUT F_CONTO CONTO
OUTPUT F_DESC DESCR OUTPUT F_DESC DESCR
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_DESC 50 STRING F_DESC 50
BEGIN BEGIN
PROMPT 24 12 "" PROMPT 24 12 ""
USE LF_PCON KEY 2 USE LF_PCON KEY 2
INPUT DESCR F_DESC INPUT DESCR F_DESC
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Sosp." SOSPESO DISPLAY "Sosp." SOSPESO
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SOTTOCONTO COPY OUTPUT F_SOTTOCONTO
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
HELP "Descrizione del gruppo o del conto o del sottoconto" HELP "Descrizione del gruppo o del conto o del sottoconto"
WARNING "Descrizione mancante" WARNING "Descrizione mancante"
END END
/*BOOL F_AUTO_DATA_REG /*BOOL F_AUTO_DATA_REG
BEGIN BEGIN
PROMPT 2 11 "Usare data documento come data registrazione" PROMPT 2 11 "Usare data documento come data registrazione"
MESSAGE FALSE ENABLE,F_DATA_REG MESSAGE FALSE ENABLE,F_DATA_REG
MESSAGE TRUE CLEAR,F_DATA_REG MESSAGE TRUE CLEAR,F_DATA_REG
END END
DATE F_DATA_REG DATE F_DATA_REG
BEGIN BEGIN
PROMPT 53 11 "Data reg. " PROMPT 53 11 "Data reg. "
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END*/ END*/
STRING DLG_PROFILE 50 STRING DLG_PROFILE 50
BEGIN BEGIN
PROMPT 9 -2 "Profilo " PROMPT 9 -2 "Profilo "
PSELECT PSELECT
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -1,16 +1,16 @@
#include <xvt.h> #include <xvt.h>
#include "pg0069.h" #include "pg0069.h"
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
int n = argc > 1 ? atoi(argv[1]+1) : 0; int n = argc > 1 ? atoi(argv[1]+1) : 0;
switch(n) switch(n)
{ {
case 0: case 0:
default: default:
pg0069100(argc, argv); break; //importazione e contabilizzazione fatture Nautilus e Bonomo pg0069100(argc, argv); break; //importazione e contabilizzazione fatture Nautilus e Bonomo
} }
exit(0); exit(0);
return 0; return 0;
} }

View File

@ -1 +1 @@
int pg0069100(int argc, char* argv[]); int pg0069100(int argc, char* argv[]);

File diff suppressed because it is too large Load Diff

View File

@ -1,39 +1,39 @@
// campi della maschera Nautilus // campi della maschera Nautilus
#define F_PATH 101 #define F_PATH 101
#define F_NAME 102 #define F_NAME 102
#define F_CODCAUS 103 #define F_CODCAUS 103
#define F_DESCR 104 #define F_DESCR 104
#define F_CODIVA_ES 105 #define F_CODIVA_ES 105
#define F_DES_CODIVA_ES 116 #define F_DES_CODIVA_ES 116
#define F_CODIVA_SP 106 #define F_CODIVA_SP 106
#define F_DES_CODIVA_SP 117 #define F_DES_CODIVA_SP 117
#define F_GRUPPO_SP 107 #define F_GRUPPO_SP 107
#define F_CONTO_SP 108 #define F_CONTO_SP 108
#define F_SOTTOCONTO_SP 109 #define F_SOTTOCONTO_SP 109
#define F_DESCRIZIONE_SP 110 #define F_DESCRIZIONE_SP 110
#define F_CODIVA_TR 111 #define F_CODIVA_TR 111
#define F_DES_CODIVA_TR 118 #define F_DES_CODIVA_TR 118
#define F_GRUPPO_TR 112 #define F_GRUPPO_TR 112
#define F_CONTO_TR 113 #define F_CONTO_TR 113
#define F_SOTTOCONTO_TR 114 #define F_SOTTOCONTO_TR 114
#define F_DESCRIZIONE_TR 115 #define F_DESCRIZIONE_TR 115
// campi del tracciato record // campi del tracciato record
#define F_CODAZIENDA 0 #define F_CODAZIENDA 0
#define F_CODDIP 1 #define F_CODDIP 1
#define F_VOCE 2 #define F_VOCE 2
#define F_TIPOVOCE 3 #define F_TIPOVOCE 3
#define F_QUOTAVOCE 4 #define F_QUOTAVOCE 4
#define F_VALOREVOCE 5 #define F_VALOREVOCE 5
#define F_IMPORTO 6 #define F_IMPORTO 6
#define F_CONTODARE 7 #define F_CONTODARE 7
#define F_CONTOAVERE 8 #define F_CONTOAVERE 8
#define F_CENTROCOSTO 9 #define F_CENTROCOSTO 9
#define F_SEDELAVORO 10 #define F_SEDELAVORO 10
#define F_SEDEINPS 11 #define F_SEDEINPS 11
#define F_QUALIFICA 12 #define F_QUALIFICA 12
#define F_POSINAIL 13 #define F_POSINAIL 13
#define F_VARIABILE 14 #define F_VARIABILE 14
#define F_CONTRATTO 15 #define F_CONTRATTO 15
#define F_FILLER 16 #define F_FILLER 16

View File

@ -1,285 +1,285 @@
#include "pg0069100a.h" #include "pg0069100a.h"
TOOLBAR "" 0 20 0 2 TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 10 2 BUTTON DLG_OK 10 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END
BUTTON DLG_QUIT 10 2 BUTTON DLG_QUIT 10 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END
ENDPAGE ENDPAGE
PAGE "Importazione documenti Nautilus" -1 -1 78 19 PAGE "Importazione documenti Nautilus" -1 -1 78 19
GROUPBOX DLG_NULL 78 4 GROUPBOX DLG_NULL 78 4
BEGIN BEGIN
PROMPT 1 1 "@bParametri file da importare" PROMPT 1 1 "@bParametri file da importare"
END END
STRING F_PATH 255 64 STRING F_PATH 255 64
BEGIN BEGIN
PROMPT 2 2 "Percorso " PROMPT 2 2 "Percorso "
DSELECT DSELECT
FLAGS "M" FLAGS "M"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Selezionare una cartella valida!" WARNING "Selezionare una cartella valida!"
FIELD PATH FIELD PATH
END END
STRING F_NAME 64 STRING F_NAME 64
BEGIN BEGIN
PROMPT 2 3 "Nome " PROMPT 2 3 "Nome "
FSELECT "*.txt" FSELECT "*.txt"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FIELD NAME FIELD NAME
END END
STRING F_CODCAUS 4 STRING F_CODCAUS 4
BEGIN BEGIN
PROMPT 2 5 "Causale " PROMPT 2 5 "Causale "
FLAGS "U" FLAGS "U"
USE LF_CAUSALI USE LF_CAUSALI
INPUT CODCAUS F_CODCAUS INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@60" DESCR DISPLAY "Descrizione@60" DESCR
OUTPUT F_CODCAUS CODCAUS OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCR DESCR OUTPUT F_DESCR DESCR
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
ADD RUN cg0 -4 ADD RUN cg0 -4
FIELD CODCAUS FIELD CODCAUS
END END
STRING F_DESCR 50 STRING F_DESCR 50
BEGIN BEGIN
PROMPT 17 5 "" PROMPT 17 5 ""
USE LF_CAUSALI KEY 2 USE LF_CAUSALI KEY 2
INPUT DESCR F_DESCR INPUT DESCR F_DESCR
DISPLAY "Descrizione@60" DESCR DISPLAY "Descrizione@60" DESCR
DISPLAY "Codice" CODCAUS DISPLAY "Codice" CODCAUS
COPY OUTPUT F_CODCAUS COPY OUTPUT F_CODCAUS
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 7 "@bParametri IVA merce esente" PROMPT 1 7 "@bParametri IVA merce esente"
END END
STRING F_CODIVA_ES 4 STRING F_CODIVA_ES 4
BEGIN BEGIN
PROMPT 2 8 "Codice IVA " PROMPT 2 8 "Codice IVA "
USE %IVA KEY 1 USE %IVA KEY 1
FLAGS "U" FLAGS "U"
INPUT CODTAB F_CODIVA_ES INPUT CODTAB F_CODIVA_ES
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_CODIVA_ES CODTAB OUTPUT F_CODIVA_ES CODTAB
OUTPUT F_DES_CODIVA_ES S0 OUTPUT F_DES_CODIVA_ES S0
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD IVA_ESENTE FIELD IVA_ESENTE
END END
STRING F_DES_CODIVA_ES 50 STRING F_DES_CODIVA_ES 50
BEGIN BEGIN
PROMPT 20 8 "" PROMPT 20 8 ""
USE %IVA KEY 2 USE %IVA KEY 2
INPUT S0 F_DES_CODIVA_ES INPUT S0 F_DES_CODIVA_ES
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODIVA_ES COPY OUTPUT F_CODIVA_ES
END END
GROUPBOX DLG_NULL 78 5 GROUPBOX DLG_NULL 78 5
BEGIN BEGIN
PROMPT 1 10 "@bParametri IVA spese" PROMPT 1 10 "@bParametri IVA spese"
END END
STRING F_CODIVA_SP 4 STRING F_CODIVA_SP 4
BEGIN BEGIN
PROMPT 2 11 "Codice IVA " PROMPT 2 11 "Codice IVA "
USE %IVA KEY 1 USE %IVA KEY 1
FLAGS "U" FLAGS "U"
INPUT CODTAB F_CODIVA_SP INPUT CODTAB F_CODIVA_SP
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_CODIVA_SP CODTAB OUTPUT F_CODIVA_SP CODTAB
OUTPUT F_DES_CODIVA_SP S0 OUTPUT F_DES_CODIVA_SP S0
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD IVA_SPESE FIELD IVA_SPESE
END END
STRING F_DES_CODIVA_SP 50 STRING F_DES_CODIVA_SP 50
BEGIN BEGIN
PROMPT 20 11 "" PROMPT 20 11 ""
USE %IVA KEY 2 USE %IVA KEY 2
INPUT S0 F_DES_CODIVA_SP INPUT S0 F_DES_CODIVA_SP
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODIVA_SP COPY OUTPUT F_CODIVA_SP
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
NUMBER F_GRUPPO_SP 3 NUMBER F_GRUPPO_SP 3
BEGIN BEGIN
PROMPT 2 12 "Gruppo " PROMPT 2 12 "Gruppo "
USE LF_PCON KEY 1 SELECT (CONTO="") USE LF_PCON KEY 1 SELECT (CONTO="")
INPUT GRUPPO F_GRUPPO_SP INPUT GRUPPO F_GRUPPO_SP
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPO_SP GRUPPO OUTPUT F_GRUPPO_SP GRUPPO
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD GR_IS FIELD GR_IS
END END
NUMBER F_CONTO_SP 3 NUMBER F_CONTO_SP 3
BEGIN BEGIN
PROMPT 15 12 "Conto " PROMPT 15 12 "Conto "
USE LF_PCON KEY 1 SELECT (SOTTOCONTO="") USE LF_PCON KEY 1 SELECT (SOTTOCONTO="")
INPUT GRUPPO F_GRUPPO_SP INPUT GRUPPO F_GRUPPO_SP
INPUT CONTO F_CONTO_SP INPUT CONTO F_CONTO_SP
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_CONTO_SP CONTO OUTPUT F_CONTO_SP CONTO
OUTPUT F_GRUPPO_SP GRUPPO OUTPUT F_GRUPPO_SP GRUPPO
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD CO_IS FIELD CO_IS
END END
NUMBER F_SOTTOCONTO_SP 6 NUMBER F_SOTTOCONTO_SP 6
BEGIN BEGIN
PROMPT 27 12 "Sottoc. " PROMPT 27 12 "Sottoc. "
USE LF_PCON USE LF_PCON
INPUT GRUPPO F_GRUPPO_SP INPUT GRUPPO F_GRUPPO_SP
INPUT CONTO F_CONTO_SP INPUT CONTO F_CONTO_SP
INPUT SOTTOCONTO F_SOTTOCONTO_SP INPUT SOTTOCONTO F_SOTTOCONTO_SP
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_SOTTOCONTO_SP SOTTOCONTO OUTPUT F_SOTTOCONTO_SP SOTTOCONTO
OUTPUT F_GRUPPO_SP GRUPPO OUTPUT F_GRUPPO_SP GRUPPO
OUTPUT F_CONTO_SP CONTO OUTPUT F_CONTO_SP CONTO
OUTPUT F_DESCRIZIONE_SP DESCR OUTPUT F_DESCRIZIONE_SP DESCR
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD SC_IS FIELD SC_IS
END END
STRING F_DESCRIZIONE_SP 50 STRING F_DESCRIZIONE_SP 50
BEGIN BEGIN
PROMPT 2 13 "" PROMPT 2 13 ""
USE LF_PCON KEY 2 USE LF_PCON KEY 2
INPUT DESCR F_DESCRIZIONE_SP INPUT DESCR F_DESCRIZIONE_SP
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
OUTPUT F_SOTTOCONTO_SP SOTTOCONTO OUTPUT F_SOTTOCONTO_SP SOTTOCONTO
OUTPUT F_CONTO_SP CONTO OUTPUT F_CONTO_SP CONTO
OUTPUT F_GRUPPO_SP GRUPPO OUTPUT F_GRUPPO_SP GRUPPO
OUTPUT F_DESCRIZIONE_SP DESCR OUTPUT F_DESCRIZIONE_SP DESCR
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
GROUPBOX DLG_NULL 78 5 GROUPBOX DLG_NULL 78 5
BEGIN BEGIN
PROMPT 1 15 "@bParametri IVA trasporto" PROMPT 1 15 "@bParametri IVA trasporto"
END END
STRING F_CODIVA_TR 4 STRING F_CODIVA_TR 4
BEGIN BEGIN
PROMPT 2 16 "Codice IVA " PROMPT 2 16 "Codice IVA "
USE %IVA KEY 1 USE %IVA KEY 1
FLAGS "U" FLAGS "U"
INPUT CODTAB F_CODIVA_TR INPUT CODTAB F_CODIVA_TR
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_CODIVA_TR CODTAB OUTPUT F_CODIVA_TR CODTAB
OUTPUT F_DES_CODIVA_TR S0 OUTPUT F_DES_CODIVA_TR S0
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD IVA_TRASP FIELD IVA_TRASP
END END
STRING F_DES_CODIVA_TR 50 STRING F_DES_CODIVA_TR 50
BEGIN BEGIN
PROMPT 20 16 "" PROMPT 20 16 ""
USE %IVA KEY 2 USE %IVA KEY 2
INPUT S0 F_DES_CODIVA_TR INPUT S0 F_DES_CODIVA_TR
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODIVA_TR COPY OUTPUT F_CODIVA_TR
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
NUMBER F_GRUPPO_TR 3 NUMBER F_GRUPPO_TR 3
BEGIN BEGIN
PROMPT 2 17 "Gruppo " PROMPT 2 17 "Gruppo "
USE LF_PCON KEY 1 SELECT (CONTO="") USE LF_PCON KEY 1 SELECT (CONTO="")
INPUT GRUPPO F_GRUPPO_TR INPUT GRUPPO F_GRUPPO_TR
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPO_TR GRUPPO OUTPUT F_GRUPPO_TR GRUPPO
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD GR_IT FIELD GR_IT
END END
NUMBER F_CONTO_TR 3 NUMBER F_CONTO_TR 3
BEGIN BEGIN
PROMPT 15 17 "Conto " PROMPT 15 17 "Conto "
USE LF_PCON KEY 1 SELECT (SOTTOCONTO="") USE LF_PCON KEY 1 SELECT (SOTTOCONTO="")
INPUT GRUPPO F_GRUPPO_TR INPUT GRUPPO F_GRUPPO_TR
INPUT CONTO F_CONTO_TR INPUT CONTO F_CONTO_TR
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_CONTO_TR CONTO OUTPUT F_CONTO_TR CONTO
OUTPUT F_GRUPPO_TR GRUPPO OUTPUT F_GRUPPO_TR GRUPPO
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD CO_IT FIELD CO_IT
END END
NUMBER F_SOTTOCONTO_TR 6 NUMBER F_SOTTOCONTO_TR 6
BEGIN BEGIN
PROMPT 27 17 "Sottoc. " PROMPT 27 17 "Sottoc. "
USE LF_PCON USE LF_PCON
INPUT GRUPPO F_GRUPPO_TR INPUT GRUPPO F_GRUPPO_TR
INPUT CONTO F_CONTO_TR INPUT CONTO F_CONTO_TR
INPUT SOTTOCONTO F_SOTTOCONTO_TR INPUT SOTTOCONTO F_SOTTOCONTO_TR
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_SOTTOCONTO_TR SOTTOCONTO OUTPUT F_SOTTOCONTO_TR SOTTOCONTO
OUTPUT F_GRUPPO_TR GRUPPO OUTPUT F_GRUPPO_TR GRUPPO
OUTPUT F_CONTO_TR CONTO OUTPUT F_CONTO_TR CONTO
OUTPUT F_DESCRIZIONE_TR DESCR OUTPUT F_DESCRIZIONE_TR DESCR
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD SC_IT FIELD SC_IT
END END
STRING F_DESCRIZIONE_TR 50 STRING F_DESCRIZIONE_TR 50
BEGIN BEGIN
PROMPT 2 18 "" PROMPT 2 18 ""
USE LF_PCON KEY 2 USE LF_PCON KEY 2
INPUT DESCR F_DESCRIZIONE_TR INPUT DESCR F_DESCRIZIONE_TR
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
OUTPUT F_SOTTOCONTO_TR SOTTOCONTO OUTPUT F_SOTTOCONTO_TR SOTTOCONTO
OUTPUT F_CONTO_TR CONTO OUTPUT F_CONTO_TR CONTO
OUTPUT F_GRUPPO_TR GRUPPO OUTPUT F_GRUPPO_TR GRUPPO
OUTPUT F_DESCRIZIONE_TR DESCR OUTPUT F_DESCRIZIONE_TR DESCR
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -1,14 +1,14 @@
[MAIN] [MAIN]
CODCAUS = CODCAUS =
CO_IS = CO_IS =
CO_IT = CO_IT =
GR_IS = GR_IS =
GR_IT = GR_IT =
IVA_ESENTE = IVA_ESENTE =
IVA_SPESE = IVA_SPESE =
IVA_TRASP = IVA_TRASP =
NAME = NAME =
PATH = PATH =
SC_IS = SC_IS =
SC_IT = SC_IT =

View File

@ -1,18 +1,18 @@
#include <xvt.h> #include <xvt.h>
#include "pg0388.h" #include "pg0388.h"
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
int n = argc > 1 ? atoi(argv[1]+1) : 0; int n = argc > 1 ? atoi(argv[1]+1) : 0;
switch(n) switch(n)
{ {
case 0: case 0:
pg0388100(argc, argv); break; //trasmissione ordini De Cade' pg0388100(argc, argv); break; //trasmissione ordini De Cade'
case 1: case 1:
pg0388200(argc, argv); break; //importazione bolle De Cade' pg0388200(argc, argv); break; //importazione bolle De Cade'
default: default:
pg0388100(argc, argv); break; pg0388100(argc, argv); break;
} }
return 0; return 0;
} }

View File

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

View File

@ -1,272 +1,272 @@
#include <applicat.h> #include <applicat.h>
#include <assoc.h> #include <assoc.h>
#include <automask.h> #include <automask.h>
#include <currency.h> #include <currency.h>
#include <filetext.h> #include <filetext.h>
#include <msksheet.h> #include <msksheet.h>
#include <recarray.h> #include <recarray.h>
#include <relation.h> #include <relation.h>
#include <sort.h> #include <sort.h>
#include "..\ve\velib.h" #include "..\ve\velib.h"
#include "pg0388.h" #include "pg0388.h"
#include "pg0388100a.h" #include "pg0388100a.h"
#define ALIAS_COMCF 200 #define ALIAS_COMCF 200
#define ALIAS_IND 300 #define ALIAS_IND 300
class TPG0388100_file: public TFile_text class TPG0388100_file: public TFile_text
{ {
protected: protected:
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str); virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
public: public:
TPG0388100_file(const TString& file_name); TPG0388100_file(const TString& file_name);
virtual ~TPG0388100_file() { } virtual ~TPG0388100_file() { }
}; };
TPG0388100_file::TPG0388100_file(const TString& file_name) TPG0388100_file::TPG0388100_file(const TString& file_name)
: TFile_text(file_name, "pg0388100a.ini") : TFile_text(file_name, "pg0388100a.ini")
{ {
} }
class TPG0388100_mask : public TAutomask class TPG0388100_mask : public TAutomask
{ {
protected: protected:
bool on_field_event(TOperable_field& o, TField_event e, long jolly); bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public: public:
TPG0388100_mask(); TPG0388100_mask();
virtual ~TPG0388100_mask(){}; virtual ~TPG0388100_mask(){};
}; };
TPG0388100_mask::TPG0388100_mask() :TAutomask ("pg0388100a") TPG0388100_mask::TPG0388100_mask() :TAutomask ("pg0388100a")
{ {
} }
bool TPG0388100_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TPG0388100_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
return true; return true;
} }
class TPG0388100 : public TSkeleton_application class TPG0388100 : public TSkeleton_application
{ {
TCursor* _cur; TCursor* _cur;
TPG0388100_mask* _msk; TPG0388100_mask* _msk;
TPG0388100_file* _trasfile; TPG0388100_file* _trasfile;
TConfig* _configfile; TConfig* _configfile;
TRiga_documento* _riga_doc_curr; TRiga_documento* _riga_doc_curr;
virtual const char * extra_modules() const {return "ve";} virtual const char * extra_modules() const {return "ve";}
protected: protected:
virtual bool create(void); virtual bool create(void);
virtual bool destroy(void); virtual bool destroy(void);
virtual void main_loop() ; virtual void main_loop() ;
void mask2ini(); void mask2ini();
void ini2mask(); void ini2mask();
bool trasferisci_ordini(); bool trasferisci_ordini();
real _omaggio; real _omaggio;
public: public:
const real& get_omaggio() {return _omaggio;}; const real& get_omaggio() {return _omaggio;};
TPG0388100() {} ; TPG0388100() {} ;
virtual ~TPG0388100() {} ; virtual ~TPG0388100() {} ;
}; };
// restituisce un riferimento all' applicazione // restituisce un riferimento all' applicazione
inline TPG0388100& app() { return (TPG0388100&) main_app();} inline TPG0388100& app() { return (TPG0388100&) main_app();}
// gestione dei messaggi estesi nei campi // gestione dei messaggi estesi nei campi
void TPG0388100_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str) void TPG0388100_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
{ {
const TString code(s.get(0)); const TString code(s.get(0));
TString valore; TString valore;
if (code == "_FISSO") if (code == "_FISSO")
{ {
// gestione dei campi fissi // gestione dei campi fissi
// sintassi: _FISSO,!<valore> // sintassi: _FISSO,!<valore>
// dove: <valore> è la stringa fissa da emettere // dove: <valore> è la stringa fissa da emettere
TString in(s.get()); TString in(s.get());
CHECK(in[0]=='!',"Macro _FISSO senza carattere '!'"); CHECK(in[0]=='!',"Macro _FISSO senza carattere '!'");
in.ltrim(1); in.ltrim(1);
in.trim(); in.trim();
valore = in; valore = in;
} }
else if (code == "_OMAGGIO") else if (code == "_OMAGGIO")
{ {
valore = app().get_omaggio().string(); valore = app().get_omaggio().string();
} }
else if (code == "_CONCAT") else if (code == "_CONCAT")
{ {
TString in(s.get()); TString in(s.get());
CHECK(in[0]=='!',"Macro _CONCAT senza carattere '!'"); CHECK(in[0]=='!',"Macro _CONCAT senza carattere '!'");
in.ltrim(1); in.ltrim(1);
in.trim(); in.trim();
valore << str; valore << str;
TString fi(s.get()); TString fi(s.get());
str = cur.curr(in).get(fi); str = cur.curr(in).get(fi);
if (str.not_empty()) if (str.not_empty())
{ {
valore << ','; valore << ',';
valore << str; valore << str;
} }
} }
else if (code == "_NOTE") else if (code == "_NOTE")
{ {
valore = cur.curr(LF_DOC).get(DOC_NOTE); valore = cur.curr(LF_DOC).get(DOC_NOTE);
valore.replace(char(182), '\n'); valore.replace(char(182), '\n');
TParagraph_string nota(valore, 50); TParagraph_string nota(valore, 50);
valore = nota.get(); valore = nota.get();
} }
else NFCHECK("Macro non definita: %s", (const char *)code); else NFCHECK("Macro non definita: %s", (const char *)code);
str = valore; str = valore;
} }
bool TPG0388100::create() bool TPG0388100::create()
{ {
open_files(LF_DOC, LF_CLIFO, LF_COMUNI, LF_CFVEN, 0); open_files(LF_DOC, LF_CLIFO, LF_COMUNI, LF_CFVEN, 0);
_msk = new TPG0388100_mask(); _msk = new TPG0388100_mask();
_configfile = new TConfig("pg0388conf.ini", "INVIO"); _configfile = new TConfig("pg0388conf.ini", "INVIO");
return TSkeleton_application::create(); return TSkeleton_application::create();
} }
bool TPG0388100::destroy() bool TPG0388100::destroy()
{ {
delete _configfile; delete _configfile;
delete _msk; delete _msk;
return TSkeleton_application::destroy(); return TSkeleton_application::destroy();
} }
void TPG0388100::mask2ini() void TPG0388100::mask2ini()
{ {
//carica i parametri del file di configurazione //carica i parametri del file di configurazione
_configfile->set_paragraph("INVIO"); _configfile->set_paragraph("INVIO");
for (int i = 0; i < _msk->fields() ; i++) for (int i = 0; i < _msk->fields() ; i++)
{ {
TMask_field& f = _msk->fld(i); TMask_field& f = _msk->fld(i);
const TFieldref* fr = f.field(); const TFieldref* fr = f.field();
if (fr != NULL) if (fr != NULL)
_configfile->set(fr->name(), f.get()); _configfile->set(fr->name(), f.get());
} }
} }
void TPG0388100::ini2mask() void TPG0388100::ini2mask()
{ {
//carica i parametri del file di configurazione //carica i parametri del file di configurazione
_configfile->set_paragraph("INVIO"); _configfile->set_paragraph("INVIO");
for (int i = 0; i < _msk->fields() ; i++) for (int i = 0; i < _msk->fields() ; i++)
{ {
TMask_field& f = _msk->fld(i); TMask_field& f = _msk->fld(i);
const TFieldref* fr = f.field(); const TFieldref* fr = f.field();
if (fr != NULL) if (fr != NULL)
{ {
const TString& val = _configfile->get(fr->name()); const TString& val = _configfile->get(fr->name());
f.set(val); f.set(val);
} }
} }
} }
void TPG0388100::main_loop() void TPG0388100::main_loop()
{ {
KEY tasto; KEY tasto;
ini2mask(); ini2mask();
tasto = _msk->run(); tasto = _msk->run();
if (tasto == K_ENTER) if (tasto == K_ENTER)
{ {
mask2ini(); mask2ini();
if (trasferisci_ordini()) if (trasferisci_ordini())
message_box(TR("Trasmissione ordini completata")); message_box(TR("Trasmissione ordini completata"));
} }
} }
bool TPG0388100::trasferisci_ordini() bool TPG0388100::trasferisci_ordini()
{ {
const TFilename file = _msk->get(F_FILENAME); const TFilename file = _msk->get(F_FILENAME);
_trasfile = new TPG0388100_file(file); _trasfile = new TPG0388100_file(file);
_trasfile->open(file,'w'); _trasfile->open(file,'w');
//parametri dei documenti da estrarre //parametri dei documenti da estrarre
const TString4 numord = _msk->get(F_NUMORD); const TString4 numord = _msk->get(F_NUMORD);
const char statoini = _msk->get(F_STATOINI)[0]; const char statoini = _msk->get(F_STATOINI)[0];
const char statofin = _msk->get(F_STATOFIN)[0]; const char statofin = _msk->get(F_STATOFIN)[0];
const int anno = _msk->get_int(F_ANNO); const int anno = _msk->get_int(F_ANNO);
const long numini = _msk->get_long(F_NUMINI); const long numini = _msk->get_long(F_NUMINI);
const long numfin = _msk->get_long(F_NUMFIN); const long numfin = _msk->get_long(F_NUMFIN);
TRelation doc_rel(LF_DOC); TRelation doc_rel(LF_DOC);
doc_rel.add(LF_RIGHEDOC, "CODNUM==CODNUM|ANNO==ANNO|PROVV==PROVV|NDOC==NDOC"); doc_rel.add(LF_RIGHEDOC, "CODNUM==CODNUM|ANNO==ANNO|PROVV==PROVV|NDOC==NDOC");
doc_rel.add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF"); doc_rel.add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF");
doc_rel.add(LF_COMUNI, "COM==COMCF", 1, LF_CLIFO, ALIAS_COMCF); doc_rel.add(LF_COMUNI, "COM==COMCF", 1, LF_CLIFO, ALIAS_COMCF);
doc_rel.add(LF_INDSP, "TIPOCF==TIPOCF|CODCF==CODCF|CODIND==CODINDSP"); doc_rel.add(LF_INDSP, "TIPOCF==TIPOCF|CODCF==CODCF|CODIND==CODINDSP");
doc_rel.add(LF_COMUNI, "COM==COM", 1, LF_INDSP, ALIAS_IND); doc_rel.add(LF_COMUNI, "COM==COM", 1, LF_INDSP, ALIAS_IND);
TRectype da(LF_DOC); TRectype da(LF_DOC);
TRectype a(LF_DOC); TRectype a(LF_DOC);
da.put(DOC_PROVV, "D"); da.put(DOC_PROVV, "D");
a.put(DOC_PROVV, "D"); a.put(DOC_PROVV, "D");
da.put(DOC_ANNO, anno); da.put(DOC_ANNO, anno);
a.put(DOC_ANNO, anno); a.put(DOC_ANNO, anno);
da.put(DOC_CODNUM, numord); da.put(DOC_CODNUM, numord);
a.put(DOC_CODNUM, numord); a.put(DOC_CODNUM, numord);
da.put(DOC_NDOC, numini); da.put(DOC_NDOC, numini);
a.put(DOC_NDOC, numfin); a.put(DOC_NDOC, numfin);
TString filt_expr; TString filt_expr;
filt_expr = "(STATO==\""; filt_expr = "(STATO==\"";
filt_expr << statoini << "\")"; filt_expr << statoini << "\")";
doc_rel.lfile().set_curr(new TDocumento); doc_rel.lfile().set_curr(new TDocumento);
_omaggio = ZERO; _omaggio = ZERO;
_cur = new TCursor(&doc_rel,filt_expr,1,&da,&a); _cur = new TCursor(&doc_rel,filt_expr,1,&da,&a);
const long cur_items = _cur ->items(); // Scorre tutti i documenti che rientrano nell'intervallo selezionato const long cur_items = _cur ->items(); // Scorre tutti i documenti che rientrano nell'intervallo selezionato
if (cur_items != 0) if (cur_items != 0)
{ {
for (*_cur = 0; _cur->pos() < cur_items; ++(*_cur)) for (*_cur = 0; _cur->pos() < cur_items; ++(*_cur))
{ {
_omaggio = ZERO; _omaggio = ZERO;
TRecord_text rec; TRecord_text rec;
rec.set_type("TE"); rec.set_type("TE");
_trasfile->autoload(rec, *_cur); _trasfile->autoload(rec, *_cur);
_trasfile->write(rec); _trasfile->write(rec);
TDocumento documento = doc_rel.curr(); TDocumento documento = doc_rel.curr();
_configfile->set("NUMINI", documento.numero()); _configfile->set("NUMINI", documento.numero());
// modifico lo stato del documento estratto // modifico lo stato del documento estratto
documento.stato(statofin); documento.stato(statofin);
documento.rewrite(); documento.rewrite();
for (int i=1;i<=documento.rows();i++) for (int i=1;i<=documento.rows();i++)
{ {
TRecord_text recr; TRecord_text recr;
const TRiga_documento& rec_rdoc = documento[i]; const TRiga_documento& rec_rdoc = documento[i];
if (!(rec_rdoc.is_omaggio())) if (!(rec_rdoc.is_omaggio()))
{ {
if (i< documento.rows()) if (i< documento.rows())
{ {
const TRiga_documento& rec_rigasucc = documento[i+1]; const TRiga_documento& rec_rigasucc = documento[i+1];
if (rec_rigasucc.is_omaggio()) if (rec_rigasucc.is_omaggio())
_omaggio = rec_rigasucc.quantita(); _omaggio = rec_rigasucc.quantita();
else else
_omaggio = ZERO; _omaggio = ZERO;
} }
//_riga_doc_curr = new TRiga_documento(rec_rdoc); //_riga_doc_curr = new TRiga_documento(rec_rdoc);
doc_rel.curr(LF_RIGHEDOC) = rec_rdoc; doc_rel.curr(LF_RIGHEDOC) = rec_rdoc;
recr.set_type("RI"); recr.set_type("RI");
_trasfile->autoload(recr, *_cur); _trasfile->autoload(recr, *_cur);
_trasfile->write(recr); _trasfile->write(recr);
//delete _riga_doc_curr; //delete _riga_doc_curr;
} }
} }
} }
delete _cur; delete _cur;
} }
_trasfile->close(); _trasfile->close();
delete _trasfile; delete _trasfile;
return true; return true;
} }
int pg0388100(int argc, char **argv) int pg0388100(int argc, char **argv)
{ {
TPG0388100 a; TPG0388100 a;
a.run(argc, argv, "Trasmissione ordini"); a.run(argc, argv, "Trasmissione ordini");
return 0; return 0;
} }

View File

@ -1,11 +1,11 @@
#define F_CODDITTA 101 #define F_CODDITTA 101
#define F_RAGSOC 102 #define F_RAGSOC 102
#define F_FILENAME 103 #define F_FILENAME 103
#define F_ANNO 104 #define F_ANNO 104
#define F_NUMINI 105 #define F_NUMINI 105
#define F_NUMFIN 106 #define F_NUMFIN 106
#define F_NUMORD 107 #define F_NUMORD 107
#define F_DESORD 108 #define F_DESORD 108
#define F_STATOINI 109 #define F_STATOINI 109
#define F_STATOFIN 110 #define F_STATOFIN 110

View File

@ -1,204 +1,204 @@
[MAIN] [MAIN]
DECSEP = , DECSEP = ,
FIELDSEP = | FIELDSEP = |
RECORDSEP = RECORDSEP =
SKIPLINES = 0 SKIPLINES = 0
TYPEFIELD = -1 TYPEFIELD = -1
TYPELEN = -1 TYPELEN = -1
TYPEPOS = -1 TYPEPOS = -1
[TYPE FISSO] [TYPE FISSO]
ALIGN = ALIGN =
DATA = DATA =
DECIMAL = 0 DECIMAL = 0
FILLER = ' ' FILLER = ' '
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[TYPE DATA] [TYPE DATA]
ALIGN = ALIGN =
DATA = D DATA = D
DECIMAL = 0 DECIMAL = 0
FILLER = FILLER =
LENGTH = 6 LENGTH = 6
PICTURE = PICTURE =
[TYPE NUMERO] [TYPE NUMERO]
ALIGN = R ALIGN = R
DATA = N DATA = N
DECIMAL = 0 DECIMAL = 0
FILLER = '0' FILLER = '0'
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[TYPE STRINGA] [TYPE STRINGA]
ALIGN = L ALIGN = L
DATA = S DATA = S
DECIMAL = 0 DECIMAL = 0
FILLER = ' ' FILLER = ' '
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[TYPE IMPORTO] [TYPE IMPORTO]
ALIGN = R ALIGN = R
DATA = S DATA = S
DECIMAL = 0 DECIMAL = 0
FILLER = '0' FILLER = '0'
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[RECORD TE] [RECORD TE]
NAME(0)=RECORD TESTA NAME(0)=RECORD TESTA
TYPE(0)=STRINGA TYPE(0)=STRINGA
MESSAGE(0)=_FISSO,!T MESSAGE(0)=_FISSO,!T
NAME(1) = CODICE DESTINAZIONE MERCE NAME(1) = CODICE DESTINAZIONE MERCE
TYPE(1) = STRINGA TYPE(1) = STRINGA
FIELD(1) = 33->CODINDSP FIELD(1) = 33->CODINDSP
NAME(2) = RAGIONE SOCIALE DESTINAZIONE MERCE NAME(2) = RAGIONE SOCIALE DESTINAZIONE MERCE
TYPE(2) = STRINGA TYPE(2) = STRINGA
FIELD(2) = 16->RAGSOC FIELD(2) = 16->RAGSOC
NAME(3) = VIA DESTINAZIONE MERCE NAME(3) = VIA DESTINAZIONE MERCE
TYPE(3) = STRINGA TYPE(3) = STRINGA
FIELD(3) = 16->INDIR FIELD(3) = 16->INDIR
MESSAGE(3) = _CONCAT,!16,CIV MESSAGE(3) = _CONCAT,!16,CIV
NAME(4) = CAP DESTINAZIONE MERCE NAME(4) = CAP DESTINAZIONE MERCE
TYPE(4) = STRINGA TYPE(4) = STRINGA
FIELD(4) = 16->CAP FIELD(4) = 16->CAP
NAME(5) = CITTA DESTINAZIONE MERCE NAME(5) = CITTA DESTINAZIONE MERCE
TYPE(5) = STRINGA TYPE(5) = STRINGA
FIELD(5) = 16->LOCALITA FIELD(5) = 16->LOCALITA
NAME(6) = PROVINCIA DESTINAZIONE MERCE NAME(6) = PROVINCIA DESTINAZIONE MERCE
TYPE(6) = STRINGA TYPE(6) = STRINGA
NAME(7) = RAGIONE SOCIALE CLIENTE NAME(7) = RAGIONE SOCIALE CLIENTE
TYPE(7) = STRINGA TYPE(7) = STRINGA
FIELD(7) = 20->RAGSOC FIELD(7) = 20->RAGSOC
NAME(8) = SEGUITO RAGIONE SOCIALE NAME(8) = SEGUITO RAGIONE SOCIALE
TYPE(8) = STRINGA TYPE(8) = STRINGA
NAME(9) = VIA CLIENTE NAME(9) = VIA CLIENTE
TYPE(9) = STRINGA TYPE(9) = STRINGA
FIELD(9) = 20->INDCF FIELD(9) = 20->INDCF
MESSAGE(9) = _CONCAT,!20,CIVCF MESSAGE(9) = _CONCAT,!20,CIVCF
NAME(10) = CAP CLIENTE NAME(10) = CAP CLIENTE
TYPE(10) = STRINGA TYPE(10) = STRINGA
FIELD(10) = 20->CAPCF FIELD(10) = 20->CAPCF
NAME(11) = CITTA CLIENTE NAME(11) = CITTA CLIENTE
TYPE(11) = STRINGA TYPE(11) = STRINGA
FIELD(11) = 13->DENCOM FIELD(11) = 13->DENCOM
NAME(12) = PROVINCIA CLIENTE NAME(12) = PROVINCIA CLIENTE
TYPE(12) = STRINGA TYPE(12) = STRINGA
FIELD(12) = 13->PROVCOM FIELD(12) = 13->PROVCOM
NAME(13) = PARTITA IVA CLIENTE NAME(13) = PARTITA IVA CLIENTE
TYPE(13) = STRINGA TYPE(13) = STRINGA
FIELD(13) = 20->PAIV FIELD(13) = 20->PAIV
NAME(14) = CODICE CLIENTE NAME(14) = CODICE CLIENTE
TYPE(14) = STRINGA TYPE(14) = STRINGA
FIELD(14) = 20->CODCF FIELD(14) = 20->CODCF
NAME(15) = ABI NAME(15) = ABI
TYPE(15) = STRINGA TYPE(15) = STRINGA
FIELD(15) = 33->CODABIA FIELD(15) = 33->CODABIA
NAME(16) = CAB NAME(16) = CAB
TYPE(16) = STRINGA TYPE(16) = STRINGA
FIELD(16) = 33->CODCABA FIELD(16) = 33->CODCABA
NAME(17) = CATEGORIA CLIENTE NAME(17) = CATEGORIA CLIENTE
TYPE(17) = STRINGA TYPE(17) = STRINGA
FIELD(17) = 33->CATVEN FIELD(17) = 33->CATVEN
NAME(18) = NUMERO ORDINE NAME(18) = NUMERO ORDINE
TYPE(18) = STRINGA TYPE(18) = STRINGA
FIELD(18) = 33->NDOC FIELD(18) = 33->NDOC
NAME(19) = ANNO ORDINE NAME(19) = ANNO ORDINE
TYPE(19) = STRINGA TYPE(19) = STRINGA
FIELD(19) = 33->ANNO FIELD(19) = 33->ANNO
NAME(20) = DATA ORDINE NAME(20) = DATA ORDINE
TYPE(20) = STRINGA TYPE(20) = STRINGA
FIELD(20) = 33->DATADOC FIELD(20) = 33->DATADOC
NAME(21) = DATA CONSEGNA ORDINE NAME(21) = DATA CONSEGNA ORDINE
TYPE(21) = STRINGA TYPE(21) = STRINGA
FIELD(21) = 33->DATACONS FIELD(21) = 33->DATACONS
NAME(22) = CODICE AGENTE NAME(22) = CODICE AGENTE
TYPE(22) = STRINGA TYPE(22) = STRINGA
FIELD(22) = 33->CODAG FIELD(22) = 33->CODAG
NAME(23) = RIFERIMENTO NAME(23) = RIFERIMENTO
TYPE(23) = STRINGA TYPE(23) = STRINGA
NAME(24) = CAUSALE TRASPORTO NAME(24) = CAUSALE TRASPORTO
TYPE(24) = STRINGA TYPE(24) = STRINGA
FIELD(24) = 33->CAUSTRASP FIELD(24) = 33->CAUSTRASP
NAME(25) = IMPORTO CONTRASSEGNO NAME(25) = IMPORTO CONTRASSEGNO
TYPE(25) = STRINGA TYPE(25) = STRINGA
[RECORD RI] [RECORD RI]
NAME(0)=RECORD RIGHE NAME(0)=RECORD RIGHE
TYPE(0)=STRINGA TYPE(0)=STRINGA
MESSAGE(0)=_FISSO,!R MESSAGE(0)=_FISSO,!R
NAME(1) = NUMERO ORDINE NAME(1) = NUMERO ORDINE
TYPE(1) = STRINGA TYPE(1) = STRINGA
FIELD(1) = 34->NDOC FIELD(1) = 34->NDOC
NAME(2) = ANNO ORDINE NAME(2) = ANNO ORDINE
TYPE(2) = STRINGA TYPE(2) = STRINGA
FIELD(2) = 34->ANNO FIELD(2) = 34->ANNO
NAME(3) = RIGA ORDINE NAME(3) = RIGA ORDINE
TYPE(3) = STRINGA TYPE(3) = STRINGA
FIELD(3) = 34->NRIGA FIELD(3) = 34->NRIGA
NAME(4) = CODICE ARTICOLO NAME(4) = CODICE ARTICOLO
TYPE(4) = STRINGA TYPE(4) = STRINGA
FIELD(4) = 34->CODART FIELD(4) = 34->CODART
NAME(5) = DESCRIZIONE ARTICOLO NAME(5) = DESCRIZIONE ARTICOLO
TYPE(5) = STRINGA TYPE(5) = STRINGA
FIELD(5) = 34->DESCR FIELD(5) = 34->DESCR
NAME(6) = QUANTITA FATTURATA NAME(6) = QUANTITA FATTURATA
TYPE(6) = STRINGA TYPE(6) = STRINGA
FIELD(6) = 34->QTA FIELD(6) = 34->QTA
NAME(7) = QUANTITA IN SCONTO NAME(7) = QUANTITA IN SCONTO
TYPE(7) = STRINGA TYPE(7) = STRINGA
NAME(8) = QUANTITA OMAGGIO NAME(8) = QUANTITA OMAGGIO
TYPE(8) = STRINGA TYPE(8) = STRINGA
MESSAGE(8) = _OMAGGIO MESSAGE(8) = _OMAGGIO
NAME(9) = PREZZO UNITARIO NAME(9) = PREZZO UNITARIO
TYPE(9) = STRINGA TYPE(9) = STRINGA
FIELD(9) = 34->PREZZO FIELD(9) = 34->PREZZO
NAME(10) = SCONTO 1 NAME(10) = SCONTO 1
TYPE(10) = STRINGA TYPE(10) = STRINGA
FIELD(10) = 34->SCONTO FIELD(10) = 34->SCONTO
NAME(11) = SCONTO 2 NAME(11) = SCONTO 2
TYPE(11) = STRINGA TYPE(11) = STRINGA
NAME(12) = NOTE DI RIGA NAME(12) = NOTE DI RIGA
TYPE(12) = STRINGA TYPE(12) = STRINGA

View File

@ -1,117 +1,117 @@
#include "pg0388100a.h" #include "pg0388100a.h"
TOOLBAR "" 0 -5 0 4 TOOLBAR "" 0 -5 0 4
BUTTON DLG_OK 10 2 BUTTON DLG_OK 10 2
BEGIN BEGIN
PROMPT -12 -11 "" PROMPT -12 -11 ""
END END
BUTTON DLG_QUIT 10 2 BUTTON DLG_QUIT 10 2
BEGIN BEGIN
PROMPT -22 -11 "" PROMPT -22 -11 ""
END END
ENDPAGE ENDPAGE
PAGE "Trasmissione ordini" -1 -1 78 18 PAGE "Trasmissione ordini" -1 -1 78 18
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 0 "@bDitta" PROMPT 1 0 "@bDitta"
END END
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
PROMPT 2 1 "Codice " PROMPT 2 1 "Codice "
FLAGS "GDF" FLAGS "GDF"
USE LF_NDITTE USE LF_NDITTE
INPUT CODDITTA F_CODDITTA INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOC RAGSOC OUTPUT F_RAGSOC RAGSOC
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 17 1 "Rag.Soc. " PROMPT 17 1 "Rag.Soc. "
FLAGS "D" FLAGS "D"
END END
GROUPBOX DLG_NULL 78 5 GROUPBOX DLG_NULL 78 5
BEGIN BEGIN
PROMPT 1 3 "@bParametri" PROMPT 1 3 "@bParametri"
END END
STRING F_FILENAME 52 STRING F_FILENAME 52
BEGIN BEGIN
PROMPT 2 4 "Nome file da creare " PROMPT 2 4 "Nome file da creare "
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
VALIDATE FILENAME_FUNC VALIDATE FILENAME_FUNC
FLAGS "A" FLAGS "A"
HELP "Nome del file in cui scaricare i dati" HELP "Nome del file in cui scaricare i dati"
WARNING "E' necessario specificare un nome di file" WARNING "E' necessario specificare un nome di file"
FIELD FILENAME FIELD FILENAME
END END
NUMBER F_ANNO 4 NUMBER F_ANNO 4
BEGIN BEGIN
PROMPT 2 5 "Anno ordini " PROMPT 2 5 "Anno ordini "
HELP "Anno ordini da trasferire" HELP "Anno ordini da trasferire"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FIELD ANNO FIELD ANNO
END END
NUMBER F_NUMINI 7 NUMBER F_NUMINI 7
BEGIN BEGIN
PROMPT 2 6 "Ordini dal " PROMPT 2 6 "Ordini dal "
HELP "Numero ordine iniziale" HELP "Numero ordine iniziale"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FIELD NUMINI FIELD NUMINI
END END
NUMBER F_NUMFIN 7 NUMBER F_NUMFIN 7
BEGIN BEGIN
PROMPT 30 6 "al " PROMPT 30 6 "al "
HELP "Numero ordine finale" HELP "Numero ordine finale"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
GROUPBOX DLG_NULL 78 5 GROUPBOX DLG_NULL 78 5
BEGIN BEGIN
PROMPT 1 9 "@bParametri di configurazione" PROMPT 1 9 "@bParametri di configurazione"
END END
STRING F_NUMORD 4 STRING F_NUMORD 4
BEGIN BEGIN
PROMPT 2 10 "Numerazione " PROMPT 2 10 "Numerazione "
USE %NUM USE %NUM
INPUT CODTAB F_NUMORD INPUT CODTAB F_NUMORD
OUTPUT F_DESORD S0 OUTPUT F_DESORD S0
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "UD" FLAGS "UD"
FIELD NUMORD FIELD NUMORD
END END
STRING F_DESORD 50 STRING F_DESORD 50
BEGIN BEGIN
PROMPT 20 10 "" PROMPT 20 10 ""
FLAGS "D" FLAGS "D"
END END
STRING F_STATOINI 1 STRING F_STATOINI 1
BEGIN BEGIN
PROMPT 2 11 "Stato ordini da trasmettere " PROMPT 2 11 "Stato ordini da trasmettere "
FLAGS "D" FLAGS "D"
FIELD STATOINI FIELD STATOINI
END END
STRING F_STATOFIN 1 STRING F_STATOFIN 1
BEGIN BEGIN
PROMPT 2 12 "Stato da attribuire dopo la trasmissione" PROMPT 2 12 "Stato da attribuire dopo la trasmissione"
FLAGS "D" FLAGS "D"
FIELD STATOFIN FIELD STATOFIN
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,15 @@
// campi della maschera principale // campi della maschera principale
#define F_PATH 101 #define F_PATH 101
#define F_NAMEBOL 102 #define F_NAMEBOL 102
#define F_NUMBOL 103 #define F_NUMBOL 103
#define F_TIPOBOL 104 #define F_TIPOBOL 104
#define F_NUMORD 105 #define F_NUMORD 105
#define F_LASTBOL 106 #define F_LASTBOL 106
#define F_DESBOL 107 #define F_DESBOL 107
#define F_DESTIPO 108 #define F_DESTIPO 108
#define F_DESORD 109 #define F_DESORD 109
#define F_NAMEINV 110 #define F_NAMEINV 110
#define F_IMPBOL 111 #define F_IMPBOL 111
#define F_IMPINV 112 #define F_IMPINV 112
#define F_STATOBOL 113 #define F_STATOBOL 113

View File

@ -1,151 +1,151 @@
[MAIN] [MAIN]
DECSEP = DECSEP =
FIELDSEP = FIELDSEP =
RECORDSEP = RECORDSEP =
RECORDSIZE = RECORDSIZE =
SKIPLINES = 0 SKIPLINES = 0
TYPEFIELD = 0 TYPEFIELD = 0
TYPELEN = 4 TYPELEN = 4
TYPEPOS = 0 TYPEPOS = 0
[TYPE FISSO] [TYPE FISSO]
ALIGN = ALIGN =
DATA = DATA =
DECIMAL = 0 DECIMAL = 0
FILLER = ' ' FILLER = ' '
LENGTH = LENGTH =
PICTURE = PICTURE =
[TYPE DATA] [TYPE DATA]
ALIGN = ALIGN =
DATA = D DATA = D
DECIMAL = 0 DECIMAL = 0
FILLER = FILLER =
LENGTH = 10 LENGTH = 10
PICTURE = PICTURE =
[TYPE NUMERO] [TYPE NUMERO]
ALIGN = R ALIGN = R
DATA = DATA =
DECIMAL = 0 DECIMAL = 0
FILLER = '0' FILLER = '0'
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[TYPE IMPORTO] [TYPE IMPORTO]
ALIGN = R ALIGN = R
DATA = DATA =
DECIMAL = 0 DECIMAL = 0
LENGTH = 11 LENGTH = 11
PICTURE = PICTURE =
[TYPE STRINGA] [TYPE STRINGA]
ALIGN = L ALIGN = L
DATA = S DATA = S
DECIMAL = 0 DECIMAL = 0
FILLER = ' ' FILLER = ' '
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[RECORD TB01] [RECORD TB01]
NAME(0) = TIPO NAME(0) = TIPO
TYPE(0) = FISSO TYPE(0) = FISSO
POSITION(0) = 0 POSITION(0) = 0
LENGTH(0) = 4 LENGTH(0) = 4
NAME(1) = NUMERO NAME(1) = NUMERO
TYPE(1) = NUMERO TYPE(1) = NUMERO
POSITION(1) = 4 POSITION(1) = 4
LENGTH(1) = 6 LENGTH(1) = 6
NAME(2) = DATA NAME(2) = DATA
TYPE(2) = DATA TYPE(2) = DATA
POSITION(2) = 10 POSITION(2) = 10
LENGTH(2) = 10 LENGTH(2) = 10
NAME(3) = FILLER NAME(3) = FILLER
TYPE(3) = TYPE(3) =
POSITION(3) = 20 POSITION(3) = 20
LENGTH(3) = 7 LENGTH(3) = 7
NAME(4) = ANNO NAME(4) = ANNO
TYPE(4) = NUMERO TYPE(4) = NUMERO
POSITION(4) = 27 POSITION(4) = 27
LENGTH(4) = 4 LENGTH(4) = 4
NAME(5) = NUMORD NAME(5) = NUMORD
TYPE(5) = NUMERO TYPE(5) = NUMERO
POSITION(5) = 31 POSITION(5) = 31
LENGTH(5) = 6 LENGTH(5) = 6
NAME(6) = FILLER NAME(6) = FILLER
TYPE(6) = TYPE(6) =
POSITION(6) = 37 POSITION(6) = 37
LENGTH(6) = 95 LENGTH(6) = 95
[RECORD RB01] [RECORD RB01]
NAME(0) = TIPO NAME(0) = TIPO
TYPE(0) = FISSO TYPE(0) = FISSO
POSITION(0) = 0 POSITION(0) = 0
LENGTH(0) = 4 LENGTH(0) = 4
NAME(1) = NUMERO NAME(1) = NUMERO
TYPE(1) = NUMERO TYPE(1) = NUMERO
POSITION(1) = 4 POSITION(1) = 4
LENGTH(1) = 6 LENGTH(1) = 6
NAME(2) = DATA NAME(2) = DATA
TYPE(2) = DATA TYPE(2) = DATA
POSITION(2) = 10 POSITION(2) = 10
LENGTH(2) = 10 LENGTH(2) = 10
NAME(3) = RIGABOL NAME(3) = RIGABOL
TYPE(3) = NUMERO TYPE(3) = NUMERO
POSITION(3) = 20 POSITION(3) = 20
LENGTH(3) = 3 LENGTH(3) = 3
NAME(4) = RIGAORD NAME(4) = RIGAORD
TYPE(4) = NUMERO TYPE(4) = NUMERO
POSITION(4) = 23 POSITION(4) = 23
LENGTH(4) = 6 LENGTH(4) = 6
NAME(5) = CODART NAME(5) = CODART
TYPE(5) = NUMERO TYPE(5) = NUMERO
POSITION(5) = 29 POSITION(5) = 29
LENGTH(5) = 10 LENGTH(5) = 10
NAME(6) = DESCR NAME(6) = DESCR
TYPE(6) = STRINGA TYPE(6) = STRINGA
POSITION(6) = 39 POSITION(6) = 39
LENGTH(6) = 30 LENGTH(6) = 30
NAME(7) = QTAFAT NAME(7) = QTAFAT
TYPE(7) = NUMERO TYPE(7) = NUMERO
POSITION(7) = 69 POSITION(7) = 69
LENGTH(7) = 7 LENGTH(7) = 7
NAME(8) = QTAOMG NAME(8) = QTAOMG
TYPE(8) = NUMERO TYPE(8) = NUMERO
POSITION(8) = 76 POSITION(8) = 76
LENGTH(8) = 7 LENGTH(8) = 7
NAME(9) = FILLER NAME(9) = FILLER
TYPE(9) = TYPE(9) =
POSITION(9) = 83 POSITION(9) = 83
LENGTH(9) = 16 LENGTH(9) = 16
NAME(10) = SCADENZA NAME(10) = SCADENZA
TYPE(10) = DATA TYPE(10) = DATA
POSITION(10) = 99 POSITION(10) = 99
LENGTH(10) = 10 LENGTH(10) = 10
NAME(11) = LOTTO NAME(11) = LOTTO
TYPE(11) = STRINGA TYPE(11) = STRINGA
POSITION(11) = 109 POSITION(11) = 109
LENGTH(11) = 12 LENGTH(11) = 12
NAME(12) = FILLER NAME(12) = FILLER
TYPE(12) = TYPE(12) =
POSITION(12) = 121 POSITION(12) = 121
LENGTH(12) = 11 LENGTH(12) = 11

View File

@ -1,140 +1,140 @@
#include "pg0388200a.h" #include "pg0388200a.h"
TOOLBAR "" 0 20 0 2 TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 10 2 BUTTON DLG_OK 10 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END
BUTTON DLG_QUIT 10 2 BUTTON DLG_QUIT 10 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END
ENDPAGE ENDPAGE
PAGE "Parametri Importazione" -1 -1 78 20 PAGE "Parametri Importazione" -1 -1 78 20
STRING F_PATH 255 40 STRING F_PATH 255 40
BEGIN BEGIN
PROMPT 1 1 "Percorso files da importare " PROMPT 1 1 "Percorso files da importare "
DSELECT DSELECT
FLAGS "M" FLAGS "M"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Selezionare una cartella valida!" WARNING "Selezionare una cartella valida!"
FIELD PATH FIELD PATH
END END
BOOLEAN F_IMPBOL BOOLEAN F_IMPBOL
BEGIN BEGIN
PROMPT 2 3 "@bImportazione bolle" PROMPT 2 3 "@bImportazione bolle"
MESSAGE FALSE DISABLE,F_NAMEBOL MESSAGE FALSE DISABLE,F_NAMEBOL
MESSAGE TRUE ENABLE,F_NAMEBOL MESSAGE TRUE ENABLE,F_NAMEBOL
END END
GROUPBOX DLG_NULL 78 9 GROUPBOX DLG_NULL 78 9
BEGIN BEGIN
PROMPT 1 4 "" PROMPT 1 4 ""
END END
STRING F_NAMEBOL 30 STRING F_NAMEBOL 30
BEGIN BEGIN
PROMPT 2 5 "Nome file da importare " PROMPT 2 5 "Nome file da importare "
FLAGS "B" FLAGS "B"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FIELD NAMEBOL FIELD NAMEBOL
END END
STRING F_NUMBOL 4 STRING F_NUMBOL 4
BEGIN BEGIN
PROMPT 2 6 "Numerazione " PROMPT 2 6 "Numerazione "
USE %NUM USE %NUM
INPUT CODTAB F_NUMBOL INPUT CODTAB F_NUMBOL
OUTPUT F_DESBOL S0 OUTPUT F_DESBOL S0
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "UD" FLAGS "UD"
FIELD NUMBOL FIELD NUMBOL
END END
STRING F_DESBOL 50 STRING F_DESBOL 50
BEGIN BEGIN
PROMPT 20 6 "" PROMPT 20 6 ""
FLAGS "D" FLAGS "D"
END END
STRING F_TIPOBOL 4 STRING F_TIPOBOL 4
BEGIN BEGIN
PROMPT 2 7 "Tipo " PROMPT 2 7 "Tipo "
USE %TIP USE %TIP
INPUT CODTAB F_TIPOBOL INPUT CODTAB F_TIPOBOL
OUTPUT F_DESTIPO S0 OUTPUT F_DESTIPO S0
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "UD" FLAGS "UD"
FIELD TIPOBOL FIELD TIPOBOL
END END
STRING F_DESTIPO 50 STRING F_DESTIPO 50
BEGIN BEGIN
PROMPT 20 7 "" PROMPT 20 7 ""
FLAGS "D" FLAGS "D"
END END
NUMBER F_STATOBOL 1 NUMBER F_STATOBOL 1
BEGIN BEGIN
PROMPT 2 8 "Stato bolle importate " PROMPT 2 8 "Stato bolle importate "
FLAGS "D" FLAGS "D"
FIELD STATOBOL FIELD STATOBOL
END END
NUMBER F_LASTBOL 6 NUMBER F_LASTBOL 6
BEGIN BEGIN
PROMPT 2 9 "Ultima bolla importata " PROMPT 2 9 "Ultima bolla importata "
FLAGS "D" FLAGS "D"
FIELD LASTBOL FIELD LASTBOL
END END
TEXT -1 TEXT -1
BEGIN BEGIN
PROMPT 2 10 "@bOrdini" PROMPT 2 10 "@bOrdini"
END END
STRING F_NUMORD 4 STRING F_NUMORD 4
BEGIN BEGIN
PROMPT 2 11 "Numerazione " PROMPT 2 11 "Numerazione "
USE %NUM USE %NUM
INPUT CODTAB F_NUMORD INPUT CODTAB F_NUMORD
OUTPUT F_DESORD S0 OUTPUT F_DESORD S0
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "UD" FLAGS "UD"
FIELD NUMORD FIELD NUMORD
END END
STRING F_DESORD 50 STRING F_DESORD 50
BEGIN BEGIN
PROMPT 20 11 "" PROMPT 20 11 ""
FLAGS "D" FLAGS "D"
END END
BOOLEAN F_IMPINV BOOLEAN F_IMPINV
BEGIN BEGIN
PROMPT 2 14 "@bImportazione inventario" PROMPT 2 14 "@bImportazione inventario"
MESSAGE FALSE DISABLE,F_NAMEINV MESSAGE FALSE DISABLE,F_NAMEINV
MESSAGE TRUE ENABLE,F_NAMEINV MESSAGE TRUE ENABLE,F_NAMEINV
END END
GROUPBOX DLG_NULL 78 4 GROUPBOX DLG_NULL 78 4
BEGIN BEGIN
PROMPT 1 15 "" PROMPT 1 15 ""
END END
STRING F_NAMEINV 30 STRING F_NAMEINV 30
BEGIN BEGIN
PROMPT 2 16 "Nome file da importare " PROMPT 2 16 "Nome file da importare "
FLAGS "B" FLAGS "B"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FIELD NAMEINV FIELD NAMEINV
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -1,26 +1,26 @@
[MAIN] [MAIN]
DECSEP = DECSEP =
FIELDSEP = ; FIELDSEP = ;
RECORDSEP = RECORDSEP =
SKIPLINES = 0 SKIPLINES = 0
TYPEFIELD = -1 TYPEFIELD = -1
TYPEPOS = -1 TYPEPOS = -1
[TYPE STRINGA] [TYPE STRINGA]
DATA = S DATA = S
[RECORD] [RECORD]
NAME(0) = CODART NAME(0) = CODART
TYPE(0) = STRINGA TYPE(0) = STRINGA
NAME(1) = LOTTO NAME(1) = LOTTO
TYPE(1) = STRINGA TYPE(1) = STRINGA
NAME(2) = DATASCAD NAME(2) = DATASCAD
TYPE(2) = STRINGA TYPE(2) = STRINGA
NAME(3) = GIAC NAME(3) = GIAC
TYPE(3) = STRINGA TYPE(3) = STRINGA
NAME(4) = CODMAG NAME(4) = CODMAG
TYPE(4) = STRINGA TYPE(4) = STRINGA

View File

@ -1,9 +1,9 @@
[INVIO] [INVIO]
[RICEZIONE] [RICEZIONE]
NAME = NAME =
PATH = PATH =
CODNUMBOL = CODNUMBOL =
TIPOBOL = TIPOBOL =
CODNUMORD = CODNUMORD =
LASTBOL = LASTBOL =

View File

@ -42,24 +42,16 @@ TLif_iterator::TLif_iterator(TLif_transfer* ht) : _ht(ht), _pi(NULL)
{ {
const TRecnotype tot = _ht->recordset().items(); const TRecnotype tot = _ht->recordset().items();
TString title; TString title;
title << _ht->title() << ": " << tot << ' ' << TR("righe");
if (tot > 1) title << _ht->title() << ": " << tot << ' ' << TR("righe");
_pi = new TProgind(tot, title, true, true); _pi = new TProgind(tot, title, true, true);
else _ht->log(title);
::begin_wait();
if (tot > 0)
_ht->log(title);
_rec = -1; _rec = -1;
} }
TLif_iterator::~TLif_iterator() TLif_iterator::~TLif_iterator()
{ {
if (_pi != NULL)
delete _pi; delete _pi;
else
::end_wait();
} }
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////

View File

@ -613,6 +613,7 @@ void TPE_mask::save_rate()
const TString& codval = get(F_CODVAL); const TString& codval = get(F_CODVAL);
const real cambio = get(F_CAMBIO); const real cambio = get(F_CAMBIO);
const bool eurocambio = get_bool(F_EURO);
bool zeroes = FALSE; // Esistono righe effetto da cancellare bool zeroes = FALSE; // Esistono righe effetto da cancellare

View File

@ -100,7 +100,7 @@ error_type TContabil_tsys::write_all(TDocumento& doc, TMovimentoPN_VE & moviment
const int iva_items = movimento.iva_items(); const int iva_items = movimento.iva_items();
const int cg_items = movimento.cg_items(); const int cg_items = movimento.cg_items();
TCurrency c(ZERO); TCurrency c(ZERO);
const real dec = c.decimals(); const int dec = c.decimals();
const real molt = pow(10.0, dec); const real molt = pow(10.0, dec);
if (test_swap()) if (test_swap())

View File

@ -359,13 +359,13 @@ void TStatistiche_ANIVAL_csv_recordset::aggiungi_riga(TDocument_recordset& righe
{ {
//codart //codart
new_rec(""); new_rec("");
set(0, TVariant(codart)); set(0, codart);
//descrart //descrart
const TString& descrart = cache().get(LF_ANAMAG, codart, ANAMAG_DESCR); const TString& descrart = cache().get(LF_ANAMAG, codart, ANAMAG_DESCR);
set(1, TVariant(descrart)); set(1, descrart);
set(28, TVariant(grmerc)); set(28, grmerc);
set(29, TVariant(codcf)); set(29, codcf);
//re-sorting per codart (serve perchè solo il recordset ordinato è scannerizzabile con il plutonico metodo dicotomico) //re-sorting per codart (serve perchè solo il recordset ordinato è scannerizzabile con il plutonico metodo dicotomico)
switch (tipo_stat) switch (tipo_stat)

View File

@ -6,6 +6,7 @@
#include <execp.h> #include <execp.h>
#include <progind.h> #include <progind.h>
#include <reprint.h> #include <reprint.h>
#include <sheet.h>
#include <utility.h> #include <utility.h>
#include "../or/orlib.h" #include "../or/orlib.h"
@ -265,34 +266,34 @@ void TGenera_ordini_mask::update_sheet()
TToken_string & row = sf.row(i); TToken_string & row = sf.row(i);
const TString & codart = recset.get(LF_ANAMAG, ANAMAG_CODART).as_string(); const TString & codart = recset.get(LF_ANAMAG, ANAMAG_CODART).as_string();
row.add(codart, sf.cid2index(F_CODART)); row.add(codart, sf.cid2index(SA_CODART));
art.read(codart); art.read(codart);
const real giac = art.giacenza_anno(codmag, "", anno); const real giac = art.giacenza_anno(codmag, "", anno);
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCR).as_string(), sf.cid2index(F_DESCR)); row.add(recset.get(LF_ANAMAG, ANAMAG_DESCR).as_string(), sf.cid2index(SA_DESCR));
row.add(recset.get("UMART.UM").as_string(), sf.cid2index(F_UM)); row.add(recset.get("UMART.UM").as_string(), sf.cid2index(SA_UM));
const long codforn = recset.get(LF_ANAMAG, ANAMAG_CODFORN).as_int(); const long codforn = recset.get(LF_ANAMAG, ANAMAG_CODFORN).as_int();
row.add(codforn, sf.cid2index(F_FORNITORE)); row.add(codforn, sf.cid2index(SA_FORNITORE));
row.add(recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(F_RAGSOC)); row.add(recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(SA_RAGSOC));
row.add(recset.get(LF_ANAMAG, ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(F_LEADTIME)); row.add(recset.get(LF_ANAMAG, ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(SA_LEADTIME));
row.add(recset.get(LF_ANAMAG, ANAMAG_LOTTORIOR).as_string(), sf.cid2index(F_LOTTOMIN)); row.add(recset.get(LF_ANAMAG, ANAMAG_LOTTORIOR).as_string(), sf.cid2index(SA_LOTTOMIN));
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCRAGG).as_string(), sf.cid2index(F_DESCRAGG)); row.add(recset.get(LF_ANAMAG, ANAMAG_DESCRAGG).as_string(), sf.cid2index(SA_DESCRAGG));
row.add(giac.string(), sf.cid2index(F_GIACENZA)); row.add(giac.string(), sf.cid2index(SA_GIACENZA));
row.add(recset.get(LF_ANAMAG, ANAMAG_PPCONF).as_string(), sf.cid2index(F_PPCONF)); row.add(recset.get(LF_ANAMAG, ANAMAG_PPCONF).as_string(), sf.cid2index(SA_PPCONF));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER1).as_string(), sf.cid2index(F_USER1)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER1).as_string(), sf.cid2index(SA_USER1));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER2).as_string(), sf.cid2index(F_USER2)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER2).as_string(), sf.cid2index(SA_USER2));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER3).as_string(), sf.cid2index(F_USER3)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER3).as_string(), sf.cid2index(SA_USER3));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER4).as_string(), sf.cid2index(F_USER4)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER4).as_string(), sf.cid2index(SA_USER4));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER5).as_string(), sf.cid2index(F_USER5)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER5).as_string(), sf.cid2index(SA_USER5));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER6).as_string(), sf.cid2index(F_USER6)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER6).as_string(), sf.cid2index(SA_USER6));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER7).as_string(), sf.cid2index(F_USER7)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER7).as_string(), sf.cid2index(SA_USER7));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER8).as_string(), sf.cid2index(F_USER8)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER8).as_string(), sf.cid2index(SA_USER8));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER9).as_string(), sf.cid2index(F_USER9)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER9).as_string(), sf.cid2index(SA_USER9));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER10).as_string(), sf.cid2index(F_USER10)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER10).as_string(), sf.cid2index(SA_USER10));
const real disp = art.disponibilita(codes, get(F_MAG), NULL); const real disp = art.disponibilita(codes, get(F_MAG), NULL);
row.add(disp.string(), sf.cid2index(F_DISPON)); row.add(disp.string(), sf.cid2index(SA_DISPON));
sf.check_row(i); sf.check_row(i);
if (check_expr) if (check_expr)
{ {
@ -323,7 +324,7 @@ void TGenera_ordini_mask::update_orders()
_order_changed = false; _order_changed = false;
TWait_cursor hourglass; TWait_cursor hourglass;
TSheet_field& sh = sfield(F_ORDERS); TSheet_field& sh = sfield(F_DOCUMENTS);
sh.destroy(); sh.destroy();
TString query; TString query;
@ -350,7 +351,7 @@ void TGenera_ordini_mask::update_orders()
TMask& m = sh.sheet_mask(); TMask& m = sh.sheet_mask();
TRelation& rel = *orders.cursor()->relation(); TRelation& rel = *orders.cursor()->relation();
const int status_pos = sh.cid2index(S_STATODOC); const int status_pos = sh.cid2index(SD_STATODOC);
for (bool ok = orders.move_first(); ok; ok = orders.move_next()) for (bool ok = orders.move_first(); ok; ok = orders.move_next())
{ {
TToken_string& row = sh.row(-1); TToken_string& row = sh.row(-1);
@ -387,7 +388,7 @@ void TGenera_ordini_mask::next_page(int p)
} }
if (_order_changed) if (_order_changed)
{ {
const TSheet_field& sf = sfield(F_ORDERS); const TSheet_field& sf = sfield(F_DOCUMENTS);
if (win() == sf.parent()) if (win() == sf.parent())
update_orders(); update_orders();
} }
@ -734,7 +735,7 @@ void TGenera_ordini_mask::on_idle()
{ {
//si posiziona sulla qta //si posiziona sulla qta
TSheet_field& sf_righe = sfield(F_ARTICLES); TSheet_field& sf_righe = sfield(F_ARTICLES);
const int column = sf_righe.cid2index(F_QTA); const int column = sf_righe.cid2index(SA_QTA);
sf_righe.select(_riga_da_selezionare, column, true); sf_righe.select(_riga_da_selezionare, column, true);
_riga_da_selezionare = -1; _riga_da_selezionare = -1;
sf_righe.set_focus(); sf_righe.set_focus();
@ -772,8 +773,8 @@ TGenera_ordini_mask::TGenera_ordini_mask()
for (int i = 1; i <= 10; i++) for (int i = 1; i <= 10; i++)
{ {
const int col = sh.cid2index(F_USER1 + i -1); const int col = sh.cid2index(SA_USER1 + i -1);
TEditable_field & f = sh_mask.efield(F_USER1 + i - 1); TEditable_field & f = sh_mask.efield(SA_USER1 + i - 1);
if (c.get_bool("CHK_USER", "ve", i) && c.get_bool("USERDEF", "or", i)) if (c.get_bool("CHK_USER", "ve", i) && c.get_bool("USERDEF", "or", i))
{ {
@ -876,7 +877,7 @@ void TCreazione_ordini::aggiorna_stato_doc_orig(const TRectype& rdoc)
void TCreazione_ordini::generate_carics() void TCreazione_ordini::generate_carics()
{ {
TGenera_ordini_mask& mask = *_mask; TGenera_ordini_mask& mask = *_mask;
TSheet_field& sf = mask.sfield(F_ORDERS); TSheet_field& sf = mask.sfield(F_DOCUMENTS);
long minforn = 999999L; long minforn = 999999L;
long maxforn = 0L; long maxforn = 0L;
@ -912,21 +913,21 @@ void TCreazione_ordini::generate_carics()
{ {
if (!pi.setstatus(n)) if (!pi.setstatus(n))
break; break;
if (row->get_char(sf.cid2index(S_DAEVADERE) == 'X')) if (row->get_char(sf.cid2index(SD_DAEVADERE) == 'X'))
{ {
const real qta = row->get(sf.cid2index(S_QTADAEVADERE)); const real qta = row->get(sf.cid2index(SD_QTADAEVADERE));
if (!qta.is_zero()) if (!qta.is_zero())
{ {
const TString8 codforn(row->get(sf.cid2index(S_FORNITORE))); const TString8 codforn(row->get(sf.cid2index(SD_FORNITORE)));
const long cod = atol(codforn); const long cod = atol(codforn);
TString8 key; key.format("F|%ld", cod); TString8 key; key.format("F|%ld", cod);
const TRectype& forn = cache().get(LF_CLIFO, key); const TRectype& forn = cache().get(LF_CLIFO, key);
const TDate datacons(row->get(sf.cid2index(S_DATACONS))); const TDate datacons(row->get(sf.cid2index(SD_DATACONS)));
const TString4 codval(forn.get(CLI_CODVAL)); const TString4 codval(forn.get(CLI_CODVAL));
const TRectype& forven = cache().get(LF_CFVEN, key); const TRectype& forven = cache().get(LF_CFVEN, key);
const TString4 codiva(forven.get(CFV_ASSFIS)); const TString4 codiva(forven.get(CFV_ASSFIS));
const TString commessa = row->get(sf.cid2index(S_CDC)); const TString commessa = row->get(sf.cid2index(SA_CDC));
const TString fase = row->get(sf.cid2index(S_FSC)); const TString fase = row->get(sf.cid2index(SA_FSC));
TDocumento* d = (TDocumento*)orders.objptr(codforn); TDocumento* d = (TDocumento*)orders.objptr(codforn);
if (d == NULL) if (d == NULL)
@ -1022,9 +1023,9 @@ void TCreazione_ordini::generate_carics()
rdoc.put(RDOC_CODAGG1, row->get(sf.cid2index(F_CODAGG1))); rdoc.put(RDOC_CODAGG1, row->get(sf.cid2index(F_CODAGG1)));
rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(F_CODAGG2))); rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(F_CODAGG2)));
*/ */
const TDate dataord = row->get(sf.cid2index(S_DATADOC)); const TDate dataord = row->get(sf.cid2index(SD_DATADOC));
const long ndoc = row->get_long(sf.cid2index(S_NUMDOC)); const long ndoc = row->get_long(sf.cid2index(SD_NUMDOC));
const int nriga = row->get_int(sf.cid2index(S_NUMRIGA)); const int nriga = row->get_int(sf.cid2index(SD_NUMRIGA));
TRectype& rigord = righedoc.curr(); TRectype& rigord = righedoc.curr();
rigord.put(RDOC_PROVV, 'D'); rigord.put(RDOC_PROVV, 'D');
rigord.put(RDOC_ANNO, dataord.year()); rigord.put(RDOC_ANNO, dataord.year());
@ -1141,19 +1142,19 @@ void TCreazione_ordini::generate_orders()
if (!pi.setstatus(n)) if (!pi.setstatus(n))
break; break;
const real qta = row->get(sf.cid2index(F_QTA)); const real qta = row->get(sf.cid2index(SA_QTA));
if (!qta.is_zero()) if (!qta.is_zero())
{ {
const TString8 codforn(row->get(sf.cid2index(F_FORNITORE))); const TString8 codforn(row->get(sf.cid2index(SA_FORNITORE)));
const long cod = atol(codforn); const long cod = atol(codforn);
TString8 key; key.format("F|%ld", cod); TString8 key; key.format("F|%ld", cod);
const TRectype& forn = cache().get(LF_CLIFO, key); const TRectype& forn = cache().get(LF_CLIFO, key);
const TDate datacons(row->get(sf.cid2index(F_DATACONS))); const TDate datacons(row->get(sf.cid2index(SA_DATACONS)));
const TString4 codval(forn.get(CLI_CODVAL)); const TString4 codval(forn.get(CLI_CODVAL));
const TRectype& forven = cache().get(LF_CFVEN, key); const TRectype& forven = cache().get(LF_CFVEN, key);
const TString4 codiva(forven.get(CFV_ASSFIS)); const TString4 codiva(forven.get(CFV_ASSFIS));
const TString commessa = row->get(sf.cid2index(F_CDC)); const TString commessa = row->get(sf.cid2index(SA_CDC));
const TString fase = row->get(sf.cid2index(F_FSC)); const TString fase = row->get(sf.cid2index(SA_FSC));
TDocumento* d = (TDocumento*)orders.objptr(codforn); TDocumento* d = (TDocumento*)orders.objptr(codforn);
if (d == NULL) if (d == NULL)
@ -1203,23 +1204,23 @@ void TCreazione_ordini::generate_orders()
} }
TRiga_documento& rdoc = d->new_row("01"); TRiga_documento& rdoc = d->new_row("01");
const TString codart(row->get(sf.cid2index(F_CODART))); const TString codart(row->get(sf.cid2index(SA_CODART)));
rdoc.put(RDOC_CODMAG, codmag); rdoc.put(RDOC_CODMAG, codmag);
rdoc.put(RDOC_CODMAGC, codmagc); rdoc.put(RDOC_CODMAGC, codmagc);
rdoc.put(RDOC_CODART, codart); rdoc.put(RDOC_CODART, codart);
rdoc.put(RDOC_CODARTMAG, codart); rdoc.put(RDOC_CODARTMAG, codart);
rdoc.put(RDOC_CHECKED, "X"); rdoc.put(RDOC_CHECKED, "X");
rdoc.put(RDOC_DESCR, row->get(sf.cid2index(F_DESCR))); rdoc.put(RDOC_DESCR, row->get(sf.cid2index(SA_DESCR)));
const TString descr_agg(row->get(sf.cid2index(F_DESCRAGG))); const TString descr_agg(row->get(sf.cid2index(SA_DESCRAGG)));
if (descr_agg.full()) if (descr_agg.full())
{ {
rdoc.put(RDOC_DESCLUNGA, "X"); rdoc.put(RDOC_DESCLUNGA, "X");
rdoc.put(RDOC_DESCEST, descr_agg); rdoc.put(RDOC_DESCEST, descr_agg);
} }
rdoc.put(RDOC_UMQTA, row->get(sf.cid2index(F_UM))); rdoc.put(RDOC_UMQTA, row->get(sf.cid2index(SA_UM)));
rdoc.put(RDOC_QTA, qta); rdoc.put(RDOC_QTA, qta);
rdoc.put(RDOC_DATACONS, datacons); rdoc.put(RDOC_DATACONS, datacons);
@ -1240,10 +1241,10 @@ void TCreazione_ordini::generate_orders()
for (int i = 0; i < 10 ; i++) for (int i = 0; i < 10 ; i++)
if (_userfld.row(i).full()) if (_userfld.row(i).full())
rdoc.put(_userfld.row(i), mask.get(F_USER1 + i)); rdoc.put(_userfld.row(i), mask.get(SA_USER1 + i));
rdoc.put(RDOC_CODAGG1, row->get(sf.cid2index(F_CODAGG1))); rdoc.put(RDOC_CODAGG1, row->get(sf.cid2index(SA_CODAGG1)));
rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(F_CODAGG2))); rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(SA_CODAGG2)));
} }
} }
} }

View File

@ -132,7 +132,7 @@ void TListinoPs0816::import_listino(const TMask& m)
TRecord_text curr; TRecord_text curr;
while (file.read(curr) == NOERR) while (file.read(curr) == NOERR)
{ {
pi.setstatus(file.read_file()->tellg()); pi.setstatus((long)file.read_file()->tellg());
if (pi.iscancelled()) if (pi.iscancelled())
break; break;
codart = file.get_field(curr, "CODICE ARTICOLO"); codart = file.get_field(curr, "CODICE ARTICOLO");

View File

@ -3,6 +3,7 @@
#include <defmask.h> #include <defmask.h>
#include <relation.h> #include <relation.h>
#include <reprint.h> #include <reprint.h>
#include <sheet.h>
#include "ps0872.h" #include "ps0872.h"
#include "ps0872200a.h" #include "ps0872200a.h"

View File

@ -284,7 +284,7 @@ bool TImpPaghe::transfer()
TRecord_text curr; TRecord_text curr;
while (_trasfile->read(curr) == NOERR) while (_trasfile->read(curr) == NOERR)
{ {
pi.setstatus(_trasfile->read_file()->tellg()); pi.setstatus((long)_trasfile->read_file()->tellg());
TString impstr = curr.get(F_IMPORTO); TString impstr = curr.get(F_IMPORTO);
real importo(impstr); real importo(impstr);
importo = importo/100; importo = importo/100;

View File

@ -3,6 +3,7 @@
#include <defmask.h> #include <defmask.h>
#include <relation.h> #include <relation.h>
#include <reprint.h> #include <reprint.h>
#include <sheet.h>
#include "ps0920.h" #include "ps0920.h"
#include "ps0920100a.h" #include "ps0920100a.h"

View File

@ -467,17 +467,17 @@ void TClosure_msk::load_sheet()
FOR_EACH_TOKEN(rif, tok) FOR_EACH_TOKEN(rif, tok)
row.add(tok); row.add(tok);
row.add(rec.get("S1"), s.cid2index(F_CODART)); row.add(rec.get("S1"), s.cid2index(S_CODART));
row.add(rec.get("I1"), s.cid2index(F_PALET1)); row.add(rec.get("I1"), s.cid2index(S_PALET1));
row.add(rec.get("I2"), s.cid2index(F_SPEZZ1)); row.add(rec.get("I2"), s.cid2index(S_SPEZZ1));
row.add(rec.get("I3"), s.cid2index(F_PALET2)); row.add(rec.get("I3"), s.cid2index(S_PALET2));
row.add(rec.get("I4"), s.cid2index(F_SPEZZ2)); row.add(rec.get("I4"), s.cid2index(S_SPEZZ2));
row.add(rec.get("B0"), s.cid2index(F_SALDO)); row.add(rec.get("B0"), s.cid2index(S_SALDO));
row.add(rec.get("S6"), s.cid2index(F_LOTTO)); row.add(rec.get("S6"), s.cid2index(S_LOTTO));
row.add(rec.get("D0"), s.cid2index(F_DATA)); row.add(rec.get("D0"), s.cid2index(S_DATA));
row.add(rec.get("B1"), s.cid2index(F_EVASA)); row.add(rec.get("B1"), s.cid2index(S_EVASA));
row.add(rec.get("D1"), s.cid2index(F_DATEVAS)); row.add(rec.get("D1"), s.cid2index(S_DATEVAS));
row.add(rec.get("CODTAB"), s.cid2index(F_RECORD)); row.add(rec.get("CODTAB"), s.cid2index(S_RECORD));
s.check_row(s.items()-1, 0x3); // Do outputs and checks s.check_row(s.items()-1, 0x3); // Do outputs and checks
} }
@ -498,9 +498,11 @@ bool TClosure_msk::chiudi_righe(TString_array& records, TLog_report& log)
const TDate datadoc = get(F_DATADOC); const TDate datadoc = get(F_DATADOC);
int err = NOERR; int err = NOERR;
TLocalisamfile mmag(LF_TABMOD); TLocalisamfile mmag(LF_TABMOD);
FOR_EACH_ARRAY_ROW(records, r, row) if (row->get_char(0) > ' ' && row->get_char(F_EVASA-101) > ' ') TSheet_field& s = sfield(F_SHEET);
FOR_EACH_ARRAY_ROW(records, r, row) if (row->get_char(0) > ' ' && row->get_char(s.cid2index(S_EVASA)) > ' ')
{ {
const TString16 rec = row->get(F_RECORD-101); const TString16 rec = row->get(s.cid2index(S_RECORD));
mmag.put("MOD", "PS"); mmag.put("MOD", "PS");
mmag.put("CUST", 920); mmag.put("CUST", 920);
mmag.put("COD", "MAG"); mmag.put("COD", "MAG");
@ -525,25 +527,27 @@ bool TClosure_msk::chiudi_righe(TString_array& records, TLog_report& log)
bool TClosure_msk::evadi_ordine(TEvasione_mmag& jail, TToken_string& row, TLista_documenti& doc_in, TLista_documenti& doc_out, TLog_report& log) bool TClosure_msk::evadi_ordine(TEvasione_mmag& jail, TToken_string& row, TLista_documenti& doc_in, TLista_documenti& doc_out, TLog_report& log)
{ {
TSheet_field& s = sfield(F_SHEET);
for (int scelta = 1; scelta <= 2; scelta++) for (int scelta = 1; scelta <= 2; scelta++)
{ {
const int pall = row.get_int((scelta == 1 ? F_PALET1 : F_PALET2) - 101); const int pall = row.get_int(s.cid2index(scelta == 1 ? S_PALET1 : S_PALET2));
const int spez = row.get_int((scelta == 1 ? F_SPEZZ1 : F_SPEZZ2) - 101); const int spez = row.get_int(s.cid2index(scelta == 1 ? S_SPEZZ1 : S_SPEZZ2));
const int pezzi = row.get_int((scelta == 1 ? F_PEZZ1 : F_PEZZ2 ) - 101); const int pezzi = row.get_int(s.cid2index(scelta == 1 ? S_PEZZ1 : S_PEZZ2 ));
bool sld = false; bool sld = false;
if (row.get_char(F_SALDO - 101) > ' ') if (row.get_char(s.cid2index(S_SALDO)) > ' ')
{ {
if (scelta == 1) if (scelta == 1)
sld = row.get_int(F_PEZZ2 - 101) <= 0; sld = row.get_int(s.cid2index(S_PEZZ2)) <= 0;
else else
sld = pezzi > 0; sld = pezzi > 0;
} }
if (pezzi > 0 || sld) if (pezzi > 0 || sld)
{ {
const TString codart = row.get(F_CODART - 101); const TString codart = row.get(S_CODART - 101);
const long codcf = atol(codart.left(3)); const long codcf = atol(codart.left(3));
const int idriga = row.get_int(F_IDRIGA - 101); const int idriga = row.get_int(S_IDRIGA - 101);
const int lotto = row.get_long(F_LOTTO - 101); const int lotto = row.get_long(S_LOTTO - 101);
jail.evade(scelta, codart, idriga, pezzi, sld, lotto, pall, spez); jail.evade(scelta, codart, idriga, pezzi, sld, lotto, pall, spez);
TString8 s, t; TString8 s, t;
@ -554,7 +558,7 @@ bool TClosure_msk::evadi_ordine(TEvasione_mmag& jail, TToken_string& row, TLista
const bool good = jail.elabora(doc_in, doc_out, get_date(F_DATADOC)); const bool good = jail.elabora(doc_in, doc_out, get_date(F_DATADOC));
if (good) if (good)
{ {
row.add("X", F_EVASA-101); row.add("X", S_EVASA-101);
} }
else else
{ {
@ -581,13 +585,15 @@ bool TClosure_msk::elabora(TString_array& records, TLog_report& log)
const long codcf = records.row(0).get_long(1); const long codcf = records.row(0).get_long(1);
const int indsped = records.row(0).get_int(2); const int indsped = records.row(0).get_int(2);
TSheet_field& s = sfield(F_SHEET);
TDocumento* mmag = NULL; TDocumento* mmag = NULL;
FOR_EACH_ARRAY_ROW(records, r, row)
FOR_EACH_ARRAY_ROW(records, r, row)
{ {
const char provv = 'D'; const char provv = 'D';
const int anno = row->get_int (F_ANNO -101); const int anno = row->get_int (s.cid2index(S_ANNO));
const TString4 codnum = row->get (F_CODNUM-101); const TString4 codnum = row->get (s.cid2index(S_CODNUM));
const long ndoc = row->get_long(F_NDOC -101); const long ndoc = row->get_long(s.cid2index(S_NDOC));
if (!doc_in.find(provv, anno, codnum, ndoc)) if (!doc_in.find(provv, anno, codnum, ndoc))
{ {
if (mmag != NULL && doc_in.items()) if (mmag != NULL && doc_in.items())
@ -651,7 +657,7 @@ bool TClosure_msk::elabora()
{ {
TRecnotype c = 0; TRecnotype c = 0;
TSheet_field&s = sfield(F_SHEET); TSheet_field& s = sfield(F_SHEET);
FOR_EACH_SHEET_ROW(s, r1, row1) FOR_EACH_SHEET_ROW(s, r1, row1)
c += row1->get_char(0) > ' '; c += row1->get_char(0) > ' ';
@ -666,8 +672,8 @@ bool TClosure_msk::elabora()
FOR_EACH_SHEET_ROW(s, r, row) if (row->get_char(0) > ' ') FOR_EACH_SHEET_ROW(s, r, row) if (row->get_char(0) > ' ')
{ {
const long codcf = row->get_long(s.cid2index(F_CLIFO)); const long codcf = row->get_long(s.cid2index(S_CLIFO));
const int indsped = row->get_int(s.cid2index(F_INDSPED)); const int indsped = row->get_int(s.cid2index(S_INDSPED));
if (codcf != last_cf || indsped != last_ind) if (codcf != last_cf || indsped != last_ind)
{ {
elabora(records, log); elabora(records, log);
@ -718,7 +724,7 @@ bool TClosure_msk::cancella()
// Elminazione su richiesta // Elminazione su richiesta
if (k > 0 && noyes_box(FR("Confermare l'eliminazione di %ld record?"), k)) if (k > 0 && noyes_box(FR("Confermare l'eliminazione di %ld record?"), k))
{ {
const int nRec = s.cid2index(F_RECORD); const int nRec = s.cid2index(S_RECORD);
TLocalisamfile mmag(LF_TABMOD); TLocalisamfile mmag(LF_TABMOD);
TString16 n; TString16 n;
FOR_EACH_SHEET_ROW(s, r2, row2) if (row2->starts_with("X")) FOR_EACH_SHEET_ROW(s, r2, row2) if (row2->starts_with("X"))
@ -744,15 +750,15 @@ bool TClosure_msk::salva()
{ {
int err = NOERR; int err = NOERR;
TSheet_field&s = sfield(F_SHEET); TSheet_field& s = sfield(F_SHEET);
const int nRec = s.cid2index(F_RECORD); const int nRec = s.cid2index(S_RECORD);
const int nPa1 = s.cid2index(F_PALET1); const int nPa1 = s.cid2index(S_PALET1);
const int nSp1 = s.cid2index(F_SPEZZ1); const int nSp1 = s.cid2index(S_SPEZZ1);
const int nPa2 = s.cid2index(F_PALET2); const int nPa2 = s.cid2index(S_PALET2);
const int nSp2 = s.cid2index(F_SPEZZ2); const int nSp2 = s.cid2index(S_SPEZZ2);
const int nSld = s.cid2index(F_SALDO); const int nSld = s.cid2index(S_SALDO);
const int nLot = s.cid2index(F_LOTTO); const int nLot = s.cid2index(S_LOTTO);
TLocalisamfile mmag(LF_TABMOD); TLocalisamfile mmag(LF_TABMOD);
TString16 n; TString16 n;
@ -869,18 +875,18 @@ bool TClosure_msk::on_field_event(TOperable_field& o, TField_event e , long joll
enable(DLG_ELABORA, !one_empty); enable(DLG_ELABORA, !one_empty);
} }
break; break;
case F_PALET1: case S_PALET1:
case F_SPEZZ1: case S_SPEZZ1:
case F_PALET2: case S_PALET2:
case F_SPEZZ2: case S_SPEZZ2:
if (e == fe_modify || e == fe_init) if (e == fe_modify || e == fe_init)
{ {
TMask& sm = o.mask(); TMask& sm = o.mask();
const TRectype& art = cache().get(LF_ANAMAG, sm.get(F_CODART)); const TRectype& art = cache().get(LF_ANAMAG, sm.get(S_CODART));
const int pps = art.get_int(ANAMAG_PPCOLLO); // Pezzi per spezzone const int pps = art.get_int(ANAMAG_PPCOLLO); // Pezzi per spezzone
const int ppp = art.get_int(ANAMAG_USER1) * art.get_int(ANAMAG_USER2) * pps; // Pezzi per pallet const int ppp = art.get_int(ANAMAG_USER1) * art.get_int(ANAMAG_USER2) * pps; // Pezzi per pallet
const real peso = art.get(ANAMAG_PESO); const real peso = art.get(ANAMAG_PESO);
const int id = o.dlg() < F_PALET2 ? F_PALET1 : F_PALET2; const int id = o.dlg() < S_PALET2 ? S_PALET1 : S_PALET2;
sm.set(id+2, sm.get_int(id)*ppp + sm.get_int(id+1)*pps); sm.set(id+2, sm.get_int(id)*ppp + sm.get_int(id+1)*pps);
sm.set(id+3, real(peso * sm.get_int(id+2))); sm.set(id+3, real(peso * sm.get_int(id+2)));
@ -888,8 +894,8 @@ bool TClosure_msk::on_field_event(TOperable_field& o, TField_event e , long joll
enable(DLG_SAVEREC, _dirty = true); enable(DLG_SAVEREC, _dirty = true);
} }
break; break;
case F_SALDO: case S_SALDO:
case F_LOTTO: case S_LOTTO:
if (e == fe_modify && !_dirty && is_running()) if (e == fe_modify && !_dirty && is_running())
enable(DLG_SAVEREC, _dirty = true); enable(DLG_SAVEREC, _dirty = true);
break; break;

View File

@ -139,41 +139,41 @@ ENDMASK
PAGE "Riga" -1 -1 75 12 PAGE "Riga" -1 -1 75 12
BOOLEAN F_SELECT BOOLEAN S_SELECT
BEGIN BEGIN
PROMPT 1 1 "Selezione" PROMPT 1 1 "Selezione"
END END
DATE F_DATA DATE S_DATA
BEGIN BEGIN
PROMPT 21 1 "Data " PROMPT 21 1 "Data "
FLAGS "D" FLAGS "D"
END END
NUMBER F_RECORD 10 NUMBER S_RECORD 10
BEGIN BEGIN
PROMPT 54 1 "Record " PROMPT 54 1 "Record "
FLAGS "DZ" FLAGS "DZ"
END END
NUMBER F_CLIFO 6 NUMBER S_CLIFO 6
BEGIN BEGIN
PROMPT 1 2 "Cliente " PROMPT 1 2 "Cliente "
USE LF_CLIFO USE LF_CLIFO
INPUT TIPOCF "C" INPUT TIPOCF "C"
INPUT CODCF F_CLIFO INPUT CODCF F_CLIFO
OUTPUT F_RAGSOC RAGSOC OUTPUT S_RAGSOC RAGSOC
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "DG" FLAGS "DG"
END END
STRING F_RAGSOC 50 STRING S_RAGSOC 50
BEGIN BEGIN
PROMPT 21 2 "" PROMPT 21 2 ""
FLAGS "D" FLAGS "D"
END END
NUMBER F_INDSPED 3 NUMBER S_INDSPED 3
BEGIN BEGIN
PROMPT 1 3 "Indirizzo " PROMPT 1 3 "Indirizzo "
/* /*
@ -186,43 +186,43 @@ BEGIN
FLAGS "DG" FLAGS "DG"
END END
STRING F_CODNUM 4 STRING S_CODNUM 4
BEGIN BEGIN
PROMPT 1 4 "Ordine " PROMPT 1 4 "Ordine "
FLAGS "D" FLAGS "D"
END END
NUMBER F_ANNO 4 NUMBER S_ANNO 4
BEGIN BEGIN
PROMPT 17 4 "" PROMPT 17 4 ""
FLAGS "D" FLAGS "D"
END END
NUMBER F_NDOC 7 NUMBER S_NDOC 7
BEGIN BEGIN
PROMPT 23 4 "" PROMPT 23 4 ""
FLAGS "D" FLAGS "D"
END END
NUMBER F_IDRIGA 4 NUMBER S_IDRIGA 4
BEGIN BEGIN
PROMPT 33 4 "Riga " PROMPT 33 4 "Riga "
FLAGS "D" FLAGS "D"
END END
BOOLEAN F_EVASA BOOLEAN S_EVASA
BEGIN BEGIN
PROMPT 48 4 "Evasa il" PROMPT 48 4 "Evasa il"
FLAGS "D" FLAGS "D"
END END
DATE F_DATEVAS DATE S_DATEVAS
BEGIN BEGIN
PROMPT 61 4 "" PROMPT 61 4 ""
FLAGS "D" FLAGS "D"
END END
STRING F_CODART 20 STRING S_CODART 20
BEGIN BEGIN
PROMPT 1 6 "Articolo " PROMPT 1 6 "Articolo "
USE LF_ANAMAG USE LF_ANAMAG
@ -232,7 +232,7 @@ BEGIN
FLAGS "DG" FLAGS "DG"
END END
STRING F_DESCR 50 STRING S_DESCR 50
BEGIN BEGIN
PROMPT 10 7 "" PROMPT 10 7 ""
FLAGS "D" FLAGS "D"
@ -263,37 +263,37 @@ BEGIN
PROMPT 1 9 "@bI scelta" PROMPT 1 9 "@bI scelta"
END END
NUMBER F_LOTTO 5 NUMBER S_LOTTO 5
BEGIN BEGIN
PROMPT 51 8 "Lotto " PROMPT 51 8 "Lotto "
END END
NUMERO F_PALET1 3 NUMERO S_PALET1 3
BEGIN BEGIN
PROMPT 11 9 "" PROMPT 11 9 ""
FLAGS "U" FLAGS "U"
END END
NUMERO F_SPEZZ1 3 NUMERO S_SPEZZ1 3
BEGIN BEGIN
PROMPT 21 9 "" PROMPT 21 9 ""
FLAGS "U" FLAGS "U"
END END
NUMERO F_PEZZ1 7 NUMERO S_PEZZ1 7
BEGIN BEGIN
PROMPT 31 9 "" PROMPT 31 9 ""
FLAGS "D" FLAGS "D"
END END
NUMERO F_PESO1 7 NUMERO S_PESO1 7
BEGIN BEGIN
PROMPT 41 9 "" PROMPT 41 9 ""
FLAGS "D" FLAGS "D"
END END
BOOLEAN F_SALDO BOOLEAN S_SALDO
BEGIN BEGIN
PROMPT 51 9 "Saldo" PROMPT 51 9 "Saldo"
END END
@ -303,25 +303,25 @@ BEGIN
PROMPT 1 10 "@bII scelta" PROMPT 1 10 "@bII scelta"
END END
NUMERO F_PALET2 3 NUMERO S_PALET2 3
BEGIN BEGIN
PROMPT 11 10 "" PROMPT 11 10 ""
FLAGS "U" FLAGS "U"
END END
NUMERO F_SPEZZ2 3 NUMERO S_SPEZZ2 3
BEGIN BEGIN
PROMPT 21 10 "" PROMPT 21 10 ""
FLAGS "U" FLAGS "U"
END END
NUMERO F_PEZZ2 7 NUMERO S_PEZZ2 7
BEGIN BEGIN
PROMPT 31 10 "" PROMPT 31 10 ""
FLAGS "D" FLAGS "D"
END END
NUMERO F_PESO2 7 NUMERO S_PESO2 7
BEGIN BEGIN
PROMPT 41 10 "" PROMPT 41 10 ""
FLAGS "D" FLAGS "D"

View File

@ -95,7 +95,7 @@ void TLis2fil::import(const TString& filename)
TRecord_text curr; TRecord_text curr;
while (trasfile.read(curr) == NOERR) while (trasfile.read(curr) == NOERR)
{ {
pi.setstatus(trasfile.read_file()->tellg()); pi.setstatus((long)trasfile.read_file()->tellg());
trasfile.autosave(rel, curr); trasfile.autosave(rel, curr);
trasfile.save_price(curr, _um); trasfile.save_price(curr, _um);
} }

View File

@ -1,16 +1,16 @@
#include <xvt.h> #include <xvt.h>
#include "pt0001.h" #include "pt0001.h"
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
int n = argc > 1 ? atoi(argv[1]+1) : 0; int n = argc > 1 ? atoi(argv[1]+1) : 0;
switch(n) switch(n)
{ {
case 0: case 0:
default: default:
pt0001100(argc, argv); break; // settaggio clienti non in allegato pt0001100(argc, argv); break; // settaggio clienti non in allegato
} }
exit(0); exit(0);
return 0; return 0;
} }

View File

@ -1 +1 @@
int pt0001100(int argc, char* argv[]); int pt0001100(int argc, char* argv[]);

View File

@ -1,60 +1,60 @@
#include <applicat.h> #include <applicat.h>
#include <config.h> #include <config.h>
#include <execp.h> #include <execp.h>
#include <progind.h> #include <progind.h>
#include <utility.h> #include <utility.h>
#include "clifo.h" #include "clifo.h"
//---------------------------------- //----------------------------------
// TSkeleton_application // TSkeleton_application
//---------------------------------- //----------------------------------
class TClienti0001 : public TSkeleton_application class TClienti0001 : public TSkeleton_application
{ {
virtual const char * extra_modules() const {return "ba";} virtual const char * extra_modules() const {return "ba";}
protected: protected:
public: public:
virtual bool create(); virtual bool create();
virtual bool destroy(); virtual bool destroy();
virtual void main_loop(); virtual void main_loop();
TClienti0001() {} TClienti0001() {}
}; };
TClienti0001& app() { return (TClienti0001&) main_app(); } TClienti0001& app() { return (TClienti0001&) main_app(); }
bool TClienti0001::create() bool TClienti0001::create()
{ {
return TSkeleton_application::create(); return TSkeleton_application::create();
} }
bool TClienti0001::destroy() bool TClienti0001::destroy()
{ {
return TApplication::destroy(); return TApplication::destroy();
} }
void TClienti0001::main_loop() void TClienti0001::main_loop()
{ {
TCursor clienti(new TRelation(LF_CLIENTI)); TCursor clienti(new TRelation(LF_CLIENTI));
TRectype from(clienti.curr()); TRectype from(clienti.curr());
from.put(CF_TIPOCF, 'C'); from.put(CF_TIPOCF, 'C');
clienti.setregion(from, from); clienti.setregion(from, from);
for (clienti = 0L; clienti.pos() < items; ++clienti) for (clienti = 0L; clienti.pos() < items; ++clienti)
{ {
clienti.curr().put(CF_ALLEG, '6'); clienti.curr().put(CF_ALLEG, '6');
clienti.curr().rewrite(); clienti.curr().rewrite();
} }
} }
int pt0001100 (int argc, char* argv[]) int pt0001100 (int argc, char* argv[])
{ {
TClienti0001 main_app; TClienti0001 main_app;
main_app.run(argc, argv, TR("Settaggio clienti non in allegato")); main_app.run(argc, argv, TR("Settaggio clienti non in allegato"));
return TRUE; return TRUE;
} }

View File

@ -1,58 +1,58 @@
#include <applicat.h> #include <applicat.h>
#include <config.h> #include <config.h>
#include <execp.h> #include <execp.h>
#include <progind.h> #include <progind.h>
#include <relation.h> #include <relation.h>
#include <utility.h> #include <utility.h>
#include "clifo.h" #include "clifo.h"
//---------------------------------- //----------------------------------
// TSkeleton_application // TSkeleton_application
//---------------------------------- //----------------------------------
class TClienti0001 : public TSkeleton_application class TClienti0001 : public TSkeleton_application
{ {
virtual const char * extra_modules() const {return "ba";} virtual const char * extra_modules() const {return "ba";}
protected: protected:
public: public:
virtual bool create(); virtual bool create();
virtual bool destroy(); virtual bool destroy();
virtual void main_loop(); virtual void main_loop();
TClienti0001() {} TClienti0001() {}
}; };
TClienti0001& app() { return (TClienti0001&) main_app(); } TClienti0001& app() { return (TClienti0001&) main_app(); }
bool TClienti0001::create() bool TClienti0001::create()
{ {
return TSkeleton_application::create(); return TSkeleton_application::create();
} }
bool TClienti0001::destroy() bool TClienti0001::destroy()
{ {
return TApplication::destroy(); return TApplication::destroy();
} }
void TClienti0001::main_loop() void TClienti0001::main_loop()
{ {
TCursor clienti(new TRelation(LF_CLIFO)); TCursor clienti(new TRelation(LF_CLIFO));
TRectype from(clienti.curr()); TRectype from(clienti.curr());
from.put(CLI_TIPOCF, 'C'); from.put(CLI_TIPOCF, 'C');
clienti.setregion(from, from); clienti.setregion(from, from);
const long items = clienti.items(); const long items = clienti.items();
for (clienti = 0L; clienti.pos() < items; ++clienti) for (clienti = 0L; clienti.pos() < items; ++clienti)
{ {
clienti.curr().put(CLI_ALLEG, '6'); clienti.curr().put(CLI_ALLEG, '6');
clienti.file().rewrite(); clienti.file().rewrite();
} }
} }
int pt0001100 (int argc, char* argv[]) int pt0001100 (int argc, char* argv[])
{ {
TClienti0001 main_app; TClienti0001 main_app;
main_app.run(argc, argv, TR("Settaggio clienti non in allegato")); main_app.run(argc, argv, TR("Settaggio clienti non in allegato"));
return TRUE; return TRUE;
} }

View File

@ -1,16 +1,16 @@
#include <xvt.h> #include <xvt.h>
#include "pt0002.h" #include "pt0002.h"
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
int n = argc > 1 ? atoi(argv[1]+1) : 0; int n = argc > 1 ? atoi(argv[1]+1) : 0;
switch(n) switch(n)
{ {
case 0: case 0:
default: default:
pt0002100(argc, argv); break; //importazione di clienti/fornitori da file CSV pt0002100(argc, argv); break; //importazione di clienti/fornitori da file CSV
} }
exit(0); exit(0);
return 0; return 0;
} }

View File

@ -1 +1 @@
int pt0002100(int argc, char* argv[]); int pt0002100(int argc, char* argv[]);

View File

@ -1,478 +1,478 @@
#include <applicat.h> #include <applicat.h>
#include <automask.h> #include <automask.h>
#include <progind.h> #include <progind.h>
#include <reputils.h> #include <reputils.h>
#include <utility.h> #include <utility.h>
#include <relation.h> #include <relation.h>
#include <textset.h> #include <textset.h>
#include <reprint.h> #include <reprint.h>
#include "pt0002.h" #include "pt0002.h"
#include "pt0002100a.h" #include "pt0002100a.h"
#include "../cg/cglib01.h" #include "../cg/cglib01.h"
#include "clifo.h" #include "clifo.h"
#include "comuni.h" #include "comuni.h"
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TClient_textset // TClient_textset
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
class TClifo_recset : public TCSV_recordset class TClifo_recset : public TCSV_recordset
{ {
TAssoc_array _index; TAssoc_array _index;
protected: protected:
virtual TRecnotype new_rec(const char* buf = NULL); virtual TRecnotype new_rec(const char* buf = NULL);
public: public:
const TString& rag_sociale() const; const TString& rag_sociale() const;
TClifo_recset(const char * query); TClifo_recset(const char * query);
}; };
TRecnotype TClifo_recset::new_rec(const char* buf) TRecnotype TClifo_recset::new_rec(const char* buf)
{ {
TToken_string str(256,'\t'); //nuovo record tab separator TToken_string str(256,'\t'); //nuovo record tab separator
if(buf && *buf) if(buf && *buf)
{ {
bool apici=false; bool apici=false;
for (const char* c = buf; *c ; c++) for (const char* c = buf; *c ; c++)
{ {
if (*c == '"') if (*c == '"')
{ {
apici = !apici; apici = !apici;
} }
else else
{ {
if (*c == ',') if (*c == ',')
{ {
if (!apici) if (!apici)
str << str.separator(); str << str.separator();
else else
str << *c; str << *c;
} }
else else
str << *c; str << *c;
} }
} }
} }
const TRecnotype n = TText_recordset::new_rec(str); const TRecnotype n = TText_recordset::new_rec(str);
if (n >= 0) if (n >= 0)
row(n).separator(str.separator()); row(n).separator(str.separator());
return n; return n;
} }
//funzione che crea il campo ragione sociale dai primi 2 campi del file csv //funzione che crea il campo ragione sociale dai primi 2 campi del file csv
const TString& TClifo_recset::rag_sociale() const const TString& TClifo_recset::rag_sociale() const
{ {
const TString& nome = get(1).as_string(); const TString& nome = get(1).as_string();
TString ragsoc = get(0).as_string(); TString ragsoc = get(0).as_string();
if (nome.full()) if (nome.full())
{ {
ragsoc.cut(30); ragsoc.cut(30);
ragsoc.left_just(30); ragsoc.left_just(30);
ragsoc << nome; ragsoc << nome;
} }
ragsoc.cut(50); ragsoc.cut(50);
return get_tmp_string() = ragsoc; return get_tmp_string() = ragsoc;
} }
TClifo_recset::TClifo_recset(const char * fileName) TClifo_recset::TClifo_recset(const char * fileName)
: TCSV_recordset("CSV(,)\n") : TCSV_recordset("CSV(,)\n")
{ {
load_file(fileName); load_file(fileName);
} }
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TAutomask // TAutomask
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
class TImportaClifo_mask : public TAutomask class TImportaClifo_mask : public TAutomask
{ {
protected: protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public: public:
TImportaClifo_mask(); TImportaClifo_mask();
}; };
TImportaClifo_mask::TImportaClifo_mask() :TAutomask ("pt0002100a") TImportaClifo_mask::TImportaClifo_mask() :TAutomask ("pt0002100a")
{ {
} }
bool TImportaClifo_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) bool TImportaClifo_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
{ {
switch (f.dlg()) switch (f.dlg())
{ {
//giochetto per avere la lista dei files validi nella directory di trasferimento! //giochetto per avere la lista dei files validi nella directory di trasferimento!
case F_NAME: case F_NAME:
if (e == fe_button) if (e == fe_button)
{ {
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"), TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"),
"File@32"); "File@32");
TFilename path = get(F_PATH); TFilename path = get(F_PATH);
path.add("*.csv"); //files delle testate path.add("*.csv"); //files delle testate
list_files(path, as.rows_array()); list_files(path, as.rows_array());
TFilename name; TFilename name;
FOR_EACH_ARRAY_ROW(as.rows_array(), i, row) FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
{ {
name = *row; name = *row;
*row = name.name(); *row = name.name();
} }
if (as.run() == K_ENTER) if (as.run() == K_ENTER)
{ {
f.set(as.row(as.selected())); f.set(as.row(as.selected()));
} }
} }
break; break;
default: default:
break; break;
} }
return true; return true;
} }
/////////////////////////////////////// ///////////////////////////////////////
// TSkeleton_application // TSkeleton_application
/////////////////////////////////////// ///////////////////////////////////////
class TClifoCSV : public TSkeleton_application class TClifoCSV : public TSkeleton_application
{ {
virtual bool check_autorization() const {return false;} virtual bool check_autorization() const {return false;}
virtual const char * extra_modules() const {return "ve";} virtual const char * extra_modules() const {return "ve";}
TImportaClifo_mask* _msk; TImportaClifo_mask* _msk;
TConfig* _configfile; TConfig* _configfile;
protected: protected:
long find_clifo(const char tipo, const TString& cofi, const TString& paiv, const TString& ragsoc) const; long find_clifo(const char tipo, const TString& cofi, const TString& paiv, const TString& ragsoc) const;
bool safe_put(TLocalisamfile& clienti, const char* field, const char* val) const; bool safe_put(TLocalisamfile& clienti, const char* field, const char* val) const;
long find_last_clifo(const char tipo) const; long find_last_clifo(const char tipo) const;
void pulisci_cap(TString& cap) const; void pulisci_cap(TString& cap) const;
public: public:
virtual bool create(); virtual bool create();
virtual bool destroy(); virtual bool destroy();
virtual void main_loop(); virtual void main_loop();
virtual void ini2mask(); virtual void ini2mask();
virtual void mask2ini(); virtual void mask2ini();
bool transfer(const TFilename& file); bool transfer(const TFilename& file);
TClifoCSV() {}; TClifoCSV() {};
}; };
TClifoCSV& app() { return (TClifoCSV&) main_app(); } TClifoCSV& app() { return (TClifoCSV&) main_app(); }
///////////////////////////////// /////////////////////////////////
// ricerca clifo // ricerca clifo
///////////////////////////////// /////////////////////////////////
//funzione che ricerca un cliente o un fornitore nel file clifo di campo //funzione che ricerca un cliente o un fornitore nel file clifo di campo
//restituisce 0 (zero) se non lo trova, se no cerca il più simile possibile //restituisce 0 (zero) se non lo trova, se no cerca il più simile possibile
long TClifoCSV::find_clifo(const char tipo, const TString& cofi, const TString& paiv, const TString& ragsoc) const long TClifoCSV::find_clifo(const char tipo, const TString& cofi, const TString& paiv, const TString& ragsoc) const
{ {
long found=0; long found=0;
TRelation clifo(LF_CLIFO); TRelation clifo(LF_CLIFO);
TRectype& rec = clifo.curr(); TRectype& rec = clifo.curr();
TString up_ragsoc = ragsoc; TString up_ragsoc = ragsoc;
up_ragsoc.upper(); up_ragsoc.upper();
for (int key = 4; key<=5 && !found; key++) for (int key = 4; key<=5 && !found; key++)
{ {
bool good_key = false; // Assumiamo che la chiave sia icompleta bool good_key = false; // Assumiamo che la chiave sia icompleta
rec.zero(); rec.zero();
rec.put(CLI_TIPOCF,tipo); rec.put(CLI_TIPOCF,tipo);
switch (key) switch (key)
{ {
case 4: rec.put(CLI_COFI,cofi); good_key = cofi.full(); break; case 4: rec.put(CLI_COFI,cofi); good_key = cofi.full(); break;
case 5: rec.put(CLI_PAIV,paiv); good_key = paiv.full(); break; case 5: rec.put(CLI_PAIV,paiv); good_key = paiv.full(); break;
default: break; default: break;
} }
if (good_key) // Se la chiave e' completa ... cerco bene if (good_key) // Se la chiave e' completa ... cerco bene
{ {
TCursor cur(&clifo,"", key, &rec, &rec); TCursor cur(&clifo,"", key, &rec, &rec);
const TRecnotype items = cur.items(); const TRecnotype items = cur.items();
if (items > 0) if (items > 0)
{ {
double best = -1; double best = -1;
TString80 cur_ragsoc; TString80 cur_ragsoc;
cur.freeze(); cur.freeze();
for (cur=0; cur.pos() < items; ++cur) for (cur=0; cur.pos() < items; ++cur)
{ {
cur_ragsoc = rec.get(CLI_RAGSOC); cur_ragsoc = rec.get(CLI_RAGSOC);
cur_ragsoc.upper(); cur_ragsoc.upper();
// funzione che mi dice quanto due stringhe si assomiglino // funzione che mi dice quanto due stringhe si assomiglino
const double var = xvt_str_fuzzy_compare(up_ragsoc, cur_ragsoc); const double var = xvt_str_fuzzy_compare(up_ragsoc, cur_ragsoc);
if (var > best) if (var > best)
{ {
best = var; best = var;
found = rec.get_long(CLI_CODCF); found = rec.get_long(CLI_CODCF);
} }
} }
} }
} }
} }
return found; return found;
} }
///////////////////////////////// /////////////////////////////////
// aggiornamento clifo // aggiornamento clifo
///////////////////////////////// /////////////////////////////////
//funzione che effettua la put solo se non cerco di inserire un campo vuoto //funzione che effettua la put solo se non cerco di inserire un campo vuoto
bool TClifoCSV::safe_put(TLocalisamfile& file, const char* field, const char* val) const bool TClifoCSV::safe_put(TLocalisamfile& file, const char* field, const char* val) const
{ {
const bool ok = val && *val; const bool ok = val && *val;
if (ok) if (ok)
file.put(field, val); file.put(field, val);
return ok; return ok;
} }
//funzione che trova il primo codice libero di un cliento o di un fornitore //funzione che trova il primo codice libero di un cliento o di un fornitore
long TClifoCSV::find_last_clifo(const char tipo) const long TClifoCSV::find_last_clifo(const char tipo) const
{ {
TLocalisamfile clifo(LF_CLIFO); TLocalisamfile clifo(LF_CLIFO);
long codcf = 1L ; long codcf = 1L ;
if (tipo == 'C') if (tipo == 'C')
{ {
clifo.put(CLI_TIPOCF, 'F'); clifo.put(CLI_TIPOCF, 'F');
if (clifo.read(_isgteq) == NOERR) if (clifo.read(_isgteq) == NOERR)
clifo.prev(); clifo.prev();
else else
clifo.last(); clifo.last();
if (clifo.get_char(CLI_TIPOCF) == 'C') if (clifo.get_char(CLI_TIPOCF) == 'C')
codcf += clifo.get_long(CLI_CODCF); codcf += clifo.get_long(CLI_CODCF);
} }
else else
{ {
clifo.last(); clifo.last();
if (clifo.get_char(CLI_TIPOCF) == 'F') if (clifo.get_char(CLI_TIPOCF) == 'F')
codcf+=clifo.get_long(CLI_CODCF); codcf+=clifo.get_long(CLI_CODCF);
} }
return codcf; return codcf;
} }
void TClifoCSV::pulisci_cap(TString& cap) const void TClifoCSV::pulisci_cap(TString& cap) const
{ {
TString8 str; TString8 str;
for (int i = 0; cap[i] && str.len() < 5; i++) for (int i = 0; cap[i] && str.len() < 5; i++)
if (isdigit(cap[i])) if (isdigit(cap[i]))
str << cap[i]; str << cap[i];
cap = str; cap = str;
} }
bool TClifoCSV::transfer(const TFilename& file) bool TClifoCSV::transfer(const TFilename& file)
{ {
const char tipo = _msk->get(F_TIPO)[0]; const char tipo = _msk->get(F_TIPO)[0];
const char* head = tipo == 'C' ? TR("Trasferimento clienti") : TR("Trasferimento fornitori"); const char* head = tipo == 'C' ? TR("Trasferimento clienti") : TR("Trasferimento fornitori");
TLog_report log(head); TLog_report log(head);
TClifo_recset s(file); TClifo_recset s(file);
TLocalisamfile clifo(LF_CLIFO); TLocalisamfile clifo(LF_CLIFO);
TProgind pi(s.items(),head,true,true); TProgind pi(s.items(),head,true,true);
for (bool ok=s.move_first();ok;ok=s.move_next()) for (bool ok=s.move_first();ok;ok=s.move_next())
{ {
if (!pi.addstatus(1)) if (!pi.addstatus(1))
break; break;
const TString ragsoc = s.rag_sociale(); const TString ragsoc = s.rag_sociale();
if (ragsoc.full()) if (ragsoc.full())
{ {
const TString16 cofi = s.get(2).as_string(); //get da file del cod. fisc. const TString16 cofi = s.get(2).as_string(); //get da file del cod. fisc.
const TString16 paiv = s.get(3).as_string(); //get da file della p. iva const TString16 paiv = s.get(3).as_string(); //get da file della p. iva
const long var = find_clifo(tipo,cofi,paiv,ragsoc); //controllo se il clifo esiste già const long var = find_clifo(tipo,cofi,paiv,ragsoc); //controllo se il clifo esiste già
clifo.zero(); clifo.zero();
clifo.put(CLI_TIPOCF, tipo); clifo.put(CLI_TIPOCF, tipo);
if (var) if (var)
{ {
//se esiste leggo il record corrispondente //se esiste leggo il record corrispondente
clifo.put(CLI_CODCF,var); clifo.put(CLI_CODCF,var);
clifo.read(); clifo.read();
} }
else else
{ {
//se no ne creo uno nuovo //se no ne creo uno nuovo
long codcf = find_last_clifo(tipo); long codcf = find_last_clifo(tipo);
clifo.put(CLI_CODCF, codcf); clifo.put(CLI_CODCF, codcf);
} }
safe_put(clifo, CLI_RAGSOC, ragsoc); //ragsoc safe_put(clifo, CLI_RAGSOC, ragsoc); //ragsoc
if (!var) if (!var)
safe_put(clifo, CLI_TIPOAPER, s.get(1).is_empty() ? "G" : "F"); safe_put(clifo, CLI_TIPOAPER, s.get(1).is_empty() ? "G" : "F");
safe_put(clifo, CLI_PAIV, paiv); //p.iva safe_put(clifo, CLI_PAIV, paiv); //p.iva
safe_put(clifo, CLI_COFI, cofi); //cod. fisc. safe_put(clifo, CLI_COFI, cofi); //cod. fisc.
safe_put(clifo, CLI_INDCF, s.get(4).as_string()); //indirizzo safe_put(clifo, CLI_INDCF, s.get(4).as_string()); //indirizzo
safe_put(clifo, CLI_CIVCF, s.get(5).as_string()); //num. civico safe_put(clifo, CLI_CIVCF, s.get(5).as_string()); //num. civico
if (s.get(6).as_string().empty()) //italiano if (s.get(6).as_string().empty()) //italiano
{ {
TString cap = s.get(9).as_string(); TString cap = s.get(9).as_string();
pulisci_cap(cap); pulisci_cap(cap);
TString80 comune = s.get(11).as_string(); //comune o localita' TString80 comune = s.get(11).as_string(); //comune o localita'
comune.trim(); comune.trim();
safe_put(clifo, CLI_CAPCF, cap); //cap safe_put(clifo, CLI_CAPCF, cap); //cap
const TString& codcom = cap2comune(cap, comune); const TString& codcom = cap2comune(cap, comune);
if (codcom.blank()) if (codcom.blank())
{ {
if (s.get(10).as_string().full()) if (s.get(10).as_string().full())
comune << " (" << s.get(10).as_string() << ')'; //inserisce la località se non trova un comune comune << " (" << s.get(10).as_string() << ')'; //inserisce la località se non trova un comune
safe_put(clifo, CLI_LOCCF, comune); safe_put(clifo, CLI_LOCCF, comune);
} }
else else
safe_put(clifo, CLI_COMCF, codcom); safe_put(clifo, CLI_COMCF, codcom);
} }
else else
{ {
TString comune = s.get(7).as_string(); TString comune = s.get(7).as_string();
comune << ", " << s.get(8).as_string() << '(' << s.get(6).as_string() <<')'; //inserisce la località estera comune << ", " << s.get(8).as_string() << '(' << s.get(6).as_string() <<')'; //inserisce la località estera
safe_put(clifo, CLI_LOCCF, comune); safe_put(clifo, CLI_LOCCF, comune);
if (!var) if (!var)
safe_put(clifo, CLI_ALLEG, "5"); // Cliente/Fornitore Estero safe_put(clifo, CLI_ALLEG, "5"); // Cliente/Fornitore Estero
} }
const char* tp = tipo == 'C' ? TR("Cliente") : TR("Fornitore"); const char* tp = tipo == 'C' ? TR("Cliente") : TR("Fornitore");
TString str; TString str;
str << "Il "<< tp << " codice (" << clifo.get(CLI_CODCF) <<") " << ragsoc << " "; str << "Il "<< tp << " codice (" << clifo.get(CLI_CODCF) <<") " << ragsoc << " ";
if (var) if (var)
{ {
const int err = clifo.rewrite(); const int err = clifo.rewrite();
if (err == NOERR) if (err == NOERR)
{ {
str << "è stato aggiornato"; str << "è stato aggiornato";
log.log(0, str); log.log(0, str);
} }
else else
{ {
str << "NON è stato aggiornato. Errore " << err; str << "NON è stato aggiornato. Errore " << err;
log.log(2, str); log.log(2, str);
} }
} }
else else
{ {
const int err = clifo.write(); const int err = clifo.write();
if (err == NOERR) if (err == NOERR)
{ {
str << "è stato inserito"; str << "è stato inserito";
log.log(0, str); log.log(0, str);
} }
else else
{ {
str << "NON è stato inserito. Errore " << err; str << "NON è stato inserito. Errore " << err;
log.log(2, str); log.log(2, str);
} }
} }
if (cofi.empty() && paiv.empty()) if (cofi.empty() && paiv.empty())
{ {
TString str; TString str;
str << "Il " << tp << ' ' << ragsoc << " non ha nè CODICE FISCALE nè PARTITA IVA"; str << "Il " << tp << ' ' << ragsoc << " non ha nè CODICE FISCALE nè PARTITA IVA";
log.log(1, str); log.log(1, str);
} }
} }
} }
TReport_book buc; TReport_book buc;
buc.add(log); buc.add(log);
buc.preview(); buc.preview();
return true; return true;
} }
void TClifoCSV::mask2ini() void TClifoCSV::mask2ini()
{ {
//carica i parametri del file di configurazione //carica i parametri del file di configurazione
_configfile->set_paragraph("MAIN"); _configfile->set_paragraph("MAIN");
for (int i = 0; i < _msk->fields() ; i++) for (int i = 0; i < _msk->fields() ; i++)
{ {
TMask_field& f = _msk->fld(i); TMask_field& f = _msk->fld(i);
const TFieldref* fr = f.field(); const TFieldref* fr = f.field();
if (fr != NULL) if (fr != NULL)
_configfile->set(fr->name(), f.get()); _configfile->set(fr->name(), f.get());
} }
} }
void TClifoCSV::ini2mask() void TClifoCSV::ini2mask()
{ {
//carica i parametri del file di configurazione //carica i parametri del file di configurazione
_configfile->set_paragraph("MAIN"); _configfile->set_paragraph("MAIN");
for (int i = 0; i < _msk->fields() ; i++) for (int i = 0; i < _msk->fields() ; i++)
{ {
TMask_field& f = _msk->fld(i); TMask_field& f = _msk->fld(i);
const TFieldref* fr = f.field(); const TFieldref* fr = f.field();
if (fr != NULL) if (fr != NULL)
f.set(_configfile->get(fr->name())); f.set(_configfile->get(fr->name()));
} }
} }
bool TClifoCSV::create() bool TClifoCSV::create()
{ {
_configfile = new TConfig("pt0002conf.ini"); _configfile = new TConfig("pt0002conf.ini");
_msk = new TImportaClifo_mask(); _msk = new TImportaClifo_mask();
return TSkeleton_application::create(); return TSkeleton_application::create();
} }
bool TClifoCSV::destroy() bool TClifoCSV::destroy()
{ {
delete _msk; delete _msk;
delete _configfile; delete _configfile;
return TApplication::destroy(); return TApplication::destroy();
} }
void TClifoCSV::main_loop() void TClifoCSV::main_loop()
{ {
KEY tasto; KEY tasto;
ini2mask(); ini2mask();
tasto = _msk->run(); tasto = _msk->run();
if (tasto == K_ENTER) if (tasto == K_ENTER)
{ {
mask2ini(); mask2ini();
//genero il nome del file da caricare //genero il nome del file da caricare
TFilename name = _msk->get(F_PATH); TFilename name = _msk->get(F_PATH);
name.add(_msk->get(F_NAME)); name.add(_msk->get(F_NAME));
if (transfer(name)) if (transfer(name))
{ {
message_box(TR("Importazione documenti completata")); message_box(TR("Importazione documenti completata"));
} }
} }
} }
int pt0002100 (int argc, char* argv[]) int pt0002100 (int argc, char* argv[])
{ {
TClifoCSV main_app; TClifoCSV main_app;
main_app.run(argc, argv, TR("Importazione Clienti/Fornitori")); main_app.run(argc, argv, TR("Importazione Clienti/Fornitori"));
return true; return true;
} }

View File

@ -1,7 +1,7 @@
// campi della maschera pt002100a Importazione Clienti/Fornitori da file CSV // campi della maschera pt002100a Importazione Clienti/Fornitori da file CSV
#define F_CODDITTA 101 #define F_CODDITTA 101
#define F_RAGSOC 102 #define F_RAGSOC 102
#define F_PATH 103 #define F_PATH 103
#define F_NAME 104 #define F_NAME 104
#define F_TIPO 105 #define F_TIPO 105

View File

@ -1,67 +1,67 @@
#include "pt0002100a.h" #include "pt0002100a.h"
PAGE "Importazione clienti/fornitori da file" -1 -1 78 12 PAGE "Importazione clienti/fornitori da file" -1 -1 78 12
GROUPBOX DLG_NULL 76 3 GROUPBOX DLG_NULL 76 3
BEGIN BEGIN
PROMPT 2 1 "@bDitta corrente" PROMPT 2 1 "@bDitta corrente"
END END
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
PROMPT 3 2 "Codice " PROMPT 3 2 "Codice "
FLAGS "FD" FLAGS "FD"
USE LF_NDITTE USE LF_NDITTE
INPUT CODDITTA F_CODDITTA INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOC RAGSOC OUTPUT F_RAGSOC RAGSOC
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 23 2 "" PROMPT 23 2 ""
FLAGS "D" FLAGS "D"
END END
GROUPBOX DLG_NULL 76 4 GROUPBOX DLG_NULL 76 4
BEGIN BEGIN
PROMPT 2 4 "@bSorgente" PROMPT 2 4 "@bSorgente"
END END
STRING F_PATH 256 39 STRING F_PATH 256 39
BEGIN BEGIN
PROMPT 3 5 "Cartella " PROMPT 3 5 "Cartella "
DSELECT DSELECT
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FIELD ClifoInPath FIELD ClifoInPath
END END
STRING F_NAME 18 STRING F_NAME 18
BEGIN BEGIN
PROMPT 3 6 "File " PROMPT 3 6 "File "
FIELD ClifoInFile FIELD ClifoInFile
END END
RADIOBUTTON F_TIPO 1 32 RADIOBUTTON F_TIPO 1 32
BEGIN BEGIN
PROMPT 2 8 "@bDati da Importare" PROMPT 2 8 "@bDati da Importare"
ITEM "C|Clienti" ITEM "C|Clienti"
ITEM "F|Fornitori" ITEM "F|Fornitori"
FLAGS "Z" FLAGS "Z"
END END
BUTTON DLG_ELABORA 10 2 BUTTON DLG_ELABORA 10 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
PICTURE BMP_ELABORA PICTURE BMP_ELABORA
MESSAGE EXIT,K_ENTER MESSAGE EXIT,K_ENTER
END END
BUTTON DLG_QUIT 10 2 BUTTON DLG_QUIT 10 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -1,6 +1,6 @@
[MAIN] [MAIN]
CODDITTA = CODDITTA =
RAGSOC = RAGSOC =
PATH = PATH =
NAME = NAME =
TIPO = TIPO =

View File

@ -1,16 +1,16 @@
#include <xvt.h> #include <xvt.h>
#include "pt0003.h" #include "pt0003.h"
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
int n = argc > 1 ? atoi(argv[1]+1) : 0; int n = argc > 1 ? atoi(argv[1]+1) : 0;
switch(n) switch(n)
{ {
case 0: case 0:
default: default:
pt0003100(argc, argv); break; // Incasso fatture pt0003100(argc, argv); break; // Incasso fatture
} }
exit(0); exit(0);
return 0; return 0;
} }

View File

@ -1 +1 @@
int pt0003100(int argc, char* argv[]); int pt0003100(int argc, char* argv[]);

View File

@ -1,266 +1,268 @@
#include <applicat.h> #include <applicat.h>
#include <automask.h> #include <automask.h>
#include <defmask.h> #include <defmask.h>
#include <progind.h> #include <progind.h>
#include "../ve/velib.h" #include "../ve/velib.h"
#include <doc.h> #include <doc.h>
#include <rdoc.h> #include <rdoc.h>
#include "pt0003.h" #include "pt0003.h"
#include "pt0003100a.h" #include "pt0003100a.h"
class TMaskPt00031 : public TAutomask class TMaskPt00031 : public TAutomask
{ {
TCursor * _cur; TCursor * _cur;
protected: protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
bool on_sheet_event(TOperable_field& o, TField_event e, long jolly); bool on_sheet_event(TOperable_field& o, TField_event e, long jolly);
void update_sheet(); void update_sheet();
void update_pagato(real & totale); void update_pagato(real & totale);
void update_total(); void update_total();
public: public:
TCursor & cursor() const { return *_cur;} TCursor & cursor() const { return *_cur;}
TMaskPt00031(); TMaskPt00031();
virtual ~TMaskPt00031(); virtual ~TMaskPt00031();
}; };
TMaskPt00031::TMaskPt00031() TMaskPt00031::TMaskPt00031()
: TAutomask("pt0003100a") : TAutomask("pt0003100a")
{ {
TRelation * r = new TRelation(LF_DOC); TRelation * r = new TRelation(LF_DOC);
r->file().set_curr(new TDocumento); r->file().set_curr(new TDocumento);
_cur = new TCursor(r, "", 2); _cur = new TCursor(r, "", 4);
((TButton_field&) field(DLG_SAVEREC)).set_exit_key(K_ENTER); ((TButton_field&) field(DLG_SAVEREC)).set_exit_key(K_ENTER);
} }
TMaskPt00031::~TMaskPt00031() TMaskPt00031::~TMaskPt00031()
{ {
delete _cur; delete _cur;
} }
bool TMaskPt00031::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TMaskPt00031::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
const int id = o.dlg(); const int id = o.dlg();
switch (id) switch (id)
{ {
case F_TOTPAGATO: case F_TOTPAGATO:
if (e == fe_modify ) if (e == fe_modify )
{ {
real totpagato = o.mask().get_real(F_TOTPAGATO); real totpagato = o.mask().get_real(F_TOTPAGATO);
update_pagato(totpagato); update_pagato(totpagato);
} }
break; break;
case F_NUM: case F_NUM:
if (e == fe_modify || e == fe_init) if (e == fe_modify || e == fe_init)
update_sheet(); update_sheet();
break; break;
case F_ANNO: case F_ANNO:
case F_CODCLI: case F_CODCLI:
if (e == fe_modify) if (e == fe_modify)
update_sheet(); update_sheet();
break; break;
case F_SHEET: case F_SHEET:
return on_sheet_event(o, e, jolly); return on_sheet_event(o, e, jolly);
break; break;
default: default:
if (jolly > 0) if (jolly > 0)
return on_sheet_event(o, e, jolly); return on_sheet_event(o, e, jolly);
break; break;
} }
return true; return true;
} }
void TMaskPt00031::update_total() void TMaskPt00031::update_total()
{ {
real tot; real tot;
TSheet_field& s = sfield(F_SHEET); TSheet_field& s = sfield(F_SHEET);
const int postot = s.cid2index(F_PAGATO); const int postot = s.cid2index(F_PAGATO);
FOR_EACH_SHEET_ROW_BACK(s, r, row) FOR_EACH_SHEET_ROW_BACK(s, r, row)
tot += real(row->get(postot)); tot += real(row->get(postot));
set(F_TOTPAGATO, tot); set(F_TOTPAGATO, tot);
} }
bool TMaskPt00031::on_sheet_event(TOperable_field& o, TField_event e, long jolly) bool TMaskPt00031::on_sheet_event(TOperable_field& o, TField_event e, long jolly)
{ {
TMask& m = o.mask(); TMask& m = o.mask();
switch (o.dlg()) switch (o.dlg())
{ {
case F_PAGATO: case F_PAGATO:
if (e == fe_modify) if (e == fe_modify)
update_total(); update_total();
break; break;
case F_PAGA: case F_PAGA:
if (e == fe_button) if (e == fe_button)
{ {
TMask& m = o.mask(); TMask& m = o.mask();
if (m.get_real(F_PAGATO).is_zero()) if (m.get_real(F_PAGATO).is_zero())
m.set(F_PAGATO, m.get(F_DAPAGARE)); m.set(F_PAGATO, m.get(F_DAPAGARE));
else else
m.reset(F_PAGATO); m.reset(F_PAGATO);
TSheet_field & s = *m.get_sheet(); TSheet_field & s = *m.get_sheet();
const int r = s.selected(); const int r = s.selected();
s.row(r).add(m.get(F_PAGATO), 0); s.row(r).add(m.get(F_PAGATO), 0);
s.force_update(r); s.force_update(r);
update_total(); update_total();
} }
break; break;
case F_SHEET: case F_SHEET:
switch(e) switch(e)
{ {
case se_query_add: case se_query_add:
return false; return false;
case se_notify_modify: case se_notify_modify:
update_total(); update_total();
break; break;
default: default:
break; break;
} }
default: default:
break; break;
} }
return true; return true;
} }
void TMaskPt00031::update_sheet() void TMaskPt00031::update_sheet()
{ {
TSheet_field& sheet = sfield(F_SHEET); TSheet_field& sheet = sfield(F_SHEET);
const int olditems = sheet.items(); const int olditems = sheet.items();
sheet.destroy(); sheet.destroy();
reset(F_TOTPAGATO); reset(F_TOTPAGATO);
TRectype from(_cur->relation()->curr()); TRectype from(_cur->relation()->curr());
const long codcli = get_long(F_CODCLI); const long codcli = get_long(F_CODCLI);
from.put(DOC_TIPOCF, "C"); from.put(DOC_TIPOCF, "C");
from.put(DOC_CODCF, codcli); from.put(DOC_CODCF, codcli);
from.put(DOC_ANNO, get(F_ANNO)); from.put(DOC_ANNO, get(F_ANNO));
from.put(DOC_PROVV, "D"); from.put(DOC_PROVV, "D");
from.put(DOC_CODNUM, get(F_NUM));
TRectype to(from);
TString filter; TRectype to(from);
filter << "(CODNUM==\"" << get(F_NUM) << "\")&&(G1:TOTDOC>IMPPAGATO)"; TString filter;
_cur->setfilter(filter); filter << "(" << DOC_ACCSALDO "!=\"X\")";
_cur->setregion(from, to); _cur->setfilter(filter);
TDocumento & doc = (TDocumento &)_cur->curr(); _cur->setregion(from, to);
TDocumento & doc = (TDocumento &)_cur->curr();
const long items = _cur->items();
const long items = _cur->items();
TProgind pi(items, "Caricamento fatture", true, true);
TProgind pi(items, "Caricamento fatture", true, true);
for ((*_cur) = 0L; _cur->pos() < items; ++(*_cur))
{ for ((*_cur) = 0L; _cur->pos() < items; ++(*_cur))
if (!pi.addstatus(1)) {
break; if (!pi.addstatus(1))
if (sheet.items() > 900) // Anche troppe righe break;
break; if (sheet.items() > 900) // Anche troppe righe
break;
TToken_string & row = sheet.row(-1);
const real totdoc = doc.totale_doc(); TToken_string & row = sheet.row(-1);
const real acconto = doc.get_real(DOC_IMPPAGATO); const real totdoc = doc.totale_doc();
const real da_pagare = totdoc - acconto; const real acconto = doc.get_real(DOC_IMPPAGATO);
const real da_pagare = totdoc - acconto;
row.cut(0);
row.add(""); row.cut(0);
row.add(da_pagare.string()); row.add("");
row.add(totdoc.string()); row.add(da_pagare.string());
row.add(doc.get(DOC_NDOC)); row.add(totdoc.string());
row.add(doc.get(DOC_DATADOC)); row.add(doc.get(DOC_NDOC));
} row.add(doc.get(DOC_DATADOC));
}
if (olditems == 0 && items == 0)
return; if (olditems == 0 && items == 0)
sheet.force_update(); return;
} sheet.force_update();
}
void TMaskPt00031::update_pagato(real & totpagato)
{ void TMaskPt00031::update_pagato(real & totpagato)
TSheet_field& sheet = sfield(F_SHEET); {
const long items = sheet.items(); TSheet_field& sheet = sfield(F_SHEET);
int pospagato = sheet.cid2index(F_PAGATO); const long items = sheet.items();
int posda_pagare = sheet.cid2index(F_DAPAGARE); int pospagato = sheet.cid2index(F_PAGATO);
int posda_pagare = sheet.cid2index(F_DAPAGARE);
for (int r = 0; r < items; r++)
{ for (int r = 0; r < items; r++)
TToken_string & row = sheet.row(r); {
const real da_pagare(row.get(posda_pagare)); TToken_string & row = sheet.row(r);
real pagato; const real da_pagare(row.get(posda_pagare));
real pagato;
if (totpagato > ZERO)
{ if (totpagato > ZERO)
if (totpagato > da_pagare) {
pagato = da_pagare; if (totpagato > da_pagare)
else pagato = da_pagare;
pagato = totpagato; else
totpagato -= pagato; pagato = totpagato;
} totpagato -= pagato;
const TString s(pagato.string()); }
const TString s(pagato.string());
row.add(s, pospagato);
} row.add(s, pospagato);
sheet.force_update(); }
} sheet.force_update();
}
class TIncassoFatture0003 : public TSkeleton_application
{ class TIncassoFatture0003 : public TSkeleton_application
virtual bool check_autorization() const { return false; } {
virtual const char * extra_modules() const {return "ve";} virtual bool check_autorization() const { return false; }
virtual const char * extra_modules() const {return "ve";}
protected:
virtual void main_loop(); protected:
virtual void main_loop();
public:
virtual ~TIncassoFatture0003() {} public:
}; virtual ~TIncassoFatture0003() {}
};
void TIncassoFatture0003::main_loop()
{ void TIncassoFatture0003::main_loop()
open_files(LF_DOC, LF_RIGHEDOC, 0); {
TMaskPt00031 m; open_files(LF_DOC, LF_RIGHEDOC, 0);
TMaskPt00031 m;
while (m.run() == K_ENTER)
{ while (m.run() == K_ENTER)
TSheet_field & s = m.sfield(F_SHEET); {
TCursor & c = m.cursor(); TSheet_field & s = m.sfield(F_SHEET);
TCursor & c = m.cursor();
const long items = c.items();
int pospagato = s.cid2index(F_PAGATO); const long items = c.items();
int pospagato = s.cid2index(F_PAGATO);
for (long pos = 0L; pos < items; pos++)
{ for (long pos = 0L; pos < items; pos++)
TToken_string row = s.row(pos); {
real val(row.get(pospagato)); TToken_string row = s.row(pos);
real val(row.get(pospagato));
if (val != ZERO)
{ if (val != ZERO)
c = pos; {
TDocumento doc((TDocumento &)c.curr()); c = pos;
real pagato = doc.get(DOC_IMPPAGATO); TDocumento doc((TDocumento &)c.curr());
real val(row.get(pospagato)); real pagato = doc.get(DOC_IMPPAGATO);
real val(row.get(pospagato));
pagato += val;
doc.put(DOC_IMPPAGATO, pagato); pagato += val;
doc.rewrite(); doc.put(DOC_IMPPAGATO, pagato);
} doc.put(DOC_ACCSALDO, (bool)(pagato >= doc.totale_doc()));
} doc.rewrite();
} }
} }
}
TIncassoFatture0003 & app() { return (TIncassoFatture0003&) main_app();} }
int pt0003100(int argc, char* argv[]) TIncassoFatture0003 & app() { return (TIncassoFatture0003&) main_app();}
{
TIncassoFatture0003 a; int pt0003100(int argc, char* argv[])
a.run(argc, argv, "Incasso fatture"); {
return 0; TIncassoFatture0003 a;
} a.run(argc, argv, "Incasso fatture");
return 0;
}

View File

@ -1,14 +1,14 @@
#define F_ANNO 201 #define F_ANNO 201
#define F_NUM 202 #define F_NUM 202
#define F_CODCLI 203 #define F_CODCLI 203
#define F_RAGSOC 204 #define F_RAGSOC 204
#define F_TOTPAGATO 205 #define F_TOTPAGATO 205
#define F_SHEET 206 #define F_SHEET 206
#define F_PAGA 100 #define F_PAGA 100
#define F_PAGATO 101 #define F_PAGATO 101
#define F_DAPAGARE 102 #define F_DAPAGARE 102
#define F_TOTDOC 103 #define F_TOTDOC 103
#define F_NDOC 104 #define F_NDOC 104
#define F_DATADOC 105 #define F_DATADOC 105

View File

@ -1,157 +1,158 @@
#include "pt0003100a.h" #include "pt0003100a.h"
TOOLBAR "Toolbar" 0 0 0 2 TOOLBAR "Toolbar" 0 0 0 2
BUTTON DLG_SAVEREC 2 2 BUTTON DLG_SAVEREC 2 2
BEGIN BEGIN
PROMPT 1 1 "~Registra" PROMPT 1 1 "~Registra"
PICTURE TOOL_SAVEREC PICTURE TOOL_SAVEREC
END MESSAGE EXIT,K_ENTER
END
#include <helpbar.h>
#include <helpbar.h>
ENDPAGE
ENDPAGE
PAGE "Incasso fatture" 0 2 0 0
PAGE "Incasso fatture" 0 2 0 0
GROUPBOX -1 78 5
BEGIN GROUPBOX -1 78 5
PROMPT 2 1 "Selezione Documenti" BEGIN
FLAGS "" PROMPT 2 1 "Selezione Documenti"
END FLAGS ""
END
NUMBER F_ANNO 4
BEGIN NUMBER F_ANNO 4
PROMPT 4 2 "Anno " BEGIN
FIELD S_ANNO PROMPT 4 2 "Anno "
KEY 1 FIELD S_ANNO
USE ESC KEY 1
CHECKTYPE NORMAL USE ESC
INPUT CODTAB F_ANNO CHECKTYPE NORMAL
DISPLAY "Codice" CODTAB INPUT CODTAB F_ANNO
DISPLAY "Data inizio esercizio" D0 DISPLAY "Codice" CODTAB
DISPLAY "Data fine esercizio" D1 DISPLAY "Data inizio esercizio" D0
OUTPUT F_ANNO CODTAB DISPLAY "Data fine esercizio" D1
FLAGS "RZ" OUTPUT F_ANNO CODTAB
END FLAGS "RZ"
END
STRING F_NUM 4
BEGIN STRING F_NUM 4
PROMPT 21 2 "Num. " BEGIN
FIELDS S_NUM PROMPT 21 2 "Num. "
HELP "Codice numerazione" FIELDS S_NUM
USE %NUM HELP "Codice numerazione"
INPUT CODTAB F_NUM USE %NUM
DISPLAY "Codice" CODTAB INPUT CODTAB F_NUM
DISPLAY "Descrizione@50" S0 DISPLAY "Codice" CODTAB
OUTPUT F_NUM CODTAB DISPLAY "Descrizione@50" S0
CHECKTYPE REQUIRED OUTPUT F_NUM CODTAB
FLAG "UPA" CHECKTYPE REQUIRED
WARNING "Numerazione assente" FLAG "UPA"
END WARNING "Numerazione assente"
END
STRING F_CODCLI 6
BEGIN STRING F_CODCLI 6
PROMPT 4 3 "Cliente " BEGIN
WARNING "Cliente assente" PROMPT 4 3 "Cliente "
FLAGS "R" WARNING "Cliente assente"
FIELD CODCLI FLAGS "R"
USE LF_CLIFO FIELD CODCLI
INPUT TIPOCF "C" USE LF_CLIFO
INPUT CODCF F_CODCLI INPUT TIPOCF "C"
DISPLAY "Codice" CODCF INPUT CODCF F_CODCLI
DISPLAY "Ragione Sociale@50" RAGSOC DISPLAY "Codice" CODCF
OUTPUT F_CODCLI CODCF DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT F_RAGSOC RAGSOC OUTPUT F_CODCLI CODCF
CHECKTYPE REQUIRED OUTPUT F_RAGSOC RAGSOC
END CHECKTYPE REQUIRED
END
STRING F_RAGSOC 50
BEGIN STRING F_RAGSOC 50
WARNING "Cliente assente" BEGIN
PROMPT 26 3 "" WARNING "Cliente assente"
USE LF_CLIFO KEY 2 PROMPT 26 3 ""
INPUT TIPOCF "C" USE LF_CLIFO KEY 2
INPUT RAGSOC F_RAGSOC INPUT TIPOCF "C"
DISPLAY "Ragione Sociale@50" RAGSOC INPUT RAGSOC F_RAGSOC
DISPLAY "Partita IVA@12" PAIV DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF DISPLAY "Partita IVA@12" PAIV
OUTPUT F_CODCLI CODCF DISPLAY "Codice" CODCF
OUTPUT F_RAGSOC RAGSOC OUTPUT F_CODCLI CODCF
CHECKTYPE REQUIRED OUTPUT F_RAGSOC RAGSOC
END CHECKTYPE REQUIRED
END
CURRENCY F_TOTPAGATO
BEGIN CURRENCY F_TOTPAGATO
PROMPT 4 4 "Pagato " BEGIN
END PROMPT 4 4 "Pagato "
END
SPREADSHEET F_SHEET
BEGIN SPREADSHEET F_SHEET
PROMPT 0 6 "" BEGIN
ITEM "Pagato@18" PROMPT 0 6 ""
ITEM "Da pagare@18" ITEM "Pagato@18"
ITEM "Totale doc.@18" ITEM "Da pagare@18"
ITEM "N.ro Fattura" ITEM "Totale doc.@18"
ITEM "Data@10" ITEM "N.ro Fattura"
END ITEM "Data@10"
END
STRING DLG_PROFILE 70 50
BEGIN STRING DLG_PROFILE 70 50
PROMPT 8 -1 "Profilo " BEGIN
PSELECT PROMPT 8 -1 "Profilo "
END PSELECT
END
ENDPAGE
ENDPAGE
ENDMASK
ENDMASK
PAGE "Rate" -1 -1 60 14
PAGE "Rate" -1 -1 60 14
CURRENCY F_PAGATO
BEGIN CURRENCY F_PAGATO
PROMPT 4 1 "Pagato " BEGIN
END PROMPT 4 1 "Pagato "
END
CURRENCY F_DAPAGARE
BEGIN CURRENCY F_DAPAGARE
PROMPT 4 3 "Da Pagare " BEGIN
FLAGS "D" PROMPT 4 3 "Da Pagare "
END FLAGS "D"
END
CURRENCY F_TOTDOC
BEGIN CURRENCY F_TOTDOC
PROMPT 4 5 "Totale fattura " BEGIN
FLAGS "D" PROMPT 4 5 "Totale fattura "
END FLAGS "D"
END
NUMBER F_NDOC 6
BEGIN NUMBER F_NDOC 6
PROMPT 4 7 "Numero fattura " BEGIN
FLAGS "D" PROMPT 4 7 "Numero fattura "
END FLAGS "D"
END
DATE F_DATADOC
BEGIN DATE F_DATADOC
PROMPT 4 9 "Data fattura " BEGIN
FLAGS "D" PROMPT 4 9 "Data fattura "
END FLAGS "D"
END
BUTTON DLG_OK 10 2
BEGIN BUTTON DLG_OK 10 2
PROMPT -13 -1 "" BEGIN
END PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN BUTTON DLG_CANCEL 10 2
PROMPT -23 -1 "" BEGIN
END PROMPT -23 -1 ""
END
BUTTON F_PAGA 10 2
BEGIN BUTTON F_PAGA 10 2
PROMPT -33 -1 "~Paga" BEGIN
END PROMPT -33 -1 "~Paga"
END
ENDPAGE
ENDPAGE
ENDMASK
ENDMASK

View File

@ -1,16 +1,16 @@
#include <xvt.h> #include <xvt.h>
#include "pt0195.h" #include "pt0195.h"
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
int n = argc > 1 ? atoi(argv[1]+1) : 0; int n = argc > 1 ? atoi(argv[1]+1) : 0;
switch(n) switch(n)
{ {
case 0: case 0:
pt0195100(argc, argv); break; pt0195100(argc, argv); break;
default: default:
pt0195100(argc, argv); break; //Importazione documenti Volvo pt0195100(argc, argv); break; //Importazione documenti Volvo
} }
return 0; return 0;
} }

View File

@ -1 +1 @@
int pt0195100(int argc, char* argv[]); int pt0195100(int argc, char* argv[]);

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
// campi della maschera principale // campi della maschera principale
#define F_PATH 101 #define F_PATH 101
#define F_NAME 102 #define F_NAME 102

View File

@ -1,38 +1,38 @@
#include "pt0195100a.h" #include "pt0195100a.h"
TOOLBAR "" 0 20 0 2 TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 10 2 BUTTON DLG_OK 10 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END
BUTTON DLG_QUIT 10 2 BUTTON DLG_QUIT 10 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END
ENDPAGE ENDPAGE
PAGE "Importazione documenti Volvo" -1 -1 56 14 PAGE "Importazione documenti Volvo" -1 -1 56 14
STRING F_PATH 255 40 STRING F_PATH 255 40
BEGIN BEGIN
PROMPT 1 1 "Percorso file da importare " PROMPT 1 1 "Percorso file da importare "
DSELECT DSELECT
FLAGS "M" FLAGS "M"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Selezionare una cartella valida!" WARNING "Selezionare una cartella valida!"
FIELD PATH FIELD PATH
END END
STRING F_NAME 30 STRING F_NAME 30
BEGIN BEGIN
PROMPT 1 3 "Nome file da importare " PROMPT 1 3 "Nome file da importare "
FLAGS "B" FLAGS "B"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FIELD NAME FIELD NAME
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -1,98 +1,98 @@
[MAIN] [MAIN]
DECSEP = DECSEP =
FIELDSEP = FIELDSEP =
RECORDSEP = RECORDSEP =
RECORDSIZE = 0 RECORDSIZE = 0
SKIPLINES = 0 SKIPLINES = 0
TYPEFIELD = -1 TYPEFIELD = -1
TYPELEN = -1 TYPELEN = -1
TYPEPOS = -1 TYPEPOS = -1
[TYPE FISSO] [TYPE FISSO]
ALIGN = ALIGN =
DATA = DATA =
DECIMAL = 0 DECIMAL = 0
FILLER = ' ' FILLER = ' '
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[TYPE DATA] [TYPE DATA]
ALIGN = ALIGN =
DATA = D DATA = D
DECIMAL = 0 DECIMAL = 0
FILLER = FILLER =
LENGTH = 10 LENGTH = 10
PICTURE = PICTURE =
[TYPE NUMERO] [TYPE NUMERO]
ALIGN = R ALIGN = R
DATA = DATA =
DECIMAL = 0 DECIMAL = 0
FILLER = '0' FILLER = '0'
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[TYPE IMPORTO] [TYPE IMPORTO]
ALIGN = R ALIGN = R
DATA = DATA =
DECIMAL = 2 DECIMAL = 2
LENGTH = 11 LENGTH = 11
PICTURE = PICTURE =
[TYPE STRINGA] [TYPE STRINGA]
ALIGN = L ALIGN = L
DATA = S DATA = S
DECIMAL = 0 DECIMAL = 0
FILLER = ' ' FILLER = ' '
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[RECORD] [RECORD]
NAME(0) = DORIDOC NAME(0) = DORIDOC
TYPE(0) = STRINGA TYPE(0) = STRINGA
POSITION(0) = 0 POSITION(0) = 0
LENGTH(0) = 1 LENGTH(0) = 1
NAME(1) = DTIPDOC NAME(1) = DTIPDOC
TYPE(1) = STRINGA TYPE(1) = STRINGA
POSITION(1) = 1 POSITION(1) = 1
LENGTH(1) = 1 LENGTH(1) = 1
NAME(2) = DNUMDOC NAME(2) = DNUMDOC
TYPE(2) = STRINGA TYPE(2) = STRINGA
POSITION(2) = 2 POSITION(2) = 2
LENGTH(2) = 7 LENGTH(2) = 7
NAME(3) = DDATDOC NAME(3) = DDATDOC
TYPE(3) = DATA TYPE(3) = DATA
POSITION(3) = 9 POSITION(3) = 9
NAME(4) = DCLICOD NAME(4) = DCLICOD
TYPE(4) = STRINGA TYPE(4) = STRINGA
POSITION(4) = 19 POSITION(4) = 19
LENGTH(4) = 10 LENGTH(4) = 10
NAME(5) = DTIPORIGA NAME(5) = DTIPORIGA
TYPE(5) = STRINGA TYPE(5) = STRINGA
POSITION(5) = 29 POSITION(5) = 29
LENGTH(5) = 10 LENGTH(5) = 10
NAME(6) = DCONTOD NAME(6) = DCONTOD
TYPE(6) = STRINGA TYPE(6) = STRINGA
POSITION(6) = 39 POSITION(6) = 39
LENGTH(6) = 40 LENGTH(6) = 40
NAME(7) = DVALORED NAME(7) = DVALORED
TYPE(7) = IMPORTO TYPE(7) = IMPORTO
POSITION(7) = 79 POSITION(7) = 79
LENGTH(7) = 11 LENGTH(7) = 11
NAME(8) = DCONTOC NAME(8) = DCONTOC
TYPE(8) = STRINGA TYPE(8) = STRINGA
POSITION(8) = 90 POSITION(8) = 90
LENGTH(8) = 40 LENGTH(8) = 40
NAME(9) = DVALOREC NAME(9) = DVALOREC
TYPE(9) = IMPORTO TYPE(9) = IMPORTO
POSITION(9) = 130 POSITION(9) = 130
LENGTH(9) = 11 LENGTH(9) = 11

View File

@ -1,209 +1,209 @@
[MAIN] [MAIN]
DECSEP = DECSEP =
FIELDSEP = FIELDSEP =
RECORDSEP = RECORDSEP =
RECORDSIZE = 0 RECORDSIZE = 0
SKIPLINES = 0 SKIPLINES = 0
TYPEFIELD = -1 TYPEFIELD = -1
TYPELEN = -1 TYPELEN = -1
TYPEPOS = -1 TYPEPOS = -1
[TYPE FISSO] [TYPE FISSO]
ALIGN = ALIGN =
DATA = DATA =
DECIMAL = 0 DECIMAL = 0
FILLER = ' ' FILLER = ' '
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[TYPE DATA] [TYPE DATA]
ALIGN = ALIGN =
DATA = D DATA = D
DECIMAL = 0 DECIMAL = 0
FILLER = FILLER =
LENGTH = 10 LENGTH = 10
PICTURE = PICTURE =
[TYPE NUMERO] [TYPE NUMERO]
ALIGN = R ALIGN = R
DATA = DATA =
DECIMAL = 0 DECIMAL = 0
FILLER = '0' FILLER = '0'
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[TYPE IMPORTO] [TYPE IMPORTO]
ALIGN = R ALIGN = R
DATA = DATA =
DECIMAL = 0 DECIMAL = 0
LENGTH = 11 LENGTH = 11
PICTURE = PICTURE =
[TYPE STRINGA] [TYPE STRINGA]
ALIGN = L ALIGN = L
DATA = S DATA = S
DECIMAL = 0 DECIMAL = 0
FILLER = ' ' FILLER = ' '
LENGTH = 0 LENGTH = 0
PICTURE = PICTURE =
[RECORD] [RECORD]
NAME(0) = TORIDOC NAME(0) = TORIDOC
TYPE(0) = STRINGA TYPE(0) = STRINGA
POSITION(0) = 0 POSITION(0) = 0
LENGTH(0) = 1 LENGTH(0) = 1
NAME(1) = TTIPDOC NAME(1) = TTIPDOC
TYPE(1) = STRINGA TYPE(1) = STRINGA
POSITION(1) = 1 POSITION(1) = 1
LENGTH(1) = 1 LENGTH(1) = 1
NAME(2) = TNUMDOC NAME(2) = TNUMDOC
TYPE(2) = STRINGA TYPE(2) = STRINGA
POSITION(2) = 2 POSITION(2) = 2
LENGTH(2) = 7 LENGTH(2) = 7
NAME(3) = TDATDOC NAME(3) = TDATDOC
TYPE(3) = DATA TYPE(3) = DATA
POSITION(3) = 9 POSITION(3) = 9
NAME(4) = TCLIMAS NAME(4) = TCLIMAS
TYPE(4) = STRINGA TYPE(4) = STRINGA
POSITION(4) = 19 POSITION(4) = 19
LENGTH(4) = 10 LENGTH(4) = 10
NAME(5) = TCLICOD NAME(5) = TCLICOD
TYPE(5) = STRINGA TYPE(5) = STRINGA
POSITION(5) = 29 POSITION(5) = 29
LENGTH(5) = 10 LENGTH(5) = 10
NAME(6) = TCODPAG NAME(6) = TCODPAG
TYPE(6) = STRINGA TYPE(6) = STRINGA
POSITION(6) = 39 POSITION(6) = 39
LENGTH(6) = 3 LENGTH(6) = 3
NAME(7) = TCODVAL NAME(7) = TCODVAL
TYPE(7) = STRINGA TYPE(7) = STRINGA
POSITION(7) = 42 POSITION(7) = 42
LENGTH(7) = 3 LENGTH(7) = 3
NAME(8) = TTOTIMP NAME(8) = TTOTIMP
TYPE(8) = IMPORTO TYPE(8) = IMPORTO
POSITION(8) = 45 POSITION(8) = 45
NAME(9) = TTOTNIM NAME(9) = TTOTNIM
TYPE(9) = IMPORTO TYPE(9) = IMPORTO
POSITION(9) = 56 POSITION(9) = 56
NAME(10) = TCODIVA NAME(10) = TCODIVA
TYPE(10) = STRINGA TYPE(10) = STRINGA
POSITION(10) = 67 POSITION(10) = 67
LENGTH(10) = 2 LENGTH(10) = 2
NAME(11) = TIVA NAME(11) = TIVA
TYPE(11) = IMPORTO TYPE(11) = IMPORTO
POSITION(11) = 70 POSITION(11) = 70
NAME(12) = TTOTDOC NAME(12) = TTOTDOC
TYPE(12) = IMPORTO TYPE(12) = IMPORTO
POSITION(12) = 81 POSITION(12) = 81
NAME(13) = TRAGSOC NAME(13) = TRAGSOC
TYPE(13) = STRINGA TYPE(13) = STRINGA
POSITION(13) = 92 POSITION(13) = 92
LENGTH(13) = 45 LENGTH(13) = 45
NAME(14) = TINDIR NAME(14) = TINDIR
TYPE(14) = STRINGA TYPE(14) = STRINGA
POSITION(14) = 137 POSITION(14) = 137
LENGTH(14) = 30 LENGTH(14) = 30
NAME(15) = TLOCAL NAME(15) = TLOCAL
TYPE(15) = STRINGA TYPE(15) = STRINGA
POSITION(15) = 167 POSITION(15) = 167
LENGTH(15) = 30 LENGTH(15) = 30
NAME(16) = TPROVI NAME(16) = TPROVI
TYPE(16) = STRINGA TYPE(16) = STRINGA
POSITION(16) = 197 POSITION(16) = 197
LENGTH(16) = 30 LENGTH(16) = 30
NAME(17) = TCAP NAME(17) = TCAP
TYPE(17) = STRINGA TYPE(17) = STRINGA
POSITION(17) = 227 POSITION(17) = 227
LENGTH(17) = 10 LENGTH(17) = 10
NAME(18) = TCITTA2 NAME(18) = TCITTA2
TYPE(18) = STRINGA TYPE(18) = STRINGA
POSITION(18) = 237 POSITION(18) = 237
LENGTH(18) = 30 LENGTH(18) = 30
NAME(19) = TNAZIO // CODICE FISCALE NAME(19) = TNAZIO // CODICE FISCALE
TYPE(19) = STRINGA TYPE(19) = STRINGA
POSITION(19) = 267 POSITION(19) = 267
LENGTH(19) = 30 LENGTH(19) = 30
NAME(20) = TPIVA NAME(20) = TPIVA
TYPE(20) = STRINGA TYPE(20) = STRINGA
POSITION(20) = 297 POSITION(20) = 297
LENGTH(20) = 20 LENGTH(20) = 20
NAME(21) = TCODBAN1 NAME(21) = TCODBAN1
TYPE(21) = STRINGA TYPE(21) = STRINGA
POSITION(21) = 317 POSITION(21) = 317
LENGTH(21) = 15 LENGTH(21) = 15
NAME(22) = TCODBAN2 NAME(22) = TCODBAN2
TYPE(22) = STRINGA TYPE(22) = STRINGA
POSITION(22) = 332 POSITION(22) = 332
LENGTH(22) = 15 LENGTH(22) = 15
NAME(23) = TCODCC NAME(23) = TCODCC
TYPE(23) = STRINGA TYPE(23) = STRINGA
POSITION(23) = 347 POSITION(23) = 347
LENGTH(23) = 15 LENGTH(23) = 15
NAME(24) = TDESBAN NAME(24) = TDESBAN
TYPE(24) = STRINGA TYPE(24) = STRINGA
POSITION(24) = 362 POSITION(24) = 362
LENGTH(24) = 30 LENGTH(24) = 30
NAME(25) = TTELE1 NAME(25) = TTELE1
TYPE(25) = STRINGA TYPE(25) = STRINGA
POSITION(25) = 392 POSITION(25) = 392
LENGTH(25) = 15 LENGTH(25) = 15
NAME(26) = TTELE2 NAME(26) = TTELE2
TYPE(26) = STRINGA TYPE(26) = STRINGA
POSITION(26) = 407 POSITION(26) = 407
LENGTH(26) = 15 LENGTH(26) = 15
NAME(27) = TTELE3 NAME(27) = TTELE3
TYPE(27) = STRINGA TYPE(27) = STRINGA
POSITION(27) = 422 POSITION(27) = 422
LENGTH(27) = 15 LENGTH(27) = 15
NAME(28) = TTELE4 NAME(28) = TTELE4
TYPE(28) = STRINGA TYPE(28) = STRINGA
POSITION(28) = 437 POSITION(28) = 437
LENGTH(28) = 15 LENGTH(28) = 15
NAME(29) = TTELE5 NAME(29) = TTELE5
TYPE(29) = STRINGA TYPE(29) = STRINGA
POSITION(29) = 452 POSITION(29) = 452
LENGTH(29) = 15 LENGTH(29) = 15
NAME(30) = TTELE6 NAME(30) = TTELE6
TYPE(30) = STRINGA TYPE(30) = STRINGA
POSITION(30) = 467 POSITION(30) = 467
LENGTH(30) = 15 LENGTH(30) = 15
NAME(31) = TEMAIL NAME(31) = TEMAIL
TYPE(31) = STRINGA TYPE(31) = STRINGA
POSITION(31) = 482 POSITION(31) = 482
LENGTH(31) = 50 LENGTH(31) = 50
NAME(32) = TWEB NAME(32) = TWEB
TYPE(32) = STRINGA TYPE(32) = STRINGA
POSITION(32) = 532 POSITION(32) = 532
LENGTH(32) = 60 LENGTH(32) = 60

View File

@ -1,20 +1,20 @@
[MAIN] [MAIN]
PATH = PATH =
NAME = NAME =
XCL_ART= XCL_ART=
[CODNUM] [CODNUM]
OF = OF =
RF = RF =
LF = LF =
OC = OC =
RC = RC =
LC = LC =
[HEAD] [HEAD]
RAGGREFF = RAGGREFF =
ADDBOLLI = ADDBOLLI =
PERCSPINC = PERCSPINC =
[ROW] [ROW]
UMQTA = UMQTA =