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:
parent
05f6b4d1eb
commit
d327a5c85f
@ -293,7 +293,7 @@ bool TOmasa::transfer()
|
||||
TRecord_text curr;
|
||||
while (_trasfile->read(curr) == NOERR)
|
||||
{
|
||||
pi.setstatus(_trasfile->read_file()->tellg());
|
||||
pi.setstatus((long)_trasfile->read_file()->tellg());
|
||||
TString impstr = curr.get(F_VALOREVOCE);
|
||||
impstr.insert(".",11);
|
||||
negativo(impstr);
|
||||
|
@ -101,9 +101,11 @@ void TPartite2Euroasis::main_loop()
|
||||
const TDate oggi(TODAY);
|
||||
TString16 ora;
|
||||
time_t tempo;
|
||||
time(&tempo);
|
||||
const struct tm* d = localtime(&tempo);
|
||||
ora.format("%02d:%02d:%02d", d->tm_hour, d->tm_min, d->tm_sec);
|
||||
struct tm d;
|
||||
|
||||
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 int giorni = m.get_int(F_GIORNI);
|
||||
const TDate dataesposto = dataanalisi - (long) giorni;
|
||||
|
@ -1,15 +1,15 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pg0067.h"
|
||||
|
||||
int main( int argc, char** argv )
|
||||
{
|
||||
const int r = (argc > 1) ? argv[1][1]-'0' : -1;
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case 0: pg0067100(argc, argv); break; // distributore di F24 bancari
|
||||
default: break;
|
||||
}
|
||||
return 0;
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pg0067.h"
|
||||
|
||||
int main( int argc, char** argv )
|
||||
{
|
||||
const int r = (argc > 1) ? argv[1][1]-'0' : -1;
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case 0: pg0067100(argc, argv); break; // distributore di F24 bancari
|
||||
default: break;
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1 +1 @@
|
||||
int pg0067100(int, char**);
|
||||
int pg0067100(int, char**);
|
||||
|
596
ps/pg0067100.cpp
596
ps/pg0067100.cpp
@ -1,291 +1,305 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <golem.h>
|
||||
#include <modaut.h>
|
||||
#include <progind.h>
|
||||
#include <reputils.h>
|
||||
#include <textset.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "pg0067100a.h"
|
||||
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////
|
||||
// MASCHERA
|
||||
///////////////////////////////////////////////
|
||||
class TDistribuzione_f24_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
TRecordset* create_recordset() const;
|
||||
void print_stats(const bool stampa) const;
|
||||
void export_stats() const;
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TDistribuzione_f24_mask();
|
||||
};
|
||||
|
||||
TDistribuzione_f24_mask::TDistribuzione_f24_mask() : TAutomask("pg0067100a")
|
||||
{
|
||||
}
|
||||
|
||||
bool TDistribuzione_f24_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch(o.dlg())
|
||||
{
|
||||
case DLG_PRINT: //stampa
|
||||
if (e == fe_button)
|
||||
{
|
||||
print_stats(true);
|
||||
}
|
||||
break;
|
||||
case DLG_PREVIEW: //stampa
|
||||
if (e == fe_button)
|
||||
{
|
||||
print_stats(false);
|
||||
}
|
||||
break;
|
||||
case DLG_EXPORT: //esporta in excel
|
||||
if (e == fe_button)
|
||||
{
|
||||
export_stats();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//metodo comune di generazione del recordset
|
||||
//recordset che deve ordinare, per piva e anno, i files pdf che trova nelle sottocartelle della..
|
||||
//..cartella radice di destinazione
|
||||
TRecordset* TDistribuzione_f24_mask::create_recordset() const
|
||||
{
|
||||
TAS400_recordset* recset = new TAS400_recordset("AS400(58)");
|
||||
recset->create_field("CODICE_FISCALE", 0, 16, _alfafld, true);
|
||||
for (int j = 2006; j < 2016; j++)
|
||||
{
|
||||
TString8 anno;
|
||||
anno << "F24_" << j;
|
||||
recset->create_field(anno, -1, 4, _intfld, true);
|
||||
}
|
||||
recset->create_field("CR", -1, 2, _alfafld, true, TVariant("\n\r"));
|
||||
|
||||
//cartella radice di destinazione
|
||||
const TString& dest_dir = get(F_PATH_DST);
|
||||
TFilename dest_pivas = dest_dir; dest_pivas.add("*");
|
||||
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))
|
||||
{
|
||||
TFilename dest_years = xvt_slist_get(pivas, e, NULL);
|
||||
const TString& piva = dest_years.name_only();
|
||||
if (piva.len() < 11 || piva.len() > 16)
|
||||
continue;
|
||||
|
||||
recset->new_rec("");
|
||||
recset->set("CODICE_FISCALE", piva);
|
||||
|
||||
dest_years.add("20??");
|
||||
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))
|
||||
{
|
||||
TFilename dest_year = xvt_slist_get(years, e, NULL);
|
||||
const TString4 year = dest_year.name_only();
|
||||
dest_year.add("*.pdf");
|
||||
SLIST files = xvt_fsys_list_files("", dest_year, false);
|
||||
const long count = xvt_slist_count(files);
|
||||
xvt_slist_destroy(files);
|
||||
|
||||
//aggiunge la riga al recordset
|
||||
TString8 fld; fld << "F24_" << year;
|
||||
recset->set(fld, count);
|
||||
}
|
||||
xvt_slist_destroy(years);
|
||||
}
|
||||
xvt_slist_destroy(pivas);
|
||||
|
||||
//ordina il recordset per cofi/piva
|
||||
recset->sort();
|
||||
return recset;
|
||||
}
|
||||
|
||||
void TDistribuzione_f24_mask::print_stats(const bool stampa) const
|
||||
{
|
||||
TRecordset* recset = create_recordset();
|
||||
TReport rep;
|
||||
rep.load("pg0067100");
|
||||
rep.set_recordset(recset);
|
||||
if (stampa)
|
||||
rep.print();
|
||||
else
|
||||
rep.preview();
|
||||
}
|
||||
|
||||
void TDistribuzione_f24_mask::export_stats() const
|
||||
{
|
||||
TRecordset* recset = create_recordset();
|
||||
TFilename temp;
|
||||
temp.temp("", "xls");
|
||||
if (recset->save_as(temp, fmt_html))
|
||||
goto_url(temp);
|
||||
delete recset;
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// APPLICAZIONE
|
||||
/////////////////////////////////////////////
|
||||
//Ridistributore di F24 per il computer
|
||||
class TDistribuzione_f24 : public TSkeleton_application
|
||||
{
|
||||
TDistribuzione_f24_mask* _mask;
|
||||
|
||||
virtual bool check_autorization() const {return false;}
|
||||
|
||||
protected:
|
||||
virtual const char * extra_modules() const {return "rs";}
|
||||
virtual bool create();
|
||||
|
||||
void elabora();
|
||||
|
||||
public:
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TDistribuzione_f24::elabora()
|
||||
{
|
||||
TFilename src_files = _mask->get(F_PATH_SRC);
|
||||
src_files.add("*.pdf");
|
||||
TString_array src_files_list;
|
||||
//dalla cartella origine prende tutti i files .pdf e crea una simpatica lista
|
||||
const int n_files_pdf = list_files(src_files, src_files_list);
|
||||
|
||||
const TString& dst_root_path = _mask->get(F_PATH_DST);
|
||||
const bool delete_src_files = _mask->get_bool(F_ERASE_TRANSFERRED);
|
||||
|
||||
//scansione dello string_array per il trasferimento (con tanto di progind e log)
|
||||
TProgind pi(n_files_pdf, TR("Trasferimento F24 in corso..."), true, true);
|
||||
TLog_report log("ERRORI DI TRASFERIMENTO");
|
||||
|
||||
TToken_string curr_tok_file(_MAX_PATH, '_');
|
||||
|
||||
for (int i = 0; i < n_files_pdf; i++)
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
//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();
|
||||
|
||||
//anno e relativo controllo
|
||||
const int anno = curr_tok_file.get_int(0);
|
||||
if (anno < 2000)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("File %s ha ANNO errato", (const char*)curr_tok_file);
|
||||
log.log(1, msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
//piva e relativo controllo
|
||||
const TString16 piva = curr_tok_file.get(1);
|
||||
if (piva.len() < 11)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("File %s ha P.IVA o C.F. errato", (const char*)curr_tok_file);
|
||||
log.log(1, msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
//controllo della cartella di destinazione
|
||||
TFilename dst_file = dst_root_path;
|
||||
dst_file.add(piva);
|
||||
TString4 str_anno;
|
||||
str_anno << anno;
|
||||
dst_file.add(str_anno);
|
||||
const bool crea_dir = make_dir(dst_file);
|
||||
//non riesce a crearla! deve dare errore di grave livello!
|
||||
if (!crea_dir)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("Impossibile creare la cartella %s !", dst_file);
|
||||
log.log(2, msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
//se invece crea/trova la cartella -> copia il file
|
||||
dst_file.add(curr_fname.name());
|
||||
|
||||
const bool copia_riuscita = fcopy(curr_fname, dst_file);
|
||||
if (!copia_riuscita)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("Impossibile copiare il file %s !", curr_fname.name());
|
||||
log.log(2, msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
//controllo dell'avvenuta copia e della correttezza del file destinazione
|
||||
//controllo sulle dimensioni
|
||||
const long src_size = fsize(curr_fname);
|
||||
const long dst_size = fsize(dst_file);
|
||||
|
||||
if (src_size != dst_size)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("Copia del file %s non completata !", curr_fname.name());
|
||||
log.log(2, msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
//eliminazione del file sorgente
|
||||
if (delete_src_files)
|
||||
{
|
||||
const bool src_file_removed = remove_file(curr_fname);
|
||||
if (!src_file_removed)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("Impossibile eliminare il file origine %s ", curr_fname.name());
|
||||
log.log(1, msg);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
} //for(int i...
|
||||
|
||||
message_box(TR("Elaborazione completata"));
|
||||
|
||||
const int items = log.recordset()->items();
|
||||
if (items > 0)
|
||||
log.preview();
|
||||
}
|
||||
|
||||
bool TDistribuzione_f24::create()
|
||||
{
|
||||
//se non ha il modulo RS non può proseguire
|
||||
if (!has_module(RSAUT))
|
||||
return error_box(TR("Modulo non autorizzato"));
|
||||
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <golem.h>
|
||||
#include <modaut.h>
|
||||
#include <progind.h>
|
||||
#include <reputils.h>
|
||||
#include <textset.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "pg0067100a.h"
|
||||
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////
|
||||
// MASCHERA
|
||||
///////////////////////////////////////////////
|
||||
class TDistribuzione_f24_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
TRecordset* create_recordset() const;
|
||||
void print_stats(const bool stampa) const;
|
||||
void export_stats() const;
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TDistribuzione_f24_mask();
|
||||
};
|
||||
|
||||
TDistribuzione_f24_mask::TDistribuzione_f24_mask() : TAutomask("pg0067100a")
|
||||
{
|
||||
}
|
||||
|
||||
bool TDistribuzione_f24_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch(o.dlg())
|
||||
{
|
||||
case DLG_PRINT: //stampa
|
||||
if (e == fe_button)
|
||||
{
|
||||
print_stats(true);
|
||||
}
|
||||
break;
|
||||
case DLG_PREVIEW: //stampa
|
||||
if (e == fe_button)
|
||||
{
|
||||
print_stats(false);
|
||||
}
|
||||
break;
|
||||
case DLG_EXPORT: //esporta in excel
|
||||
if (e == fe_button)
|
||||
{
|
||||
export_stats();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//metodo comune di generazione del recordset
|
||||
//recordset che deve ordinare, per piva e anno, i files pdf che trova nelle sottocartelle della..
|
||||
//..cartella radice di destinazione
|
||||
TRecordset* TDistribuzione_f24_mask::create_recordset() const
|
||||
{
|
||||
TAS400_recordset* recset = new TAS400_recordset("AS400(58)");
|
||||
recset->create_field("CODICE_FISCALE", 0, 16, _alfafld, true);
|
||||
for (int j = 2006; j < 2016; j++)
|
||||
{
|
||||
TString8 anno;
|
||||
anno << "F24_" << j;
|
||||
recset->create_field(anno, -1, 4, _intfld, true);
|
||||
}
|
||||
recset->create_field("CR", -1, 2, _alfafld, true, TVariant("\n\r"));
|
||||
|
||||
//cartella radice di destinazione
|
||||
const TString& dest_dir = get(F_PATH_DST);
|
||||
TFilename dest_pivas = dest_dir; dest_pivas.add("*");
|
||||
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))
|
||||
{
|
||||
TFilename dest_years = xvt_slist_get(pivas, e, NULL);
|
||||
const TString& piva = dest_years.name_only();
|
||||
if (piva.len() < 11 || piva.len() > 16)
|
||||
continue;
|
||||
|
||||
recset->new_rec("");
|
||||
recset->set("CODICE_FISCALE", piva);
|
||||
|
||||
dest_years.add("20??");
|
||||
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))
|
||||
{
|
||||
TFilename dest_year = xvt_slist_get(years, e, NULL);
|
||||
const TString4 year = dest_year.name_only();
|
||||
dest_year.add("*.pdf");
|
||||
SLIST files = xvt_fsys_list_files("", dest_year, false);
|
||||
const long count = xvt_slist_count(files);
|
||||
xvt_slist_destroy(files);
|
||||
|
||||
//aggiunge la riga al recordset
|
||||
TString8 fld; fld << "F24_" << year;
|
||||
recset->set(fld, count);
|
||||
}
|
||||
xvt_slist_destroy(years);
|
||||
}
|
||||
xvt_slist_destroy(pivas);
|
||||
|
||||
//ordina il recordset per cofi/piva
|
||||
recset->sort();
|
||||
return recset;
|
||||
}
|
||||
|
||||
void TDistribuzione_f24_mask::print_stats(const bool stampa) const
|
||||
{
|
||||
TRecordset* recset = create_recordset();
|
||||
TReport rep;
|
||||
rep.load("pg0067100");
|
||||
rep.set_recordset(recset);
|
||||
if (stampa)
|
||||
rep.print();
|
||||
else
|
||||
rep.preview();
|
||||
}
|
||||
|
||||
void TDistribuzione_f24_mask::export_stats() const
|
||||
{
|
||||
TRecordset* recset = create_recordset();
|
||||
TFilename temp;
|
||||
temp.temp("", "xls");
|
||||
if (recset->save_as(temp, fmt_html))
|
||||
goto_url(temp);
|
||||
delete recset;
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// APPLICAZIONE
|
||||
/////////////////////////////////////////////
|
||||
//Ridistributore di F24 per il computer
|
||||
class TDistribuzione_f24 : public TSkeleton_application
|
||||
{
|
||||
TDistribuzione_f24_mask* _mask;
|
||||
|
||||
virtual bool check_autorization() const {return false;}
|
||||
|
||||
protected:
|
||||
virtual const char * extra_modules() const {return "rs";}
|
||||
virtual bool create();
|
||||
|
||||
void elabora();
|
||||
|
||||
public:
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TDistribuzione_f24::elabora()
|
||||
{
|
||||
TFilename src_files = _mask->get(F_PATH_SRC);
|
||||
TString regexp = _mask->get(F_ELIMINA_EXPR);
|
||||
|
||||
if (regexp.starts_with("$"))
|
||||
regexp = regexp.mid(1);
|
||||
else
|
||||
if (!regexp.starts_with("*"))
|
||||
regexp.insert("*");
|
||||
if (regexp.ends_with("^"))
|
||||
regexp.rtrim(1);
|
||||
else
|
||||
regexp << "*";
|
||||
src_files.add("*.pdf");
|
||||
TString_array src_files_list;
|
||||
//dalla cartella origine prende tutti i files .pdf e crea una simpatica lista
|
||||
const int n_files_pdf = list_files(src_files, src_files_list);
|
||||
|
||||
const TString& dst_root_path = _mask->get(F_PATH_DST);
|
||||
const bool delete_src_files = _mask->get_bool(F_ERASE_TRANSFERRED);
|
||||
|
||||
//scansione dello string_array per il trasferimento (con tanto di progind e log)
|
||||
TProgind pi(n_files_pdf, TR("Trasferimento F24 in corso..."), true, true);
|
||||
TLog_report log("ERRORI DI TRASFERIMENTO");
|
||||
|
||||
TToken_string curr_tok_file(_MAX_PATH, '_');
|
||||
|
||||
for (int i = 0; i < n_files_pdf; i++)
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
//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();
|
||||
|
||||
//anno e relativo controllo
|
||||
const int anno = curr_tok_file.get_int(0);
|
||||
if (anno < 2000)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("File %s ha ANNO errato", (const char*)curr_tok_file);
|
||||
log.log(1, msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
//piva e relativo controllo
|
||||
const TString16 piva = curr_tok_file.get(1);
|
||||
if (piva.len() < 11)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("File %s ha P.IVA o C.F. errato", (const char*)curr_tok_file);
|
||||
log.log(1, msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
//controllo della cartella di destinazione
|
||||
TFilename dst_file = dst_root_path;
|
||||
dst_file.add(piva);
|
||||
TString4 str_anno;
|
||||
str_anno << anno;
|
||||
dst_file.add(str_anno);
|
||||
const bool crea_dir = make_dir(dst_file);
|
||||
//non riesce a crearla! deve dare errore di grave livello!
|
||||
if (!crea_dir)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("Impossibile creare la cartella %s !", dst_file);
|
||||
log.log(2, msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
//se invece crea/trova la cartella -> copia il file
|
||||
if (!curr_fname.match(regexp))
|
||||
{
|
||||
dst_file.add(curr_fname.name());
|
||||
|
||||
const bool copia_riuscita = fcopy(curr_fname, dst_file);
|
||||
if (!copia_riuscita)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("Impossibile copiare il file %s !", curr_fname.name());
|
||||
log.log(2, msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
//controllo dell'avvenuta copia e della correttezza del file destinazione
|
||||
//controllo sulle dimensioni
|
||||
const long src_size = fsize(curr_fname);
|
||||
const long dst_size = fsize(dst_file);
|
||||
|
||||
if (src_size != dst_size)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("Copia del file %s non completata !", curr_fname.name());
|
||||
log.log(2, msg);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//eliminazione del file sorgente
|
||||
if (delete_src_files)
|
||||
{
|
||||
const bool src_file_removed = remove_file(curr_fname);
|
||||
if (!src_file_removed)
|
||||
{
|
||||
TString msg;
|
||||
msg.format("Impossibile eliminare il file origine %s ", curr_fname.name());
|
||||
log.log(1, msg);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
} //for(int i...
|
||||
|
||||
message_box(TR("Elaborazione completata"));
|
||||
|
||||
const int items = log.recordset()->items();
|
||||
if (items > 0)
|
||||
log.preview();
|
||||
}
|
||||
|
||||
bool TDistribuzione_f24::create()
|
||||
{
|
||||
//se non ha il modulo RS non può proseguire
|
||||
if (!has_module(RSAUT))
|
||||
return error_box(TR("Modulo non autorizzato"));
|
||||
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
246
ps/pg0067100.rep
246
ps/pg0067100.rep
@ -1,124 +1,124 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="pg0067100" lpi="6">
|
||||
<description>Statistiche archiviazione F24</description>
|
||||
<font face="Arial" size="8" />
|
||||
<section type="Head">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<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.F;p.IVA" />
|
||||
<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="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="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="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="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="70.5" y="0.75" type="Testo" align="center" width="12" pattern="1" text="CFF;pIVA" />
|
||||
<field border="1" x="1" y="1.5" type="Linea" width="80" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Head" level="1" height="4.5">
|
||||
<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">
|
||||
<font face="Arial" bold="1" size="14" />
|
||||
</field>
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1">
|
||||
<field x="2" type="Stringa" width="16" pattern="1">
|
||||
<source>CODICE_FISCALE</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE RESET,B1.200</prescript>
|
||||
</field>
|
||||
<field x="19.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2006</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.101</prescript>
|
||||
</field>
|
||||
<field x="24.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2007</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.102</prescript>
|
||||
</field>
|
||||
<field x="29.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2008</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.103</prescript>
|
||||
</field>
|
||||
<field x="34.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2009</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.104</prescript>
|
||||
</field>
|
||||
<field x="39.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2010</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.105</prescript>
|
||||
</field>
|
||||
<field x="44.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2011</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.106</prescript>
|
||||
</field>
|
||||
<field x="49.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2012</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.107</prescript>
|
||||
</field>
|
||||
<field x="54.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2013</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.108</prescript>
|
||||
</field>
|
||||
<field x="59.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2014</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.109</prescript>
|
||||
</field>
|
||||
<field x="64.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2015</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.110</prescript>
|
||||
</field>
|
||||
<field x="74" type="Numero" align="right" width="5" id="200" pattern="1">
|
||||
<prescript description="B1.200 PRESCRIPT">MESSAGE ADD,F1.200</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot">
|
||||
<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="76" y="0.75" type="Numero" align="right" width="3" pattern="1">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="1">
|
||||
<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 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 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="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="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="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="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="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="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="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="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="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="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="73" y="0.75" type="Numero" align="right" width="6" id="200" pattern="1" />
|
||||
</section>
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="pg0067100" lpi="6">
|
||||
<description>Statistiche archiviazione F24</description>
|
||||
<font face="Arial" size="8" />
|
||||
<section type="Head">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<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.F;p.IVA" />
|
||||
<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="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="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="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="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="70.5" y="0.75" type="Testo" align="center" width="12" pattern="1" text="CFF;pIVA" />
|
||||
<field border="1" x="1" y="1.5" type="Linea" width="80" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Head" level="1" height="4.5">
|
||||
<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">
|
||||
<font face="Arial" bold="1" size="14" />
|
||||
</field>
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1">
|
||||
<field x="2" type="Stringa" width="16" pattern="1">
|
||||
<source>CODICE_FISCALE</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE RESET,B1.200</prescript>
|
||||
</field>
|
||||
<field x="19.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2006</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.101</prescript>
|
||||
</field>
|
||||
<field x="24.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2007</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.102</prescript>
|
||||
</field>
|
||||
<field x="29.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2008</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.103</prescript>
|
||||
</field>
|
||||
<field x="34.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2009</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.104</prescript>
|
||||
</field>
|
||||
<field x="39.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2010</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.105</prescript>
|
||||
</field>
|
||||
<field x="44.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2011</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.106</prescript>
|
||||
</field>
|
||||
<field x="49.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2012</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.107</prescript>
|
||||
</field>
|
||||
<field x="54.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2013</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.108</prescript>
|
||||
</field>
|
||||
<field x="59.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2014</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.109</prescript>
|
||||
</field>
|
||||
<field x="64.5" type="Numero" align="right" width="4" pattern="1" hide_zero="1">
|
||||
<source>F24_2015</source>
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,B1.200
|
||||
MESSAGE ADD,F1.110</prescript>
|
||||
</field>
|
||||
<field x="74" type="Numero" align="right" width="5" id="200" pattern="1">
|
||||
<prescript description="B1.200 PRESCRIPT">MESSAGE ADD,F1.200</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot">
|
||||
<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="76" y="0.75" type="Numero" align="right" width="3" pattern="1">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="1">
|
||||
<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 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 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="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="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="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="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="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="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="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="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="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="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="73" y="0.75" type="Numero" align="right" width="6" id="200" pattern="1" />
|
||||
</section>
|
||||
</report>
|
@ -1,3 +1,4 @@
|
||||
#define F_PATH_SRC 101
|
||||
#define F_PATH_DST 102
|
||||
#define F_ERASE_TRANSFERRED 103
|
||||
#define F_PATH_SRC 101
|
||||
#define F_PATH_DST 102
|
||||
#define F_ERASE_TRANSFERRED 103
|
||||
#define F_ELIMINA_EXPR 104
|
@ -1,71 +1,76 @@
|
||||
#include "pg0067100a.h"
|
||||
|
||||
PAGE "Trasferimento F24" -1 -1 78 6
|
||||
|
||||
STRING F_PATH_SRC 255 45
|
||||
BEGIN
|
||||
PROMPT 1 1 "Cartella di origine "
|
||||
DSELECT
|
||||
FLAGS "M"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Selezionare una cartella origine valida!"
|
||||
END
|
||||
|
||||
STRING F_PATH_DST 255 45
|
||||
BEGIN
|
||||
PROMPT 1 2 "Cartella di destinazione "
|
||||
DSELECT
|
||||
FLAGS "M"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Selezionare una cartella destinazione valida!"
|
||||
END
|
||||
|
||||
BOOLEAN F_ERASE_TRANSFERRED
|
||||
BEGIN
|
||||
PROMPT 1 4 "Eliminare i file di origine dopo la copia"
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 1 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "~Archivia"
|
||||
PICTURE TOOL_ELABORA
|
||||
END
|
||||
|
||||
BUTTON DLG_NULL 2 2
|
||||
BEGIN
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_PRINT 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "~Stampa"
|
||||
PICTURE TOOL_PRINTELENCO
|
||||
END
|
||||
|
||||
BUTTON DLG_PREVIEW 2 2
|
||||
BEGIN
|
||||
PROMPT 4 1 "A~nteprima"
|
||||
PICTURE TOOL_PREVIEW
|
||||
END
|
||||
|
||||
BUTTON DLG_EXPORT 2 2
|
||||
BEGIN
|
||||
PROMPT 5 1 "~Excel"
|
||||
PICTURE TOOL_EXCEL
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
#include "pg0067100a.h"
|
||||
|
||||
PAGE "Trasferimento F24" -1 -1 78 6
|
||||
|
||||
STRING F_PATH_SRC 255 45
|
||||
BEGIN
|
||||
PROMPT 1 1 "Cartella di origine "
|
||||
DSELECT
|
||||
FLAGS "M"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Selezionare una cartella origine valida!"
|
||||
END
|
||||
|
||||
STRING F_PATH_DST 255 45
|
||||
BEGIN
|
||||
PROMPT 1 2 "Cartella di destinazione "
|
||||
DSELECT
|
||||
FLAGS "M"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Selezionare una cartella destinazione valida!"
|
||||
END
|
||||
|
||||
STRING F_ELIMINA_EXPR 80 45
|
||||
BEGIN
|
||||
PROMPT 1 3 "Elimina i seguenti file "
|
||||
END
|
||||
|
||||
BOOLEAN F_ERASE_TRANSFERRED
|
||||
BEGIN
|
||||
PROMPT 1 4 "Eliminare i file di origine dopo la copia"
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 1 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "~Archivia"
|
||||
PICTURE TOOL_ELABORA
|
||||
END
|
||||
|
||||
BUTTON DLG_NULL 2 2
|
||||
BEGIN
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_PRINT 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "~Stampa"
|
||||
PICTURE TOOL_PRINTELENCO
|
||||
END
|
||||
|
||||
BUTTON DLG_PREVIEW 2 2
|
||||
BEGIN
|
||||
PROMPT 4 1 "A~nteprima"
|
||||
PICTURE TOOL_PREVIEW
|
||||
END
|
||||
|
||||
BUTTON DLG_EXPORT 2 2
|
||||
BEGIN
|
||||
PROMPT 5 1 "~Excel"
|
||||
PICTURE TOOL_EXCEL
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
@ -1,15 +1,15 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pg0068.h"
|
||||
|
||||
int main( int argc, char** argv )
|
||||
{
|
||||
const int r = (argc > 1) ? argv[1][1]-'0' : -1;
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case 0: pg0068100(argc, argv); break; // contabilizzazione Hair Kulture
|
||||
default: break;
|
||||
}
|
||||
return 0;
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pg0068.h"
|
||||
|
||||
int main( int argc, char** argv )
|
||||
{
|
||||
const int r = (argc > 1) ? argv[1][1]-'0' : -1;
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case 0: pg0068100(argc, argv); break; // contabilizzazione Hair Kulture
|
||||
default: break;
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1 +1 @@
|
||||
int pg0068100(int, char**);
|
||||
int pg0068100(int, char**);
|
||||
|
1154
ps/pg0068100.cpp
1154
ps/pg0068100.cpp
File diff suppressed because it is too large
Load Diff
@ -1,19 +1,19 @@
|
||||
// Include file per pg0068100a.uml
|
||||
|
||||
#define F_ELAB_COSTI 101
|
||||
#define F_ELAB_COSTI_DESCR 102
|
||||
#define F_ELAB_PROVV 103
|
||||
#define F_ELAB_PROVV_DESCR 104
|
||||
#define F_DATA_INI 105
|
||||
#define F_DATA_FIN 106
|
||||
#define F_DATA_AUTO 107
|
||||
#define F_DATA_REG 108
|
||||
#define F_CAUS_COSTI 109
|
||||
#define F_CAUS_COSTI_DESCR 110
|
||||
#define F_CAUS_PROVV 111
|
||||
#define F_CAUS_PROVV_DESCR 112
|
||||
#define F_AUTO_DATA_REG 113
|
||||
#define F_GRUPPO 114
|
||||
#define F_CONTO 115
|
||||
#define F_SOTTOCONTO 116
|
||||
#define F_DESC 117
|
||||
// Include file per pg0068100a.uml
|
||||
|
||||
#define F_ELAB_COSTI 101
|
||||
#define F_ELAB_COSTI_DESCR 102
|
||||
#define F_ELAB_PROVV 103
|
||||
#define F_ELAB_PROVV_DESCR 104
|
||||
#define F_DATA_INI 105
|
||||
#define F_DATA_FIN 106
|
||||
#define F_DATA_AUTO 107
|
||||
#define F_DATA_REG 108
|
||||
#define F_CAUS_COSTI 109
|
||||
#define F_CAUS_COSTI_DESCR 110
|
||||
#define F_CAUS_PROVV 111
|
||||
#define F_CAUS_PROVV_DESCR 112
|
||||
#define F_AUTO_DATA_REG 113
|
||||
#define F_GRUPPO 114
|
||||
#define F_CONTO 115
|
||||
#define F_SOTTOCONTO 116
|
||||
#define F_DESC 117
|
||||
|
@ -1,249 +1,249 @@
|
||||
#include "pg0068100a.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_USER 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 "~Selezione"
|
||||
PICTURE TOOL_MULTISEL
|
||||
END
|
||||
|
||||
#include <elabar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Contabilizzazione HAIR KULTURE" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 77 4
|
||||
BEGIN
|
||||
PROMPT 1 0 "@bElaborazioni"
|
||||
END
|
||||
|
||||
STRING F_ELAB_COSTI 8
|
||||
BEGIN
|
||||
PROMPT 2 1 "Costi "
|
||||
FLAG "U"
|
||||
USE %ELD SELECT I0 == 7
|
||||
INPUT CODTAB F_ELAB_COSTI
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_ELAB_COSTI CODTAB
|
||||
OUTPUT F_ELAB_COSTI_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "E' necessario specificare il codice elaborazione"
|
||||
END
|
||||
|
||||
STRING F_ELAB_COSTI_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 25 1 ""
|
||||
USE %ELD KEY 2 SELECT I0 == 7
|
||||
INPUT S0 F_ELAB_COSTI_DESCR
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
COPY OUTPUT F_ELAB_COSTI
|
||||
END
|
||||
|
||||
STRING F_ELAB_PROVV 8
|
||||
BEGIN
|
||||
PROMPT 2 2 "Provvigioni "
|
||||
FLAG "U"
|
||||
USE %ELD SELECT I0 == 7
|
||||
INPUT CODTAB F_ELAB_PROVV
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_ELAB_PROVV CODTAB
|
||||
OUTPUT F_ELAB_PROVV_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "E' necessario specificare il codice elaborazione"
|
||||
END
|
||||
|
||||
STRING F_ELAB_PROVV_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 25 2 ""
|
||||
USE %ELD KEY 2 SELECT I0 == 7
|
||||
INPUT S0 F_ELAB_PROVV_DESCR
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
COPY OUTPUT F_ELAB_PROVV
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 77 3
|
||||
BEGIN
|
||||
PROMPT 1 4 "@bDate intervallo documenti"
|
||||
END
|
||||
|
||||
DATE F_DATA_INI
|
||||
BEGIN
|
||||
PROMPT 2 5 "Inizio "
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La data di inizio intervallo e' obbligatoria"
|
||||
END
|
||||
|
||||
DATE F_DATA_FIN
|
||||
BEGIN
|
||||
PROMPT 25 5 "Fine "
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La data di fine intervallo deve essere successiva a quella di inizio"
|
||||
VALIDATE DATE_CMP_FUNC >= F_DATA_INI
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 77 8
|
||||
BEGIN
|
||||
PROMPT 1 7 "@bParametri movimenti generati"
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT 2 8 "@bCausali"
|
||||
END
|
||||
|
||||
STRING F_CAUS_COSTI 3
|
||||
BEGIN
|
||||
PROMPT 3 9 "Costi "
|
||||
FLAGS "UZ"
|
||||
USE LF_CAUSALI
|
||||
INPUT CODCAUS F_CAUS_COSTI
|
||||
DISPLAY "Cod." CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Documento" TIPODOC
|
||||
DISPLAY "Tipo movimento" TIPOMOV
|
||||
DISPLAY "Inc./Pag." CODCAUSIM
|
||||
OUTPUT F_CAUS_COSTI CODCAUS
|
||||
OUTPUT F_CAUS_COSTI_DESCR DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_CAUS_COSTI_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 22 9 ""
|
||||
USE LF_CAUSALI KEY 2
|
||||
INPUT DESCR F_CAUS_COSTI_DESCR
|
||||
DISPLAY "Descrizione @50" DESCR
|
||||
DISPLAY "Cod." CODCAUS
|
||||
DISPLAY "Documento" TIPODOC
|
||||
DISPLAY "Movimento" TIPOMOV
|
||||
DISPLAY "Inc./Pag." CODCAUSIM
|
||||
COPY OUTPUT F_CAUS_COSTI
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_CAUS_PROVV 3
|
||||
BEGIN
|
||||
PROMPT 3 10 "Provvigioni "
|
||||
FLAGS "UZ"
|
||||
USE LF_CAUSALI
|
||||
INPUT CODCAUS F_CAUS_PROVV
|
||||
DISPLAY "Cod." CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Documento" TIPODOC
|
||||
DISPLAY "Tipo movimento" TIPOMOV
|
||||
DISPLAY "Inc./Pag." CODCAUSIM
|
||||
OUTPUT F_CAUS_PROVV CODCAUS
|
||||
OUTPUT F_CAUS_PROVV_DESCR DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_CAUS_PROVV_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 22 10 ""
|
||||
USE LF_CAUSALI KEY 2
|
||||
INPUT DESCR F_CAUS_PROVV_DESCR
|
||||
DISPLAY "Descrizione @50" DESCR
|
||||
DISPLAY "Cod." CODCAUS
|
||||
DISPLAY "Documento" TIPODOC
|
||||
DISPLAY "Movimento" TIPOMOV
|
||||
DISPLAY "Inc./Pag." CODCAUSIM
|
||||
COPY OUTPUT F_CAUS_PROVV
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT 2 11 "@bConto omaggi"
|
||||
END
|
||||
|
||||
NUMBER F_GRUPPO 3
|
||||
BEGIN
|
||||
PROMPT 3 12 ""
|
||||
FLAGS "R"
|
||||
USE LF_PCON SELECT CONTO=""
|
||||
INPUT GRUPPO F_GRUPPO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_CONTO 3
|
||||
BEGIN
|
||||
PROMPT 9 12 ""
|
||||
FLAGS "R"
|
||||
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO=""))
|
||||
COPY INPUT F_GRUPPO
|
||||
INPUT CONTO F_CONTO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
CHECKTYPE NORMAL
|
||||
VALIDATE REQIF_FUNC 1 F_SOTTOCONTO
|
||||
WARNING "Manca il conto"
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOCONTO 6
|
||||
BEGIN
|
||||
PROMPT 15 12 ""
|
||||
USE LF_PCON SELECT (SOTTOCONTO!="")&&(ANALITICA="X")
|
||||
COPY INPUT F_CONTO
|
||||
INPUT SOTTOCONTO F_SOTTOCONTO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Sosp." SOSPESO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
OUTPUT F_DESC DESCR
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESC 50
|
||||
BEGIN
|
||||
PROMPT 24 12 ""
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR F_DESC
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Sosp." SOSPESO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
COPY OUTPUT F_SOTTOCONTO
|
||||
CHECKTYPE REQUIRED
|
||||
HELP "Descrizione del gruppo o del conto o del sottoconto"
|
||||
WARNING "Descrizione mancante"
|
||||
END
|
||||
|
||||
/*BOOL F_AUTO_DATA_REG
|
||||
BEGIN
|
||||
PROMPT 2 11 "Usare data documento come data registrazione"
|
||||
MESSAGE FALSE ENABLE,F_DATA_REG
|
||||
MESSAGE TRUE CLEAR,F_DATA_REG
|
||||
END
|
||||
|
||||
DATE F_DATA_REG
|
||||
BEGIN
|
||||
PROMPT 53 11 "Data reg. "
|
||||
CHECKTYPE REQUIRED
|
||||
END*/
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 9 -2 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
#include "pg0068100a.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_USER 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 "~Selezione"
|
||||
PICTURE TOOL_MULTISEL
|
||||
END
|
||||
|
||||
#include <elabar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Contabilizzazione HAIR KULTURE" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 77 4
|
||||
BEGIN
|
||||
PROMPT 1 0 "@bElaborazioni"
|
||||
END
|
||||
|
||||
STRING F_ELAB_COSTI 8
|
||||
BEGIN
|
||||
PROMPT 2 1 "Costi "
|
||||
FLAG "U"
|
||||
USE %ELD SELECT I0 == 7
|
||||
INPUT CODTAB F_ELAB_COSTI
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_ELAB_COSTI CODTAB
|
||||
OUTPUT F_ELAB_COSTI_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "E' necessario specificare il codice elaborazione"
|
||||
END
|
||||
|
||||
STRING F_ELAB_COSTI_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 25 1 ""
|
||||
USE %ELD KEY 2 SELECT I0 == 7
|
||||
INPUT S0 F_ELAB_COSTI_DESCR
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
COPY OUTPUT F_ELAB_COSTI
|
||||
END
|
||||
|
||||
STRING F_ELAB_PROVV 8
|
||||
BEGIN
|
||||
PROMPT 2 2 "Provvigioni "
|
||||
FLAG "U"
|
||||
USE %ELD SELECT I0 == 7
|
||||
INPUT CODTAB F_ELAB_PROVV
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_ELAB_PROVV CODTAB
|
||||
OUTPUT F_ELAB_PROVV_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "E' necessario specificare il codice elaborazione"
|
||||
END
|
||||
|
||||
STRING F_ELAB_PROVV_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 25 2 ""
|
||||
USE %ELD KEY 2 SELECT I0 == 7
|
||||
INPUT S0 F_ELAB_PROVV_DESCR
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
COPY OUTPUT F_ELAB_PROVV
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 77 3
|
||||
BEGIN
|
||||
PROMPT 1 4 "@bDate intervallo documenti"
|
||||
END
|
||||
|
||||
DATE F_DATA_INI
|
||||
BEGIN
|
||||
PROMPT 2 5 "Inizio "
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La data di inizio intervallo e' obbligatoria"
|
||||
END
|
||||
|
||||
DATE F_DATA_FIN
|
||||
BEGIN
|
||||
PROMPT 25 5 "Fine "
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La data di fine intervallo deve essere successiva a quella di inizio"
|
||||
VALIDATE DATE_CMP_FUNC >= F_DATA_INI
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 77 8
|
||||
BEGIN
|
||||
PROMPT 1 7 "@bParametri movimenti generati"
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT 2 8 "@bCausali"
|
||||
END
|
||||
|
||||
STRING F_CAUS_COSTI 3
|
||||
BEGIN
|
||||
PROMPT 3 9 "Costi "
|
||||
FLAGS "UZ"
|
||||
USE LF_CAUSALI
|
||||
INPUT CODCAUS F_CAUS_COSTI
|
||||
DISPLAY "Cod." CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Documento" TIPODOC
|
||||
DISPLAY "Tipo movimento" TIPOMOV
|
||||
DISPLAY "Inc./Pag." CODCAUSIM
|
||||
OUTPUT F_CAUS_COSTI CODCAUS
|
||||
OUTPUT F_CAUS_COSTI_DESCR DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_CAUS_COSTI_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 22 9 ""
|
||||
USE LF_CAUSALI KEY 2
|
||||
INPUT DESCR F_CAUS_COSTI_DESCR
|
||||
DISPLAY "Descrizione @50" DESCR
|
||||
DISPLAY "Cod." CODCAUS
|
||||
DISPLAY "Documento" TIPODOC
|
||||
DISPLAY "Movimento" TIPOMOV
|
||||
DISPLAY "Inc./Pag." CODCAUSIM
|
||||
COPY OUTPUT F_CAUS_COSTI
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_CAUS_PROVV 3
|
||||
BEGIN
|
||||
PROMPT 3 10 "Provvigioni "
|
||||
FLAGS "UZ"
|
||||
USE LF_CAUSALI
|
||||
INPUT CODCAUS F_CAUS_PROVV
|
||||
DISPLAY "Cod." CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Documento" TIPODOC
|
||||
DISPLAY "Tipo movimento" TIPOMOV
|
||||
DISPLAY "Inc./Pag." CODCAUSIM
|
||||
OUTPUT F_CAUS_PROVV CODCAUS
|
||||
OUTPUT F_CAUS_PROVV_DESCR DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_CAUS_PROVV_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 22 10 ""
|
||||
USE LF_CAUSALI KEY 2
|
||||
INPUT DESCR F_CAUS_PROVV_DESCR
|
||||
DISPLAY "Descrizione @50" DESCR
|
||||
DISPLAY "Cod." CODCAUS
|
||||
DISPLAY "Documento" TIPODOC
|
||||
DISPLAY "Movimento" TIPOMOV
|
||||
DISPLAY "Inc./Pag." CODCAUSIM
|
||||
COPY OUTPUT F_CAUS_PROVV
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT 2 11 "@bConto omaggi"
|
||||
END
|
||||
|
||||
NUMBER F_GRUPPO 3
|
||||
BEGIN
|
||||
PROMPT 3 12 ""
|
||||
FLAGS "R"
|
||||
USE LF_PCON SELECT CONTO=""
|
||||
INPUT GRUPPO F_GRUPPO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_CONTO 3
|
||||
BEGIN
|
||||
PROMPT 9 12 ""
|
||||
FLAGS "R"
|
||||
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO=""))
|
||||
COPY INPUT F_GRUPPO
|
||||
INPUT CONTO F_CONTO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
CHECKTYPE NORMAL
|
||||
VALIDATE REQIF_FUNC 1 F_SOTTOCONTO
|
||||
WARNING "Manca il conto"
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOCONTO 6
|
||||
BEGIN
|
||||
PROMPT 15 12 ""
|
||||
USE LF_PCON SELECT (SOTTOCONTO!="")&&(ANALITICA="X")
|
||||
COPY INPUT F_CONTO
|
||||
INPUT SOTTOCONTO F_SOTTOCONTO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Sosp." SOSPESO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
OUTPUT F_DESC DESCR
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESC 50
|
||||
BEGIN
|
||||
PROMPT 24 12 ""
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR F_DESC
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Sosp." SOSPESO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
COPY OUTPUT F_SOTTOCONTO
|
||||
CHECKTYPE REQUIRED
|
||||
HELP "Descrizione del gruppo o del conto o del sottoconto"
|
||||
WARNING "Descrizione mancante"
|
||||
END
|
||||
|
||||
/*BOOL F_AUTO_DATA_REG
|
||||
BEGIN
|
||||
PROMPT 2 11 "Usare data documento come data registrazione"
|
||||
MESSAGE FALSE ENABLE,F_DATA_REG
|
||||
MESSAGE TRUE CLEAR,F_DATA_REG
|
||||
END
|
||||
|
||||
DATE F_DATA_REG
|
||||
BEGIN
|
||||
PROMPT 53 11 "Data reg. "
|
||||
CHECKTYPE REQUIRED
|
||||
END*/
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 9 -2 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
@ -1,16 +1,16 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pg0069.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
pg0069100(argc, argv); break; //importazione e contabilizzazione fatture Nautilus e Bonomo
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pg0069.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
pg0069100(argc, argv); break; //importazione e contabilizzazione fatture Nautilus e Bonomo
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
@ -1 +1 @@
|
||||
int pg0069100(int argc, char* argv[]);
|
||||
int pg0069100(int argc, char* argv[]);
|
||||
|
1440
ps/pg0069100.cpp
1440
ps/pg0069100.cpp
File diff suppressed because it is too large
Load Diff
@ -1,39 +1,39 @@
|
||||
// campi della maschera Nautilus
|
||||
|
||||
#define F_PATH 101
|
||||
#define F_NAME 102
|
||||
#define F_CODCAUS 103
|
||||
#define F_DESCR 104
|
||||
#define F_CODIVA_ES 105
|
||||
#define F_DES_CODIVA_ES 116
|
||||
#define F_CODIVA_SP 106
|
||||
#define F_DES_CODIVA_SP 117
|
||||
#define F_GRUPPO_SP 107
|
||||
#define F_CONTO_SP 108
|
||||
#define F_SOTTOCONTO_SP 109
|
||||
#define F_DESCRIZIONE_SP 110
|
||||
#define F_CODIVA_TR 111
|
||||
#define F_DES_CODIVA_TR 118
|
||||
#define F_GRUPPO_TR 112
|
||||
#define F_CONTO_TR 113
|
||||
#define F_SOTTOCONTO_TR 114
|
||||
#define F_DESCRIZIONE_TR 115
|
||||
|
||||
// campi del tracciato record
|
||||
#define F_CODAZIENDA 0
|
||||
#define F_CODDIP 1
|
||||
#define F_VOCE 2
|
||||
#define F_TIPOVOCE 3
|
||||
#define F_QUOTAVOCE 4
|
||||
#define F_VALOREVOCE 5
|
||||
#define F_IMPORTO 6
|
||||
#define F_CONTODARE 7
|
||||
#define F_CONTOAVERE 8
|
||||
#define F_CENTROCOSTO 9
|
||||
#define F_SEDELAVORO 10
|
||||
#define F_SEDEINPS 11
|
||||
#define F_QUALIFICA 12
|
||||
#define F_POSINAIL 13
|
||||
#define F_VARIABILE 14
|
||||
#define F_CONTRATTO 15
|
||||
// campi della maschera Nautilus
|
||||
|
||||
#define F_PATH 101
|
||||
#define F_NAME 102
|
||||
#define F_CODCAUS 103
|
||||
#define F_DESCR 104
|
||||
#define F_CODIVA_ES 105
|
||||
#define F_DES_CODIVA_ES 116
|
||||
#define F_CODIVA_SP 106
|
||||
#define F_DES_CODIVA_SP 117
|
||||
#define F_GRUPPO_SP 107
|
||||
#define F_CONTO_SP 108
|
||||
#define F_SOTTOCONTO_SP 109
|
||||
#define F_DESCRIZIONE_SP 110
|
||||
#define F_CODIVA_TR 111
|
||||
#define F_DES_CODIVA_TR 118
|
||||
#define F_GRUPPO_TR 112
|
||||
#define F_CONTO_TR 113
|
||||
#define F_SOTTOCONTO_TR 114
|
||||
#define F_DESCRIZIONE_TR 115
|
||||
|
||||
// campi del tracciato record
|
||||
#define F_CODAZIENDA 0
|
||||
#define F_CODDIP 1
|
||||
#define F_VOCE 2
|
||||
#define F_TIPOVOCE 3
|
||||
#define F_QUOTAVOCE 4
|
||||
#define F_VALOREVOCE 5
|
||||
#define F_IMPORTO 6
|
||||
#define F_CONTODARE 7
|
||||
#define F_CONTOAVERE 8
|
||||
#define F_CENTROCOSTO 9
|
||||
#define F_SEDELAVORO 10
|
||||
#define F_SEDEINPS 11
|
||||
#define F_QUALIFICA 12
|
||||
#define F_POSINAIL 13
|
||||
#define F_VARIABILE 14
|
||||
#define F_CONTRATTO 15
|
||||
#define F_FILLER 16
|
@ -1,285 +1,285 @@
|
||||
#include "pg0069100a.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Importazione documenti Nautilus" -1 -1 78 19
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bParametri file da importare"
|
||||
END
|
||||
|
||||
STRING F_PATH 255 64
|
||||
BEGIN
|
||||
PROMPT 2 2 "Percorso "
|
||||
DSELECT
|
||||
FLAGS "M"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Selezionare una cartella valida!"
|
||||
FIELD PATH
|
||||
END
|
||||
|
||||
STRING F_NAME 64
|
||||
BEGIN
|
||||
PROMPT 2 3 "Nome "
|
||||
FSELECT "*.txt"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD NAME
|
||||
END
|
||||
|
||||
STRING F_CODCAUS 4
|
||||
BEGIN
|
||||
PROMPT 2 5 "Causale "
|
||||
FLAGS "U"
|
||||
USE LF_CAUSALI
|
||||
INPUT CODCAUS F_CODCAUS
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Descrizione@60" DESCR
|
||||
OUTPUT F_CODCAUS CODCAUS
|
||||
OUTPUT F_DESCR DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
ADD RUN cg0 -4
|
||||
FIELD CODCAUS
|
||||
END
|
||||
|
||||
STRING F_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 17 5 ""
|
||||
USE LF_CAUSALI KEY 2
|
||||
INPUT DESCR F_DESCR
|
||||
DISPLAY "Descrizione@60" DESCR
|
||||
DISPLAY "Codice" CODCAUS
|
||||
COPY OUTPUT F_CODCAUS
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 7 "@bParametri IVA merce esente"
|
||||
END
|
||||
|
||||
STRING F_CODIVA_ES 4
|
||||
BEGIN
|
||||
PROMPT 2 8 "Codice IVA "
|
||||
USE %IVA KEY 1
|
||||
FLAGS "U"
|
||||
INPUT CODTAB F_CODIVA_ES
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODIVA_ES CODTAB
|
||||
OUTPUT F_DES_CODIVA_ES S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD IVA_ESENTE
|
||||
END
|
||||
|
||||
STRING F_DES_CODIVA_ES 50
|
||||
BEGIN
|
||||
PROMPT 20 8 ""
|
||||
USE %IVA KEY 2
|
||||
INPUT S0 F_DES_CODIVA_ES
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODIVA_ES
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 10 "@bParametri IVA spese"
|
||||
END
|
||||
|
||||
STRING F_CODIVA_SP 4
|
||||
BEGIN
|
||||
PROMPT 2 11 "Codice IVA "
|
||||
USE %IVA KEY 1
|
||||
FLAGS "U"
|
||||
INPUT CODTAB F_CODIVA_SP
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODIVA_SP CODTAB
|
||||
OUTPUT F_DES_CODIVA_SP S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD IVA_SPESE
|
||||
END
|
||||
|
||||
STRING F_DES_CODIVA_SP 50
|
||||
BEGIN
|
||||
PROMPT 20 11 ""
|
||||
USE %IVA KEY 2
|
||||
INPUT S0 F_DES_CODIVA_SP
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODIVA_SP
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
|
||||
NUMBER F_GRUPPO_SP 3
|
||||
BEGIN
|
||||
PROMPT 2 12 "Gruppo "
|
||||
USE LF_PCON KEY 1 SELECT (CONTO="")
|
||||
INPUT GRUPPO F_GRUPPO_SP
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO_SP GRUPPO
|
||||
CHECKTYPE NORMAL
|
||||
FIELD GR_IS
|
||||
END
|
||||
|
||||
NUMBER F_CONTO_SP 3
|
||||
BEGIN
|
||||
PROMPT 15 12 "Conto "
|
||||
USE LF_PCON KEY 1 SELECT (SOTTOCONTO="")
|
||||
INPUT GRUPPO F_GRUPPO_SP
|
||||
INPUT CONTO F_CONTO_SP
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CONTO_SP CONTO
|
||||
OUTPUT F_GRUPPO_SP GRUPPO
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CO_IS
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOCONTO_SP 6
|
||||
BEGIN
|
||||
PROMPT 27 12 "Sottoc. "
|
||||
USE LF_PCON
|
||||
INPUT GRUPPO F_GRUPPO_SP
|
||||
INPUT CONTO F_CONTO_SP
|
||||
INPUT SOTTOCONTO F_SOTTOCONTO_SP
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_SOTTOCONTO_SP SOTTOCONTO
|
||||
OUTPUT F_GRUPPO_SP GRUPPO
|
||||
OUTPUT F_CONTO_SP CONTO
|
||||
OUTPUT F_DESCRIZIONE_SP DESCR
|
||||
CHECKTYPE NORMAL
|
||||
FIELD SC_IS
|
||||
END
|
||||
|
||||
STRING F_DESCRIZIONE_SP 50
|
||||
BEGIN
|
||||
PROMPT 2 13 ""
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR F_DESCRIZIONE_SP
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
OUTPUT F_SOTTOCONTO_SP SOTTOCONTO
|
||||
OUTPUT F_CONTO_SP CONTO
|
||||
OUTPUT F_GRUPPO_SP GRUPPO
|
||||
OUTPUT F_DESCRIZIONE_SP DESCR
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 15 "@bParametri IVA trasporto"
|
||||
END
|
||||
|
||||
STRING F_CODIVA_TR 4
|
||||
BEGIN
|
||||
PROMPT 2 16 "Codice IVA "
|
||||
USE %IVA KEY 1
|
||||
FLAGS "U"
|
||||
INPUT CODTAB F_CODIVA_TR
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODIVA_TR CODTAB
|
||||
OUTPUT F_DES_CODIVA_TR S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD IVA_TRASP
|
||||
END
|
||||
|
||||
STRING F_DES_CODIVA_TR 50
|
||||
BEGIN
|
||||
PROMPT 20 16 ""
|
||||
USE %IVA KEY 2
|
||||
INPUT S0 F_DES_CODIVA_TR
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODIVA_TR
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
NUMBER F_GRUPPO_TR 3
|
||||
BEGIN
|
||||
PROMPT 2 17 "Gruppo "
|
||||
USE LF_PCON KEY 1 SELECT (CONTO="")
|
||||
INPUT GRUPPO F_GRUPPO_TR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO_TR GRUPPO
|
||||
CHECKTYPE NORMAL
|
||||
FIELD GR_IT
|
||||
END
|
||||
|
||||
NUMBER F_CONTO_TR 3
|
||||
BEGIN
|
||||
PROMPT 15 17 "Conto "
|
||||
USE LF_PCON KEY 1 SELECT (SOTTOCONTO="")
|
||||
INPUT GRUPPO F_GRUPPO_TR
|
||||
INPUT CONTO F_CONTO_TR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CONTO_TR CONTO
|
||||
OUTPUT F_GRUPPO_TR GRUPPO
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CO_IT
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOCONTO_TR 6
|
||||
BEGIN
|
||||
PROMPT 27 17 "Sottoc. "
|
||||
USE LF_PCON
|
||||
INPUT GRUPPO F_GRUPPO_TR
|
||||
INPUT CONTO F_CONTO_TR
|
||||
INPUT SOTTOCONTO F_SOTTOCONTO_TR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_SOTTOCONTO_TR SOTTOCONTO
|
||||
OUTPUT F_GRUPPO_TR GRUPPO
|
||||
OUTPUT F_CONTO_TR CONTO
|
||||
OUTPUT F_DESCRIZIONE_TR DESCR
|
||||
CHECKTYPE NORMAL
|
||||
FIELD SC_IT
|
||||
END
|
||||
|
||||
STRING F_DESCRIZIONE_TR 50
|
||||
BEGIN
|
||||
PROMPT 2 18 ""
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR F_DESCRIZIONE_TR
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
OUTPUT F_SOTTOCONTO_TR SOTTOCONTO
|
||||
OUTPUT F_CONTO_TR CONTO
|
||||
OUTPUT F_GRUPPO_TR GRUPPO
|
||||
OUTPUT F_DESCRIZIONE_TR DESCR
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
#include "pg0069100a.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Importazione documenti Nautilus" -1 -1 78 19
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bParametri file da importare"
|
||||
END
|
||||
|
||||
STRING F_PATH 255 64
|
||||
BEGIN
|
||||
PROMPT 2 2 "Percorso "
|
||||
DSELECT
|
||||
FLAGS "M"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Selezionare una cartella valida!"
|
||||
FIELD PATH
|
||||
END
|
||||
|
||||
STRING F_NAME 64
|
||||
BEGIN
|
||||
PROMPT 2 3 "Nome "
|
||||
FSELECT "*.txt"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD NAME
|
||||
END
|
||||
|
||||
STRING F_CODCAUS 4
|
||||
BEGIN
|
||||
PROMPT 2 5 "Causale "
|
||||
FLAGS "U"
|
||||
USE LF_CAUSALI
|
||||
INPUT CODCAUS F_CODCAUS
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Descrizione@60" DESCR
|
||||
OUTPUT F_CODCAUS CODCAUS
|
||||
OUTPUT F_DESCR DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
ADD RUN cg0 -4
|
||||
FIELD CODCAUS
|
||||
END
|
||||
|
||||
STRING F_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 17 5 ""
|
||||
USE LF_CAUSALI KEY 2
|
||||
INPUT DESCR F_DESCR
|
||||
DISPLAY "Descrizione@60" DESCR
|
||||
DISPLAY "Codice" CODCAUS
|
||||
COPY OUTPUT F_CODCAUS
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 7 "@bParametri IVA merce esente"
|
||||
END
|
||||
|
||||
STRING F_CODIVA_ES 4
|
||||
BEGIN
|
||||
PROMPT 2 8 "Codice IVA "
|
||||
USE %IVA KEY 1
|
||||
FLAGS "U"
|
||||
INPUT CODTAB F_CODIVA_ES
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODIVA_ES CODTAB
|
||||
OUTPUT F_DES_CODIVA_ES S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD IVA_ESENTE
|
||||
END
|
||||
|
||||
STRING F_DES_CODIVA_ES 50
|
||||
BEGIN
|
||||
PROMPT 20 8 ""
|
||||
USE %IVA KEY 2
|
||||
INPUT S0 F_DES_CODIVA_ES
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODIVA_ES
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 10 "@bParametri IVA spese"
|
||||
END
|
||||
|
||||
STRING F_CODIVA_SP 4
|
||||
BEGIN
|
||||
PROMPT 2 11 "Codice IVA "
|
||||
USE %IVA KEY 1
|
||||
FLAGS "U"
|
||||
INPUT CODTAB F_CODIVA_SP
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODIVA_SP CODTAB
|
||||
OUTPUT F_DES_CODIVA_SP S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD IVA_SPESE
|
||||
END
|
||||
|
||||
STRING F_DES_CODIVA_SP 50
|
||||
BEGIN
|
||||
PROMPT 20 11 ""
|
||||
USE %IVA KEY 2
|
||||
INPUT S0 F_DES_CODIVA_SP
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODIVA_SP
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
|
||||
NUMBER F_GRUPPO_SP 3
|
||||
BEGIN
|
||||
PROMPT 2 12 "Gruppo "
|
||||
USE LF_PCON KEY 1 SELECT (CONTO="")
|
||||
INPUT GRUPPO F_GRUPPO_SP
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO_SP GRUPPO
|
||||
CHECKTYPE NORMAL
|
||||
FIELD GR_IS
|
||||
END
|
||||
|
||||
NUMBER F_CONTO_SP 3
|
||||
BEGIN
|
||||
PROMPT 15 12 "Conto "
|
||||
USE LF_PCON KEY 1 SELECT (SOTTOCONTO="")
|
||||
INPUT GRUPPO F_GRUPPO_SP
|
||||
INPUT CONTO F_CONTO_SP
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CONTO_SP CONTO
|
||||
OUTPUT F_GRUPPO_SP GRUPPO
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CO_IS
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOCONTO_SP 6
|
||||
BEGIN
|
||||
PROMPT 27 12 "Sottoc. "
|
||||
USE LF_PCON
|
||||
INPUT GRUPPO F_GRUPPO_SP
|
||||
INPUT CONTO F_CONTO_SP
|
||||
INPUT SOTTOCONTO F_SOTTOCONTO_SP
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_SOTTOCONTO_SP SOTTOCONTO
|
||||
OUTPUT F_GRUPPO_SP GRUPPO
|
||||
OUTPUT F_CONTO_SP CONTO
|
||||
OUTPUT F_DESCRIZIONE_SP DESCR
|
||||
CHECKTYPE NORMAL
|
||||
FIELD SC_IS
|
||||
END
|
||||
|
||||
STRING F_DESCRIZIONE_SP 50
|
||||
BEGIN
|
||||
PROMPT 2 13 ""
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR F_DESCRIZIONE_SP
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
OUTPUT F_SOTTOCONTO_SP SOTTOCONTO
|
||||
OUTPUT F_CONTO_SP CONTO
|
||||
OUTPUT F_GRUPPO_SP GRUPPO
|
||||
OUTPUT F_DESCRIZIONE_SP DESCR
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 15 "@bParametri IVA trasporto"
|
||||
END
|
||||
|
||||
STRING F_CODIVA_TR 4
|
||||
BEGIN
|
||||
PROMPT 2 16 "Codice IVA "
|
||||
USE %IVA KEY 1
|
||||
FLAGS "U"
|
||||
INPUT CODTAB F_CODIVA_TR
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODIVA_TR CODTAB
|
||||
OUTPUT F_DES_CODIVA_TR S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD IVA_TRASP
|
||||
END
|
||||
|
||||
STRING F_DES_CODIVA_TR 50
|
||||
BEGIN
|
||||
PROMPT 20 16 ""
|
||||
USE %IVA KEY 2
|
||||
INPUT S0 F_DES_CODIVA_TR
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODIVA_TR
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
NUMBER F_GRUPPO_TR 3
|
||||
BEGIN
|
||||
PROMPT 2 17 "Gruppo "
|
||||
USE LF_PCON KEY 1 SELECT (CONTO="")
|
||||
INPUT GRUPPO F_GRUPPO_TR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO_TR GRUPPO
|
||||
CHECKTYPE NORMAL
|
||||
FIELD GR_IT
|
||||
END
|
||||
|
||||
NUMBER F_CONTO_TR 3
|
||||
BEGIN
|
||||
PROMPT 15 17 "Conto "
|
||||
USE LF_PCON KEY 1 SELECT (SOTTOCONTO="")
|
||||
INPUT GRUPPO F_GRUPPO_TR
|
||||
INPUT CONTO F_CONTO_TR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CONTO_TR CONTO
|
||||
OUTPUT F_GRUPPO_TR GRUPPO
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CO_IT
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOCONTO_TR 6
|
||||
BEGIN
|
||||
PROMPT 27 17 "Sottoc. "
|
||||
USE LF_PCON
|
||||
INPUT GRUPPO F_GRUPPO_TR
|
||||
INPUT CONTO F_CONTO_TR
|
||||
INPUT SOTTOCONTO F_SOTTOCONTO_TR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_SOTTOCONTO_TR SOTTOCONTO
|
||||
OUTPUT F_GRUPPO_TR GRUPPO
|
||||
OUTPUT F_CONTO_TR CONTO
|
||||
OUTPUT F_DESCRIZIONE_TR DESCR
|
||||
CHECKTYPE NORMAL
|
||||
FIELD SC_IT
|
||||
END
|
||||
|
||||
STRING F_DESCRIZIONE_TR 50
|
||||
BEGIN
|
||||
PROMPT 2 18 ""
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR F_DESCRIZIONE_TR
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
OUTPUT F_SOTTOCONTO_TR SOTTOCONTO
|
||||
OUTPUT F_CONTO_TR CONTO
|
||||
OUTPUT F_GRUPPO_TR GRUPPO
|
||||
OUTPUT F_DESCRIZIONE_TR DESCR
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
[MAIN]
|
||||
CODCAUS =
|
||||
CO_IS =
|
||||
CO_IT =
|
||||
GR_IS =
|
||||
GR_IT =
|
||||
IVA_ESENTE =
|
||||
IVA_SPESE =
|
||||
IVA_TRASP =
|
||||
NAME =
|
||||
PATH =
|
||||
SC_IS =
|
||||
SC_IT =
|
||||
|
||||
[MAIN]
|
||||
CODCAUS =
|
||||
CO_IS =
|
||||
CO_IT =
|
||||
GR_IS =
|
||||
GR_IT =
|
||||
IVA_ESENTE =
|
||||
IVA_SPESE =
|
||||
IVA_TRASP =
|
||||
NAME =
|
||||
PATH =
|
||||
SC_IS =
|
||||
SC_IT =
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pg0388.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
pg0388100(argc, argv); break; //trasmissione ordini De Cade'
|
||||
case 1:
|
||||
pg0388200(argc, argv); break; //importazione bolle De Cade'
|
||||
default:
|
||||
pg0388100(argc, argv); break;
|
||||
}
|
||||
return 0;
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pg0388.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
pg0388100(argc, argv); break; //trasmissione ordini De Cade'
|
||||
case 1:
|
||||
pg0388200(argc, argv); break; //importazione bolle De Cade'
|
||||
default:
|
||||
pg0388100(argc, argv); break;
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1,2 +1,2 @@
|
||||
int pg0388100(int argc, char* argv[]);
|
||||
int pg0388200(int argc, char* argv[]);
|
||||
int pg0388100(int argc, char* argv[]);
|
||||
int pg0388200(int argc, char* argv[]);
|
||||
|
544
ps/pg0388100.cpp
544
ps/pg0388100.cpp
@ -1,272 +1,272 @@
|
||||
#include <applicat.h>
|
||||
#include <assoc.h>
|
||||
#include <automask.h>
|
||||
#include <currency.h>
|
||||
#include <filetext.h>
|
||||
#include <msksheet.h>
|
||||
#include <recarray.h>
|
||||
#include <relation.h>
|
||||
#include <sort.h>
|
||||
|
||||
#include "..\ve\velib.h"
|
||||
|
||||
#include "pg0388.h"
|
||||
#include "pg0388100a.h"
|
||||
|
||||
#define ALIAS_COMCF 200
|
||||
#define ALIAS_IND 300
|
||||
|
||||
class TPG0388100_file: public TFile_text
|
||||
{
|
||||
protected:
|
||||
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||
|
||||
public:
|
||||
TPG0388100_file(const TString& file_name);
|
||||
virtual ~TPG0388100_file() { }
|
||||
};
|
||||
|
||||
TPG0388100_file::TPG0388100_file(const TString& file_name)
|
||||
: TFile_text(file_name, "pg0388100a.ini")
|
||||
{
|
||||
}
|
||||
|
||||
class TPG0388100_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
public:
|
||||
|
||||
TPG0388100_mask();
|
||||
|
||||
virtual ~TPG0388100_mask(){};
|
||||
};
|
||||
|
||||
TPG0388100_mask::TPG0388100_mask() :TAutomask ("pg0388100a")
|
||||
{
|
||||
}
|
||||
|
||||
bool TPG0388100_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
class TPG0388100 : public TSkeleton_application
|
||||
{
|
||||
TCursor* _cur;
|
||||
TPG0388100_mask* _msk;
|
||||
TPG0388100_file* _trasfile;
|
||||
TConfig* _configfile;
|
||||
TRiga_documento* _riga_doc_curr;
|
||||
|
||||
virtual const char * extra_modules() const {return "ve";}
|
||||
|
||||
protected:
|
||||
virtual bool create(void);
|
||||
virtual bool destroy(void);
|
||||
virtual void main_loop() ;
|
||||
void mask2ini();
|
||||
void ini2mask();
|
||||
bool trasferisci_ordini();
|
||||
real _omaggio;
|
||||
|
||||
public:
|
||||
const real& get_omaggio() {return _omaggio;};
|
||||
TPG0388100() {} ;
|
||||
virtual ~TPG0388100() {} ;
|
||||
};
|
||||
|
||||
// restituisce un riferimento all' applicazione
|
||||
inline TPG0388100& app() { return (TPG0388100&) main_app();}
|
||||
|
||||
// gestione dei messaggi estesi nei campi
|
||||
void TPG0388100_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
||||
{
|
||||
const TString code(s.get(0));
|
||||
TString valore;
|
||||
if (code == "_FISSO")
|
||||
{
|
||||
// gestione dei campi fissi
|
||||
// sintassi: _FISSO,!<valore>
|
||||
// dove: <valore> è la stringa fissa da emettere
|
||||
TString in(s.get());
|
||||
CHECK(in[0]=='!',"Macro _FISSO senza carattere '!'");
|
||||
in.ltrim(1);
|
||||
in.trim();
|
||||
valore = in;
|
||||
}
|
||||
else if (code == "_OMAGGIO")
|
||||
{
|
||||
valore = app().get_omaggio().string();
|
||||
}
|
||||
else if (code == "_CONCAT")
|
||||
{
|
||||
TString in(s.get());
|
||||
CHECK(in[0]=='!',"Macro _CONCAT senza carattere '!'");
|
||||
in.ltrim(1);
|
||||
in.trim();
|
||||
valore << str;
|
||||
TString fi(s.get());
|
||||
str = cur.curr(in).get(fi);
|
||||
if (str.not_empty())
|
||||
{
|
||||
valore << ',';
|
||||
valore << str;
|
||||
}
|
||||
}
|
||||
else if (code == "_NOTE")
|
||||
{
|
||||
valore = cur.curr(LF_DOC).get(DOC_NOTE);
|
||||
valore.replace(char(182), '\n');
|
||||
TParagraph_string nota(valore, 50);
|
||||
valore = nota.get();
|
||||
}
|
||||
else NFCHECK("Macro non definita: %s", (const char *)code);
|
||||
str = valore;
|
||||
}
|
||||
|
||||
bool TPG0388100::create()
|
||||
{
|
||||
open_files(LF_DOC, LF_CLIFO, LF_COMUNI, LF_CFVEN, 0);
|
||||
_msk = new TPG0388100_mask();
|
||||
_configfile = new TConfig("pg0388conf.ini", "INVIO");
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TPG0388100::destroy()
|
||||
{
|
||||
delete _configfile;
|
||||
delete _msk;
|
||||
return TSkeleton_application::destroy();
|
||||
}
|
||||
|
||||
void TPG0388100::mask2ini()
|
||||
{
|
||||
//carica i parametri del file di configurazione
|
||||
_configfile->set_paragraph("INVIO");
|
||||
for (int i = 0; i < _msk->fields() ; i++)
|
||||
{
|
||||
TMask_field& f = _msk->fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
if (fr != NULL)
|
||||
_configfile->set(fr->name(), f.get());
|
||||
}
|
||||
}
|
||||
|
||||
void TPG0388100::ini2mask()
|
||||
{
|
||||
//carica i parametri del file di configurazione
|
||||
_configfile->set_paragraph("INVIO");
|
||||
for (int i = 0; i < _msk->fields() ; i++)
|
||||
{
|
||||
TMask_field& f = _msk->fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
if (fr != NULL)
|
||||
{
|
||||
const TString& val = _configfile->get(fr->name());
|
||||
f.set(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TPG0388100::main_loop()
|
||||
{
|
||||
KEY tasto;
|
||||
ini2mask();
|
||||
tasto = _msk->run();
|
||||
if (tasto == K_ENTER)
|
||||
{
|
||||
mask2ini();
|
||||
if (trasferisci_ordini())
|
||||
message_box(TR("Trasmissione ordini completata"));
|
||||
}
|
||||
}
|
||||
|
||||
bool TPG0388100::trasferisci_ordini()
|
||||
{
|
||||
const TFilename file = _msk->get(F_FILENAME);
|
||||
_trasfile = new TPG0388100_file(file);
|
||||
_trasfile->open(file,'w');
|
||||
|
||||
//parametri dei documenti da estrarre
|
||||
const TString4 numord = _msk->get(F_NUMORD);
|
||||
const char statoini = _msk->get(F_STATOINI)[0];
|
||||
const char statofin = _msk->get(F_STATOFIN)[0];
|
||||
const int anno = _msk->get_int(F_ANNO);
|
||||
const long numini = _msk->get_long(F_NUMINI);
|
||||
const long numfin = _msk->get_long(F_NUMFIN);
|
||||
TRelation doc_rel(LF_DOC);
|
||||
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_COMUNI, "COM==COMCF", 1, LF_CLIFO, ALIAS_COMCF);
|
||||
doc_rel.add(LF_INDSP, "TIPOCF==TIPOCF|CODCF==CODCF|CODIND==CODINDSP");
|
||||
doc_rel.add(LF_COMUNI, "COM==COM", 1, LF_INDSP, ALIAS_IND);
|
||||
TRectype da(LF_DOC);
|
||||
TRectype a(LF_DOC);
|
||||
da.put(DOC_PROVV, "D");
|
||||
a.put(DOC_PROVV, "D");
|
||||
da.put(DOC_ANNO, anno);
|
||||
a.put(DOC_ANNO, anno);
|
||||
da.put(DOC_CODNUM, numord);
|
||||
a.put(DOC_CODNUM, numord);
|
||||
da.put(DOC_NDOC, numini);
|
||||
a.put(DOC_NDOC, numfin);
|
||||
TString filt_expr;
|
||||
filt_expr = "(STATO==\"";
|
||||
filt_expr << statoini << "\")";
|
||||
doc_rel.lfile().set_curr(new TDocumento);
|
||||
_omaggio = ZERO;
|
||||
_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
|
||||
if (cur_items != 0)
|
||||
{
|
||||
for (*_cur = 0; _cur->pos() < cur_items; ++(*_cur))
|
||||
{
|
||||
_omaggio = ZERO;
|
||||
TRecord_text rec;
|
||||
rec.set_type("TE");
|
||||
_trasfile->autoload(rec, *_cur);
|
||||
_trasfile->write(rec);
|
||||
TDocumento documento = doc_rel.curr();
|
||||
_configfile->set("NUMINI", documento.numero());
|
||||
// modifico lo stato del documento estratto
|
||||
documento.stato(statofin);
|
||||
documento.rewrite();
|
||||
for (int i=1;i<=documento.rows();i++)
|
||||
{
|
||||
TRecord_text recr;
|
||||
const TRiga_documento& rec_rdoc = documento[i];
|
||||
if (!(rec_rdoc.is_omaggio()))
|
||||
{
|
||||
if (i< documento.rows())
|
||||
{
|
||||
const TRiga_documento& rec_rigasucc = documento[i+1];
|
||||
if (rec_rigasucc.is_omaggio())
|
||||
_omaggio = rec_rigasucc.quantita();
|
||||
else
|
||||
_omaggio = ZERO;
|
||||
}
|
||||
//_riga_doc_curr = new TRiga_documento(rec_rdoc);
|
||||
doc_rel.curr(LF_RIGHEDOC) = rec_rdoc;
|
||||
recr.set_type("RI");
|
||||
_trasfile->autoload(recr, *_cur);
|
||||
_trasfile->write(recr);
|
||||
//delete _riga_doc_curr;
|
||||
}
|
||||
}
|
||||
}
|
||||
delete _cur;
|
||||
}
|
||||
_trasfile->close();
|
||||
delete _trasfile;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
int pg0388100(int argc, char **argv)
|
||||
{
|
||||
TPG0388100 a;
|
||||
a.run(argc, argv, "Trasmissione ordini");
|
||||
return 0;
|
||||
}
|
||||
|
||||
#include <applicat.h>
|
||||
#include <assoc.h>
|
||||
#include <automask.h>
|
||||
#include <currency.h>
|
||||
#include <filetext.h>
|
||||
#include <msksheet.h>
|
||||
#include <recarray.h>
|
||||
#include <relation.h>
|
||||
#include <sort.h>
|
||||
|
||||
#include "..\ve\velib.h"
|
||||
|
||||
#include "pg0388.h"
|
||||
#include "pg0388100a.h"
|
||||
|
||||
#define ALIAS_COMCF 200
|
||||
#define ALIAS_IND 300
|
||||
|
||||
class TPG0388100_file: public TFile_text
|
||||
{
|
||||
protected:
|
||||
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||
|
||||
public:
|
||||
TPG0388100_file(const TString& file_name);
|
||||
virtual ~TPG0388100_file() { }
|
||||
};
|
||||
|
||||
TPG0388100_file::TPG0388100_file(const TString& file_name)
|
||||
: TFile_text(file_name, "pg0388100a.ini")
|
||||
{
|
||||
}
|
||||
|
||||
class TPG0388100_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
public:
|
||||
|
||||
TPG0388100_mask();
|
||||
|
||||
virtual ~TPG0388100_mask(){};
|
||||
};
|
||||
|
||||
TPG0388100_mask::TPG0388100_mask() :TAutomask ("pg0388100a")
|
||||
{
|
||||
}
|
||||
|
||||
bool TPG0388100_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
class TPG0388100 : public TSkeleton_application
|
||||
{
|
||||
TCursor* _cur;
|
||||
TPG0388100_mask* _msk;
|
||||
TPG0388100_file* _trasfile;
|
||||
TConfig* _configfile;
|
||||
TRiga_documento* _riga_doc_curr;
|
||||
|
||||
virtual const char * extra_modules() const {return "ve";}
|
||||
|
||||
protected:
|
||||
virtual bool create(void);
|
||||
virtual bool destroy(void);
|
||||
virtual void main_loop() ;
|
||||
void mask2ini();
|
||||
void ini2mask();
|
||||
bool trasferisci_ordini();
|
||||
real _omaggio;
|
||||
|
||||
public:
|
||||
const real& get_omaggio() {return _omaggio;};
|
||||
TPG0388100() {} ;
|
||||
virtual ~TPG0388100() {} ;
|
||||
};
|
||||
|
||||
// restituisce un riferimento all' applicazione
|
||||
inline TPG0388100& app() { return (TPG0388100&) main_app();}
|
||||
|
||||
// gestione dei messaggi estesi nei campi
|
||||
void TPG0388100_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
||||
{
|
||||
const TString code(s.get(0));
|
||||
TString valore;
|
||||
if (code == "_FISSO")
|
||||
{
|
||||
// gestione dei campi fissi
|
||||
// sintassi: _FISSO,!<valore>
|
||||
// dove: <valore> è la stringa fissa da emettere
|
||||
TString in(s.get());
|
||||
CHECK(in[0]=='!',"Macro _FISSO senza carattere '!'");
|
||||
in.ltrim(1);
|
||||
in.trim();
|
||||
valore = in;
|
||||
}
|
||||
else if (code == "_OMAGGIO")
|
||||
{
|
||||
valore = app().get_omaggio().string();
|
||||
}
|
||||
else if (code == "_CONCAT")
|
||||
{
|
||||
TString in(s.get());
|
||||
CHECK(in[0]=='!',"Macro _CONCAT senza carattere '!'");
|
||||
in.ltrim(1);
|
||||
in.trim();
|
||||
valore << str;
|
||||
TString fi(s.get());
|
||||
str = cur.curr(in).get(fi);
|
||||
if (str.not_empty())
|
||||
{
|
||||
valore << ',';
|
||||
valore << str;
|
||||
}
|
||||
}
|
||||
else if (code == "_NOTE")
|
||||
{
|
||||
valore = cur.curr(LF_DOC).get(DOC_NOTE);
|
||||
valore.replace(char(182), '\n');
|
||||
TParagraph_string nota(valore, 50);
|
||||
valore = nota.get();
|
||||
}
|
||||
else NFCHECK("Macro non definita: %s", (const char *)code);
|
||||
str = valore;
|
||||
}
|
||||
|
||||
bool TPG0388100::create()
|
||||
{
|
||||
open_files(LF_DOC, LF_CLIFO, LF_COMUNI, LF_CFVEN, 0);
|
||||
_msk = new TPG0388100_mask();
|
||||
_configfile = new TConfig("pg0388conf.ini", "INVIO");
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TPG0388100::destroy()
|
||||
{
|
||||
delete _configfile;
|
||||
delete _msk;
|
||||
return TSkeleton_application::destroy();
|
||||
}
|
||||
|
||||
void TPG0388100::mask2ini()
|
||||
{
|
||||
//carica i parametri del file di configurazione
|
||||
_configfile->set_paragraph("INVIO");
|
||||
for (int i = 0; i < _msk->fields() ; i++)
|
||||
{
|
||||
TMask_field& f = _msk->fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
if (fr != NULL)
|
||||
_configfile->set(fr->name(), f.get());
|
||||
}
|
||||
}
|
||||
|
||||
void TPG0388100::ini2mask()
|
||||
{
|
||||
//carica i parametri del file di configurazione
|
||||
_configfile->set_paragraph("INVIO");
|
||||
for (int i = 0; i < _msk->fields() ; i++)
|
||||
{
|
||||
TMask_field& f = _msk->fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
if (fr != NULL)
|
||||
{
|
||||
const TString& val = _configfile->get(fr->name());
|
||||
f.set(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TPG0388100::main_loop()
|
||||
{
|
||||
KEY tasto;
|
||||
ini2mask();
|
||||
tasto = _msk->run();
|
||||
if (tasto == K_ENTER)
|
||||
{
|
||||
mask2ini();
|
||||
if (trasferisci_ordini())
|
||||
message_box(TR("Trasmissione ordini completata"));
|
||||
}
|
||||
}
|
||||
|
||||
bool TPG0388100::trasferisci_ordini()
|
||||
{
|
||||
const TFilename file = _msk->get(F_FILENAME);
|
||||
_trasfile = new TPG0388100_file(file);
|
||||
_trasfile->open(file,'w');
|
||||
|
||||
//parametri dei documenti da estrarre
|
||||
const TString4 numord = _msk->get(F_NUMORD);
|
||||
const char statoini = _msk->get(F_STATOINI)[0];
|
||||
const char statofin = _msk->get(F_STATOFIN)[0];
|
||||
const int anno = _msk->get_int(F_ANNO);
|
||||
const long numini = _msk->get_long(F_NUMINI);
|
||||
const long numfin = _msk->get_long(F_NUMFIN);
|
||||
TRelation doc_rel(LF_DOC);
|
||||
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_COMUNI, "COM==COMCF", 1, LF_CLIFO, ALIAS_COMCF);
|
||||
doc_rel.add(LF_INDSP, "TIPOCF==TIPOCF|CODCF==CODCF|CODIND==CODINDSP");
|
||||
doc_rel.add(LF_COMUNI, "COM==COM", 1, LF_INDSP, ALIAS_IND);
|
||||
TRectype da(LF_DOC);
|
||||
TRectype a(LF_DOC);
|
||||
da.put(DOC_PROVV, "D");
|
||||
a.put(DOC_PROVV, "D");
|
||||
da.put(DOC_ANNO, anno);
|
||||
a.put(DOC_ANNO, anno);
|
||||
da.put(DOC_CODNUM, numord);
|
||||
a.put(DOC_CODNUM, numord);
|
||||
da.put(DOC_NDOC, numini);
|
||||
a.put(DOC_NDOC, numfin);
|
||||
TString filt_expr;
|
||||
filt_expr = "(STATO==\"";
|
||||
filt_expr << statoini << "\")";
|
||||
doc_rel.lfile().set_curr(new TDocumento);
|
||||
_omaggio = ZERO;
|
||||
_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
|
||||
if (cur_items != 0)
|
||||
{
|
||||
for (*_cur = 0; _cur->pos() < cur_items; ++(*_cur))
|
||||
{
|
||||
_omaggio = ZERO;
|
||||
TRecord_text rec;
|
||||
rec.set_type("TE");
|
||||
_trasfile->autoload(rec, *_cur);
|
||||
_trasfile->write(rec);
|
||||
TDocumento documento = doc_rel.curr();
|
||||
_configfile->set("NUMINI", documento.numero());
|
||||
// modifico lo stato del documento estratto
|
||||
documento.stato(statofin);
|
||||
documento.rewrite();
|
||||
for (int i=1;i<=documento.rows();i++)
|
||||
{
|
||||
TRecord_text recr;
|
||||
const TRiga_documento& rec_rdoc = documento[i];
|
||||
if (!(rec_rdoc.is_omaggio()))
|
||||
{
|
||||
if (i< documento.rows())
|
||||
{
|
||||
const TRiga_documento& rec_rigasucc = documento[i+1];
|
||||
if (rec_rigasucc.is_omaggio())
|
||||
_omaggio = rec_rigasucc.quantita();
|
||||
else
|
||||
_omaggio = ZERO;
|
||||
}
|
||||
//_riga_doc_curr = new TRiga_documento(rec_rdoc);
|
||||
doc_rel.curr(LF_RIGHEDOC) = rec_rdoc;
|
||||
recr.set_type("RI");
|
||||
_trasfile->autoload(recr, *_cur);
|
||||
_trasfile->write(recr);
|
||||
//delete _riga_doc_curr;
|
||||
}
|
||||
}
|
||||
}
|
||||
delete _cur;
|
||||
}
|
||||
_trasfile->close();
|
||||
delete _trasfile;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
int pg0388100(int argc, char **argv)
|
||||
{
|
||||
TPG0388100 a;
|
||||
a.run(argc, argv, "Trasmissione ordini");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_FILENAME 103
|
||||
#define F_ANNO 104
|
||||
#define F_NUMINI 105
|
||||
#define F_NUMFIN 106
|
||||
#define F_NUMORD 107
|
||||
#define F_DESORD 108
|
||||
#define F_STATOINI 109
|
||||
#define F_STATOFIN 110
|
||||
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_FILENAME 103
|
||||
#define F_ANNO 104
|
||||
#define F_NUMINI 105
|
||||
#define F_NUMFIN 106
|
||||
#define F_NUMORD 107
|
||||
#define F_DESORD 108
|
||||
#define F_STATOINI 109
|
||||
#define F_STATOFIN 110
|
||||
|
||||
|
@ -1,204 +1,204 @@
|
||||
[MAIN]
|
||||
DECSEP = ,
|
||||
FIELDSEP = |
|
||||
RECORDSEP =
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = -1
|
||||
TYPELEN = -1
|
||||
TYPEPOS = -1
|
||||
|
||||
[TYPE FISSO]
|
||||
ALIGN =
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE DATA]
|
||||
ALIGN =
|
||||
DATA = D
|
||||
DECIMAL = 0
|
||||
FILLER =
|
||||
LENGTH = 6
|
||||
PICTURE =
|
||||
|
||||
[TYPE NUMERO]
|
||||
ALIGN = R
|
||||
DATA = N
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE STRINGA]
|
||||
ALIGN = L
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE IMPORTO]
|
||||
ALIGN = R
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[RECORD TE]
|
||||
|
||||
NAME(0)=RECORD TESTA
|
||||
TYPE(0)=STRINGA
|
||||
MESSAGE(0)=_FISSO,!T
|
||||
|
||||
NAME(1) = CODICE DESTINAZIONE MERCE
|
||||
TYPE(1) = STRINGA
|
||||
FIELD(1) = 33->CODINDSP
|
||||
|
||||
NAME(2) = RAGIONE SOCIALE DESTINAZIONE MERCE
|
||||
TYPE(2) = STRINGA
|
||||
FIELD(2) = 16->RAGSOC
|
||||
|
||||
NAME(3) = VIA DESTINAZIONE MERCE
|
||||
TYPE(3) = STRINGA
|
||||
FIELD(3) = 16->INDIR
|
||||
MESSAGE(3) = _CONCAT,!16,CIV
|
||||
|
||||
NAME(4) = CAP DESTINAZIONE MERCE
|
||||
TYPE(4) = STRINGA
|
||||
FIELD(4) = 16->CAP
|
||||
|
||||
NAME(5) = CITTA DESTINAZIONE MERCE
|
||||
TYPE(5) = STRINGA
|
||||
FIELD(5) = 16->LOCALITA
|
||||
|
||||
NAME(6) = PROVINCIA DESTINAZIONE MERCE
|
||||
TYPE(6) = STRINGA
|
||||
|
||||
NAME(7) = RAGIONE SOCIALE CLIENTE
|
||||
TYPE(7) = STRINGA
|
||||
FIELD(7) = 20->RAGSOC
|
||||
|
||||
NAME(8) = SEGUITO RAGIONE SOCIALE
|
||||
TYPE(8) = STRINGA
|
||||
|
||||
NAME(9) = VIA CLIENTE
|
||||
TYPE(9) = STRINGA
|
||||
FIELD(9) = 20->INDCF
|
||||
MESSAGE(9) = _CONCAT,!20,CIVCF
|
||||
|
||||
NAME(10) = CAP CLIENTE
|
||||
TYPE(10) = STRINGA
|
||||
FIELD(10) = 20->CAPCF
|
||||
|
||||
NAME(11) = CITTA CLIENTE
|
||||
TYPE(11) = STRINGA
|
||||
FIELD(11) = 13->DENCOM
|
||||
|
||||
NAME(12) = PROVINCIA CLIENTE
|
||||
TYPE(12) = STRINGA
|
||||
FIELD(12) = 13->PROVCOM
|
||||
|
||||
NAME(13) = PARTITA IVA CLIENTE
|
||||
TYPE(13) = STRINGA
|
||||
FIELD(13) = 20->PAIV
|
||||
|
||||
NAME(14) = CODICE CLIENTE
|
||||
TYPE(14) = STRINGA
|
||||
FIELD(14) = 20->CODCF
|
||||
|
||||
NAME(15) = ABI
|
||||
TYPE(15) = STRINGA
|
||||
FIELD(15) = 33->CODABIA
|
||||
|
||||
NAME(16) = CAB
|
||||
TYPE(16) = STRINGA
|
||||
FIELD(16) = 33->CODCABA
|
||||
|
||||
NAME(17) = CATEGORIA CLIENTE
|
||||
TYPE(17) = STRINGA
|
||||
FIELD(17) = 33->CATVEN
|
||||
|
||||
NAME(18) = NUMERO ORDINE
|
||||
TYPE(18) = STRINGA
|
||||
FIELD(18) = 33->NDOC
|
||||
|
||||
NAME(19) = ANNO ORDINE
|
||||
TYPE(19) = STRINGA
|
||||
FIELD(19) = 33->ANNO
|
||||
|
||||
NAME(20) = DATA ORDINE
|
||||
TYPE(20) = STRINGA
|
||||
FIELD(20) = 33->DATADOC
|
||||
|
||||
NAME(21) = DATA CONSEGNA ORDINE
|
||||
TYPE(21) = STRINGA
|
||||
FIELD(21) = 33->DATACONS
|
||||
|
||||
NAME(22) = CODICE AGENTE
|
||||
TYPE(22) = STRINGA
|
||||
FIELD(22) = 33->CODAG
|
||||
|
||||
NAME(23) = RIFERIMENTO
|
||||
TYPE(23) = STRINGA
|
||||
|
||||
NAME(24) = CAUSALE TRASPORTO
|
||||
TYPE(24) = STRINGA
|
||||
FIELD(24) = 33->CAUSTRASP
|
||||
|
||||
NAME(25) = IMPORTO CONTRASSEGNO
|
||||
TYPE(25) = STRINGA
|
||||
|
||||
[RECORD RI]
|
||||
|
||||
NAME(0)=RECORD RIGHE
|
||||
TYPE(0)=STRINGA
|
||||
MESSAGE(0)=_FISSO,!R
|
||||
|
||||
NAME(1) = NUMERO ORDINE
|
||||
TYPE(1) = STRINGA
|
||||
FIELD(1) = 34->NDOC
|
||||
|
||||
NAME(2) = ANNO ORDINE
|
||||
TYPE(2) = STRINGA
|
||||
FIELD(2) = 34->ANNO
|
||||
|
||||
NAME(3) = RIGA ORDINE
|
||||
TYPE(3) = STRINGA
|
||||
FIELD(3) = 34->NRIGA
|
||||
|
||||
NAME(4) = CODICE ARTICOLO
|
||||
TYPE(4) = STRINGA
|
||||
FIELD(4) = 34->CODART
|
||||
|
||||
NAME(5) = DESCRIZIONE ARTICOLO
|
||||
TYPE(5) = STRINGA
|
||||
FIELD(5) = 34->DESCR
|
||||
|
||||
NAME(6) = QUANTITA FATTURATA
|
||||
TYPE(6) = STRINGA
|
||||
FIELD(6) = 34->QTA
|
||||
|
||||
NAME(7) = QUANTITA IN SCONTO
|
||||
TYPE(7) = STRINGA
|
||||
|
||||
NAME(8) = QUANTITA OMAGGIO
|
||||
TYPE(8) = STRINGA
|
||||
MESSAGE(8) = _OMAGGIO
|
||||
|
||||
NAME(9) = PREZZO UNITARIO
|
||||
TYPE(9) = STRINGA
|
||||
FIELD(9) = 34->PREZZO
|
||||
|
||||
NAME(10) = SCONTO 1
|
||||
TYPE(10) = STRINGA
|
||||
FIELD(10) = 34->SCONTO
|
||||
|
||||
NAME(11) = SCONTO 2
|
||||
TYPE(11) = STRINGA
|
||||
|
||||
NAME(12) = NOTE DI RIGA
|
||||
TYPE(12) = STRINGA
|
||||
|
||||
[MAIN]
|
||||
DECSEP = ,
|
||||
FIELDSEP = |
|
||||
RECORDSEP =
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = -1
|
||||
TYPELEN = -1
|
||||
TYPEPOS = -1
|
||||
|
||||
[TYPE FISSO]
|
||||
ALIGN =
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE DATA]
|
||||
ALIGN =
|
||||
DATA = D
|
||||
DECIMAL = 0
|
||||
FILLER =
|
||||
LENGTH = 6
|
||||
PICTURE =
|
||||
|
||||
[TYPE NUMERO]
|
||||
ALIGN = R
|
||||
DATA = N
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE STRINGA]
|
||||
ALIGN = L
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE IMPORTO]
|
||||
ALIGN = R
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[RECORD TE]
|
||||
|
||||
NAME(0)=RECORD TESTA
|
||||
TYPE(0)=STRINGA
|
||||
MESSAGE(0)=_FISSO,!T
|
||||
|
||||
NAME(1) = CODICE DESTINAZIONE MERCE
|
||||
TYPE(1) = STRINGA
|
||||
FIELD(1) = 33->CODINDSP
|
||||
|
||||
NAME(2) = RAGIONE SOCIALE DESTINAZIONE MERCE
|
||||
TYPE(2) = STRINGA
|
||||
FIELD(2) = 16->RAGSOC
|
||||
|
||||
NAME(3) = VIA DESTINAZIONE MERCE
|
||||
TYPE(3) = STRINGA
|
||||
FIELD(3) = 16->INDIR
|
||||
MESSAGE(3) = _CONCAT,!16,CIV
|
||||
|
||||
NAME(4) = CAP DESTINAZIONE MERCE
|
||||
TYPE(4) = STRINGA
|
||||
FIELD(4) = 16->CAP
|
||||
|
||||
NAME(5) = CITTA DESTINAZIONE MERCE
|
||||
TYPE(5) = STRINGA
|
||||
FIELD(5) = 16->LOCALITA
|
||||
|
||||
NAME(6) = PROVINCIA DESTINAZIONE MERCE
|
||||
TYPE(6) = STRINGA
|
||||
|
||||
NAME(7) = RAGIONE SOCIALE CLIENTE
|
||||
TYPE(7) = STRINGA
|
||||
FIELD(7) = 20->RAGSOC
|
||||
|
||||
NAME(8) = SEGUITO RAGIONE SOCIALE
|
||||
TYPE(8) = STRINGA
|
||||
|
||||
NAME(9) = VIA CLIENTE
|
||||
TYPE(9) = STRINGA
|
||||
FIELD(9) = 20->INDCF
|
||||
MESSAGE(9) = _CONCAT,!20,CIVCF
|
||||
|
||||
NAME(10) = CAP CLIENTE
|
||||
TYPE(10) = STRINGA
|
||||
FIELD(10) = 20->CAPCF
|
||||
|
||||
NAME(11) = CITTA CLIENTE
|
||||
TYPE(11) = STRINGA
|
||||
FIELD(11) = 13->DENCOM
|
||||
|
||||
NAME(12) = PROVINCIA CLIENTE
|
||||
TYPE(12) = STRINGA
|
||||
FIELD(12) = 13->PROVCOM
|
||||
|
||||
NAME(13) = PARTITA IVA CLIENTE
|
||||
TYPE(13) = STRINGA
|
||||
FIELD(13) = 20->PAIV
|
||||
|
||||
NAME(14) = CODICE CLIENTE
|
||||
TYPE(14) = STRINGA
|
||||
FIELD(14) = 20->CODCF
|
||||
|
||||
NAME(15) = ABI
|
||||
TYPE(15) = STRINGA
|
||||
FIELD(15) = 33->CODABIA
|
||||
|
||||
NAME(16) = CAB
|
||||
TYPE(16) = STRINGA
|
||||
FIELD(16) = 33->CODCABA
|
||||
|
||||
NAME(17) = CATEGORIA CLIENTE
|
||||
TYPE(17) = STRINGA
|
||||
FIELD(17) = 33->CATVEN
|
||||
|
||||
NAME(18) = NUMERO ORDINE
|
||||
TYPE(18) = STRINGA
|
||||
FIELD(18) = 33->NDOC
|
||||
|
||||
NAME(19) = ANNO ORDINE
|
||||
TYPE(19) = STRINGA
|
||||
FIELD(19) = 33->ANNO
|
||||
|
||||
NAME(20) = DATA ORDINE
|
||||
TYPE(20) = STRINGA
|
||||
FIELD(20) = 33->DATADOC
|
||||
|
||||
NAME(21) = DATA CONSEGNA ORDINE
|
||||
TYPE(21) = STRINGA
|
||||
FIELD(21) = 33->DATACONS
|
||||
|
||||
NAME(22) = CODICE AGENTE
|
||||
TYPE(22) = STRINGA
|
||||
FIELD(22) = 33->CODAG
|
||||
|
||||
NAME(23) = RIFERIMENTO
|
||||
TYPE(23) = STRINGA
|
||||
|
||||
NAME(24) = CAUSALE TRASPORTO
|
||||
TYPE(24) = STRINGA
|
||||
FIELD(24) = 33->CAUSTRASP
|
||||
|
||||
NAME(25) = IMPORTO CONTRASSEGNO
|
||||
TYPE(25) = STRINGA
|
||||
|
||||
[RECORD RI]
|
||||
|
||||
NAME(0)=RECORD RIGHE
|
||||
TYPE(0)=STRINGA
|
||||
MESSAGE(0)=_FISSO,!R
|
||||
|
||||
NAME(1) = NUMERO ORDINE
|
||||
TYPE(1) = STRINGA
|
||||
FIELD(1) = 34->NDOC
|
||||
|
||||
NAME(2) = ANNO ORDINE
|
||||
TYPE(2) = STRINGA
|
||||
FIELD(2) = 34->ANNO
|
||||
|
||||
NAME(3) = RIGA ORDINE
|
||||
TYPE(3) = STRINGA
|
||||
FIELD(3) = 34->NRIGA
|
||||
|
||||
NAME(4) = CODICE ARTICOLO
|
||||
TYPE(4) = STRINGA
|
||||
FIELD(4) = 34->CODART
|
||||
|
||||
NAME(5) = DESCRIZIONE ARTICOLO
|
||||
TYPE(5) = STRINGA
|
||||
FIELD(5) = 34->DESCR
|
||||
|
||||
NAME(6) = QUANTITA FATTURATA
|
||||
TYPE(6) = STRINGA
|
||||
FIELD(6) = 34->QTA
|
||||
|
||||
NAME(7) = QUANTITA IN SCONTO
|
||||
TYPE(7) = STRINGA
|
||||
|
||||
NAME(8) = QUANTITA OMAGGIO
|
||||
TYPE(8) = STRINGA
|
||||
MESSAGE(8) = _OMAGGIO
|
||||
|
||||
NAME(9) = PREZZO UNITARIO
|
||||
TYPE(9) = STRINGA
|
||||
FIELD(9) = 34->PREZZO
|
||||
|
||||
NAME(10) = SCONTO 1
|
||||
TYPE(10) = STRINGA
|
||||
FIELD(10) = 34->SCONTO
|
||||
|
||||
NAME(11) = SCONTO 2
|
||||
TYPE(11) = STRINGA
|
||||
|
||||
NAME(12) = NOTE DI RIGA
|
||||
TYPE(12) = STRINGA
|
||||
|
||||
|
@ -1,117 +1,117 @@
|
||||
#include "pg0388100a.h"
|
||||
|
||||
TOOLBAR "" 0 -5 0 4
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -11 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -11 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Trasmissione ordini" -1 -1 78 18
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 0 "@bDitta"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice "
|
||||
FLAGS "GDF"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 17 1 "Rag.Soc. "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 3 "@bParametri"
|
||||
END
|
||||
|
||||
STRING F_FILENAME 52
|
||||
BEGIN
|
||||
PROMPT 2 4 "Nome file da creare "
|
||||
CHECKTYPE REQUIRED
|
||||
VALIDATE FILENAME_FUNC
|
||||
FLAGS "A"
|
||||
HELP "Nome del file in cui scaricare i dati"
|
||||
WARNING "E' necessario specificare un nome di file"
|
||||
FIELD FILENAME
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 2 5 "Anno ordini "
|
||||
HELP "Anno ordini da trasferire"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD ANNO
|
||||
END
|
||||
|
||||
|
||||
NUMBER F_NUMINI 7
|
||||
BEGIN
|
||||
PROMPT 2 6 "Ordini dal "
|
||||
HELP "Numero ordine iniziale"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD NUMINI
|
||||
END
|
||||
|
||||
NUMBER F_NUMFIN 7
|
||||
BEGIN
|
||||
PROMPT 30 6 "al "
|
||||
HELP "Numero ordine finale"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 9 "@bParametri di configurazione"
|
||||
END
|
||||
|
||||
STRING F_NUMORD 4
|
||||
BEGIN
|
||||
PROMPT 2 10 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_NUMORD
|
||||
OUTPUT F_DESORD S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "UD"
|
||||
FIELD NUMORD
|
||||
END
|
||||
|
||||
STRING F_DESORD 50
|
||||
BEGIN
|
||||
PROMPT 20 10 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_STATOINI 1
|
||||
BEGIN
|
||||
PROMPT 2 11 "Stato ordini da trasmettere "
|
||||
FLAGS "D"
|
||||
FIELD STATOINI
|
||||
END
|
||||
|
||||
STRING F_STATOFIN 1
|
||||
BEGIN
|
||||
PROMPT 2 12 "Stato da attribuire dopo la trasmissione"
|
||||
FLAGS "D"
|
||||
FIELD STATOFIN
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
#include "pg0388100a.h"
|
||||
|
||||
TOOLBAR "" 0 -5 0 4
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -11 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -11 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Trasmissione ordini" -1 -1 78 18
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 0 "@bDitta"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice "
|
||||
FLAGS "GDF"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 17 1 "Rag.Soc. "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 3 "@bParametri"
|
||||
END
|
||||
|
||||
STRING F_FILENAME 52
|
||||
BEGIN
|
||||
PROMPT 2 4 "Nome file da creare "
|
||||
CHECKTYPE REQUIRED
|
||||
VALIDATE FILENAME_FUNC
|
||||
FLAGS "A"
|
||||
HELP "Nome del file in cui scaricare i dati"
|
||||
WARNING "E' necessario specificare un nome di file"
|
||||
FIELD FILENAME
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 2 5 "Anno ordini "
|
||||
HELP "Anno ordini da trasferire"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD ANNO
|
||||
END
|
||||
|
||||
|
||||
NUMBER F_NUMINI 7
|
||||
BEGIN
|
||||
PROMPT 2 6 "Ordini dal "
|
||||
HELP "Numero ordine iniziale"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD NUMINI
|
||||
END
|
||||
|
||||
NUMBER F_NUMFIN 7
|
||||
BEGIN
|
||||
PROMPT 30 6 "al "
|
||||
HELP "Numero ordine finale"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 9 "@bParametri di configurazione"
|
||||
END
|
||||
|
||||
STRING F_NUMORD 4
|
||||
BEGIN
|
||||
PROMPT 2 10 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_NUMORD
|
||||
OUTPUT F_DESORD S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "UD"
|
||||
FIELD NUMORD
|
||||
END
|
||||
|
||||
STRING F_DESORD 50
|
||||
BEGIN
|
||||
PROMPT 20 10 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_STATOINI 1
|
||||
BEGIN
|
||||
PROMPT 2 11 "Stato ordini da trasmettere "
|
||||
FLAGS "D"
|
||||
FIELD STATOINI
|
||||
END
|
||||
|
||||
STRING F_STATOFIN 1
|
||||
BEGIN
|
||||
PROMPT 2 12 "Stato da attribuire dopo la trasmissione"
|
||||
FLAGS "D"
|
||||
FIELD STATOFIN
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
1250
ps/pg0388200.cpp
1250
ps/pg0388200.cpp
File diff suppressed because it is too large
Load Diff
@ -1,15 +1,15 @@
|
||||
// campi della maschera principale
|
||||
|
||||
#define F_PATH 101
|
||||
#define F_NAMEBOL 102
|
||||
#define F_NUMBOL 103
|
||||
#define F_TIPOBOL 104
|
||||
#define F_NUMORD 105
|
||||
#define F_LASTBOL 106
|
||||
#define F_DESBOL 107
|
||||
#define F_DESTIPO 108
|
||||
#define F_DESORD 109
|
||||
#define F_NAMEINV 110
|
||||
#define F_IMPBOL 111
|
||||
#define F_IMPINV 112
|
||||
#define F_STATOBOL 113
|
||||
// campi della maschera principale
|
||||
|
||||
#define F_PATH 101
|
||||
#define F_NAMEBOL 102
|
||||
#define F_NUMBOL 103
|
||||
#define F_TIPOBOL 104
|
||||
#define F_NUMORD 105
|
||||
#define F_LASTBOL 106
|
||||
#define F_DESBOL 107
|
||||
#define F_DESTIPO 108
|
||||
#define F_DESORD 109
|
||||
#define F_NAMEINV 110
|
||||
#define F_IMPBOL 111
|
||||
#define F_IMPINV 112
|
||||
#define F_STATOBOL 113
|
||||
|
@ -1,151 +1,151 @@
|
||||
[MAIN]
|
||||
DECSEP =
|
||||
FIELDSEP =
|
||||
RECORDSEP =
|
||||
RECORDSIZE =
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = 0
|
||||
TYPELEN = 4
|
||||
TYPEPOS = 0
|
||||
|
||||
[TYPE FISSO]
|
||||
ALIGN =
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH =
|
||||
PICTURE =
|
||||
|
||||
[TYPE DATA]
|
||||
ALIGN =
|
||||
DATA = D
|
||||
DECIMAL = 0
|
||||
FILLER =
|
||||
LENGTH = 10
|
||||
PICTURE =
|
||||
|
||||
[TYPE NUMERO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE IMPORTO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
LENGTH = 11
|
||||
PICTURE =
|
||||
|
||||
[TYPE STRINGA]
|
||||
ALIGN = L
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[RECORD TB01]
|
||||
NAME(0) = TIPO
|
||||
TYPE(0) = FISSO
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 4
|
||||
|
||||
NAME(1) = NUMERO
|
||||
TYPE(1) = NUMERO
|
||||
POSITION(1) = 4
|
||||
LENGTH(1) = 6
|
||||
|
||||
NAME(2) = DATA
|
||||
TYPE(2) = DATA
|
||||
POSITION(2) = 10
|
||||
LENGTH(2) = 10
|
||||
|
||||
NAME(3) = FILLER
|
||||
TYPE(3) =
|
||||
POSITION(3) = 20
|
||||
LENGTH(3) = 7
|
||||
|
||||
NAME(4) = ANNO
|
||||
TYPE(4) = NUMERO
|
||||
POSITION(4) = 27
|
||||
LENGTH(4) = 4
|
||||
|
||||
NAME(5) = NUMORD
|
||||
TYPE(5) = NUMERO
|
||||
POSITION(5) = 31
|
||||
LENGTH(5) = 6
|
||||
|
||||
NAME(6) = FILLER
|
||||
TYPE(6) =
|
||||
POSITION(6) = 37
|
||||
LENGTH(6) = 95
|
||||
|
||||
|
||||
[RECORD RB01]
|
||||
NAME(0) = TIPO
|
||||
TYPE(0) = FISSO
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 4
|
||||
|
||||
NAME(1) = NUMERO
|
||||
TYPE(1) = NUMERO
|
||||
POSITION(1) = 4
|
||||
LENGTH(1) = 6
|
||||
|
||||
NAME(2) = DATA
|
||||
TYPE(2) = DATA
|
||||
POSITION(2) = 10
|
||||
LENGTH(2) = 10
|
||||
|
||||
NAME(3) = RIGABOL
|
||||
TYPE(3) = NUMERO
|
||||
POSITION(3) = 20
|
||||
LENGTH(3) = 3
|
||||
|
||||
NAME(4) = RIGAORD
|
||||
TYPE(4) = NUMERO
|
||||
POSITION(4) = 23
|
||||
LENGTH(4) = 6
|
||||
|
||||
NAME(5) = CODART
|
||||
TYPE(5) = NUMERO
|
||||
POSITION(5) = 29
|
||||
LENGTH(5) = 10
|
||||
|
||||
NAME(6) = DESCR
|
||||
TYPE(6) = STRINGA
|
||||
POSITION(6) = 39
|
||||
LENGTH(6) = 30
|
||||
|
||||
NAME(7) = QTAFAT
|
||||
TYPE(7) = NUMERO
|
||||
POSITION(7) = 69
|
||||
LENGTH(7) = 7
|
||||
|
||||
NAME(8) = QTAOMG
|
||||
TYPE(8) = NUMERO
|
||||
POSITION(8) = 76
|
||||
LENGTH(8) = 7
|
||||
|
||||
NAME(9) = FILLER
|
||||
TYPE(9) =
|
||||
POSITION(9) = 83
|
||||
LENGTH(9) = 16
|
||||
|
||||
NAME(10) = SCADENZA
|
||||
TYPE(10) = DATA
|
||||
POSITION(10) = 99
|
||||
LENGTH(10) = 10
|
||||
|
||||
NAME(11) = LOTTO
|
||||
TYPE(11) = STRINGA
|
||||
POSITION(11) = 109
|
||||
LENGTH(11) = 12
|
||||
|
||||
NAME(12) = FILLER
|
||||
TYPE(12) =
|
||||
POSITION(12) = 121
|
||||
LENGTH(12) = 11
|
||||
[MAIN]
|
||||
DECSEP =
|
||||
FIELDSEP =
|
||||
RECORDSEP =
|
||||
RECORDSIZE =
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = 0
|
||||
TYPELEN = 4
|
||||
TYPEPOS = 0
|
||||
|
||||
[TYPE FISSO]
|
||||
ALIGN =
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH =
|
||||
PICTURE =
|
||||
|
||||
[TYPE DATA]
|
||||
ALIGN =
|
||||
DATA = D
|
||||
DECIMAL = 0
|
||||
FILLER =
|
||||
LENGTH = 10
|
||||
PICTURE =
|
||||
|
||||
[TYPE NUMERO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE IMPORTO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
LENGTH = 11
|
||||
PICTURE =
|
||||
|
||||
[TYPE STRINGA]
|
||||
ALIGN = L
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[RECORD TB01]
|
||||
NAME(0) = TIPO
|
||||
TYPE(0) = FISSO
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 4
|
||||
|
||||
NAME(1) = NUMERO
|
||||
TYPE(1) = NUMERO
|
||||
POSITION(1) = 4
|
||||
LENGTH(1) = 6
|
||||
|
||||
NAME(2) = DATA
|
||||
TYPE(2) = DATA
|
||||
POSITION(2) = 10
|
||||
LENGTH(2) = 10
|
||||
|
||||
NAME(3) = FILLER
|
||||
TYPE(3) =
|
||||
POSITION(3) = 20
|
||||
LENGTH(3) = 7
|
||||
|
||||
NAME(4) = ANNO
|
||||
TYPE(4) = NUMERO
|
||||
POSITION(4) = 27
|
||||
LENGTH(4) = 4
|
||||
|
||||
NAME(5) = NUMORD
|
||||
TYPE(5) = NUMERO
|
||||
POSITION(5) = 31
|
||||
LENGTH(5) = 6
|
||||
|
||||
NAME(6) = FILLER
|
||||
TYPE(6) =
|
||||
POSITION(6) = 37
|
||||
LENGTH(6) = 95
|
||||
|
||||
|
||||
[RECORD RB01]
|
||||
NAME(0) = TIPO
|
||||
TYPE(0) = FISSO
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 4
|
||||
|
||||
NAME(1) = NUMERO
|
||||
TYPE(1) = NUMERO
|
||||
POSITION(1) = 4
|
||||
LENGTH(1) = 6
|
||||
|
||||
NAME(2) = DATA
|
||||
TYPE(2) = DATA
|
||||
POSITION(2) = 10
|
||||
LENGTH(2) = 10
|
||||
|
||||
NAME(3) = RIGABOL
|
||||
TYPE(3) = NUMERO
|
||||
POSITION(3) = 20
|
||||
LENGTH(3) = 3
|
||||
|
||||
NAME(4) = RIGAORD
|
||||
TYPE(4) = NUMERO
|
||||
POSITION(4) = 23
|
||||
LENGTH(4) = 6
|
||||
|
||||
NAME(5) = CODART
|
||||
TYPE(5) = NUMERO
|
||||
POSITION(5) = 29
|
||||
LENGTH(5) = 10
|
||||
|
||||
NAME(6) = DESCR
|
||||
TYPE(6) = STRINGA
|
||||
POSITION(6) = 39
|
||||
LENGTH(6) = 30
|
||||
|
||||
NAME(7) = QTAFAT
|
||||
TYPE(7) = NUMERO
|
||||
POSITION(7) = 69
|
||||
LENGTH(7) = 7
|
||||
|
||||
NAME(8) = QTAOMG
|
||||
TYPE(8) = NUMERO
|
||||
POSITION(8) = 76
|
||||
LENGTH(8) = 7
|
||||
|
||||
NAME(9) = FILLER
|
||||
TYPE(9) =
|
||||
POSITION(9) = 83
|
||||
LENGTH(9) = 16
|
||||
|
||||
NAME(10) = SCADENZA
|
||||
TYPE(10) = DATA
|
||||
POSITION(10) = 99
|
||||
LENGTH(10) = 10
|
||||
|
||||
NAME(11) = LOTTO
|
||||
TYPE(11) = STRINGA
|
||||
POSITION(11) = 109
|
||||
LENGTH(11) = 12
|
||||
|
||||
NAME(12) = FILLER
|
||||
TYPE(12) =
|
||||
POSITION(12) = 121
|
||||
LENGTH(12) = 11
|
||||
|
@ -1,140 +1,140 @@
|
||||
#include "pg0388200a.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Parametri Importazione" -1 -1 78 20
|
||||
|
||||
STRING F_PATH 255 40
|
||||
BEGIN
|
||||
PROMPT 1 1 "Percorso files da importare "
|
||||
DSELECT
|
||||
FLAGS "M"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Selezionare una cartella valida!"
|
||||
FIELD PATH
|
||||
END
|
||||
|
||||
BOOLEAN F_IMPBOL
|
||||
BEGIN
|
||||
PROMPT 2 3 "@bImportazione bolle"
|
||||
MESSAGE FALSE DISABLE,F_NAMEBOL
|
||||
MESSAGE TRUE ENABLE,F_NAMEBOL
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 9
|
||||
BEGIN
|
||||
PROMPT 1 4 ""
|
||||
END
|
||||
|
||||
STRING F_NAMEBOL 30
|
||||
BEGIN
|
||||
PROMPT 2 5 "Nome file da importare "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD NAMEBOL
|
||||
END
|
||||
|
||||
STRING F_NUMBOL 4
|
||||
BEGIN
|
||||
PROMPT 2 6 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_NUMBOL
|
||||
OUTPUT F_DESBOL S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "UD"
|
||||
FIELD NUMBOL
|
||||
END
|
||||
|
||||
STRING F_DESBOL 50
|
||||
BEGIN
|
||||
PROMPT 20 6 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_TIPOBOL 4
|
||||
BEGIN
|
||||
PROMPT 2 7 "Tipo "
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPOBOL
|
||||
OUTPUT F_DESTIPO S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "UD"
|
||||
FIELD TIPOBOL
|
||||
END
|
||||
|
||||
STRING F_DESTIPO 50
|
||||
BEGIN
|
||||
PROMPT 20 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_STATOBOL 1
|
||||
BEGIN
|
||||
PROMPT 2 8 "Stato bolle importate "
|
||||
FLAGS "D"
|
||||
FIELD STATOBOL
|
||||
END
|
||||
|
||||
NUMBER F_LASTBOL 6
|
||||
BEGIN
|
||||
PROMPT 2 9 "Ultima bolla importata "
|
||||
FLAGS "D"
|
||||
FIELD LASTBOL
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT 2 10 "@bOrdini"
|
||||
END
|
||||
|
||||
STRING F_NUMORD 4
|
||||
BEGIN
|
||||
PROMPT 2 11 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_NUMORD
|
||||
OUTPUT F_DESORD S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "UD"
|
||||
FIELD NUMORD
|
||||
END
|
||||
|
||||
STRING F_DESORD 50
|
||||
BEGIN
|
||||
PROMPT 20 11 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_IMPINV
|
||||
BEGIN
|
||||
PROMPT 2 14 "@bImportazione inventario"
|
||||
MESSAGE FALSE DISABLE,F_NAMEINV
|
||||
MESSAGE TRUE ENABLE,F_NAMEINV
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 15 ""
|
||||
END
|
||||
|
||||
STRING F_NAMEINV 30
|
||||
BEGIN
|
||||
PROMPT 2 16 "Nome file da importare "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD NAMEINV
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
#include "pg0388200a.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Parametri Importazione" -1 -1 78 20
|
||||
|
||||
STRING F_PATH 255 40
|
||||
BEGIN
|
||||
PROMPT 1 1 "Percorso files da importare "
|
||||
DSELECT
|
||||
FLAGS "M"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Selezionare una cartella valida!"
|
||||
FIELD PATH
|
||||
END
|
||||
|
||||
BOOLEAN F_IMPBOL
|
||||
BEGIN
|
||||
PROMPT 2 3 "@bImportazione bolle"
|
||||
MESSAGE FALSE DISABLE,F_NAMEBOL
|
||||
MESSAGE TRUE ENABLE,F_NAMEBOL
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 9
|
||||
BEGIN
|
||||
PROMPT 1 4 ""
|
||||
END
|
||||
|
||||
STRING F_NAMEBOL 30
|
||||
BEGIN
|
||||
PROMPT 2 5 "Nome file da importare "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD NAMEBOL
|
||||
END
|
||||
|
||||
STRING F_NUMBOL 4
|
||||
BEGIN
|
||||
PROMPT 2 6 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_NUMBOL
|
||||
OUTPUT F_DESBOL S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "UD"
|
||||
FIELD NUMBOL
|
||||
END
|
||||
|
||||
STRING F_DESBOL 50
|
||||
BEGIN
|
||||
PROMPT 20 6 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_TIPOBOL 4
|
||||
BEGIN
|
||||
PROMPT 2 7 "Tipo "
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPOBOL
|
||||
OUTPUT F_DESTIPO S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "UD"
|
||||
FIELD TIPOBOL
|
||||
END
|
||||
|
||||
STRING F_DESTIPO 50
|
||||
BEGIN
|
||||
PROMPT 20 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_STATOBOL 1
|
||||
BEGIN
|
||||
PROMPT 2 8 "Stato bolle importate "
|
||||
FLAGS "D"
|
||||
FIELD STATOBOL
|
||||
END
|
||||
|
||||
NUMBER F_LASTBOL 6
|
||||
BEGIN
|
||||
PROMPT 2 9 "Ultima bolla importata "
|
||||
FLAGS "D"
|
||||
FIELD LASTBOL
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT 2 10 "@bOrdini"
|
||||
END
|
||||
|
||||
STRING F_NUMORD 4
|
||||
BEGIN
|
||||
PROMPT 2 11 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_NUMORD
|
||||
OUTPUT F_DESORD S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "UD"
|
||||
FIELD NUMORD
|
||||
END
|
||||
|
||||
STRING F_DESORD 50
|
||||
BEGIN
|
||||
PROMPT 20 11 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_IMPINV
|
||||
BEGIN
|
||||
PROMPT 2 14 "@bImportazione inventario"
|
||||
MESSAGE FALSE DISABLE,F_NAMEINV
|
||||
MESSAGE TRUE ENABLE,F_NAMEINV
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 15 ""
|
||||
END
|
||||
|
||||
STRING F_NAMEINV 30
|
||||
BEGIN
|
||||
PROMPT 2 16 "Nome file da importare "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD NAMEINV
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
@ -1,26 +1,26 @@
|
||||
[MAIN]
|
||||
DECSEP =
|
||||
FIELDSEP = ;
|
||||
RECORDSEP =
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = -1
|
||||
TYPEPOS = -1
|
||||
|
||||
[TYPE STRINGA]
|
||||
DATA = S
|
||||
|
||||
[RECORD]
|
||||
NAME(0) = CODART
|
||||
TYPE(0) = STRINGA
|
||||
|
||||
NAME(1) = LOTTO
|
||||
TYPE(1) = STRINGA
|
||||
|
||||
NAME(2) = DATASCAD
|
||||
TYPE(2) = STRINGA
|
||||
|
||||
NAME(3) = GIAC
|
||||
TYPE(3) = STRINGA
|
||||
|
||||
NAME(4) = CODMAG
|
||||
TYPE(4) = STRINGA
|
||||
[MAIN]
|
||||
DECSEP =
|
||||
FIELDSEP = ;
|
||||
RECORDSEP =
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = -1
|
||||
TYPEPOS = -1
|
||||
|
||||
[TYPE STRINGA]
|
||||
DATA = S
|
||||
|
||||
[RECORD]
|
||||
NAME(0) = CODART
|
||||
TYPE(0) = STRINGA
|
||||
|
||||
NAME(1) = LOTTO
|
||||
TYPE(1) = STRINGA
|
||||
|
||||
NAME(2) = DATASCAD
|
||||
TYPE(2) = STRINGA
|
||||
|
||||
NAME(3) = GIAC
|
||||
TYPE(3) = STRINGA
|
||||
|
||||
NAME(4) = CODMAG
|
||||
TYPE(4) = STRINGA
|
||||
|
@ -1,9 +1,9 @@
|
||||
[INVIO]
|
||||
|
||||
[RICEZIONE]
|
||||
NAME =
|
||||
PATH =
|
||||
CODNUMBOL =
|
||||
TIPOBOL =
|
||||
CODNUMORD =
|
||||
LASTBOL =
|
||||
[INVIO]
|
||||
|
||||
[RICEZIONE]
|
||||
NAME =
|
||||
PATH =
|
||||
CODNUMBOL =
|
||||
TIPOBOL =
|
||||
CODNUMORD =
|
||||
LASTBOL =
|
||||
|
@ -42,24 +42,16 @@ TLif_iterator::TLif_iterator(TLif_transfer* ht) : _ht(ht), _pi(NULL)
|
||||
{
|
||||
const TRecnotype tot = _ht->recordset().items();
|
||||
TString title;
|
||||
title << _ht->title() << ": " << tot << ' ' << TR("righe");
|
||||
if (tot > 1)
|
||||
_pi = new TProgind(tot, title, true, true);
|
||||
else
|
||||
::begin_wait();
|
||||
|
||||
if (tot > 0)
|
||||
_ht->log(title);
|
||||
|
||||
|
||||
title << _ht->title() << ": " << tot << ' ' << TR("righe");
|
||||
_pi = new TProgind(tot, title, true, true);
|
||||
_ht->log(title);
|
||||
_rec = -1;
|
||||
}
|
||||
|
||||
TLif_iterator::~TLif_iterator()
|
||||
{
|
||||
if (_pi != NULL)
|
||||
delete _pi;
|
||||
else
|
||||
::end_wait();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
@ -613,6 +613,7 @@ void TPE_mask::save_rate()
|
||||
|
||||
const TString& codval = get(F_CODVAL);
|
||||
const real cambio = get(F_CAMBIO);
|
||||
const bool eurocambio = get_bool(F_EURO);
|
||||
|
||||
bool zeroes = FALSE; // Esistono righe effetto da cancellare
|
||||
|
||||
|
@ -100,7 +100,7 @@ error_type TContabil_tsys::write_all(TDocumento& doc, TMovimentoPN_VE & moviment
|
||||
const int iva_items = movimento.iva_items();
|
||||
const int cg_items = movimento.cg_items();
|
||||
TCurrency c(ZERO);
|
||||
const real dec = c.decimals();
|
||||
const int dec = c.decimals();
|
||||
const real molt = pow(10.0, dec);
|
||||
|
||||
if (test_swap())
|
||||
|
@ -359,13 +359,13 @@ void TStatistiche_ANIVAL_csv_recordset::aggiungi_riga(TDocument_recordset& righe
|
||||
{
|
||||
//codart
|
||||
new_rec("");
|
||||
set(0, TVariant(codart));
|
||||
set(0, codart);
|
||||
//descrart
|
||||
const TString& descrart = cache().get(LF_ANAMAG, codart, ANAMAG_DESCR);
|
||||
set(1, TVariant(descrart));
|
||||
set(1, descrart);
|
||||
|
||||
set(28, TVariant(grmerc));
|
||||
set(29, TVariant(codcf));
|
||||
set(28, grmerc);
|
||||
set(29, codcf);
|
||||
|
||||
//re-sorting per codart (serve perchè solo il recordset ordinato è scannerizzabile con il plutonico metodo dicotomico)
|
||||
switch (tipo_stat)
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <execp.h>
|
||||
#include <progind.h>
|
||||
#include <reprint.h>
|
||||
#include <sheet.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "../or/orlib.h"
|
||||
@ -265,34 +266,34 @@ void TGenera_ordini_mask::update_sheet()
|
||||
TToken_string & row = sf.row(i);
|
||||
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);
|
||||
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("UMART.UM").as_string(), sf.cid2index(F_UM));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCR).as_string(), sf.cid2index(SA_DESCR));
|
||||
row.add(recset.get("UMART.UM").as_string(), sf.cid2index(SA_UM));
|
||||
|
||||
const long codforn = recset.get(LF_ANAMAG, ANAMAG_CODFORN).as_int();
|
||||
|
||||
row.add(codforn, sf.cid2index(F_FORNITORE));
|
||||
row.add(recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(F_RAGSOC));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(F_LEADTIME));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_LOTTORIOR).as_string(), sf.cid2index(F_LOTTOMIN));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCRAGG).as_string(), sf.cid2index(F_DESCRAGG));
|
||||
row.add(giac.string(), sf.cid2index(F_GIACENZA));
|
||||
row.add(codforn, sf.cid2index(SA_FORNITORE));
|
||||
row.add(recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(SA_RAGSOC));
|
||||
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(SA_LOTTOMIN));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCRAGG).as_string(), sf.cid2index(SA_DESCRAGG));
|
||||
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_USER1).as_string(), sf.cid2index(F_USER1));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER2).as_string(), sf.cid2index(F_USER2));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER3).as_string(), sf.cid2index(F_USER3));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER4).as_string(), sf.cid2index(F_USER4));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER5).as_string(), sf.cid2index(F_USER5));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER6).as_string(), sf.cid2index(F_USER6));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER7).as_string(), sf.cid2index(F_USER7));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER8).as_string(), sf.cid2index(F_USER8));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER9).as_string(), sf.cid2index(F_USER9));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER10).as_string(), sf.cid2index(F_USER10));
|
||||
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(SA_USER1));
|
||||
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(SA_USER3));
|
||||
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(SA_USER5));
|
||||
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(SA_USER7));
|
||||
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(SA_USER9));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER10).as_string(), sf.cid2index(SA_USER10));
|
||||
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);
|
||||
if (check_expr)
|
||||
{
|
||||
@ -323,7 +324,7 @@ void TGenera_ordini_mask::update_orders()
|
||||
_order_changed = false;
|
||||
TWait_cursor hourglass;
|
||||
|
||||
TSheet_field& sh = sfield(F_ORDERS);
|
||||
TSheet_field& sh = sfield(F_DOCUMENTS);
|
||||
sh.destroy();
|
||||
|
||||
TString query;
|
||||
@ -350,7 +351,7 @@ void TGenera_ordini_mask::update_orders()
|
||||
TMask& m = sh.sheet_mask();
|
||||
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())
|
||||
{
|
||||
TToken_string& row = sh.row(-1);
|
||||
@ -387,7 +388,7 @@ void TGenera_ordini_mask::next_page(int p)
|
||||
}
|
||||
if (_order_changed)
|
||||
{
|
||||
const TSheet_field& sf = sfield(F_ORDERS);
|
||||
const TSheet_field& sf = sfield(F_DOCUMENTS);
|
||||
if (win() == sf.parent())
|
||||
update_orders();
|
||||
}
|
||||
@ -734,7 +735,7 @@ void TGenera_ordini_mask::on_idle()
|
||||
{
|
||||
//si posiziona sulla qta
|
||||
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);
|
||||
_riga_da_selezionare = -1;
|
||||
sf_righe.set_focus();
|
||||
@ -772,8 +773,8 @@ TGenera_ordini_mask::TGenera_ordini_mask()
|
||||
|
||||
for (int i = 1; i <= 10; i++)
|
||||
{
|
||||
const int col = sh.cid2index(F_USER1 + i -1);
|
||||
TEditable_field & f = sh_mask.efield(F_USER1 + i - 1);
|
||||
const int col = sh.cid2index(SA_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))
|
||||
{
|
||||
@ -876,7 +877,7 @@ void TCreazione_ordini::aggiorna_stato_doc_orig(const TRectype& rdoc)
|
||||
void TCreazione_ordini::generate_carics()
|
||||
{
|
||||
TGenera_ordini_mask& mask = *_mask;
|
||||
TSheet_field& sf = mask.sfield(F_ORDERS);
|
||||
TSheet_field& sf = mask.sfield(F_DOCUMENTS);
|
||||
|
||||
long minforn = 999999L;
|
||||
long maxforn = 0L;
|
||||
@ -912,21 +913,21 @@ void TCreazione_ordini::generate_carics()
|
||||
{
|
||||
if (!pi.setstatus(n))
|
||||
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())
|
||||
{
|
||||
const TString8 codforn(row->get(sf.cid2index(S_FORNITORE)));
|
||||
const TString8 codforn(row->get(sf.cid2index(SD_FORNITORE)));
|
||||
const long cod = atol(codforn);
|
||||
TString8 key; key.format("F|%ld", cod);
|
||||
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 TRectype& forven = cache().get(LF_CFVEN, key);
|
||||
const TString4 codiva(forven.get(CFV_ASSFIS));
|
||||
const TString commessa = row->get(sf.cid2index(S_CDC));
|
||||
const TString fase = row->get(sf.cid2index(S_FSC));
|
||||
const TString commessa = row->get(sf.cid2index(SA_CDC));
|
||||
const TString fase = row->get(sf.cid2index(SA_FSC));
|
||||
|
||||
TDocumento* d = (TDocumento*)orders.objptr(codforn);
|
||||
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_CODAGG2, row->get(sf.cid2index(F_CODAGG2)));
|
||||
*/
|
||||
const TDate dataord = row->get(sf.cid2index(S_DATADOC));
|
||||
const long ndoc = row->get_long(sf.cid2index(S_NUMDOC));
|
||||
const int nriga = row->get_int(sf.cid2index(S_NUMRIGA));
|
||||
const TDate dataord = row->get(sf.cid2index(SD_DATADOC));
|
||||
const long ndoc = row->get_long(sf.cid2index(SD_NUMDOC));
|
||||
const int nriga = row->get_int(sf.cid2index(SD_NUMRIGA));
|
||||
TRectype& rigord = righedoc.curr();
|
||||
rigord.put(RDOC_PROVV, 'D');
|
||||
rigord.put(RDOC_ANNO, dataord.year());
|
||||
@ -1141,19 +1142,19 @@ void TCreazione_ordini::generate_orders()
|
||||
if (!pi.setstatus(n))
|
||||
break;
|
||||
|
||||
const real qta = row->get(sf.cid2index(F_QTA));
|
||||
const real qta = row->get(sf.cid2index(SA_QTA));
|
||||
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);
|
||||
TString8 key; key.format("F|%ld", cod);
|
||||
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 TRectype& forven = cache().get(LF_CFVEN, key);
|
||||
const TString4 codiva(forven.get(CFV_ASSFIS));
|
||||
const TString commessa = row->get(sf.cid2index(F_CDC));
|
||||
const TString fase = row->get(sf.cid2index(F_FSC));
|
||||
const TString commessa = row->get(sf.cid2index(SA_CDC));
|
||||
const TString fase = row->get(sf.cid2index(SA_FSC));
|
||||
|
||||
TDocumento* d = (TDocumento*)orders.objptr(codforn);
|
||||
if (d == NULL)
|
||||
@ -1203,23 +1204,23 @@ void TCreazione_ordini::generate_orders()
|
||||
}
|
||||
|
||||
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_CODMAGC, codmagc);
|
||||
rdoc.put(RDOC_CODART, codart);
|
||||
rdoc.put(RDOC_CODARTMAG, codart);
|
||||
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())
|
||||
{
|
||||
rdoc.put(RDOC_DESCLUNGA, "X");
|
||||
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_DATACONS, datacons);
|
||||
|
||||
@ -1240,10 +1241,10 @@ void TCreazione_ordini::generate_orders()
|
||||
|
||||
for (int i = 0; i < 10 ; i++)
|
||||
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_CODAGG2, row->get(sf.cid2index(F_CODAGG2)));
|
||||
rdoc.put(RDOC_CODAGG1, row->get(sf.cid2index(SA_CODAGG1)));
|
||||
rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(SA_CODAGG2)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -132,7 +132,7 @@ void TListinoPs0816::import_listino(const TMask& m)
|
||||
TRecord_text curr;
|
||||
while (file.read(curr) == NOERR)
|
||||
{
|
||||
pi.setstatus(file.read_file()->tellg());
|
||||
pi.setstatus((long)file.read_file()->tellg());
|
||||
if (pi.iscancelled())
|
||||
break;
|
||||
codart = file.get_field(curr, "CODICE ARTICOLO");
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include <defmask.h>
|
||||
#include <relation.h>
|
||||
#include <reprint.h>
|
||||
#include <sheet.h>
|
||||
|
||||
#include "ps0872.h"
|
||||
#include "ps0872200a.h"
|
||||
|
@ -284,7 +284,7 @@ bool TImpPaghe::transfer()
|
||||
TRecord_text curr;
|
||||
while (_trasfile->read(curr) == NOERR)
|
||||
{
|
||||
pi.setstatus(_trasfile->read_file()->tellg());
|
||||
pi.setstatus((long)_trasfile->read_file()->tellg());
|
||||
TString impstr = curr.get(F_IMPORTO);
|
||||
real importo(impstr);
|
||||
importo = importo/100;
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include <defmask.h>
|
||||
#include <relation.h>
|
||||
#include <reprint.h>
|
||||
#include <sheet.h>
|
||||
|
||||
#include "ps0920.h"
|
||||
#include "ps0920100a.h"
|
||||
|
@ -467,17 +467,17 @@ void TClosure_msk::load_sheet()
|
||||
FOR_EACH_TOKEN(rif, tok)
|
||||
row.add(tok);
|
||||
|
||||
row.add(rec.get("S1"), s.cid2index(F_CODART));
|
||||
row.add(rec.get("I1"), s.cid2index(F_PALET1));
|
||||
row.add(rec.get("I2"), s.cid2index(F_SPEZZ1));
|
||||
row.add(rec.get("I3"), s.cid2index(F_PALET2));
|
||||
row.add(rec.get("I4"), s.cid2index(F_SPEZZ2));
|
||||
row.add(rec.get("B0"), s.cid2index(F_SALDO));
|
||||
row.add(rec.get("S6"), s.cid2index(F_LOTTO));
|
||||
row.add(rec.get("D0"), s.cid2index(F_DATA));
|
||||
row.add(rec.get("B1"), s.cid2index(F_EVASA));
|
||||
row.add(rec.get("D1"), s.cid2index(F_DATEVAS));
|
||||
row.add(rec.get("CODTAB"), s.cid2index(F_RECORD));
|
||||
row.add(rec.get("S1"), s.cid2index(S_CODART));
|
||||
row.add(rec.get("I1"), s.cid2index(S_PALET1));
|
||||
row.add(rec.get("I2"), s.cid2index(S_SPEZZ1));
|
||||
row.add(rec.get("I3"), s.cid2index(S_PALET2));
|
||||
row.add(rec.get("I4"), s.cid2index(S_SPEZZ2));
|
||||
row.add(rec.get("B0"), s.cid2index(S_SALDO));
|
||||
row.add(rec.get("S6"), s.cid2index(S_LOTTO));
|
||||
row.add(rec.get("D0"), s.cid2index(S_DATA));
|
||||
row.add(rec.get("B1"), s.cid2index(S_EVASA));
|
||||
row.add(rec.get("D1"), s.cid2index(S_DATEVAS));
|
||||
row.add(rec.get("CODTAB"), s.cid2index(S_RECORD));
|
||||
|
||||
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);
|
||||
int err = NOERR;
|
||||
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("CUST", 920);
|
||||
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)
|
||||
{
|
||||
TSheet_field& s = sfield(F_SHEET);
|
||||
|
||||
for (int scelta = 1; scelta <= 2; scelta++)
|
||||
{
|
||||
const int pall = row.get_int((scelta == 1 ? F_PALET1 : F_PALET2) - 101);
|
||||
const int spez = row.get_int((scelta == 1 ? F_SPEZZ1 : F_SPEZZ2) - 101);
|
||||
const int pezzi = row.get_int((scelta == 1 ? F_PEZZ1 : F_PEZZ2 ) - 101);
|
||||
const int pall = row.get_int(s.cid2index(scelta == 1 ? S_PALET1 : S_PALET2));
|
||||
const int spez = row.get_int(s.cid2index(scelta == 1 ? S_SPEZZ1 : S_SPEZZ2));
|
||||
const int pezzi = row.get_int(s.cid2index(scelta == 1 ? S_PEZZ1 : S_PEZZ2 ));
|
||||
bool sld = false;
|
||||
if (row.get_char(F_SALDO - 101) > ' ')
|
||||
if (row.get_char(s.cid2index(S_SALDO)) > ' ')
|
||||
{
|
||||
if (scelta == 1)
|
||||
sld = row.get_int(F_PEZZ2 - 101) <= 0;
|
||||
sld = row.get_int(s.cid2index(S_PEZZ2)) <= 0;
|
||||
else
|
||||
sld = pezzi > 0;
|
||||
}
|
||||
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 int idriga = row.get_int(F_IDRIGA - 101);
|
||||
const int lotto = row.get_long(F_LOTTO - 101);
|
||||
const int idriga = row.get_int(S_IDRIGA - 101);
|
||||
const int lotto = row.get_long(S_LOTTO - 101);
|
||||
jail.evade(scelta, codart, idriga, pezzi, sld, lotto, pall, spez);
|
||||
|
||||
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));
|
||||
if (good)
|
||||
{
|
||||
row.add("X", F_EVASA-101);
|
||||
row.add("X", S_EVASA-101);
|
||||
}
|
||||
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 int indsped = records.row(0).get_int(2);
|
||||
TSheet_field& s = sfield(F_SHEET);
|
||||
TDocumento* mmag = NULL;
|
||||
FOR_EACH_ARRAY_ROW(records, r, row)
|
||||
|
||||
FOR_EACH_ARRAY_ROW(records, r, row)
|
||||
{
|
||||
const char provv = 'D';
|
||||
const int anno = row->get_int (F_ANNO -101);
|
||||
const TString4 codnum = row->get (F_CODNUM-101);
|
||||
const long ndoc = row->get_long(F_NDOC -101);
|
||||
const int anno = row->get_int (s.cid2index(S_ANNO));
|
||||
const TString4 codnum = row->get (s.cid2index(S_CODNUM));
|
||||
const long ndoc = row->get_long(s.cid2index(S_NDOC));
|
||||
if (!doc_in.find(provv, anno, codnum, ndoc))
|
||||
{
|
||||
if (mmag != NULL && doc_in.items())
|
||||
@ -651,7 +657,7 @@ bool TClosure_msk::elabora()
|
||||
{
|
||||
TRecnotype c = 0;
|
||||
|
||||
TSheet_field&s = sfield(F_SHEET);
|
||||
TSheet_field& s = sfield(F_SHEET);
|
||||
FOR_EACH_SHEET_ROW(s, r1, row1)
|
||||
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) > ' ')
|
||||
{
|
||||
const long codcf = row->get_long(s.cid2index(F_CLIFO));
|
||||
const int indsped = row->get_int(s.cid2index(F_INDSPED));
|
||||
const long codcf = row->get_long(s.cid2index(S_CLIFO));
|
||||
const int indsped = row->get_int(s.cid2index(S_INDSPED));
|
||||
if (codcf != last_cf || indsped != last_ind)
|
||||
{
|
||||
elabora(records, log);
|
||||
@ -718,7 +724,7 @@ bool TClosure_msk::cancella()
|
||||
// Elminazione su richiesta
|
||||
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);
|
||||
TString16 n;
|
||||
FOR_EACH_SHEET_ROW(s, r2, row2) if (row2->starts_with("X"))
|
||||
@ -744,15 +750,15 @@ bool TClosure_msk::salva()
|
||||
{
|
||||
int err = NOERR;
|
||||
|
||||
TSheet_field&s = sfield(F_SHEET);
|
||||
TSheet_field& s = sfield(F_SHEET);
|
||||
|
||||
const int nRec = s.cid2index(F_RECORD);
|
||||
const int nPa1 = s.cid2index(F_PALET1);
|
||||
const int nSp1 = s.cid2index(F_SPEZZ1);
|
||||
const int nPa2 = s.cid2index(F_PALET2);
|
||||
const int nSp2 = s.cid2index(F_SPEZZ2);
|
||||
const int nSld = s.cid2index(F_SALDO);
|
||||
const int nLot = s.cid2index(F_LOTTO);
|
||||
const int nRec = s.cid2index(S_RECORD);
|
||||
const int nPa1 = s.cid2index(S_PALET1);
|
||||
const int nSp1 = s.cid2index(S_SPEZZ1);
|
||||
const int nPa2 = s.cid2index(S_PALET2);
|
||||
const int nSp2 = s.cid2index(S_SPEZZ2);
|
||||
const int nSld = s.cid2index(S_SALDO);
|
||||
const int nLot = s.cid2index(S_LOTTO);
|
||||
|
||||
TLocalisamfile mmag(LF_TABMOD);
|
||||
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);
|
||||
}
|
||||
break;
|
||||
case F_PALET1:
|
||||
case F_SPEZZ1:
|
||||
case F_PALET2:
|
||||
case F_SPEZZ2:
|
||||
case S_PALET1:
|
||||
case S_SPEZZ1:
|
||||
case S_PALET2:
|
||||
case S_SPEZZ2:
|
||||
if (e == fe_modify || e == fe_init)
|
||||
{
|
||||
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 ppp = art.get_int(ANAMAG_USER1) * art.get_int(ANAMAG_USER2) * pps; // Pezzi per pallet
|
||||
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+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);
|
||||
}
|
||||
break;
|
||||
case F_SALDO:
|
||||
case F_LOTTO:
|
||||
case S_SALDO:
|
||||
case S_LOTTO:
|
||||
if (e == fe_modify && !_dirty && is_running())
|
||||
enable(DLG_SAVEREC, _dirty = true);
|
||||
break;
|
||||
|
@ -139,41 +139,41 @@ ENDMASK
|
||||
|
||||
PAGE "Riga" -1 -1 75 12
|
||||
|
||||
BOOLEAN F_SELECT
|
||||
BOOLEAN S_SELECT
|
||||
BEGIN
|
||||
PROMPT 1 1 "Selezione"
|
||||
END
|
||||
|
||||
DATE F_DATA
|
||||
DATE S_DATA
|
||||
BEGIN
|
||||
PROMPT 21 1 "Data "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_RECORD 10
|
||||
NUMBER S_RECORD 10
|
||||
BEGIN
|
||||
PROMPT 54 1 "Record "
|
||||
FLAGS "DZ"
|
||||
END
|
||||
|
||||
NUMBER F_CLIFO 6
|
||||
NUMBER S_CLIFO 6
|
||||
BEGIN
|
||||
PROMPT 1 2 "Cliente "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_CLIFO
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
OUTPUT S_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "DG"
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
STRING S_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 21 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_INDSPED 3
|
||||
NUMBER S_INDSPED 3
|
||||
BEGIN
|
||||
PROMPT 1 3 "Indirizzo "
|
||||
/*
|
||||
@ -186,43 +186,43 @@ BEGIN
|
||||
FLAGS "DG"
|
||||
END
|
||||
|
||||
STRING F_CODNUM 4
|
||||
STRING S_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 1 4 "Ordine "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
NUMBER S_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 17 4 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_NDOC 7
|
||||
NUMBER S_NDOC 7
|
||||
BEGIN
|
||||
PROMPT 23 4 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IDRIGA 4
|
||||
NUMBER S_IDRIGA 4
|
||||
BEGIN
|
||||
PROMPT 33 4 "Riga "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_EVASA
|
||||
BOOLEAN S_EVASA
|
||||
BEGIN
|
||||
PROMPT 48 4 "Evasa il"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
DATE F_DATEVAS
|
||||
DATE S_DATEVAS
|
||||
BEGIN
|
||||
PROMPT 61 4 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_CODART 20
|
||||
STRING S_CODART 20
|
||||
BEGIN
|
||||
PROMPT 1 6 "Articolo "
|
||||
USE LF_ANAMAG
|
||||
@ -232,7 +232,7 @@ BEGIN
|
||||
FLAGS "DG"
|
||||
END
|
||||
|
||||
STRING F_DESCR 50
|
||||
STRING S_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 10 7 ""
|
||||
FLAGS "D"
|
||||
@ -263,37 +263,37 @@ BEGIN
|
||||
PROMPT 1 9 "@bI scelta"
|
||||
END
|
||||
|
||||
NUMBER F_LOTTO 5
|
||||
NUMBER S_LOTTO 5
|
||||
BEGIN
|
||||
PROMPT 51 8 "Lotto "
|
||||
END
|
||||
|
||||
NUMERO F_PALET1 3
|
||||
NUMERO S_PALET1 3
|
||||
BEGIN
|
||||
PROMPT 11 9 ""
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
NUMERO F_SPEZZ1 3
|
||||
NUMERO S_SPEZZ1 3
|
||||
BEGIN
|
||||
PROMPT 21 9 ""
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
NUMERO F_PEZZ1 7
|
||||
NUMERO S_PEZZ1 7
|
||||
BEGIN
|
||||
PROMPT 31 9 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMERO F_PESO1 7
|
||||
NUMERO S_PESO1 7
|
||||
BEGIN
|
||||
PROMPT 41 9 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
||||
BOOLEAN F_SALDO
|
||||
BOOLEAN S_SALDO
|
||||
BEGIN
|
||||
PROMPT 51 9 "Saldo"
|
||||
END
|
||||
@ -303,25 +303,25 @@ BEGIN
|
||||
PROMPT 1 10 "@bII scelta"
|
||||
END
|
||||
|
||||
NUMERO F_PALET2 3
|
||||
NUMERO S_PALET2 3
|
||||
BEGIN
|
||||
PROMPT 11 10 ""
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
NUMERO F_SPEZZ2 3
|
||||
NUMERO S_SPEZZ2 3
|
||||
BEGIN
|
||||
PROMPT 21 10 ""
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
NUMERO F_PEZZ2 7
|
||||
NUMERO S_PEZZ2 7
|
||||
BEGIN
|
||||
PROMPT 31 10 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMERO F_PESO2 7
|
||||
NUMERO S_PESO2 7
|
||||
BEGIN
|
||||
PROMPT 41 10 ""
|
||||
FLAGS "D"
|
||||
|
@ -95,7 +95,7 @@ void TLis2fil::import(const TString& filename)
|
||||
TRecord_text curr;
|
||||
while (trasfile.read(curr) == NOERR)
|
||||
{
|
||||
pi.setstatus(trasfile.read_file()->tellg());
|
||||
pi.setstatus((long)trasfile.read_file()->tellg());
|
||||
trasfile.autosave(rel, curr);
|
||||
trasfile.save_price(curr, _um);
|
||||
}
|
||||
|
@ -1,16 +1,16 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pt0001.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
pt0001100(argc, argv); break; // settaggio clienti non in allegato
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pt0001.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
pt0001100(argc, argv); break; // settaggio clienti non in allegato
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
@ -1 +1 @@
|
||||
int pt0001100(int argc, char* argv[]);
|
||||
int pt0001100(int argc, char* argv[]);
|
||||
|
120
ps/pt000100.cpp
120
ps/pt000100.cpp
@ -1,60 +1,60 @@
|
||||
#include <applicat.h>
|
||||
#include <config.h>
|
||||
#include <execp.h>
|
||||
#include <progind.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "clifo.h"
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// TSkeleton_application
|
||||
//----------------------------------
|
||||
class TClienti0001 : public TSkeleton_application
|
||||
{
|
||||
virtual const char * extra_modules() const {return "ba";}
|
||||
|
||||
protected:
|
||||
|
||||
public:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
|
||||
TClienti0001() {}
|
||||
};
|
||||
|
||||
TClienti0001& app() { return (TClienti0001&) main_app(); }
|
||||
|
||||
|
||||
bool TClienti0001::create()
|
||||
{
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TClienti0001::destroy()
|
||||
{
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TClienti0001::main_loop()
|
||||
{
|
||||
TCursor clienti(new TRelation(LF_CLIENTI));
|
||||
TRectype from(clienti.curr());
|
||||
from.put(CF_TIPOCF, 'C');
|
||||
clienti.setregion(from, from);
|
||||
for (clienti = 0L; clienti.pos() < items; ++clienti)
|
||||
{
|
||||
clienti.curr().put(CF_ALLEG, '6');
|
||||
clienti.curr().rewrite();
|
||||
}
|
||||
}
|
||||
|
||||
int pt0001100 (int argc, char* argv[])
|
||||
{
|
||||
TClienti0001 main_app;
|
||||
main_app.run(argc, argv, TR("Settaggio clienti non in allegato"));
|
||||
return TRUE;
|
||||
}
|
||||
#include <applicat.h>
|
||||
#include <config.h>
|
||||
#include <execp.h>
|
||||
#include <progind.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "clifo.h"
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// TSkeleton_application
|
||||
//----------------------------------
|
||||
class TClienti0001 : public TSkeleton_application
|
||||
{
|
||||
virtual const char * extra_modules() const {return "ba";}
|
||||
|
||||
protected:
|
||||
|
||||
public:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
|
||||
TClienti0001() {}
|
||||
};
|
||||
|
||||
TClienti0001& app() { return (TClienti0001&) main_app(); }
|
||||
|
||||
|
||||
bool TClienti0001::create()
|
||||
{
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TClienti0001::destroy()
|
||||
{
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TClienti0001::main_loop()
|
||||
{
|
||||
TCursor clienti(new TRelation(LF_CLIENTI));
|
||||
TRectype from(clienti.curr());
|
||||
from.put(CF_TIPOCF, 'C');
|
||||
clienti.setregion(from, from);
|
||||
for (clienti = 0L; clienti.pos() < items; ++clienti)
|
||||
{
|
||||
clienti.curr().put(CF_ALLEG, '6');
|
||||
clienti.curr().rewrite();
|
||||
}
|
||||
}
|
||||
|
||||
int pt0001100 (int argc, char* argv[])
|
||||
{
|
||||
TClienti0001 main_app;
|
||||
main_app.run(argc, argv, TR("Settaggio clienti non in allegato"));
|
||||
return TRUE;
|
||||
}
|
||||
|
116
ps/pt0001100.cpp
116
ps/pt0001100.cpp
@ -1,58 +1,58 @@
|
||||
#include <applicat.h>
|
||||
#include <config.h>
|
||||
#include <execp.h>
|
||||
#include <progind.h>
|
||||
#include <relation.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "clifo.h"
|
||||
|
||||
//----------------------------------
|
||||
// TSkeleton_application
|
||||
//----------------------------------
|
||||
class TClienti0001 : public TSkeleton_application
|
||||
{
|
||||
virtual const char * extra_modules() const {return "ba";}
|
||||
|
||||
protected:
|
||||
|
||||
public:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
|
||||
TClienti0001() {}
|
||||
};
|
||||
|
||||
TClienti0001& app() { return (TClienti0001&) main_app(); }
|
||||
|
||||
bool TClienti0001::create()
|
||||
{
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TClienti0001::destroy()
|
||||
{
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
void TClienti0001::main_loop()
|
||||
{
|
||||
TCursor clienti(new TRelation(LF_CLIFO));
|
||||
TRectype from(clienti.curr());
|
||||
from.put(CLI_TIPOCF, 'C');
|
||||
clienti.setregion(from, from);
|
||||
const long items = clienti.items();
|
||||
for (clienti = 0L; clienti.pos() < items; ++clienti)
|
||||
{
|
||||
clienti.curr().put(CLI_ALLEG, '6');
|
||||
clienti.file().rewrite();
|
||||
}
|
||||
}
|
||||
|
||||
int pt0001100 (int argc, char* argv[])
|
||||
{
|
||||
TClienti0001 main_app;
|
||||
main_app.run(argc, argv, TR("Settaggio clienti non in allegato"));
|
||||
return TRUE;
|
||||
}
|
||||
#include <applicat.h>
|
||||
#include <config.h>
|
||||
#include <execp.h>
|
||||
#include <progind.h>
|
||||
#include <relation.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "clifo.h"
|
||||
|
||||
//----------------------------------
|
||||
// TSkeleton_application
|
||||
//----------------------------------
|
||||
class TClienti0001 : public TSkeleton_application
|
||||
{
|
||||
virtual const char * extra_modules() const {return "ba";}
|
||||
|
||||
protected:
|
||||
|
||||
public:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
|
||||
TClienti0001() {}
|
||||
};
|
||||
|
||||
TClienti0001& app() { return (TClienti0001&) main_app(); }
|
||||
|
||||
bool TClienti0001::create()
|
||||
{
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TClienti0001::destroy()
|
||||
{
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
void TClienti0001::main_loop()
|
||||
{
|
||||
TCursor clienti(new TRelation(LF_CLIFO));
|
||||
TRectype from(clienti.curr());
|
||||
from.put(CLI_TIPOCF, 'C');
|
||||
clienti.setregion(from, from);
|
||||
const long items = clienti.items();
|
||||
for (clienti = 0L; clienti.pos() < items; ++clienti)
|
||||
{
|
||||
clienti.curr().put(CLI_ALLEG, '6');
|
||||
clienti.file().rewrite();
|
||||
}
|
||||
}
|
||||
|
||||
int pt0001100 (int argc, char* argv[])
|
||||
{
|
||||
TClienti0001 main_app;
|
||||
main_app.run(argc, argv, TR("Settaggio clienti non in allegato"));
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1,16 +1,16 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pt0002.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
pt0002100(argc, argv); break; //importazione di clienti/fornitori da file CSV
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pt0002.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
pt0002100(argc, argv); break; //importazione di clienti/fornitori da file CSV
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
@ -1 +1 @@
|
||||
int pt0002100(int argc, char* argv[]);
|
||||
int pt0002100(int argc, char* argv[]);
|
||||
|
956
ps/pt0002100.cpp
956
ps/pt0002100.cpp
@ -1,478 +1,478 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <progind.h>
|
||||
#include <reputils.h>
|
||||
#include <utility.h>
|
||||
#include <relation.h>
|
||||
#include <textset.h>
|
||||
#include <reprint.h>
|
||||
|
||||
#include "pt0002.h"
|
||||
#include "pt0002100a.h"
|
||||
|
||||
#include "../cg/cglib01.h"
|
||||
|
||||
#include "clifo.h"
|
||||
#include "comuni.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TClient_textset
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TClifo_recset : public TCSV_recordset
|
||||
{
|
||||
TAssoc_array _index;
|
||||
|
||||
protected:
|
||||
virtual TRecnotype new_rec(const char* buf = NULL);
|
||||
|
||||
public:
|
||||
const TString& rag_sociale() const;
|
||||
TClifo_recset(const char * query);
|
||||
};
|
||||
|
||||
|
||||
TRecnotype TClifo_recset::new_rec(const char* buf)
|
||||
{
|
||||
TToken_string str(256,'\t'); //nuovo record tab separator
|
||||
|
||||
if(buf && *buf)
|
||||
{
|
||||
bool apici=false;
|
||||
|
||||
for (const char* c = buf; *c ; c++)
|
||||
{
|
||||
if (*c == '"')
|
||||
{
|
||||
apici = !apici;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (*c == ',')
|
||||
{
|
||||
if (!apici)
|
||||
str << str.separator();
|
||||
else
|
||||
str << *c;
|
||||
}
|
||||
else
|
||||
str << *c;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const TRecnotype n = TText_recordset::new_rec(str);
|
||||
|
||||
if (n >= 0)
|
||||
row(n).separator(str.separator());
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
//funzione che crea il campo ragione sociale dai primi 2 campi del file csv
|
||||
const TString& TClifo_recset::rag_sociale() const
|
||||
{
|
||||
const TString& nome = get(1).as_string();
|
||||
TString ragsoc = get(0).as_string();
|
||||
if (nome.full())
|
||||
{
|
||||
ragsoc.cut(30);
|
||||
ragsoc.left_just(30);
|
||||
ragsoc << nome;
|
||||
}
|
||||
ragsoc.cut(50);
|
||||
return get_tmp_string() = ragsoc;
|
||||
}
|
||||
|
||||
TClifo_recset::TClifo_recset(const char * fileName)
|
||||
: TCSV_recordset("CSV(,)\n")
|
||||
{
|
||||
load_file(fileName);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TAutomask
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TImportaClifo_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TImportaClifo_mask();
|
||||
};
|
||||
|
||||
TImportaClifo_mask::TImportaClifo_mask() :TAutomask ("pt0002100a")
|
||||
{
|
||||
}
|
||||
|
||||
bool TImportaClifo_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||
{
|
||||
switch (f.dlg())
|
||||
{
|
||||
//giochetto per avere la lista dei files validi nella directory di trasferimento!
|
||||
case F_NAME:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"),
|
||||
"File@32");
|
||||
TFilename path = get(F_PATH);
|
||||
path.add("*.csv"); //files delle testate
|
||||
list_files(path, as.rows_array());
|
||||
TFilename name;
|
||||
FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
|
||||
{
|
||||
name = *row;
|
||||
*row = name.name();
|
||||
}
|
||||
if (as.run() == K_ENTER)
|
||||
{
|
||||
f.set(as.row(as.selected()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
///////////////////////////////////////
|
||||
// TSkeleton_application
|
||||
///////////////////////////////////////
|
||||
class TClifoCSV : public TSkeleton_application
|
||||
{
|
||||
virtual bool check_autorization() const {return false;}
|
||||
virtual const char * extra_modules() const {return "ve";}
|
||||
|
||||
TImportaClifo_mask* _msk;
|
||||
TConfig* _configfile;
|
||||
|
||||
|
||||
protected:
|
||||
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;
|
||||
long find_last_clifo(const char tipo) const;
|
||||
void pulisci_cap(TString& cap) const;
|
||||
|
||||
|
||||
public:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
virtual void ini2mask();
|
||||
virtual void mask2ini();
|
||||
bool transfer(const TFilename& file);
|
||||
|
||||
TClifoCSV() {};
|
||||
};
|
||||
|
||||
TClifoCSV& app() { return (TClifoCSV&) main_app(); }
|
||||
|
||||
/////////////////////////////////
|
||||
// ricerca clifo
|
||||
/////////////////////////////////
|
||||
|
||||
//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
|
||||
long TClifoCSV::find_clifo(const char tipo, const TString& cofi, const TString& paiv, const TString& ragsoc) const
|
||||
{
|
||||
long found=0;
|
||||
|
||||
TRelation clifo(LF_CLIFO);
|
||||
TRectype& rec = clifo.curr();
|
||||
TString up_ragsoc = ragsoc;
|
||||
up_ragsoc.upper();
|
||||
|
||||
for (int key = 4; key<=5 && !found; key++)
|
||||
{
|
||||
bool good_key = false; // Assumiamo che la chiave sia icompleta
|
||||
|
||||
rec.zero();
|
||||
rec.put(CLI_TIPOCF,tipo);
|
||||
switch (key)
|
||||
{
|
||||
case 4: rec.put(CLI_COFI,cofi); good_key = cofi.full(); break;
|
||||
case 5: rec.put(CLI_PAIV,paiv); good_key = paiv.full(); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
if (good_key) // Se la chiave e' completa ... cerco bene
|
||||
{
|
||||
TCursor cur(&clifo,"", key, &rec, &rec);
|
||||
const TRecnotype items = cur.items();
|
||||
|
||||
if (items > 0)
|
||||
{
|
||||
double best = -1;
|
||||
|
||||
TString80 cur_ragsoc;
|
||||
|
||||
cur.freeze();
|
||||
for (cur=0; cur.pos() < items; ++cur)
|
||||
{
|
||||
cur_ragsoc = rec.get(CLI_RAGSOC);
|
||||
cur_ragsoc.upper();
|
||||
|
||||
// funzione che mi dice quanto due stringhe si assomiglino
|
||||
const double var = xvt_str_fuzzy_compare(up_ragsoc, cur_ragsoc);
|
||||
if (var > best)
|
||||
{
|
||||
best = var;
|
||||
found = rec.get_long(CLI_CODCF);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
/////////////////////////////////
|
||||
// aggiornamento clifo
|
||||
/////////////////////////////////
|
||||
|
||||
//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
|
||||
{
|
||||
const bool ok = val && *val;
|
||||
if (ok)
|
||||
file.put(field, val);
|
||||
return ok;
|
||||
}
|
||||
|
||||
//funzione che trova il primo codice libero di un cliento o di un fornitore
|
||||
long TClifoCSV::find_last_clifo(const char tipo) const
|
||||
{
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
long codcf = 1L ;
|
||||
if (tipo == 'C')
|
||||
{
|
||||
clifo.put(CLI_TIPOCF, 'F');
|
||||
if (clifo.read(_isgteq) == NOERR)
|
||||
clifo.prev();
|
||||
else
|
||||
clifo.last();
|
||||
|
||||
if (clifo.get_char(CLI_TIPOCF) == 'C')
|
||||
codcf += clifo.get_long(CLI_CODCF);
|
||||
}
|
||||
else
|
||||
{
|
||||
clifo.last();
|
||||
if (clifo.get_char(CLI_TIPOCF) == 'F')
|
||||
codcf+=clifo.get_long(CLI_CODCF);
|
||||
}
|
||||
return codcf;
|
||||
}
|
||||
|
||||
void TClifoCSV::pulisci_cap(TString& cap) const
|
||||
{
|
||||
TString8 str;
|
||||
for (int i = 0; cap[i] && str.len() < 5; i++)
|
||||
if (isdigit(cap[i]))
|
||||
str << cap[i];
|
||||
cap = str;
|
||||
}
|
||||
|
||||
bool TClifoCSV::transfer(const TFilename& file)
|
||||
{
|
||||
const char tipo = _msk->get(F_TIPO)[0];
|
||||
const char* head = tipo == 'C' ? TR("Trasferimento clienti") : TR("Trasferimento fornitori");
|
||||
|
||||
TLog_report log(head);
|
||||
|
||||
TClifo_recset s(file);
|
||||
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
|
||||
TProgind pi(s.items(),head,true,true);
|
||||
|
||||
for (bool ok=s.move_first();ok;ok=s.move_next())
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
const TString ragsoc = s.rag_sociale();
|
||||
if (ragsoc.full())
|
||||
{
|
||||
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 long var = find_clifo(tipo,cofi,paiv,ragsoc); //controllo se il clifo esiste già
|
||||
|
||||
clifo.zero();
|
||||
clifo.put(CLI_TIPOCF, tipo);
|
||||
|
||||
if (var)
|
||||
{
|
||||
//se esiste leggo il record corrispondente
|
||||
clifo.put(CLI_CODCF,var);
|
||||
clifo.read();
|
||||
}
|
||||
else
|
||||
{
|
||||
//se no ne creo uno nuovo
|
||||
long codcf = find_last_clifo(tipo);
|
||||
clifo.put(CLI_CODCF, codcf);
|
||||
}
|
||||
|
||||
safe_put(clifo, CLI_RAGSOC, ragsoc); //ragsoc
|
||||
if (!var)
|
||||
safe_put(clifo, CLI_TIPOAPER, s.get(1).is_empty() ? "G" : "F");
|
||||
|
||||
|
||||
safe_put(clifo, CLI_PAIV, paiv); //p.iva
|
||||
safe_put(clifo, CLI_COFI, cofi); //cod. fisc.
|
||||
|
||||
|
||||
safe_put(clifo, CLI_INDCF, s.get(4).as_string()); //indirizzo
|
||||
safe_put(clifo, CLI_CIVCF, s.get(5).as_string()); //num. civico
|
||||
|
||||
if (s.get(6).as_string().empty()) //italiano
|
||||
{
|
||||
TString cap = s.get(9).as_string();
|
||||
|
||||
pulisci_cap(cap);
|
||||
|
||||
TString80 comune = s.get(11).as_string(); //comune o localita'
|
||||
comune.trim();
|
||||
safe_put(clifo, CLI_CAPCF, cap); //cap
|
||||
const TString& codcom = cap2comune(cap, comune);
|
||||
if (codcom.blank())
|
||||
{
|
||||
if (s.get(10).as_string().full())
|
||||
comune << " (" << s.get(10).as_string() << ')'; //inserisce la località se non trova un comune
|
||||
safe_put(clifo, CLI_LOCCF, comune);
|
||||
}
|
||||
else
|
||||
safe_put(clifo, CLI_COMCF, codcom);
|
||||
}
|
||||
else
|
||||
{
|
||||
TString comune = s.get(7).as_string();
|
||||
comune << ", " << s.get(8).as_string() << '(' << s.get(6).as_string() <<')'; //inserisce la località estera
|
||||
safe_put(clifo, CLI_LOCCF, comune);
|
||||
if (!var)
|
||||
safe_put(clifo, CLI_ALLEG, "5"); // Cliente/Fornitore Estero
|
||||
}
|
||||
|
||||
const char* tp = tipo == 'C' ? TR("Cliente") : TR("Fornitore");
|
||||
TString str;
|
||||
str << "Il "<< tp << " codice (" << clifo.get(CLI_CODCF) <<") " << ragsoc << " ";
|
||||
|
||||
if (var)
|
||||
{
|
||||
const int err = clifo.rewrite();
|
||||
if (err == NOERR)
|
||||
{
|
||||
str << "è stato aggiornato";
|
||||
log.log(0, str);
|
||||
}
|
||||
else
|
||||
{
|
||||
str << "NON è stato aggiornato. Errore " << err;
|
||||
log.log(2, str);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const int err = clifo.write();
|
||||
if (err == NOERR)
|
||||
{
|
||||
str << "è stato inserito";
|
||||
log.log(0, str);
|
||||
}
|
||||
else
|
||||
{
|
||||
str << "NON è stato inserito. Errore " << err;
|
||||
log.log(2, str);
|
||||
}
|
||||
}
|
||||
|
||||
if (cofi.empty() && paiv.empty())
|
||||
{
|
||||
TString str;
|
||||
str << "Il " << tp << ' ' << ragsoc << " non ha nè CODICE FISCALE nè PARTITA IVA";
|
||||
log.log(1, str);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
TReport_book buc;
|
||||
buc.add(log);
|
||||
buc.preview();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void TClifoCSV::mask2ini()
|
||||
{
|
||||
//carica i parametri del file di configurazione
|
||||
_configfile->set_paragraph("MAIN");
|
||||
for (int i = 0; i < _msk->fields() ; i++)
|
||||
{
|
||||
TMask_field& f = _msk->fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
if (fr != NULL)
|
||||
_configfile->set(fr->name(), f.get());
|
||||
}
|
||||
}
|
||||
|
||||
void TClifoCSV::ini2mask()
|
||||
{
|
||||
//carica i parametri del file di configurazione
|
||||
_configfile->set_paragraph("MAIN");
|
||||
for (int i = 0; i < _msk->fields() ; i++)
|
||||
{
|
||||
TMask_field& f = _msk->fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
if (fr != NULL)
|
||||
f.set(_configfile->get(fr->name()));
|
||||
}
|
||||
}
|
||||
|
||||
bool TClifoCSV::create()
|
||||
{
|
||||
_configfile = new TConfig("pt0002conf.ini");
|
||||
_msk = new TImportaClifo_mask();
|
||||
|
||||
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TClifoCSV::destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _configfile;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
void TClifoCSV::main_loop()
|
||||
{
|
||||
KEY tasto;
|
||||
ini2mask();
|
||||
tasto = _msk->run();
|
||||
if (tasto == K_ENTER)
|
||||
{
|
||||
mask2ini();
|
||||
|
||||
//genero il nome del file da caricare
|
||||
TFilename name = _msk->get(F_PATH);
|
||||
name.add(_msk->get(F_NAME));
|
||||
if (transfer(name))
|
||||
{
|
||||
message_box(TR("Importazione documenti completata"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int pt0002100 (int argc, char* argv[])
|
||||
{
|
||||
TClifoCSV main_app;
|
||||
main_app.run(argc, argv, TR("Importazione Clienti/Fornitori"));
|
||||
return true;
|
||||
}
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <progind.h>
|
||||
#include <reputils.h>
|
||||
#include <utility.h>
|
||||
#include <relation.h>
|
||||
#include <textset.h>
|
||||
#include <reprint.h>
|
||||
|
||||
#include "pt0002.h"
|
||||
#include "pt0002100a.h"
|
||||
|
||||
#include "../cg/cglib01.h"
|
||||
|
||||
#include "clifo.h"
|
||||
#include "comuni.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TClient_textset
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TClifo_recset : public TCSV_recordset
|
||||
{
|
||||
TAssoc_array _index;
|
||||
|
||||
protected:
|
||||
virtual TRecnotype new_rec(const char* buf = NULL);
|
||||
|
||||
public:
|
||||
const TString& rag_sociale() const;
|
||||
TClifo_recset(const char * query);
|
||||
};
|
||||
|
||||
|
||||
TRecnotype TClifo_recset::new_rec(const char* buf)
|
||||
{
|
||||
TToken_string str(256,'\t'); //nuovo record tab separator
|
||||
|
||||
if(buf && *buf)
|
||||
{
|
||||
bool apici=false;
|
||||
|
||||
for (const char* c = buf; *c ; c++)
|
||||
{
|
||||
if (*c == '"')
|
||||
{
|
||||
apici = !apici;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (*c == ',')
|
||||
{
|
||||
if (!apici)
|
||||
str << str.separator();
|
||||
else
|
||||
str << *c;
|
||||
}
|
||||
else
|
||||
str << *c;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const TRecnotype n = TText_recordset::new_rec(str);
|
||||
|
||||
if (n >= 0)
|
||||
row(n).separator(str.separator());
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
//funzione che crea il campo ragione sociale dai primi 2 campi del file csv
|
||||
const TString& TClifo_recset::rag_sociale() const
|
||||
{
|
||||
const TString& nome = get(1).as_string();
|
||||
TString ragsoc = get(0).as_string();
|
||||
if (nome.full())
|
||||
{
|
||||
ragsoc.cut(30);
|
||||
ragsoc.left_just(30);
|
||||
ragsoc << nome;
|
||||
}
|
||||
ragsoc.cut(50);
|
||||
return get_tmp_string() = ragsoc;
|
||||
}
|
||||
|
||||
TClifo_recset::TClifo_recset(const char * fileName)
|
||||
: TCSV_recordset("CSV(,)\n")
|
||||
{
|
||||
load_file(fileName);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TAutomask
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TImportaClifo_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TImportaClifo_mask();
|
||||
};
|
||||
|
||||
TImportaClifo_mask::TImportaClifo_mask() :TAutomask ("pt0002100a")
|
||||
{
|
||||
}
|
||||
|
||||
bool TImportaClifo_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||
{
|
||||
switch (f.dlg())
|
||||
{
|
||||
//giochetto per avere la lista dei files validi nella directory di trasferimento!
|
||||
case F_NAME:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"),
|
||||
"File@32");
|
||||
TFilename path = get(F_PATH);
|
||||
path.add("*.csv"); //files delle testate
|
||||
list_files(path, as.rows_array());
|
||||
TFilename name;
|
||||
FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
|
||||
{
|
||||
name = *row;
|
||||
*row = name.name();
|
||||
}
|
||||
if (as.run() == K_ENTER)
|
||||
{
|
||||
f.set(as.row(as.selected()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
///////////////////////////////////////
|
||||
// TSkeleton_application
|
||||
///////////////////////////////////////
|
||||
class TClifoCSV : public TSkeleton_application
|
||||
{
|
||||
virtual bool check_autorization() const {return false;}
|
||||
virtual const char * extra_modules() const {return "ve";}
|
||||
|
||||
TImportaClifo_mask* _msk;
|
||||
TConfig* _configfile;
|
||||
|
||||
|
||||
protected:
|
||||
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;
|
||||
long find_last_clifo(const char tipo) const;
|
||||
void pulisci_cap(TString& cap) const;
|
||||
|
||||
|
||||
public:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
virtual void ini2mask();
|
||||
virtual void mask2ini();
|
||||
bool transfer(const TFilename& file);
|
||||
|
||||
TClifoCSV() {};
|
||||
};
|
||||
|
||||
TClifoCSV& app() { return (TClifoCSV&) main_app(); }
|
||||
|
||||
/////////////////////////////////
|
||||
// ricerca clifo
|
||||
/////////////////////////////////
|
||||
|
||||
//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
|
||||
long TClifoCSV::find_clifo(const char tipo, const TString& cofi, const TString& paiv, const TString& ragsoc) const
|
||||
{
|
||||
long found=0;
|
||||
|
||||
TRelation clifo(LF_CLIFO);
|
||||
TRectype& rec = clifo.curr();
|
||||
TString up_ragsoc = ragsoc;
|
||||
up_ragsoc.upper();
|
||||
|
||||
for (int key = 4; key<=5 && !found; key++)
|
||||
{
|
||||
bool good_key = false; // Assumiamo che la chiave sia icompleta
|
||||
|
||||
rec.zero();
|
||||
rec.put(CLI_TIPOCF,tipo);
|
||||
switch (key)
|
||||
{
|
||||
case 4: rec.put(CLI_COFI,cofi); good_key = cofi.full(); break;
|
||||
case 5: rec.put(CLI_PAIV,paiv); good_key = paiv.full(); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
if (good_key) // Se la chiave e' completa ... cerco bene
|
||||
{
|
||||
TCursor cur(&clifo,"", key, &rec, &rec);
|
||||
const TRecnotype items = cur.items();
|
||||
|
||||
if (items > 0)
|
||||
{
|
||||
double best = -1;
|
||||
|
||||
TString80 cur_ragsoc;
|
||||
|
||||
cur.freeze();
|
||||
for (cur=0; cur.pos() < items; ++cur)
|
||||
{
|
||||
cur_ragsoc = rec.get(CLI_RAGSOC);
|
||||
cur_ragsoc.upper();
|
||||
|
||||
// funzione che mi dice quanto due stringhe si assomiglino
|
||||
const double var = xvt_str_fuzzy_compare(up_ragsoc, cur_ragsoc);
|
||||
if (var > best)
|
||||
{
|
||||
best = var;
|
||||
found = rec.get_long(CLI_CODCF);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
/////////////////////////////////
|
||||
// aggiornamento clifo
|
||||
/////////////////////////////////
|
||||
|
||||
//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
|
||||
{
|
||||
const bool ok = val && *val;
|
||||
if (ok)
|
||||
file.put(field, val);
|
||||
return ok;
|
||||
}
|
||||
|
||||
//funzione che trova il primo codice libero di un cliento o di un fornitore
|
||||
long TClifoCSV::find_last_clifo(const char tipo) const
|
||||
{
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
long codcf = 1L ;
|
||||
if (tipo == 'C')
|
||||
{
|
||||
clifo.put(CLI_TIPOCF, 'F');
|
||||
if (clifo.read(_isgteq) == NOERR)
|
||||
clifo.prev();
|
||||
else
|
||||
clifo.last();
|
||||
|
||||
if (clifo.get_char(CLI_TIPOCF) == 'C')
|
||||
codcf += clifo.get_long(CLI_CODCF);
|
||||
}
|
||||
else
|
||||
{
|
||||
clifo.last();
|
||||
if (clifo.get_char(CLI_TIPOCF) == 'F')
|
||||
codcf+=clifo.get_long(CLI_CODCF);
|
||||
}
|
||||
return codcf;
|
||||
}
|
||||
|
||||
void TClifoCSV::pulisci_cap(TString& cap) const
|
||||
{
|
||||
TString8 str;
|
||||
for (int i = 0; cap[i] && str.len() < 5; i++)
|
||||
if (isdigit(cap[i]))
|
||||
str << cap[i];
|
||||
cap = str;
|
||||
}
|
||||
|
||||
bool TClifoCSV::transfer(const TFilename& file)
|
||||
{
|
||||
const char tipo = _msk->get(F_TIPO)[0];
|
||||
const char* head = tipo == 'C' ? TR("Trasferimento clienti") : TR("Trasferimento fornitori");
|
||||
|
||||
TLog_report log(head);
|
||||
|
||||
TClifo_recset s(file);
|
||||
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
|
||||
TProgind pi(s.items(),head,true,true);
|
||||
|
||||
for (bool ok=s.move_first();ok;ok=s.move_next())
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
const TString ragsoc = s.rag_sociale();
|
||||
if (ragsoc.full())
|
||||
{
|
||||
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 long var = find_clifo(tipo,cofi,paiv,ragsoc); //controllo se il clifo esiste già
|
||||
|
||||
clifo.zero();
|
||||
clifo.put(CLI_TIPOCF, tipo);
|
||||
|
||||
if (var)
|
||||
{
|
||||
//se esiste leggo il record corrispondente
|
||||
clifo.put(CLI_CODCF,var);
|
||||
clifo.read();
|
||||
}
|
||||
else
|
||||
{
|
||||
//se no ne creo uno nuovo
|
||||
long codcf = find_last_clifo(tipo);
|
||||
clifo.put(CLI_CODCF, codcf);
|
||||
}
|
||||
|
||||
safe_put(clifo, CLI_RAGSOC, ragsoc); //ragsoc
|
||||
if (!var)
|
||||
safe_put(clifo, CLI_TIPOAPER, s.get(1).is_empty() ? "G" : "F");
|
||||
|
||||
|
||||
safe_put(clifo, CLI_PAIV, paiv); //p.iva
|
||||
safe_put(clifo, CLI_COFI, cofi); //cod. fisc.
|
||||
|
||||
|
||||
safe_put(clifo, CLI_INDCF, s.get(4).as_string()); //indirizzo
|
||||
safe_put(clifo, CLI_CIVCF, s.get(5).as_string()); //num. civico
|
||||
|
||||
if (s.get(6).as_string().empty()) //italiano
|
||||
{
|
||||
TString cap = s.get(9).as_string();
|
||||
|
||||
pulisci_cap(cap);
|
||||
|
||||
TString80 comune = s.get(11).as_string(); //comune o localita'
|
||||
comune.trim();
|
||||
safe_put(clifo, CLI_CAPCF, cap); //cap
|
||||
const TString& codcom = cap2comune(cap, comune);
|
||||
if (codcom.blank())
|
||||
{
|
||||
if (s.get(10).as_string().full())
|
||||
comune << " (" << s.get(10).as_string() << ')'; //inserisce la località se non trova un comune
|
||||
safe_put(clifo, CLI_LOCCF, comune);
|
||||
}
|
||||
else
|
||||
safe_put(clifo, CLI_COMCF, codcom);
|
||||
}
|
||||
else
|
||||
{
|
||||
TString comune = s.get(7).as_string();
|
||||
comune << ", " << s.get(8).as_string() << '(' << s.get(6).as_string() <<')'; //inserisce la località estera
|
||||
safe_put(clifo, CLI_LOCCF, comune);
|
||||
if (!var)
|
||||
safe_put(clifo, CLI_ALLEG, "5"); // Cliente/Fornitore Estero
|
||||
}
|
||||
|
||||
const char* tp = tipo == 'C' ? TR("Cliente") : TR("Fornitore");
|
||||
TString str;
|
||||
str << "Il "<< tp << " codice (" << clifo.get(CLI_CODCF) <<") " << ragsoc << " ";
|
||||
|
||||
if (var)
|
||||
{
|
||||
const int err = clifo.rewrite();
|
||||
if (err == NOERR)
|
||||
{
|
||||
str << "è stato aggiornato";
|
||||
log.log(0, str);
|
||||
}
|
||||
else
|
||||
{
|
||||
str << "NON è stato aggiornato. Errore " << err;
|
||||
log.log(2, str);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const int err = clifo.write();
|
||||
if (err == NOERR)
|
||||
{
|
||||
str << "è stato inserito";
|
||||
log.log(0, str);
|
||||
}
|
||||
else
|
||||
{
|
||||
str << "NON è stato inserito. Errore " << err;
|
||||
log.log(2, str);
|
||||
}
|
||||
}
|
||||
|
||||
if (cofi.empty() && paiv.empty())
|
||||
{
|
||||
TString str;
|
||||
str << "Il " << tp << ' ' << ragsoc << " non ha nè CODICE FISCALE nè PARTITA IVA";
|
||||
log.log(1, str);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
TReport_book buc;
|
||||
buc.add(log);
|
||||
buc.preview();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void TClifoCSV::mask2ini()
|
||||
{
|
||||
//carica i parametri del file di configurazione
|
||||
_configfile->set_paragraph("MAIN");
|
||||
for (int i = 0; i < _msk->fields() ; i++)
|
||||
{
|
||||
TMask_field& f = _msk->fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
if (fr != NULL)
|
||||
_configfile->set(fr->name(), f.get());
|
||||
}
|
||||
}
|
||||
|
||||
void TClifoCSV::ini2mask()
|
||||
{
|
||||
//carica i parametri del file di configurazione
|
||||
_configfile->set_paragraph("MAIN");
|
||||
for (int i = 0; i < _msk->fields() ; i++)
|
||||
{
|
||||
TMask_field& f = _msk->fld(i);
|
||||
const TFieldref* fr = f.field();
|
||||
if (fr != NULL)
|
||||
f.set(_configfile->get(fr->name()));
|
||||
}
|
||||
}
|
||||
|
||||
bool TClifoCSV::create()
|
||||
{
|
||||
_configfile = new TConfig("pt0002conf.ini");
|
||||
_msk = new TImportaClifo_mask();
|
||||
|
||||
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TClifoCSV::destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _configfile;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
void TClifoCSV::main_loop()
|
||||
{
|
||||
KEY tasto;
|
||||
ini2mask();
|
||||
tasto = _msk->run();
|
||||
if (tasto == K_ENTER)
|
||||
{
|
||||
mask2ini();
|
||||
|
||||
//genero il nome del file da caricare
|
||||
TFilename name = _msk->get(F_PATH);
|
||||
name.add(_msk->get(F_NAME));
|
||||
if (transfer(name))
|
||||
{
|
||||
message_box(TR("Importazione documenti completata"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int pt0002100 (int argc, char* argv[])
|
||||
{
|
||||
TClifoCSV main_app;
|
||||
main_app.run(argc, argv, TR("Importazione Clienti/Fornitori"));
|
||||
return true;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
// campi della maschera pt002100a Importazione Clienti/Fornitori da file CSV
|
||||
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_PATH 103
|
||||
#define F_NAME 104
|
||||
#define F_TIPO 105
|
||||
// campi della maschera pt002100a Importazione Clienti/Fornitori da file CSV
|
||||
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_PATH 103
|
||||
#define F_NAME 104
|
||||
#define F_TIPO 105
|
||||
|
@ -1,67 +1,67 @@
|
||||
#include "pt0002100a.h"
|
||||
|
||||
PAGE "Importazione clienti/fornitori da file" -1 -1 78 12
|
||||
|
||||
GROUPBOX DLG_NULL 76 3
|
||||
BEGIN
|
||||
PROMPT 2 1 "@bDitta corrente"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 2 "Codice "
|
||||
FLAGS "FD"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 23 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 76 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "@bSorgente"
|
||||
END
|
||||
|
||||
STRING F_PATH 256 39
|
||||
BEGIN
|
||||
PROMPT 3 5 "Cartella "
|
||||
DSELECT
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD ClifoInPath
|
||||
END
|
||||
|
||||
STRING F_NAME 18
|
||||
BEGIN
|
||||
PROMPT 3 6 "File "
|
||||
FIELD ClifoInFile
|
||||
END
|
||||
|
||||
RADIOBUTTON F_TIPO 1 32
|
||||
BEGIN
|
||||
PROMPT 2 8 "@bDati da Importare"
|
||||
ITEM "C|Clienti"
|
||||
ITEM "F|Fornitori"
|
||||
FLAGS "Z"
|
||||
END
|
||||
|
||||
BUTTON DLG_ELABORA 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
PICTURE BMP_ELABORA
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
#include "pt0002100a.h"
|
||||
|
||||
PAGE "Importazione clienti/fornitori da file" -1 -1 78 12
|
||||
|
||||
GROUPBOX DLG_NULL 76 3
|
||||
BEGIN
|
||||
PROMPT 2 1 "@bDitta corrente"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 2 "Codice "
|
||||
FLAGS "FD"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 23 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 76 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "@bSorgente"
|
||||
END
|
||||
|
||||
STRING F_PATH 256 39
|
||||
BEGIN
|
||||
PROMPT 3 5 "Cartella "
|
||||
DSELECT
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD ClifoInPath
|
||||
END
|
||||
|
||||
STRING F_NAME 18
|
||||
BEGIN
|
||||
PROMPT 3 6 "File "
|
||||
FIELD ClifoInFile
|
||||
END
|
||||
|
||||
RADIOBUTTON F_TIPO 1 32
|
||||
BEGIN
|
||||
PROMPT 2 8 "@bDati da Importare"
|
||||
ITEM "C|Clienti"
|
||||
ITEM "F|Fornitori"
|
||||
FLAGS "Z"
|
||||
END
|
||||
|
||||
BUTTON DLG_ELABORA 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
PICTURE BMP_ELABORA
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
@ -1,6 +1,6 @@
|
||||
[MAIN]
|
||||
CODDITTA =
|
||||
RAGSOC =
|
||||
PATH =
|
||||
NAME =
|
||||
[MAIN]
|
||||
CODDITTA =
|
||||
RAGSOC =
|
||||
PATH =
|
||||
NAME =
|
||||
TIPO =
|
@ -1,16 +1,16 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pt0003.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
pt0003100(argc, argv); break; // Incasso fatture
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pt0003.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
pt0003100(argc, argv); break; // Incasso fatture
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
@ -1 +1 @@
|
||||
int pt0003100(int argc, char* argv[]);
|
||||
int pt0003100(int argc, char* argv[]);
|
||||
|
534
ps/pt0003100.cpp
534
ps/pt0003100.cpp
@ -1,266 +1,268 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <progind.h>
|
||||
#include "../ve/velib.h"
|
||||
|
||||
#include <doc.h>
|
||||
#include <rdoc.h>
|
||||
|
||||
#include "pt0003.h"
|
||||
#include "pt0003100a.h"
|
||||
|
||||
|
||||
class TMaskPt00031 : public TAutomask
|
||||
{
|
||||
TCursor * _cur;
|
||||
|
||||
protected:
|
||||
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);
|
||||
void update_sheet();
|
||||
void update_pagato(real & totale);
|
||||
void update_total();
|
||||
|
||||
public:
|
||||
TCursor & cursor() const { return *_cur;}
|
||||
TMaskPt00031();
|
||||
virtual ~TMaskPt00031();
|
||||
};
|
||||
|
||||
TMaskPt00031::TMaskPt00031()
|
||||
: TAutomask("pt0003100a")
|
||||
{
|
||||
TRelation * r = new TRelation(LF_DOC);
|
||||
r->file().set_curr(new TDocumento);
|
||||
_cur = new TCursor(r, "", 2);
|
||||
((TButton_field&) field(DLG_SAVEREC)).set_exit_key(K_ENTER);
|
||||
}
|
||||
|
||||
TMaskPt00031::~TMaskPt00031()
|
||||
{
|
||||
delete _cur;
|
||||
}
|
||||
|
||||
bool TMaskPt00031::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
const int id = o.dlg();
|
||||
switch (id)
|
||||
{
|
||||
case F_TOTPAGATO:
|
||||
if (e == fe_modify )
|
||||
{
|
||||
real totpagato = o.mask().get_real(F_TOTPAGATO);
|
||||
|
||||
update_pagato(totpagato);
|
||||
}
|
||||
break;
|
||||
case F_NUM:
|
||||
if (e == fe_modify || e == fe_init)
|
||||
update_sheet();
|
||||
break;
|
||||
case F_ANNO:
|
||||
case F_CODCLI:
|
||||
if (e == fe_modify)
|
||||
update_sheet();
|
||||
break;
|
||||
case F_SHEET:
|
||||
return on_sheet_event(o, e, jolly);
|
||||
break;
|
||||
default:
|
||||
if (jolly > 0)
|
||||
return on_sheet_event(o, e, jolly);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void TMaskPt00031::update_total()
|
||||
{
|
||||
real tot;
|
||||
TSheet_field& s = sfield(F_SHEET);
|
||||
const int postot = s.cid2index(F_PAGATO);
|
||||
FOR_EACH_SHEET_ROW_BACK(s, r, row)
|
||||
tot += real(row->get(postot));
|
||||
set(F_TOTPAGATO, tot);
|
||||
}
|
||||
|
||||
bool TMaskPt00031::on_sheet_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
TMask& m = o.mask();
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_PAGATO:
|
||||
if (e == fe_modify)
|
||||
update_total();
|
||||
break;
|
||||
case F_PAGA:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TMask& m = o.mask();
|
||||
if (m.get_real(F_PAGATO).is_zero())
|
||||
m.set(F_PAGATO, m.get(F_DAPAGARE));
|
||||
else
|
||||
m.reset(F_PAGATO);
|
||||
TSheet_field & s = *m.get_sheet();
|
||||
|
||||
const int r = s.selected();
|
||||
|
||||
s.row(r).add(m.get(F_PAGATO), 0);
|
||||
s.force_update(r);
|
||||
|
||||
update_total();
|
||||
}
|
||||
break;
|
||||
case F_SHEET:
|
||||
switch(e)
|
||||
{
|
||||
case se_query_add:
|
||||
return false;
|
||||
case se_notify_modify:
|
||||
update_total();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void TMaskPt00031::update_sheet()
|
||||
{
|
||||
TSheet_field& sheet = sfield(F_SHEET);
|
||||
const int olditems = sheet.items();
|
||||
|
||||
sheet.destroy();
|
||||
reset(F_TOTPAGATO);
|
||||
TRectype from(_cur->relation()->curr());
|
||||
const long codcli = get_long(F_CODCLI);
|
||||
|
||||
from.put(DOC_TIPOCF, "C");
|
||||
from.put(DOC_CODCF, codcli);
|
||||
from.put(DOC_ANNO, get(F_ANNO));
|
||||
from.put(DOC_PROVV, "D");
|
||||
|
||||
TRectype to(from);
|
||||
TString filter;
|
||||
filter << "(CODNUM==\"" << get(F_NUM) << "\")&&(G1:TOTDOC>IMPPAGATO)";
|
||||
_cur->setfilter(filter);
|
||||
_cur->setregion(from, to);
|
||||
TDocumento & doc = (TDocumento &)_cur->curr();
|
||||
|
||||
const long items = _cur->items();
|
||||
|
||||
TProgind pi(items, "Caricamento fatture", true, true);
|
||||
|
||||
for ((*_cur) = 0L; _cur->pos() < items; ++(*_cur))
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
if (sheet.items() > 900) // Anche troppe righe
|
||||
break;
|
||||
|
||||
TToken_string & row = sheet.row(-1);
|
||||
const real totdoc = doc.totale_doc();
|
||||
const real acconto = doc.get_real(DOC_IMPPAGATO);
|
||||
const real da_pagare = totdoc - acconto;
|
||||
|
||||
row.cut(0);
|
||||
row.add("");
|
||||
row.add(da_pagare.string());
|
||||
row.add(totdoc.string());
|
||||
row.add(doc.get(DOC_NDOC));
|
||||
row.add(doc.get(DOC_DATADOC));
|
||||
}
|
||||
|
||||
if (olditems == 0 && items == 0)
|
||||
return;
|
||||
sheet.force_update();
|
||||
}
|
||||
|
||||
void TMaskPt00031::update_pagato(real & totpagato)
|
||||
{
|
||||
TSheet_field& sheet = sfield(F_SHEET);
|
||||
const long items = sheet.items();
|
||||
int pospagato = sheet.cid2index(F_PAGATO);
|
||||
int posda_pagare = sheet.cid2index(F_DAPAGARE);
|
||||
|
||||
for (int r = 0; r < items; r++)
|
||||
{
|
||||
TToken_string & row = sheet.row(r);
|
||||
const real da_pagare(row.get(posda_pagare));
|
||||
real pagato;
|
||||
|
||||
if (totpagato > ZERO)
|
||||
{
|
||||
if (totpagato > da_pagare)
|
||||
pagato = da_pagare;
|
||||
else
|
||||
pagato = totpagato;
|
||||
totpagato -= pagato;
|
||||
}
|
||||
const TString s(pagato.string());
|
||||
|
||||
row.add(s, pospagato);
|
||||
}
|
||||
sheet.force_update();
|
||||
}
|
||||
|
||||
class TIncassoFatture0003 : public TSkeleton_application
|
||||
{
|
||||
virtual bool check_autorization() const { return false; }
|
||||
virtual const char * extra_modules() const {return "ve";}
|
||||
|
||||
|
||||
protected:
|
||||
virtual void main_loop();
|
||||
|
||||
public:
|
||||
virtual ~TIncassoFatture0003() {}
|
||||
};
|
||||
|
||||
void TIncassoFatture0003::main_loop()
|
||||
{
|
||||
open_files(LF_DOC, LF_RIGHEDOC, 0);
|
||||
TMaskPt00031 m;
|
||||
|
||||
while (m.run() == K_ENTER)
|
||||
{
|
||||
TSheet_field & s = m.sfield(F_SHEET);
|
||||
TCursor & c = m.cursor();
|
||||
|
||||
const long items = c.items();
|
||||
int pospagato = s.cid2index(F_PAGATO);
|
||||
|
||||
for (long pos = 0L; pos < items; pos++)
|
||||
{
|
||||
TToken_string row = s.row(pos);
|
||||
real val(row.get(pospagato));
|
||||
|
||||
if (val != ZERO)
|
||||
{
|
||||
c = pos;
|
||||
TDocumento doc((TDocumento &)c.curr());
|
||||
real pagato = doc.get(DOC_IMPPAGATO);
|
||||
real val(row.get(pospagato));
|
||||
|
||||
pagato += val;
|
||||
doc.put(DOC_IMPPAGATO, pagato);
|
||||
doc.rewrite();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TIncassoFatture0003 & app() { return (TIncassoFatture0003&) main_app();}
|
||||
|
||||
int pt0003100(int argc, char* argv[])
|
||||
{
|
||||
TIncassoFatture0003 a;
|
||||
a.run(argc, argv, "Incasso fatture");
|
||||
return 0;
|
||||
}
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <progind.h>
|
||||
#include "../ve/velib.h"
|
||||
|
||||
#include <doc.h>
|
||||
#include <rdoc.h>
|
||||
|
||||
#include "pt0003.h"
|
||||
#include "pt0003100a.h"
|
||||
|
||||
|
||||
class TMaskPt00031 : public TAutomask
|
||||
{
|
||||
TCursor * _cur;
|
||||
|
||||
protected:
|
||||
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);
|
||||
void update_sheet();
|
||||
void update_pagato(real & totale);
|
||||
void update_total();
|
||||
|
||||
public:
|
||||
TCursor & cursor() const { return *_cur;}
|
||||
TMaskPt00031();
|
||||
virtual ~TMaskPt00031();
|
||||
};
|
||||
|
||||
TMaskPt00031::TMaskPt00031()
|
||||
: TAutomask("pt0003100a")
|
||||
{
|
||||
TRelation * r = new TRelation(LF_DOC);
|
||||
r->file().set_curr(new TDocumento);
|
||||
_cur = new TCursor(r, "", 4);
|
||||
((TButton_field&) field(DLG_SAVEREC)).set_exit_key(K_ENTER);
|
||||
}
|
||||
|
||||
TMaskPt00031::~TMaskPt00031()
|
||||
{
|
||||
delete _cur;
|
||||
}
|
||||
|
||||
bool TMaskPt00031::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
const int id = o.dlg();
|
||||
switch (id)
|
||||
{
|
||||
case F_TOTPAGATO:
|
||||
if (e == fe_modify )
|
||||
{
|
||||
real totpagato = o.mask().get_real(F_TOTPAGATO);
|
||||
|
||||
update_pagato(totpagato);
|
||||
}
|
||||
break;
|
||||
case F_NUM:
|
||||
if (e == fe_modify || e == fe_init)
|
||||
update_sheet();
|
||||
break;
|
||||
case F_ANNO:
|
||||
case F_CODCLI:
|
||||
if (e == fe_modify)
|
||||
update_sheet();
|
||||
break;
|
||||
case F_SHEET:
|
||||
return on_sheet_event(o, e, jolly);
|
||||
break;
|
||||
default:
|
||||
if (jolly > 0)
|
||||
return on_sheet_event(o, e, jolly);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void TMaskPt00031::update_total()
|
||||
{
|
||||
real tot;
|
||||
TSheet_field& s = sfield(F_SHEET);
|
||||
const int postot = s.cid2index(F_PAGATO);
|
||||
FOR_EACH_SHEET_ROW_BACK(s, r, row)
|
||||
tot += real(row->get(postot));
|
||||
set(F_TOTPAGATO, tot);
|
||||
}
|
||||
|
||||
bool TMaskPt00031::on_sheet_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
TMask& m = o.mask();
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_PAGATO:
|
||||
if (e == fe_modify)
|
||||
update_total();
|
||||
break;
|
||||
case F_PAGA:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TMask& m = o.mask();
|
||||
if (m.get_real(F_PAGATO).is_zero())
|
||||
m.set(F_PAGATO, m.get(F_DAPAGARE));
|
||||
else
|
||||
m.reset(F_PAGATO);
|
||||
TSheet_field & s = *m.get_sheet();
|
||||
|
||||
const int r = s.selected();
|
||||
|
||||
s.row(r).add(m.get(F_PAGATO), 0);
|
||||
s.force_update(r);
|
||||
|
||||
update_total();
|
||||
}
|
||||
break;
|
||||
case F_SHEET:
|
||||
switch(e)
|
||||
{
|
||||
case se_query_add:
|
||||
return false;
|
||||
case se_notify_modify:
|
||||
update_total();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void TMaskPt00031::update_sheet()
|
||||
{
|
||||
TSheet_field& sheet = sfield(F_SHEET);
|
||||
const int olditems = sheet.items();
|
||||
|
||||
sheet.destroy();
|
||||
reset(F_TOTPAGATO);
|
||||
TRectype from(_cur->relation()->curr());
|
||||
const long codcli = get_long(F_CODCLI);
|
||||
|
||||
from.put(DOC_TIPOCF, "C");
|
||||
from.put(DOC_CODCF, codcli);
|
||||
from.put(DOC_ANNO, get(F_ANNO));
|
||||
from.put(DOC_PROVV, "D");
|
||||
from.put(DOC_CODNUM, get(F_NUM));
|
||||
|
||||
TRectype to(from);
|
||||
TString filter;
|
||||
filter << "(" << DOC_ACCSALDO "!=\"X\")";
|
||||
_cur->setfilter(filter);
|
||||
_cur->setregion(from, to);
|
||||
TDocumento & doc = (TDocumento &)_cur->curr();
|
||||
|
||||
const long items = _cur->items();
|
||||
|
||||
TProgind pi(items, "Caricamento fatture", true, true);
|
||||
|
||||
for ((*_cur) = 0L; _cur->pos() < items; ++(*_cur))
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
if (sheet.items() > 900) // Anche troppe righe
|
||||
break;
|
||||
|
||||
TToken_string & row = sheet.row(-1);
|
||||
const real totdoc = doc.totale_doc();
|
||||
const real acconto = doc.get_real(DOC_IMPPAGATO);
|
||||
const real da_pagare = totdoc - acconto;
|
||||
|
||||
row.cut(0);
|
||||
row.add("");
|
||||
row.add(da_pagare.string());
|
||||
row.add(totdoc.string());
|
||||
row.add(doc.get(DOC_NDOC));
|
||||
row.add(doc.get(DOC_DATADOC));
|
||||
}
|
||||
|
||||
if (olditems == 0 && items == 0)
|
||||
return;
|
||||
sheet.force_update();
|
||||
}
|
||||
|
||||
void TMaskPt00031::update_pagato(real & totpagato)
|
||||
{
|
||||
TSheet_field& sheet = sfield(F_SHEET);
|
||||
const long items = sheet.items();
|
||||
int pospagato = sheet.cid2index(F_PAGATO);
|
||||
int posda_pagare = sheet.cid2index(F_DAPAGARE);
|
||||
|
||||
for (int r = 0; r < items; r++)
|
||||
{
|
||||
TToken_string & row = sheet.row(r);
|
||||
const real da_pagare(row.get(posda_pagare));
|
||||
real pagato;
|
||||
|
||||
if (totpagato > ZERO)
|
||||
{
|
||||
if (totpagato > da_pagare)
|
||||
pagato = da_pagare;
|
||||
else
|
||||
pagato = totpagato;
|
||||
totpagato -= pagato;
|
||||
}
|
||||
const TString s(pagato.string());
|
||||
|
||||
row.add(s, pospagato);
|
||||
}
|
||||
sheet.force_update();
|
||||
}
|
||||
|
||||
class TIncassoFatture0003 : public TSkeleton_application
|
||||
{
|
||||
virtual bool check_autorization() const { return false; }
|
||||
virtual const char * extra_modules() const {return "ve";}
|
||||
|
||||
|
||||
protected:
|
||||
virtual void main_loop();
|
||||
|
||||
public:
|
||||
virtual ~TIncassoFatture0003() {}
|
||||
};
|
||||
|
||||
void TIncassoFatture0003::main_loop()
|
||||
{
|
||||
open_files(LF_DOC, LF_RIGHEDOC, 0);
|
||||
TMaskPt00031 m;
|
||||
|
||||
while (m.run() == K_ENTER)
|
||||
{
|
||||
TSheet_field & s = m.sfield(F_SHEET);
|
||||
TCursor & c = m.cursor();
|
||||
|
||||
const long items = c.items();
|
||||
int pospagato = s.cid2index(F_PAGATO);
|
||||
|
||||
for (long pos = 0L; pos < items; pos++)
|
||||
{
|
||||
TToken_string row = s.row(pos);
|
||||
real val(row.get(pospagato));
|
||||
|
||||
if (val != ZERO)
|
||||
{
|
||||
c = pos;
|
||||
TDocumento doc((TDocumento &)c.curr());
|
||||
real pagato = doc.get(DOC_IMPPAGATO);
|
||||
real val(row.get(pospagato));
|
||||
|
||||
pagato += val;
|
||||
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 a;
|
||||
a.run(argc, argv, "Incasso fatture");
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
#define F_ANNO 201
|
||||
#define F_NUM 202
|
||||
#define F_CODCLI 203
|
||||
#define F_RAGSOC 204
|
||||
#define F_TOTPAGATO 205
|
||||
#define F_SHEET 206
|
||||
|
||||
|
||||
#define F_PAGA 100
|
||||
#define F_PAGATO 101
|
||||
#define F_DAPAGARE 102
|
||||
#define F_TOTDOC 103
|
||||
#define F_NDOC 104
|
||||
#define F_DATADOC 105
|
||||
#define F_ANNO 201
|
||||
#define F_NUM 202
|
||||
#define F_CODCLI 203
|
||||
#define F_RAGSOC 204
|
||||
#define F_TOTPAGATO 205
|
||||
#define F_SHEET 206
|
||||
|
||||
|
||||
#define F_PAGA 100
|
||||
#define F_PAGATO 101
|
||||
#define F_DAPAGARE 102
|
||||
#define F_TOTDOC 103
|
||||
#define F_NDOC 104
|
||||
#define F_DATADOC 105
|
||||
|
@ -1,157 +1,158 @@
|
||||
#include "pt0003100a.h"
|
||||
|
||||
TOOLBAR "Toolbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_SAVEREC 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "~Registra"
|
||||
PICTURE TOOL_SAVEREC
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Incasso fatture" 0 2 0 0
|
||||
|
||||
GROUPBOX -1 78 5
|
||||
BEGIN
|
||||
PROMPT 2 1 "Selezione Documenti"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 4 2 "Anno "
|
||||
FIELD S_ANNO
|
||||
KEY 1
|
||||
USE ESC
|
||||
CHECKTYPE NORMAL
|
||||
INPUT CODTAB F_ANNO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Data inizio esercizio" D0
|
||||
DISPLAY "Data fine esercizio" D1
|
||||
OUTPUT F_ANNO CODTAB
|
||||
FLAGS "RZ"
|
||||
END
|
||||
|
||||
STRING F_NUM 4
|
||||
BEGIN
|
||||
PROMPT 21 2 "Num. "
|
||||
FIELDS S_NUM
|
||||
HELP "Codice numerazione"
|
||||
USE %NUM
|
||||
INPUT CODTAB F_NUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_NUM CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
FLAG "UPA"
|
||||
WARNING "Numerazione assente"
|
||||
END
|
||||
|
||||
STRING F_CODCLI 6
|
||||
BEGIN
|
||||
PROMPT 4 3 "Cliente "
|
||||
WARNING "Cliente assente"
|
||||
FLAGS "R"
|
||||
FIELD CODCLI
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_CODCLI
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
OUTPUT F_CODCLI CODCF
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
WARNING "Cliente assente"
|
||||
PROMPT 26 3 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_RAGSOC
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Partita IVA@12" PAIV
|
||||
DISPLAY "Codice" CODCF
|
||||
OUTPUT F_CODCLI CODCF
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
CURRENCY F_TOTPAGATO
|
||||
BEGIN
|
||||
PROMPT 4 4 "Pagato "
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET
|
||||
BEGIN
|
||||
PROMPT 0 6 ""
|
||||
ITEM "Pagato@18"
|
||||
ITEM "Da pagare@18"
|
||||
ITEM "Totale doc.@18"
|
||||
ITEM "N.ro Fattura"
|
||||
ITEM "Data@10"
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 70 50
|
||||
BEGIN
|
||||
PROMPT 8 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
PAGE "Rate" -1 -1 60 14
|
||||
|
||||
CURRENCY F_PAGATO
|
||||
BEGIN
|
||||
PROMPT 4 1 "Pagato "
|
||||
END
|
||||
|
||||
CURRENCY F_DAPAGARE
|
||||
BEGIN
|
||||
PROMPT 4 3 "Da Pagare "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
CURRENCY F_TOTDOC
|
||||
BEGIN
|
||||
PROMPT 4 5 "Totale fattura "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_NDOC 6
|
||||
BEGIN
|
||||
PROMPT 4 7 "Numero fattura "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
DATE F_DATADOC
|
||||
BEGIN
|
||||
PROMPT 4 9 "Data fattura "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
END
|
||||
|
||||
BUTTON F_PAGA 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 "~Paga"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
#include "pt0003100a.h"
|
||||
|
||||
TOOLBAR "Toolbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_SAVEREC 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "~Registra"
|
||||
PICTURE TOOL_SAVEREC
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Incasso fatture" 0 2 0 0
|
||||
|
||||
GROUPBOX -1 78 5
|
||||
BEGIN
|
||||
PROMPT 2 1 "Selezione Documenti"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 4 2 "Anno "
|
||||
FIELD S_ANNO
|
||||
KEY 1
|
||||
USE ESC
|
||||
CHECKTYPE NORMAL
|
||||
INPUT CODTAB F_ANNO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Data inizio esercizio" D0
|
||||
DISPLAY "Data fine esercizio" D1
|
||||
OUTPUT F_ANNO CODTAB
|
||||
FLAGS "RZ"
|
||||
END
|
||||
|
||||
STRING F_NUM 4
|
||||
BEGIN
|
||||
PROMPT 21 2 "Num. "
|
||||
FIELDS S_NUM
|
||||
HELP "Codice numerazione"
|
||||
USE %NUM
|
||||
INPUT CODTAB F_NUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_NUM CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
FLAG "UPA"
|
||||
WARNING "Numerazione assente"
|
||||
END
|
||||
|
||||
STRING F_CODCLI 6
|
||||
BEGIN
|
||||
PROMPT 4 3 "Cliente "
|
||||
WARNING "Cliente assente"
|
||||
FLAGS "R"
|
||||
FIELD CODCLI
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_CODCLI
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
OUTPUT F_CODCLI CODCF
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
WARNING "Cliente assente"
|
||||
PROMPT 26 3 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_RAGSOC
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Partita IVA@12" PAIV
|
||||
DISPLAY "Codice" CODCF
|
||||
OUTPUT F_CODCLI CODCF
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
CURRENCY F_TOTPAGATO
|
||||
BEGIN
|
||||
PROMPT 4 4 "Pagato "
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET
|
||||
BEGIN
|
||||
PROMPT 0 6 ""
|
||||
ITEM "Pagato@18"
|
||||
ITEM "Da pagare@18"
|
||||
ITEM "Totale doc.@18"
|
||||
ITEM "N.ro Fattura"
|
||||
ITEM "Data@10"
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 70 50
|
||||
BEGIN
|
||||
PROMPT 8 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
PAGE "Rate" -1 -1 60 14
|
||||
|
||||
CURRENCY F_PAGATO
|
||||
BEGIN
|
||||
PROMPT 4 1 "Pagato "
|
||||
END
|
||||
|
||||
CURRENCY F_DAPAGARE
|
||||
BEGIN
|
||||
PROMPT 4 3 "Da Pagare "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
CURRENCY F_TOTDOC
|
||||
BEGIN
|
||||
PROMPT 4 5 "Totale fattura "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_NDOC 6
|
||||
BEGIN
|
||||
PROMPT 4 7 "Numero fattura "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
DATE F_DATADOC
|
||||
BEGIN
|
||||
PROMPT 4 9 "Data fattura "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
END
|
||||
|
||||
BUTTON F_PAGA 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 "~Paga"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
@ -1,16 +1,16 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pt0195.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
pt0195100(argc, argv); break;
|
||||
default:
|
||||
pt0195100(argc, argv); break; //Importazione documenti Volvo
|
||||
}
|
||||
return 0;
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pt0195.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
pt0195100(argc, argv); break;
|
||||
default:
|
||||
pt0195100(argc, argv); break; //Importazione documenti Volvo
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1 +1 @@
|
||||
int pt0195100(int argc, char* argv[]);
|
||||
int pt0195100(int argc, char* argv[]);
|
||||
|
1030
ps/pt0195100.cpp
1030
ps/pt0195100.cpp
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
// campi della maschera principale
|
||||
|
||||
#define F_PATH 101
|
||||
#define F_NAME 102
|
||||
|
||||
// campi della maschera principale
|
||||
|
||||
#define F_PATH 101
|
||||
#define F_NAME 102
|
||||
|
||||
|
@ -1,38 +1,38 @@
|
||||
#include "pt0195100a.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Importazione documenti Volvo" -1 -1 56 14
|
||||
|
||||
STRING F_PATH 255 40
|
||||
BEGIN
|
||||
PROMPT 1 1 "Percorso file da importare "
|
||||
DSELECT
|
||||
FLAGS "M"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Selezionare una cartella valida!"
|
||||
FIELD PATH
|
||||
END
|
||||
|
||||
STRING F_NAME 30
|
||||
BEGIN
|
||||
PROMPT 1 3 "Nome file da importare "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD NAME
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
#include "pt0195100a.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Importazione documenti Volvo" -1 -1 56 14
|
||||
|
||||
STRING F_PATH 255 40
|
||||
BEGIN
|
||||
PROMPT 1 1 "Percorso file da importare "
|
||||
DSELECT
|
||||
FLAGS "M"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Selezionare una cartella valida!"
|
||||
FIELD PATH
|
||||
END
|
||||
|
||||
STRING F_NAME 30
|
||||
BEGIN
|
||||
PROMPT 1 3 "Nome file da importare "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD NAME
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
@ -1,98 +1,98 @@
|
||||
[MAIN]
|
||||
DECSEP =
|
||||
FIELDSEP =
|
||||
RECORDSEP =
|
||||
RECORDSIZE = 0
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = -1
|
||||
TYPELEN = -1
|
||||
TYPEPOS = -1
|
||||
|
||||
[TYPE FISSO]
|
||||
ALIGN =
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE DATA]
|
||||
ALIGN =
|
||||
DATA = D
|
||||
DECIMAL = 0
|
||||
FILLER =
|
||||
LENGTH = 10
|
||||
PICTURE =
|
||||
|
||||
[TYPE NUMERO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE IMPORTO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 2
|
||||
LENGTH = 11
|
||||
PICTURE =
|
||||
|
||||
[TYPE STRINGA]
|
||||
ALIGN = L
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[RECORD]
|
||||
NAME(0) = DORIDOC
|
||||
TYPE(0) = STRINGA
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 1
|
||||
|
||||
NAME(1) = DTIPDOC
|
||||
TYPE(1) = STRINGA
|
||||
POSITION(1) = 1
|
||||
LENGTH(1) = 1
|
||||
|
||||
NAME(2) = DNUMDOC
|
||||
TYPE(2) = STRINGA
|
||||
POSITION(2) = 2
|
||||
LENGTH(2) = 7
|
||||
|
||||
NAME(3) = DDATDOC
|
||||
TYPE(3) = DATA
|
||||
POSITION(3) = 9
|
||||
|
||||
NAME(4) = DCLICOD
|
||||
TYPE(4) = STRINGA
|
||||
POSITION(4) = 19
|
||||
LENGTH(4) = 10
|
||||
|
||||
NAME(5) = DTIPORIGA
|
||||
TYPE(5) = STRINGA
|
||||
POSITION(5) = 29
|
||||
LENGTH(5) = 10
|
||||
|
||||
NAME(6) = DCONTOD
|
||||
TYPE(6) = STRINGA
|
||||
POSITION(6) = 39
|
||||
LENGTH(6) = 40
|
||||
|
||||
NAME(7) = DVALORED
|
||||
TYPE(7) = IMPORTO
|
||||
POSITION(7) = 79
|
||||
LENGTH(7) = 11
|
||||
|
||||
NAME(8) = DCONTOC
|
||||
TYPE(8) = STRINGA
|
||||
POSITION(8) = 90
|
||||
LENGTH(8) = 40
|
||||
|
||||
NAME(9) = DVALOREC
|
||||
TYPE(9) = IMPORTO
|
||||
POSITION(9) = 130
|
||||
LENGTH(9) = 11
|
||||
[MAIN]
|
||||
DECSEP =
|
||||
FIELDSEP =
|
||||
RECORDSEP =
|
||||
RECORDSIZE = 0
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = -1
|
||||
TYPELEN = -1
|
||||
TYPEPOS = -1
|
||||
|
||||
[TYPE FISSO]
|
||||
ALIGN =
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE DATA]
|
||||
ALIGN =
|
||||
DATA = D
|
||||
DECIMAL = 0
|
||||
FILLER =
|
||||
LENGTH = 10
|
||||
PICTURE =
|
||||
|
||||
[TYPE NUMERO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE IMPORTO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 2
|
||||
LENGTH = 11
|
||||
PICTURE =
|
||||
|
||||
[TYPE STRINGA]
|
||||
ALIGN = L
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[RECORD]
|
||||
NAME(0) = DORIDOC
|
||||
TYPE(0) = STRINGA
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 1
|
||||
|
||||
NAME(1) = DTIPDOC
|
||||
TYPE(1) = STRINGA
|
||||
POSITION(1) = 1
|
||||
LENGTH(1) = 1
|
||||
|
||||
NAME(2) = DNUMDOC
|
||||
TYPE(2) = STRINGA
|
||||
POSITION(2) = 2
|
||||
LENGTH(2) = 7
|
||||
|
||||
NAME(3) = DDATDOC
|
||||
TYPE(3) = DATA
|
||||
POSITION(3) = 9
|
||||
|
||||
NAME(4) = DCLICOD
|
||||
TYPE(4) = STRINGA
|
||||
POSITION(4) = 19
|
||||
LENGTH(4) = 10
|
||||
|
||||
NAME(5) = DTIPORIGA
|
||||
TYPE(5) = STRINGA
|
||||
POSITION(5) = 29
|
||||
LENGTH(5) = 10
|
||||
|
||||
NAME(6) = DCONTOD
|
||||
TYPE(6) = STRINGA
|
||||
POSITION(6) = 39
|
||||
LENGTH(6) = 40
|
||||
|
||||
NAME(7) = DVALORED
|
||||
TYPE(7) = IMPORTO
|
||||
POSITION(7) = 79
|
||||
LENGTH(7) = 11
|
||||
|
||||
NAME(8) = DCONTOC
|
||||
TYPE(8) = STRINGA
|
||||
POSITION(8) = 90
|
||||
LENGTH(8) = 40
|
||||
|
||||
NAME(9) = DVALOREC
|
||||
TYPE(9) = IMPORTO
|
||||
POSITION(9) = 130
|
||||
LENGTH(9) = 11
|
||||
|
@ -1,209 +1,209 @@
|
||||
[MAIN]
|
||||
DECSEP =
|
||||
FIELDSEP =
|
||||
RECORDSEP =
|
||||
RECORDSIZE = 0
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = -1
|
||||
TYPELEN = -1
|
||||
TYPEPOS = -1
|
||||
|
||||
[TYPE FISSO]
|
||||
ALIGN =
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE DATA]
|
||||
ALIGN =
|
||||
DATA = D
|
||||
DECIMAL = 0
|
||||
FILLER =
|
||||
LENGTH = 10
|
||||
PICTURE =
|
||||
|
||||
[TYPE NUMERO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE IMPORTO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
LENGTH = 11
|
||||
PICTURE =
|
||||
|
||||
[TYPE STRINGA]
|
||||
ALIGN = L
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[RECORD]
|
||||
NAME(0) = TORIDOC
|
||||
TYPE(0) = STRINGA
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 1
|
||||
|
||||
NAME(1) = TTIPDOC
|
||||
TYPE(1) = STRINGA
|
||||
POSITION(1) = 1
|
||||
LENGTH(1) = 1
|
||||
|
||||
NAME(2) = TNUMDOC
|
||||
TYPE(2) = STRINGA
|
||||
POSITION(2) = 2
|
||||
LENGTH(2) = 7
|
||||
|
||||
NAME(3) = TDATDOC
|
||||
TYPE(3) = DATA
|
||||
POSITION(3) = 9
|
||||
|
||||
NAME(4) = TCLIMAS
|
||||
TYPE(4) = STRINGA
|
||||
POSITION(4) = 19
|
||||
LENGTH(4) = 10
|
||||
|
||||
NAME(5) = TCLICOD
|
||||
TYPE(5) = STRINGA
|
||||
POSITION(5) = 29
|
||||
LENGTH(5) = 10
|
||||
|
||||
NAME(6) = TCODPAG
|
||||
TYPE(6) = STRINGA
|
||||
POSITION(6) = 39
|
||||
LENGTH(6) = 3
|
||||
|
||||
NAME(7) = TCODVAL
|
||||
TYPE(7) = STRINGA
|
||||
POSITION(7) = 42
|
||||
LENGTH(7) = 3
|
||||
|
||||
NAME(8) = TTOTIMP
|
||||
TYPE(8) = IMPORTO
|
||||
POSITION(8) = 45
|
||||
|
||||
NAME(9) = TTOTNIM
|
||||
TYPE(9) = IMPORTO
|
||||
POSITION(9) = 56
|
||||
|
||||
NAME(10) = TCODIVA
|
||||
TYPE(10) = STRINGA
|
||||
POSITION(10) = 67
|
||||
LENGTH(10) = 2
|
||||
|
||||
NAME(11) = TIVA
|
||||
TYPE(11) = IMPORTO
|
||||
POSITION(11) = 70
|
||||
|
||||
NAME(12) = TTOTDOC
|
||||
TYPE(12) = IMPORTO
|
||||
POSITION(12) = 81
|
||||
|
||||
NAME(13) = TRAGSOC
|
||||
TYPE(13) = STRINGA
|
||||
POSITION(13) = 92
|
||||
LENGTH(13) = 45
|
||||
|
||||
NAME(14) = TINDIR
|
||||
TYPE(14) = STRINGA
|
||||
POSITION(14) = 137
|
||||
LENGTH(14) = 30
|
||||
|
||||
NAME(15) = TLOCAL
|
||||
TYPE(15) = STRINGA
|
||||
POSITION(15) = 167
|
||||
LENGTH(15) = 30
|
||||
|
||||
NAME(16) = TPROVI
|
||||
TYPE(16) = STRINGA
|
||||
POSITION(16) = 197
|
||||
LENGTH(16) = 30
|
||||
|
||||
NAME(17) = TCAP
|
||||
TYPE(17) = STRINGA
|
||||
POSITION(17) = 227
|
||||
LENGTH(17) = 10
|
||||
|
||||
NAME(18) = TCITTA2
|
||||
TYPE(18) = STRINGA
|
||||
POSITION(18) = 237
|
||||
LENGTH(18) = 30
|
||||
|
||||
NAME(19) = TNAZIO // CODICE FISCALE
|
||||
TYPE(19) = STRINGA
|
||||
POSITION(19) = 267
|
||||
LENGTH(19) = 30
|
||||
|
||||
NAME(20) = TPIVA
|
||||
TYPE(20) = STRINGA
|
||||
POSITION(20) = 297
|
||||
LENGTH(20) = 20
|
||||
|
||||
NAME(21) = TCODBAN1
|
||||
TYPE(21) = STRINGA
|
||||
POSITION(21) = 317
|
||||
LENGTH(21) = 15
|
||||
|
||||
NAME(22) = TCODBAN2
|
||||
TYPE(22) = STRINGA
|
||||
POSITION(22) = 332
|
||||
LENGTH(22) = 15
|
||||
|
||||
NAME(23) = TCODCC
|
||||
TYPE(23) = STRINGA
|
||||
POSITION(23) = 347
|
||||
LENGTH(23) = 15
|
||||
|
||||
NAME(24) = TDESBAN
|
||||
TYPE(24) = STRINGA
|
||||
POSITION(24) = 362
|
||||
LENGTH(24) = 30
|
||||
|
||||
NAME(25) = TTELE1
|
||||
TYPE(25) = STRINGA
|
||||
POSITION(25) = 392
|
||||
LENGTH(25) = 15
|
||||
|
||||
NAME(26) = TTELE2
|
||||
TYPE(26) = STRINGA
|
||||
POSITION(26) = 407
|
||||
LENGTH(26) = 15
|
||||
|
||||
NAME(27) = TTELE3
|
||||
TYPE(27) = STRINGA
|
||||
POSITION(27) = 422
|
||||
LENGTH(27) = 15
|
||||
|
||||
NAME(28) = TTELE4
|
||||
TYPE(28) = STRINGA
|
||||
POSITION(28) = 437
|
||||
LENGTH(28) = 15
|
||||
|
||||
NAME(29) = TTELE5
|
||||
TYPE(29) = STRINGA
|
||||
POSITION(29) = 452
|
||||
LENGTH(29) = 15
|
||||
|
||||
NAME(30) = TTELE6
|
||||
TYPE(30) = STRINGA
|
||||
POSITION(30) = 467
|
||||
LENGTH(30) = 15
|
||||
|
||||
NAME(31) = TEMAIL
|
||||
TYPE(31) = STRINGA
|
||||
POSITION(31) = 482
|
||||
LENGTH(31) = 50
|
||||
|
||||
NAME(32) = TWEB
|
||||
TYPE(32) = STRINGA
|
||||
POSITION(32) = 532
|
||||
LENGTH(32) = 60
|
||||
[MAIN]
|
||||
DECSEP =
|
||||
FIELDSEP =
|
||||
RECORDSEP =
|
||||
RECORDSIZE = 0
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = -1
|
||||
TYPELEN = -1
|
||||
TYPEPOS = -1
|
||||
|
||||
[TYPE FISSO]
|
||||
ALIGN =
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE DATA]
|
||||
ALIGN =
|
||||
DATA = D
|
||||
DECIMAL = 0
|
||||
FILLER =
|
||||
LENGTH = 10
|
||||
PICTURE =
|
||||
|
||||
[TYPE NUMERO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE IMPORTO]
|
||||
ALIGN = R
|
||||
DATA =
|
||||
DECIMAL = 0
|
||||
LENGTH = 11
|
||||
PICTURE =
|
||||
|
||||
[TYPE STRINGA]
|
||||
ALIGN = L
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[RECORD]
|
||||
NAME(0) = TORIDOC
|
||||
TYPE(0) = STRINGA
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 1
|
||||
|
||||
NAME(1) = TTIPDOC
|
||||
TYPE(1) = STRINGA
|
||||
POSITION(1) = 1
|
||||
LENGTH(1) = 1
|
||||
|
||||
NAME(2) = TNUMDOC
|
||||
TYPE(2) = STRINGA
|
||||
POSITION(2) = 2
|
||||
LENGTH(2) = 7
|
||||
|
||||
NAME(3) = TDATDOC
|
||||
TYPE(3) = DATA
|
||||
POSITION(3) = 9
|
||||
|
||||
NAME(4) = TCLIMAS
|
||||
TYPE(4) = STRINGA
|
||||
POSITION(4) = 19
|
||||
LENGTH(4) = 10
|
||||
|
||||
NAME(5) = TCLICOD
|
||||
TYPE(5) = STRINGA
|
||||
POSITION(5) = 29
|
||||
LENGTH(5) = 10
|
||||
|
||||
NAME(6) = TCODPAG
|
||||
TYPE(6) = STRINGA
|
||||
POSITION(6) = 39
|
||||
LENGTH(6) = 3
|
||||
|
||||
NAME(7) = TCODVAL
|
||||
TYPE(7) = STRINGA
|
||||
POSITION(7) = 42
|
||||
LENGTH(7) = 3
|
||||
|
||||
NAME(8) = TTOTIMP
|
||||
TYPE(8) = IMPORTO
|
||||
POSITION(8) = 45
|
||||
|
||||
NAME(9) = TTOTNIM
|
||||
TYPE(9) = IMPORTO
|
||||
POSITION(9) = 56
|
||||
|
||||
NAME(10) = TCODIVA
|
||||
TYPE(10) = STRINGA
|
||||
POSITION(10) = 67
|
||||
LENGTH(10) = 2
|
||||
|
||||
NAME(11) = TIVA
|
||||
TYPE(11) = IMPORTO
|
||||
POSITION(11) = 70
|
||||
|
||||
NAME(12) = TTOTDOC
|
||||
TYPE(12) = IMPORTO
|
||||
POSITION(12) = 81
|
||||
|
||||
NAME(13) = TRAGSOC
|
||||
TYPE(13) = STRINGA
|
||||
POSITION(13) = 92
|
||||
LENGTH(13) = 45
|
||||
|
||||
NAME(14) = TINDIR
|
||||
TYPE(14) = STRINGA
|
||||
POSITION(14) = 137
|
||||
LENGTH(14) = 30
|
||||
|
||||
NAME(15) = TLOCAL
|
||||
TYPE(15) = STRINGA
|
||||
POSITION(15) = 167
|
||||
LENGTH(15) = 30
|
||||
|
||||
NAME(16) = TPROVI
|
||||
TYPE(16) = STRINGA
|
||||
POSITION(16) = 197
|
||||
LENGTH(16) = 30
|
||||
|
||||
NAME(17) = TCAP
|
||||
TYPE(17) = STRINGA
|
||||
POSITION(17) = 227
|
||||
LENGTH(17) = 10
|
||||
|
||||
NAME(18) = TCITTA2
|
||||
TYPE(18) = STRINGA
|
||||
POSITION(18) = 237
|
||||
LENGTH(18) = 30
|
||||
|
||||
NAME(19) = TNAZIO // CODICE FISCALE
|
||||
TYPE(19) = STRINGA
|
||||
POSITION(19) = 267
|
||||
LENGTH(19) = 30
|
||||
|
||||
NAME(20) = TPIVA
|
||||
TYPE(20) = STRINGA
|
||||
POSITION(20) = 297
|
||||
LENGTH(20) = 20
|
||||
|
||||
NAME(21) = TCODBAN1
|
||||
TYPE(21) = STRINGA
|
||||
POSITION(21) = 317
|
||||
LENGTH(21) = 15
|
||||
|
||||
NAME(22) = TCODBAN2
|
||||
TYPE(22) = STRINGA
|
||||
POSITION(22) = 332
|
||||
LENGTH(22) = 15
|
||||
|
||||
NAME(23) = TCODCC
|
||||
TYPE(23) = STRINGA
|
||||
POSITION(23) = 347
|
||||
LENGTH(23) = 15
|
||||
|
||||
NAME(24) = TDESBAN
|
||||
TYPE(24) = STRINGA
|
||||
POSITION(24) = 362
|
||||
LENGTH(24) = 30
|
||||
|
||||
NAME(25) = TTELE1
|
||||
TYPE(25) = STRINGA
|
||||
POSITION(25) = 392
|
||||
LENGTH(25) = 15
|
||||
|
||||
NAME(26) = TTELE2
|
||||
TYPE(26) = STRINGA
|
||||
POSITION(26) = 407
|
||||
LENGTH(26) = 15
|
||||
|
||||
NAME(27) = TTELE3
|
||||
TYPE(27) = STRINGA
|
||||
POSITION(27) = 422
|
||||
LENGTH(27) = 15
|
||||
|
||||
NAME(28) = TTELE4
|
||||
TYPE(28) = STRINGA
|
||||
POSITION(28) = 437
|
||||
LENGTH(28) = 15
|
||||
|
||||
NAME(29) = TTELE5
|
||||
TYPE(29) = STRINGA
|
||||
POSITION(29) = 452
|
||||
LENGTH(29) = 15
|
||||
|
||||
NAME(30) = TTELE6
|
||||
TYPE(30) = STRINGA
|
||||
POSITION(30) = 467
|
||||
LENGTH(30) = 15
|
||||
|
||||
NAME(31) = TEMAIL
|
||||
TYPE(31) = STRINGA
|
||||
POSITION(31) = 482
|
||||
LENGTH(31) = 50
|
||||
|
||||
NAME(32) = TWEB
|
||||
TYPE(32) = STRINGA
|
||||
POSITION(32) = 532
|
||||
LENGTH(32) = 60
|
||||
|
@ -1,20 +1,20 @@
|
||||
[MAIN]
|
||||
PATH =
|
||||
NAME =
|
||||
XCL_ART=
|
||||
|
||||
[CODNUM]
|
||||
OF =
|
||||
RF =
|
||||
LF =
|
||||
OC =
|
||||
RC =
|
||||
LC =
|
||||
|
||||
[HEAD]
|
||||
RAGGREFF =
|
||||
ADDBOLLI =
|
||||
PERCSPINC =
|
||||
|
||||
[ROW]
|
||||
UMQTA =
|
||||
[MAIN]
|
||||
PATH =
|
||||
NAME =
|
||||
XCL_ART=
|
||||
|
||||
[CODNUM]
|
||||
OF =
|
||||
RF =
|
||||
LF =
|
||||
OC =
|
||||
RC =
|
||||
LC =
|
||||
|
||||
[HEAD]
|
||||
RAGGREFF =
|
||||
ADDBOLLI =
|
||||
PERCSPINC =
|
||||
|
||||
[ROW]
|
||||
UMQTA =
|
||||
|
Loading…
x
Reference in New Issue
Block a user