CARICAMENTO DETTAGLI DOCUMENTI DA FILE

Nei programmi:

è possibile caricare le righe degli articoli interessati (codice, quantità e prezzo) leggendoli da file (oltre che manualmente).   L'anagrafica degli articoli dovrà essere stata caricata in precedenza,  nel  caso che un articolo presente su file non venga trovato in anagrafica, il programma lo segnala in modo tale che l'operatore lo possa creare e possa proseguire con il caricamento delle righe successive.  

Per attivare, sulla maschera delle funzioni suddette, il pulsante che consente di caricare gli articoli da file, occorre impostare il parametro di personalizzazione: LettArtDaFile   valore S e  Gruppo: carmov, acquisti, preventivi, ddt, ordini, fatture a seconda del programma dove lo si vuole attivare.

I programmi per i quali verrà attivato il parametro, una volta che l'utente ha compilato i dati iniziali del documento (dati di testata) e preme F10 per entrare nei dettagli e inserire gli articoli, presenteranno una ulteriore icona in alto a destra: (B) Lettura da file Ascii

Per definire da quale file leggere i dati e il formato in cui leggerli, dovrà essere inserito un apposito paragrafo sull' aziwin.ini generale, se si tratta di una installazione monoutente o i parametri sono uguali per ogni terminale, oppure sull' aziwin.ini di ogni terminale.

Il nome del paragrafo è: [LettArtDaFile]

Possono essere presenti più paragrafi che iniziano con il nome LettArtDaFile seguito da altre lettere es.   [LettArtDaFileSepApici]

Questi servono se c'è la necessità di leggere da file con formato diverso, ad esempio, in caricamento movimenti si legge la merce arrivata da un fornitore da un file di un certo tipo mentre per la vendita (ordini, ddt etc) si legge da un file prodotto da un terminale, che ha un altro formato.

La ricerca dei vari parametri del suddetto paragrafo avviene, come sempre, prima sull'ini personalizzato poi su quello generale. Il paragrafo perciò potrebbe essere presente in entrambi, la parte comune sull'ini generale e sui personalizzati la parte variabile per ogni terminale (es. nome del file da cui leggere i dati)
Nei vari programmi interessati, se si clicca con il pulsante destro sull'icona 'Lettura da file Ascii', nel caso siano stati definiti più paragrafi 'LettArtDaFilexxx' per letture di file di diverso tipo, verrà presentato un elenco: 
Selezione parametro per caricamento file 
con le descrizioni che in ogni paragrafo compaiono nel parametro: 
Descr=    e l'utente potrà scegliere quale utilizzare per il caricamento in quel particolare momento.

I campi che si possono caricare dal file sono:

L'importo totale è prioritario sull'importo unitario, se sul file ci sono entrambi, verrà caricato il totale e l'unitario viene calcolato dividendo per la quantità. Se dal file legge un importo a 0, l'importo verrà cercato sugli archivi come se il movimento fosse inserito manualmente.

Nell' Aziwin.ini di ogni terminale è possibile inoltre, mettere la sezione [NomiParagLettFile]  per definire, per ogni programma nel quale si vuole utilizzare il caricamento da file, quale deve essere il paragrafo che contiene le caratteristiche.

[NomiParagLettFile]
carmov=LettArtDafileSepApici
ddt=LettArtDaFileFisso

a indicare che le caratteristiche del file che si caricherà in Caricamento movimenti sono quelli descritti nell'ini nel paragrafo: LettArtDafileSepApici mentre quelle del file per ddt sono contenute nel paragrafo: LettArtDaFileFisso

Descrizione dei parametri contenuti nel paragrafo [LettArtDaFile]

Descr=AAAA   Dove AAAA descrive a quale tipo di file si riferiscono i parametri successivi. 
Es. Modello base 
Tramite questa descrizione, se sono stati impostati più paragrafi LettArtDaFile, si potrà capire quale scegliere all'interno di ogni programma che consente la lettura, quando, posizionandosi col mouse sull'icona di importa dati e, premendo il pulsante destro, si otterrà l'elenco di tutte le descrizioni.

Se in un paragrafo manca questa variabile descrittiva, alla richiesta dell'elenco delle possibilità di caricamento, il programma mostrerà il nome del paragrafo stesso.

FileOrigine=c:\ScarPen\dati.dat
E' il nome del file che contiene i dati da caricare per quel computer

FissoSep=
Serve per dire com'è fatto il file dati.
Il default è F lunghezza fissa
Altri valori sono S con separatori, A ogni campo è compreso tra apici e c'è la , "virgola" che separa i campi (formato dei file .csv)

Separatore =
Nel caso che il file sia con separatori, va specificato il codice ascii del carattere 'separatore', se questo è compreso nell'intervallo 0<codice<256, oppure il carattere stesso (es. se il separatore è il TAB si dovrà impostare il parametro a 9)
Se il file è con separatori e manca questo parametro non sarà possibile abilitare il caricamento da file e non verrà visualizzata sul programma l'icona che consente il caricamento.

PreCodInizio=  CodInizio    QtaInizio=    ImpUniInizio=    ImpTotInizio=
Sono obbligatori, per ogni campo che devo leggere, qualsiasi sia il formato.
Se il file è a lunghezza fissa, indicano il punto d'inizio rispettivamente del campo codice, quantità, valore unitario, valore totale.
Negli altri due formati indicano la posizione (colonna) in cui si trova il campo sul file.
PreCodInizio fa riferimento ad un eventuale campo che, se letto, diventerà la prima parte del codice articolo,  in pratica il codice articolo verrà formato da PreCodice+Codice

