Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@16904 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3ef370dbff
commit
375e0ec0fd
@ -300,10 +300,6 @@
|
|||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
|
||||||
Name="Ini"
|
|
||||||
>
|
|
||||||
</Filter>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\lib\AgaLib.lib"
|
RelativePath="..\lib\AgaLib.lib"
|
||||||
>
|
>
|
||||||
|
@ -68,11 +68,13 @@ bool TImporta_penne_mask::on_field_event(TOperable_field& f, TField_event e, lon
|
|||||||
/////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
class TImporta_penne_recordset : public TCSV_recordset
|
class TImporta_penne_recordset : public TCSV_recordset
|
||||||
{
|
{
|
||||||
|
char _sep;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual TRecnotype new_rec(const char* buf = NULL);
|
virtual TRecnotype new_rec(const char* buf = NULL);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TImporta_penne_recordset(const char * fileName);
|
TImporta_penne_recordset(const char * fileName, char sep);
|
||||||
};
|
};
|
||||||
|
|
||||||
TRecnotype TImporta_penne_recordset::new_rec(const char* buf)
|
TRecnotype TImporta_penne_recordset::new_rec(const char* buf)
|
||||||
@ -91,7 +93,7 @@ TRecnotype TImporta_penne_recordset::new_rec(const char* buf)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (*c == ';') //tipo di separatore dei campiche si trova nel record di origine
|
if (*c == _sep) //tipo di separatore dei campi che si trova nel record di origine
|
||||||
{
|
{
|
||||||
if (!apici)
|
if (!apici)
|
||||||
str << str.separator();
|
str << str.separator();
|
||||||
@ -113,10 +115,17 @@ TRecnotype TImporta_penne_recordset::new_rec(const char* buf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TImporta_penne_recordset::TImporta_penne_recordset(const char * fileName)
|
TImporta_penne_recordset::TImporta_penne_recordset(const char * filename, char sep)
|
||||||
: TCSV_recordset("CSV(;)") //separatore con ";"
|
: TCSV_recordset("CSV(;)"), _sep(sep) //separatore
|
||||||
{
|
{
|
||||||
load_file(fileName);
|
TString query;
|
||||||
|
query << "CSV(" << sep << ")\n"
|
||||||
|
<< "SELECT * FROM " << filename;
|
||||||
|
|
||||||
|
TFilename n;
|
||||||
|
if (parse_query(query, n) == _qt_select && n.exist())
|
||||||
|
load_file(n);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
@ -127,7 +136,7 @@ class TImporta_penne : public TSkeleton_application
|
|||||||
virtual bool check_autorization() const { return false; }
|
virtual bool check_autorization() const { return false; }
|
||||||
virtual const char * extra_modules() const { return "ve"; }
|
virtual const char * extra_modules() const { return "ve"; }
|
||||||
|
|
||||||
TImporta_penne_mask* _msk;
|
TImporta_penne_mask* _msk;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
@ -142,10 +151,21 @@ public:
|
|||||||
|
|
||||||
bool TImporta_penne::transfer(const TFilename& file)
|
bool TImporta_penne::transfer(const TFilename& file)
|
||||||
{
|
{
|
||||||
TImporta_penne_recordset s(file);
|
//che tipo di separatore dei campi si e' scelto?
|
||||||
|
const char sep = _msk->get(F_SEP)[0];
|
||||||
|
//crea il recordset sul file di input utilizzando il separatore
|
||||||
|
TImporta_penne_recordset s(file, sep);
|
||||||
|
|
||||||
TProgind pi(s.items(),"Importazione articoli in corso ...",true,true);
|
TProgind pi(s.items(),"Importazione articoli in corso ...",true,true);
|
||||||
|
|
||||||
|
//dichiarazione di files e record da usare;si fa qui per non doverla ripetere ad ogni record letto;
|
||||||
|
//il record rec_anamag e' generico e vuoto (anche rec_umart ovviamente)
|
||||||
|
TLocalisamfile anamag(LF_ANAMAG);
|
||||||
|
TRectype& rec_anamag = anamag.curr();
|
||||||
|
TLocalisamfile umart(LF_UMART);
|
||||||
|
TRectype& rec_umart = umart.curr();
|
||||||
|
|
||||||
|
//giro su tutti i record del recordset per importarli
|
||||||
for (bool ok = s.move_first(); ok; ok = s.move_next())
|
for (bool ok = s.move_first(); ok; ok = s.move_next())
|
||||||
{
|
{
|
||||||
if (!pi.addstatus(1))
|
if (!pi.addstatus(1))
|
||||||
@ -154,7 +174,7 @@ bool TImporta_penne::transfer(const TFilename& file)
|
|||||||
//prende i dati dal record di input del file csv
|
//prende i dati dal record di input del file csv
|
||||||
//codart ci deve essere e va maiuscolizzato
|
//codart ci deve essere e va maiuscolizzato
|
||||||
TString80 codart = s.get(0).as_string();
|
TString80 codart = s.get(0).as_string();
|
||||||
if (codart.empty())
|
if (codart.blank())
|
||||||
continue;
|
continue;
|
||||||
codart.upper();
|
codart.upper();
|
||||||
//descrizione
|
//descrizione
|
||||||
@ -168,29 +188,21 @@ bool TImporta_penne::transfer(const TFilename& file)
|
|||||||
|
|
||||||
//aggiorna i files ANAMAG e UMART
|
//aggiorna i files ANAMAG e UMART
|
||||||
//ANAMAG
|
//ANAMAG
|
||||||
TLocalisamfile anamag(LF_ANAMAG);
|
|
||||||
TRectype rec_anamag = anamag.curr();
|
|
||||||
rec_anamag.put(ANAMAG_CODART, codart);
|
rec_anamag.put(ANAMAG_CODART, codart);
|
||||||
rec_anamag.put(ANAMAG_DESCR, descr);
|
rec_anamag.put(ANAMAG_DESCR, descr);
|
||||||
//tenta la rewrite nel caso l'articolo esista gia'
|
//tenta la rewrite nel caso l'articolo esista gia'; se non esiste fa la write di brutto
|
||||||
int err = anamag.rewrite(rec_anamag);
|
int err = anamag.rewrite_write();
|
||||||
//se non esiste fa la write di brutto
|
|
||||||
if (err != NOERR)
|
|
||||||
err = anamag.write(rec_anamag);
|
|
||||||
|
|
||||||
//UMART
|
//UMART
|
||||||
//procede solo se la scrittura su anamag e' riuscita, in modo da evitare scritture incomplete
|
//procede solo se la scrittura su anamag e' riuscita, in modo da evitare scritture incomplete
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
TLocalisamfile umart(LF_UMART);
|
|
||||||
TRectype rec_umart = umart.curr();
|
|
||||||
rec_umart.put(UMART_CODART, codart);
|
rec_umart.put(UMART_CODART, codart);
|
||||||
rec_umart.put(UMART_NRIGA, 1);
|
rec_umart.put(UMART_NRIGA, 1);
|
||||||
rec_umart.put(UMART_UM, um);
|
rec_umart.put(UMART_UM, um);
|
||||||
rec_umart.put(UMART_PREZZO, prezzo);
|
rec_umart.put(UMART_PREZZO, prezzo);
|
||||||
|
|
||||||
if (umart.rewrite(rec_umart) != NOERR)
|
err = umart.rewrite_write();
|
||||||
umart.write(rec_umart);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,4 +3,5 @@
|
|||||||
#define F_PATH 103
|
#define F_PATH 103
|
||||||
#define F_NAME 104
|
#define F_NAME 104
|
||||||
#define F_UMS 105
|
#define F_UMS 105
|
||||||
#define F_DESUMS 106
|
#define F_DESUMS 106
|
||||||
|
#define F_SEP 107
|
||||||
|
@ -46,7 +46,7 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 80 5
|
GROUPBOX DLG_NULL 80 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "@bParametri importazione"
|
PROMPT 1 4 "@bParametri importazione"
|
||||||
END
|
END
|
||||||
@ -66,9 +66,15 @@ BEGIN
|
|||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_SEP 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Separatore dei campi nel file .csv "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_UMS 2
|
STRING F_UMS 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Unita' di misura "
|
PROMPT 2 8 "Unita' di misura "
|
||||||
USE %UMS
|
USE %UMS
|
||||||
INPUT CODTAB F_UMS
|
INPUT CODTAB F_UMS
|
||||||
DISPLAY "Codice " CODTAB
|
DISPLAY "Codice " CODTAB
|
||||||
@ -80,7 +86,7 @@ END
|
|||||||
|
|
||||||
STRING F_DESUMS 50
|
STRING F_DESUMS 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 25 7 ""
|
PROMPT 25 8 ""
|
||||||
USE %UMS KEY 2
|
USE %UMS KEY 2
|
||||||
INPUT S0 F_DESUMS
|
INPUT S0 F_DESUMS
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
@ -91,32 +97,37 @@ END
|
|||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "@bIstruzioni"
|
PROMPT 2 10 "@bIstruzioni"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Nel campo Cartella inserire il percorso completo della cartella che contiene il file da importare."
|
PROMPT 2 11 "_ Nel campo Cartella inserire il percorso completo della cartella che contiene il file da importare."
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 "Nel campo File inserire il nome del file di tipo .csv da importare. Il nome NON deve contenere spazi."
|
PROMPT 2 12 "_ Nel campo File inserire il nome del file di tipo .csv da importare. Il nome NON deve contenere spazi."
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 12 "Nel campo Unità di misura inserire il codice di U.M. che sarà applicato a tutti gli articoli importati."
|
PROMPT 2 13 "_ Nel campo Unità di Misura inserire il codice di U.M. che sarà applicato a tutti gli articoli importati."
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 13 "All'avvio il programma ripropone l'ultimo file importato, la relativa cartella e la U.M. utilizzata."
|
PROMPT 2 14 "_ Nel campo Separatore inserire il carattere di separazione tra i campi del file da importare (es. ';' o ',')."
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 14 "NON e' ammesso il carattere ';' nei record del file da importare!"
|
PROMPT 2 15 " Dipende dalle impostazioni del proprio computer. Si controlla aprendo il file di input con un editor di testo."
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT -1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 16 "_ All'avvio il programma ripropone i parametri utilizzati nell'ultima importazione."
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user