Evasione ordini di magazzino

sabato 17 ottobre 2020 - 13.55
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010  |  MySQL 5.5

Mau67 Profilo | Expert

Buon pomeriggio,
volevo chiedere un aiuto su un piccolo progetto di magazzino de gestire con lettore barcode.
detto questo vi espongo il problema:
Esporto l'ordine cliente dal gestionale centrale in un file di testo, il file viene caricato all'interno di una listview su un pc portatile in dotazione al magazziniere, questo file serve per leggere gli articoli da preparare in base all'ordine ricevuto.
adesso cosa volevo fare, mettere in ascolto una form tramite lettore barcod ad emulatzione di tastiera che ad ogni lettura di barcod questa si apre e contiene 3 textbox una per la memorizzazione del barcod un altra per la quantita richiesta, alla fine delle due scansioni viene memorizzato l'articolo nella listview sottostante che a termine preparazione ordine viene salvato su file testo per l'importazione nel gestionale centrale.

Il problema è che non ho idea di come una form possa essere messa in ascolto costante e si attivi tramite lettura barcode e si chiude dopo l'inserimento dei dati.

Ringrazio anticipatamente
Mau67

AntCiar Profilo | Expert

Ciao. Nella form che apri metti il focus fisso nella textbox dove andrà il codice a barre. Se poi ti metti in ascolto dell'evento keypress, su questa textbox, e intercetti l'arrivo del carattere "a capo" (\r\n in c#; vbcrlf in VB) puoi passare il focus in automatico al controllo successivo (per la quantità)
Cristian Barca

Mau67 Profilo | Expert

Grazie per la risposta,
funziona bene, ho solo un piccolo problema come facci a tenere sempre in ascolto la textbox?
perché se per caso l'operatore per svariati motivi clicca su qualsiasi parte del form la textbox perde il focus, io invece vorrei che la textbox rimaga sempre in ascolto.
Grazie
Mau67

AntCiar Profilo | Expert

E' una cosa un po "brutta" da fare ma puoi risolvere mettendo un timer sulla form. Imposta l'interval tipo a 1000 (1 sec)
Poi gestisci l'evento tick e dentro controlla se la textbox del barcode è vuota. se vuota, forza il focus sulla textbox.

In questo modo ogni secondo il focus ritorna sulla textbox (nel caso in cui questa non contenga niente)
nel momento in cui leggi il barcode, o anche scrivi a mano qualcosa, il focus non diventa più automatico e puoi utilizzare gli altri controlli della form.
Cristian Barca

Mau67 Profilo | Expert

Perfetto va bene.
Ho un ultima domanda poi chiudo il post.

Nella form ho 2 listview, nella prima Listview1 carico un ordina da evadere da un file testo, nella seconda Listview2 scansiono i barcode e li aggiungo cosa ti chiedo,
di confrontare il codice articolo della prima listview dove nella subitems successiva c'è la quantità totale, con il codice articolo della seconda listview che scansiono e aggiungo la quantità, e dovrei sommare tutte le quantità riferite allo stesso codice articolo e se supera la quantità totale della lisview1 mi dovrebbe dare un messaggio di quantità superarta rispetto all'ordine e non aggiungere nella listview2.

Spero di aver esposto il problema chiaramente
Grazie
Mau67
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5