PreCodLung=  CodLung=    QtaLung=    ImpUnitLung=    ImpTotLung=
Sono obbligatori solo se il file è a lunghezza fissa. Indicano il numero dei caratteri occupati da ciascun campo.

CodArtSeqRic
(es.: "BC")

Indica la sequenza con la quale si fa la ricerca degli articoli.

Se manca questo parametro, il programma parte cercando in archivio un articolo con codice a barre uguale a quello letto dal file, se non lo trova cerca con codice articolo.
Se si vuole prima la ricerca per codice articolo basta mettere il parametro = "CB", se si mette una lettera sola, cerca solo in quella modalità.

Se però il codice letto inizia per la sequenza scritta in:
CodArtInizIdent
= "XXX"(parametro non obbligatorio)
significa che sto leggendo un codice articolo e il parametro precedente perde significato.
Ha senso usare questo parametro solo nel caso che ci siano articoli con codice uguale al codice a barre di un altro articolo. In questo caso la ricerca sarebbe ambigua per cui questi articoli dovranno essere ricercati sempre per codice e sul file il loro codice dovrà essere preceduto dalle lettere scritte nel parametro.

AddArtPrima
Lettere che il programma mette davanti al codice articolo letto sul file, prima di cercarlo in archivio

AddArtDopo
Lettere che il programma mette in fondo al codice articolo letto sul file, prima di cercarlo in archivio

CancFile =
Serve per dire se alla fine del caricamento il programma deve cancellare o meno il file caricato.             I valori possibili sono:

ExePrima= esempio c:\ScarPen\RiceviDir.bat
Questo parametro consente di lanciare un programma prima del caricamento.
Serve nel caso che il file da caricare debba essere prima elaborato o semplicemente scritto su disco perché contenuto in una penna/calamaio/terminalino. Quando termina l'elaborazione richiesta l'utente riceve un messaggio di OK. 
Ovviamente il programma lanciato sarà diverso a seconda delle esigenze. 

Esempi di utilizzo:

L'utente dispone di un terminalino ottico (es. BHT 8044) con il quale legge i barcode (o il codice)  degli articoli da inserire nel documento  e digita la quantità poi deve preparare il ddt o la fattura accompagnatoria sul computer.
In questo caso dovrà essere creata una cartella c:\BHT che dovrà contenere i file:

inoltre nell'aziwin.ini si dovrà inserire la sezione con le specifiche del file da caricare, a lunghezza fissa: 
[LettArtDafile]
Descr=Lettura da BHT
FileOrigine=c:\bht\dati.dat
CodInizio=1
CodLung=30
QtaInizio=31
QtaLung=5
CancFile="C"
ExePrima=c:\bht\RiceviDir.bat  

(Far riferimento alla documentazione del terminalino per i dettagli di utilizzo)

Una volta raccolti i dati sul terminalino, esso verrà collegato al computer per consentirne la lettura.

L'utente imposterà la testata del ddt e, una volta entrato nei dettagli con F10, potrà premere il pulsante
(B)Lettura da file Ascii

Il programma leggerà dal terminalino gli articoli e il dettaglio del ddt verrà compilato in automatico.

Se manca qualche dato, il programma lo compilerà leggendolo dagli archivi (nel caso specifico: il prezzo di vendita che non ha letto sul terminalino), se ci saranno su una riga dei dati mancanti, verrà dato un messaggio e si consentirà di completarli poi si prosegue con il caricamento dell' articolo successivo.

Allo stesso modo, sul programma di Caricamento movimenti di magazzino, si può fare uno scarico merce o un carico di inventario iniziale o il carico della merce disponendo del file del ddt (o fattura) fornito dal fornitore.

Esempio di paragrafo per file con separatori

[LettArtDaFile]
Descr=Modello base (separatore TAB)
FileOrigine=c:\dati\dati.dat
FissoSep="S"
Separatore = 9
CodInizio=1
QtaInizio=2
' se ci sono importi abilito i campi corrispondenti
'ImpUniInizio=3
'ImpTotInizio=4
CancFile="C"
'ExePrima=c:\procopy\scomp\RiceviDir.bat
'CodArtInizIdent = "QR"
'CodArtSeqRic="BC"

Esempio di paragrafo per file a lunghezza fissa

[LettArtDaFileFisso]
Descr=Modello a lunghezza fissa
FileOrigine=c:\dati\dati.dat
FissoSep="F"
CodInizio=1
CodLung=30
QtaInizio=31
QtaLung=5
' se ci sono importi abilito i campi corrispondenti
'ImpUniInizio=
'ImpUniLung=
'ImpTotInizio=
'ImpTotLung=
CancFile="C"
'ExePrima=c:\procopy\scomp\RiceviDir.bat
'CodArtInizIdent = "QR"
'CodArtSeqRic="BC"

Esempio di paragrafo per file con campi separati da apici

[LettArtDafileSepApici]
Descr=Modello con separatore apici
FileOrigine=f:\procopy\PPbolla00286074.csv
FissoSep="A"
CodInizio=1
QtaInizio=4
' se ci sono importi abilito i campi corrispondenti
ImpUniInizio=5
'ImpUniLung=
'ImpTotInizio=
'ImpTotLung=
CancFile="N"
'ExePrima=c:\procopy\bht\scomp\RiceviDir.bat
'CodArtInizIdent = "QR"
'CodArtSeqRic="BC"