Newsgroup: it.comp.lang.delphi
Titolo: Lettori codici e etichette

La questione e' questa : attraverso un report di fuzzyreport faccio
stampare un' etichetta con un codice a barre , facendo inserire all'
utente il codice ecc... Ora, quando il lettore passa e legge l' etichetta,
vorrebebro che io facessi in modo che il lettore riconosca l' oggetto a
cui si riferisce il codice a barre, e lo memorizzi in un database. Come si
potrebbe fare ? E sopratutto, lo potrei fare, con le mie basi da scuola
superiore ?
--- posted by geoForum on 
http://www.delphiedintorni.it

 le mie basi da scuola superiore ?
Beh, anch'io ho le basi da scuola superiore, ma da ragioniere ;)
In generale, un codice a barre non č altro che un numero (o una stringa,
dipende dallo standard con cui č stata stampata).
Puoi procedere in diversi modi, ma dipende dagli strumenti che hai a
disposizione (il tipo di lettore per esempio) e da cosa devi fare di
preciso.
Puoi fare in modo che, quando il codice viene letto, viene immagazzinato in
una variabile e ricercato in un database (in cui hai immagazzinato tutti i
codici e le altre informazioni, come la descrizione dell'articolo), per poi
farne quello che vuoi.
Oppure puoi crearti una tabella temporanea in cui ti scrivi i codici letti
uno dopo l'altro, e quando la lettura č terminata puoi scorrere i record e
per ognuno fare quello che ti serve.
Sii piů specifico, magari ti si puň aiutare anche nell'implementazione,
oltre che nella logica.
-- 
Jax
====
Solo gli imbecilli sono sicuri di quello che dicono... e noi di questo
siamo certi! (Nino Frassica)

 Rispondo a Nabe che, tra le altre cose, ha scritto:
<cut>
Ah, e porta indietro l'orologio del tuo pc, please...
-- 
Jax
====
"Il 65% delle spam si diffonde infatti attraverso questi bachi, chiamati
"Trojan virus"."
da 
ilnuovo.it


Ciao JAX, allora:
in pratica questo database dovrebbe gestire le merci di un negozio, il
carico, lo scarico e la stampa di etichette.
In effetti accade questo:
arrivano merci e colli nel negozio, si inseriscono nel database di carico
manualmente i campi del carico (cod. art. quantita', prezzo etc.), poi si
va nell' area di stampa, si inserisce solo il prezzo al pubblico e la
descrizione dell' articolo e si stampano le etichette.
La codifica del lettore e' in code 39 a quanto mi ha detto Nabe (che sta
facendo lui il programma :)),il lettore e' un Metrologic MS5145.
Quello che vogliamo realizzare per terminare questo programma e' che dopo
la stampa di etichette, che verrano attaccate sui prodotti e organizzati
nel negozio, che all' atto di una vendita di uno o piu' articoli, il
lettore di codici a barre leggendo i codici a barre sulla merce, abbia la
possibilita' di inviare le informazioni che decifra da quest' ultimo nel
database di scarico delle merci, in modo da sapere cosa si e' venduto.
E a fine anno avere due database divisi, uno che reca la merce in entrata
e l' altro la merce che ne e' uscita.
Grazie per la tua risposta, spero di essere stao chiaro.
Se non lo sono stato non esitare a chiedere, dobbiamo solo essere grati a
questo forum ed alle persone che lo frequentano. :)


>Sii più specifico, magari ti si può aiutare anche nell'implementazione,

Magari pero' la prossima volta vedi di non quotare mezzo mondo :D


 database di scarico delle merci, in modo da sapere cosa si e' venduto.
Se la penna è ad emulazione di tastiera, passare il codice a barre del 
prodotto equivale a scrivere manualmente il codice tramite tastiera, quindi:
Ad ogni prodotto inserisci un campo chiamato codice_barre (che avrai 
dichiarato come chiave primaria del prodotto stesso). Alla cassa mostri 
un bel textbox in cui verrà inserito automaticamente il codice a barre 
durante la lettura della penna.
La cassiera si posizione sul form con quel textbox sopra, il focus va 
direttamente su di esso. Con la pistola legge il codice, che 
AUTOMATICAMENTE viene sritto nel textbox, il programma cerca in archivio 
la descrizione dell'articolo e la mostra. A quel punto la cassiera 
inserisce la quantità e la causale che di default sarà vendita e di 
conseguenza scarico merce. Il tutto viene memorizzato nei movimenti di 
magazzino da cui trai tutte le info circa lo stato dei prodotti in 
magazzino.
(Per lo scarico fai una cosa simile)
P.S.
Ovviamente la penna dev'essere configurata per leggere quel tipo 
specifico di codici (nel manuale della penna trovi tutto spiegato)
Ciao
Gianni


