Acquisizione da scanner per codici a barre

di il
9 risposte

Acquisizione da scanner per codici a barre

Buongiorno a tutti/e,
come da oggetto mi trovo dinanzi a un problema , ovvero, il software per l'acquisizione di codice a barre è completo, purtroppo non riesco a trovare una soluzione per il confronto della stringa del codice a barre con il database quando viene scansionato, poiché lo scanner, dato che funziona come tastiera digita un carattere alla volta nella textbox con la quale tramite la funzione TextChange fa partire tutto il processo di confronto e varie altre funzioni, così non è se se copio è incollo il testo del codice a barre poiché l'evento textchange non viene scritto con un carattere alla volta.

Con la scansione ahimè invece l'evento textchange si attiva per ogni carattere del codice a barre scansionato.

Consigli su come procedere?

Magari anche solo un consiglio poi sviluppo direttamente io la funzione, ma sono bloccato su come potrei acquisire la stringa e mandarla al database, premesso che sto cercando di fare questo software in maniera tale che l'operatore deve solo usare lo scanner del codice a barre senza dover cliccare alcun bottone o intervenire sul programma, ma l'operatore visualizza solo i dati presenti sul database quando viene passato un codice a barre..... stile supermercato per intenderci!

Spero di essere stato chiaro , Grazie mille a tutti!

