Patch level :R_02_01 nopatch
Files correlati :ve7.exe & ve7500*.* Ricompilazione Demo : [ ] Commento :prima implementazione del programma per gommisti git-svn-id: svn://10.65.10.50/trunk@11796 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a08e993166
commit
a11485820a
@ -9,6 +9,8 @@ int main( int argc, char** argv )
|
|||||||
|
|
||||||
switch (r)
|
switch (r)
|
||||||
{
|
{
|
||||||
|
case 4:
|
||||||
|
ve7500(argc, argv); break; // importazione listini gommisti (michelin,pirelli etc.)
|
||||||
case 3:
|
case 3:
|
||||||
ve7400(argc, argv); break; // esportazione bolle CONAD per marpesca
|
ve7400(argc, argv); break; // esportazione bolle CONAD per marpesca
|
||||||
case 2:
|
case 2:
|
||||||
|
1
ve/ve7.h
1
ve/ve7.h
@ -5,5 +5,6 @@ int ve7100 (int, char**);
|
|||||||
int ve7200 (int, char**);
|
int ve7200 (int, char**);
|
||||||
int ve7300 (int, char**);
|
int ve7300 (int, char**);
|
||||||
int ve7400 (int, char**);
|
int ve7400 (int, char**);
|
||||||
|
int ve7500 (int, char**);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
151
ve/ve7500.cpp
Executable file
151
ve/ve7500.cpp
Executable file
@ -0,0 +1,151 @@
|
|||||||
|
#include <applicat.h>
|
||||||
|
#include <filetext.h>
|
||||||
|
#include <isamrpc.h>
|
||||||
|
#include <mask.h>
|
||||||
|
#include <tabutil.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <recarray.h>
|
||||||
|
#include <utility.h>
|
||||||
|
|
||||||
|
#include "..\mg\umart.h"
|
||||||
|
#include "..\mg\anamag.h"
|
||||||
|
|
||||||
|
#include "ve7.h"
|
||||||
|
#include "ve7500a.h"
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
// Classe TLis2fil: filetext //
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TLis2fil_txt: public TFile_text
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
// virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TLis2fil_txt(const TString& file_name, const TString& config_name);
|
||||||
|
virtual ~TLis2fil_txt() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
TLis2fil_txt::TLis2fil_txt(const TString& file_name, const TString& config_name)
|
||||||
|
: TFile_text(file_name, config_name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
// Classe TLis2fil: applicazione principale //
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TLis2fil: public TSkeleton_application
|
||||||
|
{
|
||||||
|
TMask* _msk;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool create(void);
|
||||||
|
virtual void main_loop();
|
||||||
|
virtual bool destroy(void);
|
||||||
|
void transfer(void);
|
||||||
|
static bool annulla_handler(TMask_field& f, KEY k);
|
||||||
|
const char * get_ini_name(const TString& filename) const;
|
||||||
|
void import(const TString& filename);
|
||||||
|
|
||||||
|
public:
|
||||||
|
const TMask& msk() const { return *_msk; }
|
||||||
|
TLis2fil() {}
|
||||||
|
virtual ~TLis2fil() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
const char * TLis2fil::get_ini_name (const TString& filename) const
|
||||||
|
{
|
||||||
|
TScanner scan_line(filename);
|
||||||
|
const TString& line = scan_line.line();
|
||||||
|
return line[0] == '"' ? "ve7500p.ini" : "ve7500m.ini";
|
||||||
|
}
|
||||||
|
|
||||||
|
void TLis2fil::import(const TString& filename)
|
||||||
|
{
|
||||||
|
//stabilisce quale tipo di listino e' il file corrente (M o P),carica il .ini relativo
|
||||||
|
//lo parsa in modo read
|
||||||
|
const char * ini = get_ini_name (filename);
|
||||||
|
TLis2fil_txt trasfile(filename, ini);
|
||||||
|
trasfile.open(filename,'r');
|
||||||
|
const long dimension = fsize(filename);
|
||||||
|
TString msg;
|
||||||
|
msg << "Acquisizione del file " << filename << " in corso...";
|
||||||
|
TProgind pi(dimension, msg, false, true);
|
||||||
|
|
||||||
|
TRelation rel(LF_ANAMAG);
|
||||||
|
TRectype& rec_anamag = rel.curr();
|
||||||
|
|
||||||
|
TRecord_text curr;
|
||||||
|
while (trasfile.read(curr) == NOERR)
|
||||||
|
{
|
||||||
|
pi.setstatus(trasfile.read_file()->tellg());
|
||||||
|
trasfile.autosave(rel, curr);
|
||||||
|
}
|
||||||
|
|
||||||
|
trasfile.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
// creazione dell'applicazione
|
||||||
|
bool TLis2fil::create()
|
||||||
|
{
|
||||||
|
open_files(LF_ANAMAG, LF_UMART, 0);
|
||||||
|
|
||||||
|
_msk = new TMask("ve7500a");
|
||||||
|
TString default_dir = "A:\\";
|
||||||
|
_msk->set(F_DIRNAME, default_dir);
|
||||||
|
|
||||||
|
return TSkeleton_application::create();
|
||||||
|
}
|
||||||
|
|
||||||
|
// distruzione dell'applicazione
|
||||||
|
bool TLis2fil::destroy()
|
||||||
|
{
|
||||||
|
delete _msk;
|
||||||
|
return TSkeleton_application::destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
// carica la maschera
|
||||||
|
void TLis2fil::main_loop()
|
||||||
|
{
|
||||||
|
// Preimposta gli eventuali valori specificati sulla riga di comando
|
||||||
|
KEY key = K_ENTER;
|
||||||
|
while (key != K_QUIT)
|
||||||
|
{
|
||||||
|
key = _msk->run();
|
||||||
|
if (key == K_ENTER)
|
||||||
|
{
|
||||||
|
TString_array dir_files;
|
||||||
|
TFilename path = _msk->get(F_DIRNAME);
|
||||||
|
path.add("*.txt");
|
||||||
|
list_files(path, dir_files);
|
||||||
|
FOR_EACH_ARRAY_ROW(dir_files, i, row)
|
||||||
|
import(*row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// handler per gestire la conferma dell'annullamento dei dati inseriti
|
||||||
|
// nella maschera
|
||||||
|
bool TLis2fil::annulla_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
TMask &m = f.mask();
|
||||||
|
if (k == K_SPACE)
|
||||||
|
{
|
||||||
|
if (yesno_box("Vuoi veramente annullare i dati inseriti"))
|
||||||
|
m.reset();
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int ve7500(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TLis2fil a ;
|
||||||
|
a.run(argc, argv, "Importazione listino");
|
||||||
|
return 0;
|
||||||
|
}
|
4
ve/ve7500a.h
Executable file
4
ve/ve7500a.h
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
// acquisizione dati da file txt formattato: listini gommisti
|
||||||
|
// definizione campi per maschera di selezione
|
||||||
|
|
||||||
|
#define F_DIRNAME 101 // nome della directory da cui caricare i dati
|
23
ve/ve7500a.uml
Executable file
23
ve/ve7500a.uml
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#include "ve7500a.h"
|
||||||
|
|
||||||
|
|
||||||
|
PAGE "Acquisizione dati da file" -1 -1 78 4
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DIRNAME 45 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Cartella di origine dati "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
52
ve/ve7500m.ini
Executable file
52
ve/ve7500m.ini
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
[MAIN]
|
||||||
|
DECSEP =
|
||||||
|
FIELDSEP =
|
||||||
|
RECORDSEP =
|
||||||
|
RECORDSIZE = 0
|
||||||
|
SKIPLINES = 0
|
||||||
|
TYPEFIELD = -1
|
||||||
|
TYPELEN = -1
|
||||||
|
TYPEPOS = -1
|
||||||
|
|
||||||
|
[TYPE COD]
|
||||||
|
ALIGN = L
|
||||||
|
DATA =
|
||||||
|
DECIMAL = 0
|
||||||
|
FILLER =
|
||||||
|
LENGTH = 8
|
||||||
|
PICTURE =
|
||||||
|
|
||||||
|
[TYPE EURO]
|
||||||
|
ALIGN = R
|
||||||
|
DATA =
|
||||||
|
DECIMAL = 2
|
||||||
|
FILLER =
|
||||||
|
LENGTH = 8
|
||||||
|
PICTURE =
|
||||||
|
|
||||||
|
[TYPE DES]
|
||||||
|
ALIGN = L
|
||||||
|
DATA = S
|
||||||
|
DECIMAL = 0
|
||||||
|
FILLER = ' '
|
||||||
|
LENGTH = 54
|
||||||
|
PICTURE =
|
||||||
|
|
||||||
|
[RECORD]
|
||||||
|
NAME(0) = CODART
|
||||||
|
TYPE(0) = COD
|
||||||
|
FIELD(0) = 47->CODART
|
||||||
|
POSITION(0) = 0
|
||||||
|
LENGTH(0) = 8
|
||||||
|
|
||||||
|
NAME(1) = DESCR
|
||||||
|
TYPE(1) = DES
|
||||||
|
FIELD(1) = 47->DESCR
|
||||||
|
POSITION(1) = 9
|
||||||
|
LENGTH(1) = 54
|
||||||
|
|
||||||
|
NAME(2) = PRICE
|
||||||
|
TYPE(2) = EURO
|
||||||
|
POSITION(2) = 63
|
||||||
|
LENGTH(2) = 8
|
||||||
|
|
52
ve/ve7500p.ini
Executable file
52
ve/ve7500p.ini
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
[MAIN]
|
||||||
|
DECSEP =
|
||||||
|
FIELDSEP =
|
||||||
|
RECORDSEP =
|
||||||
|
RECORDSIZE = 0
|
||||||
|
SKIPLINES = 0
|
||||||
|
TYPEFIELD = -1
|
||||||
|
TYPELEN = -1
|
||||||
|
TYPEPOS = -1
|
||||||
|
|
||||||
|
[TYPE COD]
|
||||||
|
ALIGN = L
|
||||||
|
DATA =
|
||||||
|
DECIMAL = 0
|
||||||
|
FILLER =
|
||||||
|
LENGTH = 9
|
||||||
|
PICTURE =
|
||||||
|
|
||||||
|
[TYPE EURO]
|
||||||
|
ALIGN = R
|
||||||
|
DATA =
|
||||||
|
DECIMAL = 2
|
||||||
|
FILLER =
|
||||||
|
LENGTH = 11
|
||||||
|
PICTURE =
|
||||||
|
|
||||||
|
[TYPE DES]
|
||||||
|
ALIGN = L
|
||||||
|
DATA = S
|
||||||
|
DECIMAL = 0
|
||||||
|
FILLER = ' '
|
||||||
|
LENGTH = 31
|
||||||
|
PICTURE =
|
||||||
|
|
||||||
|
[RECORD]
|
||||||
|
NAME(0) = CODART
|
||||||
|
TYPE(0) = COD
|
||||||
|
FIELD(0) = 47->CODART
|
||||||
|
POSITION(0) = 1
|
||||||
|
LENGTH(0) = 9
|
||||||
|
|
||||||
|
NAME(1) = DESCR
|
||||||
|
TYPE(1) = DES
|
||||||
|
FIELD(1) = 47->DESCR
|
||||||
|
POSITION(1) = 13
|
||||||
|
LENGTH(1) = 31
|
||||||
|
|
||||||
|
NAME(2) = PRICE
|
||||||
|
TYPE(2) = EURO
|
||||||
|
POSITION(2) = 47
|
||||||
|
LENGTH(2) = 11
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user