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>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Ini"
|
||||
>
|
||||
</Filter>
|
||||
<File
|
||||
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
|
||||
{
|
||||
char _sep;
|
||||
|
||||
protected:
|
||||
virtual TRecnotype new_rec(const char* buf = NULL);
|
||||
|
||||
public:
|
||||
TImporta_penne_recordset(const char * fileName);
|
||||
TImporta_penne_recordset(const char * fileName, char sep);
|
||||
};
|
||||
|
||||
TRecnotype TImporta_penne_recordset::new_rec(const char* buf)
|
||||
@ -91,7 +93,7 @@ TRecnotype TImporta_penne_recordset::new_rec(const char* buf)
|
||||
}
|
||||
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)
|
||||
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)
|
||||
: TCSV_recordset("CSV(;)") //separatore con ";"
|
||||
TImporta_penne_recordset::TImporta_penne_recordset(const char * filename, char sep)
|
||||
: 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 const char * extra_modules() const { return "ve"; }
|
||||
|
||||
TImporta_penne_mask* _msk;
|
||||
TImporta_penne_mask* _msk;
|
||||
|
||||
protected:
|
||||
|
||||
@ -142,10 +151,21 @@ public:
|
||||
|
||||
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);
|
||||
|
||||
//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())
|
||||
{
|
||||
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
|
||||
//codart ci deve essere e va maiuscolizzato
|
||||
TString80 codart = s.get(0).as_string();
|
||||
if (codart.empty())
|
||||
if (codart.blank())
|
||||
continue;
|
||||
codart.upper();
|
||||
//descrizione
|
||||
@ -168,29 +188,21 @@ bool TImporta_penne::transfer(const TFilename& file)
|
||||
|
||||
//aggiorna i files ANAMAG e UMART
|
||||
//ANAMAG
|
||||
TLocalisamfile anamag(LF_ANAMAG);
|
||||
TRectype rec_anamag = anamag.curr();
|
||||
rec_anamag.put(ANAMAG_CODART, codart);
|
||||
rec_anamag.put(ANAMAG_DESCR, descr);
|
||||
//tenta la rewrite nel caso l'articolo esista gia'
|
||||
int err = anamag.rewrite(rec_anamag);
|
||||
//se non esiste fa la write di brutto
|
||||
if (err != NOERR)
|
||||
err = anamag.write(rec_anamag);
|
||||
//tenta la rewrite nel caso l'articolo esista gia'; se non esiste fa la write di brutto
|
||||
int err = anamag.rewrite_write();
|
||||
|
||||
//UMART
|
||||
//procede solo se la scrittura su anamag e' riuscita, in modo da evitare scritture incomplete
|
||||
if (err == NOERR)
|
||||
{
|
||||
TLocalisamfile umart(LF_UMART);
|
||||
TRectype rec_umart = umart.curr();
|
||||
rec_umart.put(UMART_CODART, codart);
|
||||
rec_umart.put(UMART_NRIGA, 1);
|
||||
rec_umart.put(UMART_UM, um);
|
||||
rec_umart.put(UMART_PREZZO, prezzo);
|
||||
|
||||
if (umart.rewrite(rec_umart) != NOERR)
|
||||
umart.write(rec_umart);
|
||||
err = umart.rewrite_write();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,4 +3,5 @@
|
||||
#define F_PATH 103
|
||||
#define F_NAME 104
|
||||
#define F_UMS 105
|
||||
#define F_DESUMS 106
|
||||
#define F_DESUMS 106
|
||||
#define F_SEP 107
|
||||
|
@ -46,7 +46,7 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 80 5
|
||||
GROUPBOX DLG_NULL 80 6
|
||||
BEGIN
|
||||
PROMPT 1 4 "@bParametri importazione"
|
||||
END
|
||||
@ -66,9 +66,15 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_SEP 1
|
||||
BEGIN
|
||||
PROMPT 2 7 "Separatore dei campi nel file .csv "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_UMS 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "Unita' di misura "
|
||||
PROMPT 2 8 "Unita' di misura "
|
||||
USE %UMS
|
||||
INPUT CODTAB F_UMS
|
||||
DISPLAY "Codice " CODTAB
|
||||
@ -80,7 +86,7 @@ END
|
||||
|
||||
STRING F_DESUMS 50
|
||||
BEGIN
|
||||
PROMPT 25 7 ""
|
||||
PROMPT 25 8 ""
|
||||
USE %UMS KEY 2
|
||||
INPUT S0 F_DESUMS
|
||||
DISPLAY "Descrizione@50" S0
|
||||
@ -91,32 +97,37 @@ END
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT 2 9 "@bIstruzioni"
|
||||
PROMPT 2 10 "@bIstruzioni"
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
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
|
||||
|
||||
TEXT -1
|
||||
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
|
||||
|
||||
TEXT -1
|
||||
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
|
||||
|
||||
TEXT -1
|
||||
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
|
||||
|
||||
TEXT -1
|
||||
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
|
||||
|
||||
ENDPAGE
|
||||
|
Loading…
x
Reference in New Issue
Block a user