9 Risposte

  • Re: Acquisizione da scanner per codici a barre

    Potresti provare a creare una "sessione di scrittura" del textbox ,quando non hai più eventi textchanged per un certo periodo di tempo allora sai che il codice ha finito di scrivere un carattere per volta e puoi fare il confronto con il db ,

    se i caratteri complessivamente ritornati dallo scanner sono sempre lo stesso numero potresti aggiungere un if nell'evento per fare le altre operazioni solo quando il numero dei caratteri nel textbox è quello massimo ovvero nel textbox ci sono tutti i caratteri
  • Re: Acquisizione da scanner per codici a barre

    Ma non si può configurare lo scanner in modo che alla fine ritorni un carattere predefinito (ad es LF o CR)?
    Di solito si può fare e potresti intercettare quello come fine stringa dati.
  • Re: Acquisizione da scanner per codici a barre

    Buonasera a tutti, e grazie per avermi risposto,
    lo scanner quando scansiona emula la digitazione della tastiera, basta un solo tasto premuto e parte l'evento, diverso se si incolla direttamente la stringa nel TextBox, che sia la via giusta? ovvero emulare un "incolla della stringa acquisita? Ma come imprigionarla in una variabile e buttarla nel TextBox?

    Lucios ha scritto:


    Ma non si può configurare lo scanner in modo che alla fine ritorni un carattere predefinito (ad es LF o CR)?
    Di solito si può fare e potresti intercettare quello come fine stringa dati.
    qualsiasi tasto lui fa partire le mie funzione nell'evento TextChange, tutto si risolverebbe facendolo partire da un Btn , ma sinceramente sto cercando di automatizzare il tutto

    gian82 ha scritto:


    Potresti provare a creare una "sessione di scrittura" del textbox ,quando non hai più eventi textchanged per un certo periodo di tempo allora sai che il codice ha finito di scrivere un carattere per volta e puoi fare il confronto con il db ,

    se i caratteri complessivamente ritornati dallo scanner sono sempre lo stesso numero potresti aggiungere un if nell'evento per fare le altre operazioni solo quando il numero dei caratteri nel textbox è quello massimo ovvero nel textbox ci sono tutti i caratteri
    Lo scanner acquisisce di base i CF dei dipendenti , oppure in un numero di passi aziendale, per questo ho già risolto con il confronto nella query... ma purtroppo non hanno la stessa lunghezza le stringhe tranne che per i CF ovviamente

    Cosa intendi per sessione di scrittura? Tipo dare un timing ch'esso di 10 secondi e poi far partire il textchange e gli eventi che susseguono? (comparazione DB e registrazione su un registro ..... questi sono gli eventi già programmati)

    Un'idea che mi è venuta è buttare dentro un array tutti i caratteri per poi formare la stringa e buttarla in pasto all'evento, ovvero l'evento partirebbe con il collezionare i caratteri per poi unirli!

    Grazie per il vostro tempo
  • Re: Acquisizione da scanner per codici a barre

    AGGIORNAMENTO

    Ho risolto, dopo vari tentativi, posto il codice magari a qualcuno potrà servire in futuro, non ho fatto altro che immaginar eun interruttore e poi il web mi ha iutato su un vecchio sito inglese di un tizio che ha avuto più o meno la mia stessa idea! SALUTI E GRAZIE A TUTTI PER L'AIUTO E IL TEMPO DEDICATOMI


    PRIMA PARTE DA INSERIRE NELL'EVENTO TEXT CHANGE


    IL CODICE PERSONALE VA INSERITO NELL'EVENTO TICK DEL NOSTRO TIMER

    Buon weekend a tutti!
  • Re: Acquisizione da scanner per codici a barre

    ghibli1983 ha scritto:


    Con la scansione ahimè invece l'evento textchange si attiva per ogni carattere del codice a barre scansionato.
    Certo, è nella natura dell'evento TextChange. Ma tu puoi testare qual è il carattere ricevuto e passare alle elaborazioni successive solo se è il carattere che segnala la fine della lettura. Tutti i lettori permettono anche di personalizzare questo carattere.
  • Re: Acquisizione da scanner per codici a barre

    grumpy ha scritto:


    ghibli1983 ha scritto:


    Con la scansione ahimè invece l'evento textchange si attiva per ogni carattere del codice a barre scansionato.
    Certo, è nella natura dell'evento TextChange. Ma tu puoi testare qual è il carattere ricevuto e passare alle elaborazioni successive solo se è il carattere che segnala la fine della lettura. Tutti i lettori permettono anche di personalizzare questo carattere.
    Grazie mille ho risolto così come nel mio ultimo post, senza intervenire sul lettore ! Grazie
  • Re: Acquisizione da scanner per codici a barre

    Grazie mille ho risolto così come nel mio ultimo post, senza intervenire sul lettore ! Grazie
    Mah, secondo me hai solo complicato una cosa semplice.
    Probabilmente il lettore era già impostato di default per inviare un carattere di fine scansione e, in ogni caso, in tutti quelli con i quali ho avuto a che fare io, si potevano settare in modo estremamente semplice.
    Dopo di che bastava aggiungere ad una stringa il carattere ricevuto negli eventi ed elaborarla all'arrivo del carattere terminatore. Semplicemente e senza timer.
  • Re: Acquisizione da scanner per codici a barre

    Lucios ha scritto:


    Grazie mille ho risolto così come nel mio ultimo post, senza intervenire sul lettore ! Grazie
    Mah, secondo me hai solo complicato una cosa semplice.
    Probabilmente il lettore era già impostato di default per inviare un carattere di fine scansione e, in ogni caso, in tutti quelli con i quali ho avuto a che fare io, si potevano settare in modo estremamente semplice.
    Dopo di che bastava aggiungere ad una stringa il carattere ricevuto negli eventi ed elaborarla all'arrivo del carattere terminatore. Semplicemente e senza timer.
    Mah sai , capisco il tuo punto di vista, ma in realtà, ("premetto".... giustamente) non conosci il contesto in cui verranno utilizzati i lettori ed il software che sto creando, gli operatori non avranno la possibilità di settarli, così ho risolto il problema all'origine da codice.

    Comunque sia in questo caso è per la scansione dei codici a barre, ma saper ritardare l'evento TextChange può sempre servire in altri contesti, tra l'altro leggendo in giro per il web è comunque un problema molto comune ed un argomento molto richiesto. Quindi spero che questo piccolo frammento di codice possa servire in futuro a qualcuno per i bisogni più disparati!

    Ti rinnovo i miei ringraziamenti per il tuo tempo dedicato a questo post!
  • Re: Acquisizione da scanner per codici a barre

    Di solito, personalmente, ho l'abitudine di inserire dei "pulsanti" all'interno degli eventi ovvero delle variabili booleane che attivo quando mi occorre che l'evento faccia qualcosa e disattivo quando non mi serve più per evitare problemi del tuo tipo. Nel tuo caso l'avrei ovviamente attivato solo a stringa completata.
Devi accedere o registrarti per scrivere nel forum
9 risposte