Cioe' la penna va a cercare in automatico il db del programma e si cerca
il record da solo ?_?



Ciao Gianni, vedi io non sono molto pratico, anzi sono profano di Delphi,
Nabe di sicuro ne capisce molto di piu di me, pero' c' e' qualcosa che non
ho capito.
In effetti siamo riusciti gia' a far si che il lettore riconosca quel
determinato codice a barre con la codifica dettati precedentemente, in
quanto possedevamo un programma da dos che alquanto scomodamente usavamo
prima, ergo penso che il lettore debba solo eseguire quella specie di
ricerca nel darabase di carico.
Non so se ho ben capito, spero che il tuo consiglio non vada a modificare
cio' che gia' abbiamo inserito in codesto programma, perche' ti assicuro
che non e' stato assolutamente semplice arrivare fin qui, soprattutto per
l' aiuto di un veterano che ci ha risposto su questo stesso forum, davvero
encomiabile come persona e che ringraziamo ancora per la sua gentilezza e
pazienza nei nostri confronti.


 il record da solo ?_?
Ma dove lo hai letto questo?!? ;-)
PUNTO 1.....
Attualmente hai una penna ottica ad emulazione di tastiera (l'ho letto 
tra le sue caratteristiche 
http://www.europe.metrologic.com/europe/it/products/retail/overview/Manuale/06_MS-5145-Eclipse/moreinfo/
) 
perfettamente configurata per leggere i codici (come mi ha detto Nick). 
Questo significa che quando la penna legge un codice a barre è come se 
il codice a barre venisse scritto direttamente da tastiera. (se tu apri 
una finestra dos e leggi un codice, sul prompt appare il codice letto)
PUNTO 2.....
Si presuppone che, avendo già stamparo le etichette con i codici a 
barre, gli articoli con relativa descrizione siano già stati 
inseriti.... giusto?
Adesso l'unica cosa che devi fare è gestirti i movimenti di magazzino da 
cui otterrai tutte le informazioni relative alle quantità disponibili
Appurato che il PUNTO 1 e PUNTO 2 sono soddisfatti, non ti resta che 
fare una bella maschera di scarico e di carico. Esse non saranno altro 
che finestre contenenti un TEdit in cui la penna scriverà il codice a 
barre ed un pulsante di conferma.
Il focus è sul TEdit (ciò significa che all'interno del TEdit c'è il 
cursore); la cassiera passa il lettore sul codice ed il codice viene 
scritto all'interno del TEdit; preme il pulsante ed all'evento on-click 
associ il codice di ricerca articolo. Quando hai trovato l'articolo 
mostri la descrizione e chiedi causale e quantità. Tutto questo lo 
scrivi in un record della tabella movimenti. La somma dei movimenti di 
quell'articolo (sia quelli negativi di vendita che quelli positivi di 
acquisto, determinano la quantità presente in magazzino).
Ovviamente quello sopra è solo un esempio da aggiustare per il tuo caso 
specifico. Non ti resta che adattarlo al tuo caso specifico di magazzino.
Ciao
Gianni

 che non e' stato assolutamente semplice arrivare fin qui,
Io non sono responsabile dello sviluppo del tuo programma. Le scelte 
tecniche le deve fare l'analista ed il programmatore. Io ti ho dato un 
esempio di funzionamento di un magazzino (molto molto semplificato).
:-)
Ciao
Gianni

Un ultima cosa....
Ho visto che nel passato post hai scritto:
"E a fine anno avere due database divisi, uno che reca la merce in 
entrata e l' altro la merce che ne e' uscita."
(per database immagino intendessi tabelle)
Quella può essere benissimo una soluzione, ma, per semplificarti la 
vita, non è meglio avere un unica tabella chiamata movimenti?
Ciao
Gianni

 Magari pero' la prossima volta vedi di non quotare mezzo mondo :D
Dovresti essere il primo a rispettare cio' che raccomandi ;-)
-- 
Morde. 
FAQ di icld (beta-version): 
http://icld.altervista.org
 
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

Si, ma in mezzo a tutto questo, mi e' stato detto di mettere quello che
legge il lettore in una variabile..ma non ho la minima idea di come si fa :\




Ok, credo di aver capito. Ora pero' mi serve una cosa un po piu' niubba :
mi serve di sapere come si aggiunge da codice un record nel db scritto in
paradox, e per ultima cosa com'e' la sintassi del comando StrToInt, che
non me lo ricordo piu' ^^;


Nel caso risultasse invisibile a causa della lungezza delle reply lo posto
anche qui' in fondo la risposta che ho messo prima all' ultimo intervento
di gianni : 
Ok, credo di aver capito. Ora pero' mi serve una cosa un po piu' niubba :
mi serve di sapere come si aggiunge da codice un record nel db scritto in
paradox, e per ultima cosa com'e' la sintassi del comando StrToInt, che
non me lo ricordo piu' ^^;
--- posted by geoForum on 
http://www.delphiedintorni.it


