Domanda

Sto lavorando su un progetto che coinvolge l'immissione dei dati.

Gli sguardi tabella come questa: dateTime, enum, text, enum, val1, val2, text, enum;

Tutti i valori oltre val1 e val2 vengono inseriti una sola volta e vengono aggiunti alla tabella per ciascuna coppia val1 val2. Val1 e val2 sono diversi per ogni voce di fila, sono entrambi i codici a barre.

Sto cercando di renderlo il più efficiente possibile, così mi piacerebbe sapere se c'è un modo per rendere l'aggiornamento DGV Una volta immessi Val1 / 2 (il resto delle vals sono attualmente memorizzati come Vars in un object[]). Sto utilizzando uno scanner di codici a barre standard, perciò ho pensato che potrei farlo immettere i valori sulla "interruzione di riga" lo scanner entra dopo la scansione del codice a barre in modo praticamente sto cercando per l'evento "scanner_LineBreak" o qualcosa del genere ...

Così ho ottenuto al di là di quel problema ... ora .... ho bisogno di scrivere i tutti i dati a un testo / excel / / whichevertheheck file XML dal DGV ... cattiva strutturazione lo so ... potrebbe anche ricominciare da capo. Qualsiasi modo, ho creato un insieme di dati vuoto e svuotare DataTable e DataRow un vuoto (utilizzando il riempimento object[] riga che riempie la tabella che riempie il set) ed ora sto tentando di immettere tutti i dati per il vuoto dataTable così posso aggiungere al set di dati in modo da poter scrivere i dati XML. inutile dire che non funziona. Ho provato ad utilizzare il XmlSerializer, ma esso errori quando importo per accedere e / o IE. Quindi, tornando al punto di partenza 1 ... C'è un modo per popolare un DS da un DGV o c'è un modo per scrivere qualsiasi documento utilizzando solo i dati DGV. Nota: DGV = DataGridView

Aggiorna

Dopo averci pensato per un po 'mi sono reso conto che avrei potuto fare un incremento di contatore per ogni carattere inserito con l'evento TextChanged e da lì fare quello che avrei voluto ... figura go ...

int counter = 0;
private void textbox1_Textchanged(obj sender etc)
{
    counter++;

    if (counter % 10 == 0)
    {
        //shift focus to other textbox then do same to "save" values
    }
}
È stato utile?

Soluzione

Nella mia esperienza, la maggior parte dei lettori di codici a barre vengono trattati come input da tastiera. I numeri verranno in seguito da un carattere di controllo (di solito CRLF o la scheda, ma sarà necessario verificare con lo scanner per vedere quale personaggio sta usando). È quindi possibile utilizzare gli eventi KeyDown o TextChanged di guardare in ingresso e se è il carattere di controllo eseguire la logica di aggiornamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top