Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : caffe' Ardi riportato dalla 11 git-svn-id: svn://10.65.10.50/branches/R_10_00@20990 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
22ddbe22d7
commit
4ed4a7208b
@ -34,3 +34,5 @@
|
|||||||
#define F_CARDOC_TIP 252
|
#define F_CARDOC_TIP 252
|
||||||
#define F_CARDOC_STA 253
|
#define F_CARDOC_STA 253
|
||||||
#define F_BARCODE_TIP 254
|
#define F_BARCODE_TIP 254
|
||||||
|
|
||||||
|
#define F_INPUT_PATH 255
|
||||||
|
@ -322,9 +322,14 @@ ENDPAGE
|
|||||||
|
|
||||||
PAGE "Trasferimenti" -1 -1 78 23
|
PAGE "Trasferimenti" -1 -1 78 23
|
||||||
|
|
||||||
STRING F_OUTPUT_PATH 255 40
|
GROUPBOX DLG_NULL 76 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Percorso files .txt da esportare "
|
PROMPT 1 1 "@bEsportazione"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_OUTPUT_PATH 255 38
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 2 "Percorso files .txt da esportare "
|
||||||
DSELECT
|
DSELECT
|
||||||
FLAGS "M"
|
FLAGS "M"
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
@ -332,14 +337,14 @@ BEGIN
|
|||||||
FIELD OutputPath
|
FIELD OutputPath
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 3
|
GROUPBOX DLG_NULL 74 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "@bDocumenti di carico"
|
PROMPT 2 3 "@bDocumenti di carico"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CARDOC_NUM 4
|
STRING F_CARDOC_NUM 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Numerazione "
|
PROMPT 3 4 "Numerazione "
|
||||||
USE %NUM
|
USE %NUM
|
||||||
INPUT CODTAB F_CARDOC_NUM
|
INPUT CODTAB F_CARDOC_NUM
|
||||||
DISPLAY "Codice@8" CODTAB
|
DISPLAY "Codice@8" CODTAB
|
||||||
@ -351,7 +356,7 @@ END
|
|||||||
|
|
||||||
STRING F_CARDOC_TIP 4
|
STRING F_CARDOC_TIP 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 22 3 "Tipo "
|
PROMPT 23 4 "Tipo "
|
||||||
USE %TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_CARDOC_TIP
|
INPUT CODTAB F_CARDOC_TIP
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
@ -364,7 +369,7 @@ END
|
|||||||
|
|
||||||
STRING F_CARDOC_STA 1
|
STRING F_CARDOC_STA 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 35 3 "Stato "
|
PROMPT 36 4 "Stato "
|
||||||
USE %STD
|
USE %STD
|
||||||
INPUT CODTAB F_CARDOC_STA
|
INPUT CODTAB F_CARDOC_STA
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
@ -377,7 +382,7 @@ END
|
|||||||
|
|
||||||
LISTBOX F_BARCODE_TIP 10
|
LISTBOX F_BARCODE_TIP 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 "Tipo di barcode "
|
PROMPT 2 6 "Tipo di barcode "
|
||||||
ITEM "N|Normale"
|
ITEM "N|Normale"
|
||||||
ITEM "8|EAN8 "
|
ITEM "8|EAN8 "
|
||||||
ITEM "1|EA13 "
|
ITEM "1|EA13 "
|
||||||
@ -386,6 +391,21 @@ BEGIN
|
|||||||
FIELD "TipoBarcode"
|
FIELD "TipoBarcode"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 9
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 8 "@bImportazione"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_INPUT_PATH 255 38
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Percorso files da importare "
|
||||||
|
DSELECT
|
||||||
|
FLAGS "M"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Selezionare una cartella valida!"
|
||||||
|
FIELD InputPath
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "ha1.h"
|
#include "ha1.h"
|
||||||
|
|
||||||
#define usage "Error - usage : %s -{0|1}"
|
#define usage "Error - usage : %s -{0|1|2}"
|
||||||
|
|
||||||
int main(int argc,char** argv)
|
int main(int argc,char** argv)
|
||||||
{
|
{
|
||||||
@ -18,6 +18,9 @@ int main(int argc,char** argv)
|
|||||||
case 1:
|
case 1:
|
||||||
rt = ha1200(argc, argv) ; break; //generazione .txt da anagrafica campo (file tipo XXX.txt)
|
rt = ha1200(argc, argv) ; break; //generazione .txt da anagrafica campo (file tipo XXX.txt)
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
rt = ha1300(argc, argv) ; break; //importazione file da terminalini (file tipo upload.d)
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
error_box(usage, argv[0]) ; break;
|
error_box(usage, argv[0]) ; break;
|
||||||
}
|
}
|
||||||
|
1
ha/ha1.h
1
ha/ha1.h
@ -1,2 +1,3 @@
|
|||||||
int ha1100(int argc, char* argv[]);
|
int ha1100(int argc, char* argv[]);
|
||||||
int ha1200(int argc, char* argv[]);
|
int ha1200(int argc, char* argv[]);
|
||||||
|
int ha1300(int argc, char* argv[]);
|
||||||
|
@ -397,7 +397,7 @@ void TFile2Txt::genera_decodart_txt()
|
|||||||
|
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE CODCORR";
|
query << "USE CODCORR";
|
||||||
query << "\nSELECT (TIPOCF=C)";
|
query << "\nSELECT (TIPOCF='C')";
|
||||||
query << "\nBY CODCF";
|
query << "\nBY CODCF";
|
||||||
|
|
||||||
TISAM_recordset archivio_codcorr(query);
|
TISAM_recordset archivio_codcorr(query);
|
||||||
@ -432,7 +432,6 @@ void TFile2Txt::genera_tabpag_txt()
|
|||||||
|
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE %RPG";
|
query << "USE %RPG";
|
||||||
query << "\nJOIN %CPG INTO CODTAB=CODTAB";
|
|
||||||
|
|
||||||
TISAM_recordset archivio_pagamenti(query);
|
TISAM_recordset archivio_pagamenti(query);
|
||||||
const long archivio_pagamenti_items = archivio_pagamenti.items();
|
const long archivio_pagamenti_items = archivio_pagamenti.items();
|
||||||
@ -443,9 +442,10 @@ void TFile2Txt::genera_tabpag_txt()
|
|||||||
progind.addstatus(1);
|
progind.addstatus(1);
|
||||||
|
|
||||||
tabpag.new_rec("");
|
tabpag.new_rec("");
|
||||||
|
const TString& codtab = archivio_pagamenti.get("CODTAB").as_string();
|
||||||
tabpag.set("CodicePagamento", archivio_pagamenti.get("CODTAB[1,2]"));
|
tabpag.set("CodicePagamento", codtab.left(2));
|
||||||
tabpag.set("DescrPagamento", archivio_pagamenti.get("%CPG.S0"));
|
const TString& cpg_s0 = cache().get("%CPG", codtab.left(4), "S0");
|
||||||
|
tabpag.set("DescrPagamento", cpg_s0);
|
||||||
tabpag.set("GiorniScadenza", archivio_pagamenti.get("I0"));
|
tabpag.set("GiorniScadenza", archivio_pagamenti.get("I0"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -459,7 +459,7 @@ void TFile2Txt::genera_carico_txt()
|
|||||||
|
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE RDOC";
|
query << "USE RDOC";
|
||||||
query << "\nSELECT (TIPODOC=#TIPODOC)&&(STATO=#STATO)";
|
query << "\nSELECT (DOC.TIPODOC=#TIPODOC)&&(DOC.STATO=#STATO)";
|
||||||
query << "\nJOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC";
|
query << "\nJOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC";
|
||||||
query << "\nBY DOC.CODAG";
|
query << "\nBY DOC.CODAG";
|
||||||
query << "\nFROM CODNUM=#CODNUM";
|
query << "\nFROM CODNUM=#CODNUM";
|
||||||
|
115
ha/halib.cpp
115
ha/halib.cpp
@ -43,7 +43,7 @@ TContratto_premi::TContratto_premi(const TRectype& rec_doc)
|
|||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
// Recordset specifici per i dati da trasferire
|
// Recordset specifici per i dati da trasferire OUTPUT
|
||||||
/////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
//questo è il metodo magico che vale per tutti
|
//questo è il metodo magico che vale per tutti
|
||||||
void THardy_recordset::add_field(const char* name, const char* tipo, int pos, int len)
|
void THardy_recordset::add_field(const char* name, const char* tipo, int pos, int len)
|
||||||
@ -57,6 +57,16 @@ void THardy_recordset::add_field(const char* name, const char* tipo, int pos, in
|
|||||||
create_field(name, pos-1, len, _alfafld);
|
create_field(name, pos-1, len, _alfafld);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void THardy_recordset::add_trc_field(const char* tr, const char* name, const char* tipo, int pos, int len)
|
||||||
|
{
|
||||||
|
CHECK(tr && strlen(tr) == 2, "Lunghezza tipo record errata!!");
|
||||||
|
TString80 trc_name;
|
||||||
|
trc_name << tr << '.' << name;
|
||||||
|
add_field(trc_name, tipo, pos, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void THardy_recordset::insert_field(const char* name, const char* tipo, int pos, int len)
|
void THardy_recordset::insert_field(const char* name, const char* tipo, int pos, int len)
|
||||||
{
|
{
|
||||||
if (pos >= 1)
|
if (pos >= 1)
|
||||||
@ -83,6 +93,97 @@ THardy_recordset::THardy_recordset(const int rec_lenght) : TAS400_recordset("AS4
|
|||||||
parse_query(query, cazzone);
|
parse_query(query, cazzone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//questo invece è il metodo magico che vale per il caricamento da file esterno
|
||||||
|
THardy_upload_recordset::THardy_upload_recordset(const TFilename& filename)
|
||||||
|
: THardy_recordset(256)
|
||||||
|
{
|
||||||
|
//Tipo record SU
|
||||||
|
//--------------
|
||||||
|
add_trc_field("SU", "TipoRecord", T_X, 1, 2); //x
|
||||||
|
add_trc_field("SU", "CodiceTerminale", T_N, 3, 3); //x
|
||||||
|
add_trc_field("SU", AGE_CODAGE, T_N, 6, 3); //x
|
||||||
|
add_trc_field("SU", "NonUsato", T_X, 9, 6);
|
||||||
|
add_trc_field("SU", "Targa", T_X, 15, 8);
|
||||||
|
add_trc_field("SU", "nDDT", T_N, 23, 5);
|
||||||
|
add_trc_field("SU", "nFATT", T_N, 28, 5);
|
||||||
|
add_trc_field("SU", "nBOLLA", T_N, 33, 5);
|
||||||
|
add_trc_field("SU", AGE_RAGSOC, T_X, 38, 30); //x
|
||||||
|
|
||||||
|
//Tipo record TF
|
||||||
|
//--------------
|
||||||
|
add_trc_field("TF", "TipoRecord", T_X, 1, 2); //x
|
||||||
|
add_trc_field("TF", "CodiceTerminale", T_N, 3, 3); //x
|
||||||
|
add_trc_field("TF", DOC_NDOC, T_N, 6, 5); //x
|
||||||
|
add_trc_field("TF", DOC_DATADOC, T_X, 11, 6); //x
|
||||||
|
add_trc_field("TF", DOC_TIPODOC, T_X, 17, 1); //x
|
||||||
|
add_trc_field("TF", DOC_CODCF, T_X, 18, 6); //x
|
||||||
|
add_trc_field("TF", DOC_CODCFFATT, T_X, 24, 6); //x
|
||||||
|
add_trc_field("TF", "ImponibileLordo", T_Nv2N, 30, 8); // campi seguenti da righe doc
|
||||||
|
add_trc_field("TF", "ScontoFattura", T_2Nv2N,38, 4);
|
||||||
|
add_trc_field("TF", "ImponibileDoc", T_Nv2N, 42, 8);
|
||||||
|
add_trc_field("TF", "TotaleDoc", T_Nv2N, 50, 8);
|
||||||
|
add_trc_field("TF", "ScontoTotale", T_Nv2N, 58, 8);
|
||||||
|
add_trc_field("TF", "ImponibileOmaggi", T_Nv2N, 66, 8);
|
||||||
|
add_trc_field("TF", "ImponibileSost", T_Nv2N, 74, 8);
|
||||||
|
add_trc_field("TF", "Incasso", T_Nv2N, 82, 8); //forse IMPPAGATO ?
|
||||||
|
add_trc_field("TF", DOC_CODPAG, T_X, 90, 2); //x
|
||||||
|
add_trc_field("TF", DOC_DATAPART, T_X, 92, 6); //x
|
||||||
|
add_trc_field("TF", "Iva1", T_N, 98, 2); //anche questi da righe doc
|
||||||
|
add_trc_field("TF", "Imponibile1", T_Nv2N, 100,8);
|
||||||
|
add_trc_field("TF", "Imposta1", T_Nv2N, 108,7);
|
||||||
|
add_trc_field("TF", "Iva2", T_N, 115,2);
|
||||||
|
add_trc_field("TF", "Imponibile2", T_Nv2N, 117,8);
|
||||||
|
add_trc_field("TF", "Imposta2", T_Nv2N, 125,7);
|
||||||
|
add_trc_field("TF", "Iva3", T_N, 132,2);
|
||||||
|
add_trc_field("TF", "Imponibile3", T_Nv2N, 134,8);
|
||||||
|
add_trc_field("TF", "Imposta3", T_Nv2N, 142,7);
|
||||||
|
add_trc_field("TF", "Iva4", T_N, 149,2);
|
||||||
|
add_trc_field("TF", "Imponibile4", T_Nv2N, 151,8);
|
||||||
|
add_trc_field("TF", "Imposta4", T_Nv2N, 159,7);
|
||||||
|
add_trc_field("TF", "CodcliGiro3", T_X, 166,6);
|
||||||
|
add_trc_field("TF", "IvaOmag1", T_N, 172,2);
|
||||||
|
add_trc_field("TF", "ImponibileOmag1", T_Nv2N, 174,6);
|
||||||
|
add_trc_field("TF", "ImpostaOmag1", T_Nv2N, 180,5);
|
||||||
|
add_trc_field("TF", "IvaOmag2", T_N, 185,2);
|
||||||
|
add_trc_field("TF", "ImponibileOmag2", T_Nv2N, 187,6);
|
||||||
|
add_trc_field("TF", "ImpostaOmag2", T_Nv2N, 193,5);
|
||||||
|
add_trc_field("TF", "DataEmissione", T_X, 198,6);
|
||||||
|
add_trc_field("TF", "PagamentoCarta", T_X, 204,1);
|
||||||
|
|
||||||
|
//Tipo record RF
|
||||||
|
//--------------
|
||||||
|
add_trc_field("RF", "TipoRecord", T_X, 1, 2); //x
|
||||||
|
add_trc_field("RF", "CodiceTerminale", T_N, 3, 3); //x
|
||||||
|
add_trc_field("RF", RDOC_NDOC, T_N, 6, 5); //x
|
||||||
|
add_trc_field("RF", DOC_DATADOC, T_X, 11, 6); //x testata
|
||||||
|
add_trc_field("RF", DOC_CODCF, T_X, 17, 6); //x testata
|
||||||
|
add_trc_field("RF", DOC_CODCFFATT, T_X, 23, 6); //x testata
|
||||||
|
add_trc_field("RF", DOC_TIPODOC, T_X, 29, 1); //x testata
|
||||||
|
add_trc_field("RF", RDOC_CODART, T_X, 30, 5); //x
|
||||||
|
add_trc_field("RF", "TipoCessione", T_X, 35, 1);
|
||||||
|
add_trc_field("RF", "Qta[int]", T_N, 36, 5); //x
|
||||||
|
add_trc_field("RF", "Qta[dec]", T_N, 41, 2); //x
|
||||||
|
add_trc_field("RF", "Sconto1", T_2Nv2N,43, 4);
|
||||||
|
add_trc_field("RF", "Sconto2", T_2Nv2N,47, 4);
|
||||||
|
add_trc_field("RF", "Sconto3", T_2Nv2N,51, 4);
|
||||||
|
add_trc_field("RF", "ScontoLibero", T_2Nv2N,55, 4);
|
||||||
|
add_trc_field("RF", RDOC_PREZZO, T_Nv3N, 59, 7); //x forse PREZZOL ?
|
||||||
|
add_trc_field("RF", "TotaleRiga", T_Nv3N, 66, 8);
|
||||||
|
add_trc_field("RF", "TotaleSconto", T_Nv3N, 74, 8);
|
||||||
|
add_trc_field("RF", "AliquotaIva", T_N, 82, 2); //noi abbiamo il codice
|
||||||
|
add_trc_field("RF", RDOC_UMQTA, T_X, 84, 2); //x
|
||||||
|
add_trc_field("RF", "PrezzoScontato", T_Nv3N, 86, 7);
|
||||||
|
add_trc_field("RF", "Fascia", T_X, 93, 1);
|
||||||
|
add_trc_field("RF", "ScontoFascia", T_2N, 94, 2);
|
||||||
|
add_trc_field("RF", "NonUsato", T_N, 96, 2);
|
||||||
|
add_trc_field("RF", "CodcliGiro3", T_X, 98, 6);
|
||||||
|
add_trc_field("RF", "CodiceLotto", T_X, 104,10); //noi lo leghiamo all'articolo
|
||||||
|
|
||||||
|
|
||||||
|
load_file(filename);
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------
|
||||||
//Clienti
|
//Clienti
|
||||||
//-------
|
//-------
|
||||||
@ -264,9 +365,9 @@ TEsporta_carico_recordset::TEsporta_carico_recordset(int rec_length)
|
|||||||
TEsporta_decodart_recordset::TEsporta_decodart_recordset(int rec_length)
|
TEsporta_decodart_recordset::TEsporta_decodart_recordset(int rec_length)
|
||||||
: THardy_recordset(rec_length)
|
: THardy_recordset(rec_length)
|
||||||
{
|
{
|
||||||
add_field("CodiceArticolo", T_X, 1, 5); //x
|
add_field(CODCORR_CODART, T_X, 1, 5); //x
|
||||||
add_field("CodiceCliente", T_NS, 6, 6); //x
|
add_field(CODCORR_CODCF, T_NS, 6, 6); //x
|
||||||
add_field("CodiceArticolo2", T_X, 12, 6); //x
|
add_field(CODCORR_CODARTALT, T_X, 12, 6); //x
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -307,6 +408,12 @@ TEsporta_pagamenti_recordset::TEsporta_pagamenti_recordset(int rec_length)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
// Recordset specifici per i dati da trasferire INPUT
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
// Metodi di utility
|
// Metodi di utility
|
||||||
/////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
|
23
ha/halib.h
23
ha/halib.h
@ -57,11 +57,19 @@ public:
|
|||||||
#define T_X "X"
|
#define T_X "X"
|
||||||
#define T_NS "NS"
|
#define T_NS "NS"
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
// Hardy_recordset: serve per l'OUTPUT
|
||||||
|
//------------------------------------------------------------
|
||||||
|
|
||||||
class THardy_recordset : public TAS400_recordset
|
class THardy_recordset : public TAS400_recordset
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
//esportazione
|
||||||
void add_field(const char* name, const char* tipo, int pos, int len);
|
void add_field(const char* name, const char* tipo, int pos, int len);
|
||||||
void insert_field(const char* name, const char* tipo, int pos, int len);
|
void insert_field(const char* name, const char* tipo, int pos, int len);
|
||||||
|
//importazione
|
||||||
|
void add_trc_field(const char* tr, const char* name, const char* tipo, int pos, int len);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
THardy_recordset(const int rec_length);
|
THardy_recordset(const int rec_length);
|
||||||
@ -186,6 +194,21 @@ public:
|
|||||||
TEsporta_pagamenti_recordset(int rec_length = 25);
|
TEsporta_pagamenti_recordset(int rec_length = 25);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
// Hardy_upload_recordset: serve per l'INPUT
|
||||||
|
//------------------------------------------------------------
|
||||||
|
class THardy_upload_recordset : public THardy_recordset
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
THardy_upload_recordset(const TFilename& filename);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
//metodi di utility
|
//metodi di utility
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
|
@ -10,4 +10,5 @@ Item_04 = "Generazione NAC", "ha0 -4", ""
|
|||||||
Item_05 = "Elaborazione contratti premio pareggiati", "ha0 -3", "F"
|
Item_05 = "Elaborazione contratti premio pareggiati", "ha0 -3", "F"
|
||||||
Item_06 = "Gestione listini", "ve2 -4", ""
|
Item_06 = "Gestione listini", "ve2 -4", ""
|
||||||
Item_07 = "Stampa listini", "ve3 -4 L", ""
|
Item_07 = "Stampa listini", "ve3 -4 L", ""
|
||||||
Item_08 = "Esportazione archivi formato txt", "ha1 -0", "F"
|
Item_08 = "Esportazione archivi formato txt", "ha1 -1", "F"
|
||||||
|
Item_09 = "Importazione dati da file", "ha1 -2", "F"
|
Loading…
x
Reference in New Issue
Block a user