Spero che tu stia scherzando ...
.
.
.
Stai scherzando, vero?
.
.
.
Dicci che e' tutto uno scherzo e stai solo trolleggiando
un po', per favore ...
ACSH 


X Gianni:
Gianni tu hai detto cataloghi etc., ma se fosse possibile, non sarebbe
meglio che in base a quando arriva la merce e si inseriscono i campi
necessari nel carico, il codice venga sviluppato su quei valori dei campi
inseriti?
Riguardo al messaggio di ASH, siccome Nabe non riusciva a postare mi ha
detto di postare il seguente messaggio:
"Non e' colpa mia se capisci male le frasi, non ho scritto che non so
assegnare le variabili, ma come assegnare a una variabile una cosa che
legge il lettore".


 non me lo ricordo piu' ^^;
Ragazzi, e voi che avete persino perso tempo a dar retta a questo troll...
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


troll lo dici a qualcun' altro. So sai quanti anni sono che non programmo
dopo preso il diploma ? Per favore, non cominciamo a fare sti discorsi che
non ne sentiamo il bisogno.


 non me lo ricordo piu' ^^;
Basta leggere il manuale ;-)
Ciao
Gianni

 Riguardo al messaggio di ASH, siccome Nabe non riusciva a postare
Che cosa strana..... tu e Nabe avete gli stessi header..... molto molto 
strano. Stà a vedere che Andrea ha ragione ;-)
Addio :-)
Gianni


 Lo stesso cosa ? Guarda che io sono io, mentre nick e' un' altra persona
che mi aiuta :|non so neanche cosa sia sto header...


 molto strano. Stà a vedere che Andrea ha ragione ;-)
Dai, l'avevano detto subito che erano in due a fare il progetto, è probabile
che abbiano gli stessi header.
Comunque, ragazzi, non vorrei passare per lo stronzo di turno, però da
quello che vedo mi sembra che questo progetto sia un po' al di sopra delle
vostre capacità... se volete farlo ben venga, è tutto esercizio che vi potrà
essere utile in futuro.
Però tenete conto che le problematiche che avete esposto sono veramente
elementari, quindi vi prego di sbattervi un po' prima di postare sul ng...
credo che molte persone qui dentro (me incluso) abbiano iniziato a usare
delphi quando non avevano ancora internet. Per quello che mi riguarda non ho
avuto neanche qualcuno che mi desse una mano, a parte la guida... e non sono
un genio, anzi.
Provate, riprovate, pasticciate, fate casino, alla fine qualcosa di buono
salterà fuori. Però prendetela con lo spirito giusto, ossia che siete
obiettivamente principianti, di conseguenza tutto ciò che vi verrà in mente
di domandare al 99,9% è già stato affrontato, risolto e spiegato da
qualcuno, basta solo saper cercare.
Sfruttate quel mostro di google... e pensate che nel 95 non esisteva neanche
:)
-- 
Jax
====
Nella sua prima passione la donna ama il suo amante, in tutte le altre
ciò che ama è il suo amore. (Byron)

 elementari, quindi vi prego di sbattervi un po' prima di postare sul ng...
Le parti tecniche (quelle relative a Delphi), condivido che sono 
semplici e trovate le risposte su post vecchi.
La parte relativa all'analisi di un magazzino e la sua realizzazione 
potrebbero non essere così banali (dipende da cosa vi chiedono, cosa 
deve restituire questo magazzino e dal tipo di merce che tratta). 
Comunque cercando su google gruppi si trovano decine di post di persone 
che hanno già affrontato gli stessi problemi (compresa il lettore per 
codici a barre), magari con linguaggi diversi ma poco importa, ogni 
algoritmo si può riprodurre in qualsiasi linguaggio.
Ciao
Gianni

 non ne sentiamo il bisogno.
Io invece ne sento il bisogno eccome, ma guarda un pò!
Sai quanta gente come te ho incontrato in tutti questi anni che chiede
banalità, la cui spiegazione è facilmente accessibile con due click del
mouse sull'IDE di Delphi ?
La sintassi di StrToInt non è proprio una cosa da chiedere sul gruppo, premi
F1 e ti si aprirà un nuovo mondo.


 potrebbero non essere cosě banali[...]
Aggiungo che anche la costruzione della base dati č da fare in modo oculato.
E' vero che le cose si possono fare in tanti modi e che "funzionare" puň
assumere un significato relativo al contesto, perň una buona base dati crea
meno problemi. E una buona base dati non si progetta con le sole conoscenze
del liceo (a meno di non studiare approfonditamente il modello relazionale
in quinta superiore).
