Patch level : 10.0 patch 767

Files correlati     :  ve6.exe
Ricompilazione Demo : [ ]
Commento            :

Aggiunta gestione magazzino collegato in importazione da penna ottica

Dalla versione 3.2


git-svn-id: svn://10.65.10.50/trunk@20597 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-06-21 14:20:35 +00:00
parent c10c38a69b
commit a45d9a9b56
3 changed files with 79 additions and 25 deletions

View File

@ -105,12 +105,14 @@ private:
bool _gestmag; bool _gestmag;
bool _gestdep; bool _gestdep;
bool _gestmultimag; bool _gestmultimag;
TString4 _codmagc;
protected: protected:
virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly);
virtual void on_firm_change(); virtual void on_firm_change();
public: public:
void set_magc(const TString& magc) { set(F_MAGC, _codmagc = magc); }
TPenna_mask(); TPenna_mask();
virtual ~TPenna_mask(){} virtual ~TPenna_mask(){}
}; };
@ -166,7 +168,13 @@ bool TPenna_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
hide(F_DEP); hide(F_DEP);
} }
break; break;
case F_MAGC:
if (e == fe_init && f.empty() && _codmagc.full())
{
f.set(_codmagc);
f.check(STARTING_CHECK);
}
break;
default: default:
break; break;
} }
@ -254,6 +262,7 @@ class TPenna_app : public TSkeleton_application
private: private:
TFilename _ini_name; TFilename _ini_name;
int _first_row; int _first_row;
TString4 _codmagc;
protected: protected:
virtual void main_loop(); virtual void main_loop();
@ -275,7 +284,7 @@ bool TPenna_app::load_ini(bool check) //definizione de
if (args <= narg) if (args <= narg)
return FALSE; //argv é un array di null-terminated strings return FALSE; //argv é un array di null-terminated strings
const TString& arg = argv(narg); const TFixed_string arg = argv(narg);
if ((arg[0] != '-' && arg[0] != '/') || (arg[1] != 'i' && arg[1] != 'I')) if ((arg[0] != '-' && arg[0] != '/') || (arg[1] != 'i' && arg[1] != 'I'))
return FALSE; return FALSE;
@ -300,6 +309,9 @@ bool TPenna_app::load_ini(bool check) //definizione de
_first_row = para.get_int(1)+1; //assegna a _first_row il numero (trasformato da una stringa con get_int) _first_row = para.get_int(1)+1; //assegna a _first_row il numero (trasformato da una stringa con get_int)
//dell'ultima riga usata+1, cioé la prima riga libera: é il punto in cui //dell'ultima riga usata+1, cioé la prima riga libera: é il punto in cui
//cominciare a scrivere //cominciare a scrivere
_codmagc = ini.get("CODMAGC", "33"); // Cerca un eventuale magazzino collegato da proporre
return TRUE; return TRUE;
} }
@ -308,7 +320,7 @@ void TPenna_app::check_doc() //definizione della me
TCheck_mask m; //istanza di TPenna_mask con il nome m (perche'ho chiamato una maschera) TCheck_mask m; //istanza di TPenna_mask con il nome m (perche'ho chiamato una maschera)
if(m.run()==K_ENTER) if(m.run()==K_ENTER)
{ {
TConfig ini(_ini_name, "Transaction"); //apre il file su cui scrivere TConfig ini(_ini_name, "Transaction"); //apre il file su cui scrivere
//chiamo il nome del file F_FILE che abbiamo scelto con la maschera; get //chiamo il nome del file F_FILE che abbiamo scelto con la maschera; get
//legge una stringa //legge una stringa
TRecord_cache c(LF_CODCORR, 2); TRecord_cache c(LF_CODCORR, 2);
@ -328,7 +340,7 @@ void TPenna_app::check_doc() //definizione della me
para.format("%d", LF_DOC); para.format("%d", LF_DOC);
const int anno = ini.get_int(DOC_ANNO, para); const int anno = ini.get_int(DOC_ANNO, para);
const TString16 codnum(ini.get(DOC_CODNUM)); const TString4 codnum(ini.get(DOC_CODNUM));
const char provv = ini.get_char(DOC_PROVV); const char provv = ini.get_char(DOC_PROVV);
const long ndoc = ini.get_long(DOC_NDOC); const long ndoc = ini.get_long(DOC_NDOC);
int fcod = -1; int fcod = -1;
@ -484,6 +496,8 @@ void TPenna_app::check_doc() //definizione della me
void TPenna_app::load_doc() //definizione della member function main_loop, della classe TPenna_app void TPenna_app::load_doc() //definizione della member function main_loop, della classe TPenna_app
{ {
TPenna_mask m; //istanza di TPenna_mask con il nome m (perche'ho chiamato una maschera) TPenna_mask m; //istanza di TPenna_mask con il nome m (perche'ho chiamato una maschera)
m.set_magc(_codmagc); // Propone l'eventuale magazzino collegatp
if(m.run()==K_ENTER) if(m.run()==K_ENTER)
{ {
TConfig ini(_ini_name, "Transaction"); //apre il file su cui scrivere TConfig ini(_ini_name, "Transaction"); //apre il file su cui scrivere
@ -493,7 +507,7 @@ void TPenna_app::load_doc() //definizione della me
const TFilename nomefile = m.get(F_FILE); //assegno alla variabile nomefile la stringa letta con m.get(F_FILE); const TFilename nomefile = m.get(F_FILE); //assegno alla variabile nomefile la stringa letta con m.get(F_FILE);
//nomefile é una variabile di tipo TFilename //nomefile é una variabile di tipo TFilename
const TString16 tiporiga = m.get(F_TIPORIGA); const TString4 tiporiga = m.get(F_TIPORIGA);
const int tipo = m.get_int(F_TIPO); //var int che indica la modalitá di archiviazione (0=quantitá, 1=dif. giac.) const int tipo = m.get_int(F_TIPO); //var int che indica la modalitá di archiviazione (0=quantitá, 1=dif. giac.)
@ -508,13 +522,17 @@ void TPenna_app::load_doc() //definizione della me
para.format("%d", LF_DOC); para.format("%d", LF_DOC);
TDate datadoc(ini.get(DOC_DATADOC, para)); //dal paragrafo testata documento prende il valore della data del TDate datadoc(ini.get(DOC_DATADOC, para)); //dal paragrafo testata documento prende il valore della data del
//documento //documento
TString16 annoes; TString16 annoes;
annoes.format("%04d", esercizi().date2esc(datadoc)); //crea un intero lungo 4 riempito di 0 all'inizio annoes.format("%04d", esercizi().date2esc(datadoc)); //crea un intero lungo 4 riempito di 0 all'inizio
TString8 codmag = m.get(F_MAG); // setta codmag in base al valore della maschera TString8 codmag = m.get(F_MAG); // setta codmag in base al valore della maschera
codmag.left_just(3) << m.get(F_DEP); // attacca a codmag il F_DEP, codice deposito dalla maschera codmag.left_just(3) << m.get(F_DEP); // attacca a codmag il F_DEP, codice deposito dalla maschera
TString8 codmagc = m.get(F_MAGC); // setta codmagc in base al valore della maschera
codmagc.left_just(3) << m.get(F_DEPC); // attacca a codmagc il F_DEPC, codice deposito collegato dalla maschera
TString val;
articoli.open(); //applico il metodo open che apre il file in lettura (contenuta in TFile_text) articoli.open(); //applico il metodo open che apre il file in lettura (contenuta in TFile_text)
for(int i=_first_row;articoli.ok_r();i++) //ok_r é una funzione che indica la fine del file for(int i=_first_row;articoli.ok_r();i++) //ok_r é una funzione che indica la fine del file
@ -526,15 +544,16 @@ void TPenna_app::load_doc() //definizione della me
ini.set_paragraph(para); // sposta il cursore sulla nuova para (nuovo valore) ini.set_paragraph(para); // sposta il cursore sulla nuova para (nuovo valore)
ini.set(RDOC_TIPORIGA,tiporiga); ini.set(RDOC_TIPORIGA,tiporiga);
ini.set(RDOC_CODARTMAG, NULL_CODART); // scrive il codice per forzare il check ini.set(RDOC_CODARTMAG, NULL_CODART); // scrive il codice per forzare il check
ini.set(RDOC_CODMAG, codmag); // magazzino di default ini.set(RDOC_CODMAG, codmag); // magazzino di default
ini.set(RDOC_CODMAGC, codmagc); // magazzino collegato
for (int f = 0; f < nfields; f++) for (int f = 0; f < nfields; f++)
{ {
const TTracciato_campo & c = rec.get(f); const TTracciato_campo & c = rec.get(f);
const TString name = c.name(); const TString& name = c.name();
if (name.not_empty()) if (name.not_empty())
{ {
TString val = articolocor.get(f); val = articolocor.get(f);
val.trim(); val.trim();
if (name == RDOC_CODART) if (name == RDOC_CODART)
@ -587,8 +606,6 @@ void TPenna_app::main_loop() //definizione della me
check_doc(); check_doc();
else else
load_doc(); load_doc();
} }
////// Esecuzione del programma /////////// ////// Esecuzione del programma ///////////

View File

@ -1,7 +1,11 @@
#define F_FILE 101 #define F_FILE 101
#define F_TIPORIGA 102 #define F_TIPORIGA 102
#define F_TIPO 103 #define F_TIPO 103
#define F_MAG 104 #define F_MAG 104
#define F_DEP 105 #define F_DEP 105
#define F_DESCRMAG 106 #define F_DESCRMAG 106
#define F_PROFILO 107 #define F_MAGC 107
#define F_DEPC 108
#define F_DESCRMAGC 109
#define F_PROFILO 201

View File

@ -1,6 +1,6 @@
#include "ve6500.h" #include "ve6500.h"
PAGE "Lettura terminale portatile" -1 -1 80 12 PAGE "Lettura terminale portatile" -1 -1 65 15
STRING F_FILE 128 40 STRING F_FILE 128 40
BEGIN BEGIN
@ -38,28 +38,60 @@ BEGIN
OUTPUT F_MAG CODTAB OUTPUT F_MAG CODTAB
OUTPUT F_DESCRMAG S0 OUTPUT F_DESCRMAG S0
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
GROUP 1
END END
STRING F_DEP 2 STRING F_DEP 2
BEGIN BEGIN
PROMPT 21 7 "Deposito " PROMPT 21 7 "Deposito "
COPY USE F_MAG COPY USE F_MAG
COPY INPUT F_MAG COPY INPUT F_MAG
INPUT CODTAB[4,5] F_DEP INPUT CODTAB[4,5] F_DEP
COPY DISPLAY F_MAG COPY DISPLAY F_MAG
COPY OUTPUT F_MAG COPY OUTPUT F_MAG
OUTPUT F_DEP CODTAB[4,5]
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 1
END END
STRING F_DESCRMAG 50 35 STRING F_DESCRMAG 50
BEGIN BEGIN
PROMPT 1 8 "Descrizione " PROMPT 1 8 "Descrizione "
FLAGS "D" FLAGS "D"
GROUP 1
END END
STRING F_MAGC 3
BEGIN
PROMPT 1 10 "Mag. colleg."
USE MAG
INPUT CODTAB[1,3] F_MAGC
DISPLAY "Magazzino" CODTAB[1,3]
DISPLAY "Deposito" CODTAB[4,5]
DISPLAY "Descrizione@50" S0
OUTPUT F_MAGC CODTAB
OUTPUT F_DESCRMAGC S0
CHECKTYPE NORMAL
END
STRING F_DEPC 2
BEGIN
PROMPT 21 10 "Dep. coll."
COPY USE F_MAGC
COPY INPUT F_MAGC
INPUT CODTAB[4,5] F_DEPC
COPY DISPLAY F_MAGC
COPY OUTPUT F_MAGC
OUTPUT F_DEPC CODTAB[4,5]
CHECKTYPE NORMAL
END
STRING F_DESCRMAGC 50
BEGIN
PROMPT 1 11 "Descrizione "
FLAGS "D"
END
STRING F_PROFILO 70 50 STRING F_PROFILO 70 50
BEGIN BEGIN
PROMPT 1 -2 "Profilo " PROMPT 1 -2 "Profilo "
@ -72,7 +104,8 @@ TOOLBAR ""
BUTTON DLG_OK 2 2 BUTTON DLG_OK 2 2
BEGIN BEGIN
PROMPT 1 1 "" PROMPT -12 -1 ""
PICTURE BMP_ELABORA
END END
#include <cancelbar.h> #include <cancelbar.h>