lectores opticos y paginas aspx
Estimado Sergio.
Para hacer lo que indicas debes considerar lo siguiente.
1.- Debes tratar de omitir los objetos que puedan tomar el foco. Para evitar que un teclaso impida la lectura del código en el campo de texto que quieres que guarde la información.
2.- En el metodo load define el objeto que quieres tenga el foco (el cual es tu campo de texto)
TextBox1.Focus()
3.- La configuración por default de la mayoria de los lectores de codigos de barras hacen un enter despues de leer el código. Lo cual podria ser interpretado por el explorador en una página aspx como un evento text changed del textbox siempre que definas la propiedad autopostback en true. Por lo tanto tu código de guardado deberia estar en este punto y no en un boton adicional.
Protected Sub TextBox1_TextChanged _
(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles TextBox1.TextChanged
Label1.Text = TextBox1.Text
TextBox1.Focus()
TextBox1.Text = ""
End Sub
Y con esto todo deberia funcionar de maravilla.
Saludos
Atentamente
Raúl Guerrero
"SergioT" wrote:
> Hola
>
> Tengop una duda, tengo un cliente que está por utilizar un lector optico
> infrarojo para leer codigo de barras de productos y resulta que la pantalla
> de ventas es una pagina aspx, que basicamente tiene un campo para ingresar
> el codigo, la cantidad y in boton OK que al oprimirlo hace un postback y
> lleva el item y su cantidad a un dataGrid.al cual ya se adiciona precio y
> total ( en el postback)
>
> La idea es que un lector optico agilice el trabajo por tanto leer un item y
> luego otro, y otro... y asi hasta finalmente oprimir un boton para grabar.
> Pero la cosa es que como es aspx necesito que se oprima el boton y se
> ejecute un postback.
>
> La pregunta es :
>
> Es posible hacer que una vez se leea con el lector ( osea se llene el
> textbox ) se produzca un postback sin necesidad de tomar el mouse y oprimir
> el boton?
>
> tienen alguna alternativa a esta forma de trabajo???
>
> GRACIAS por las ideas
>
>
> --
> Salu2
> Sergio T.
REFERENCIA AL GRUPO DE NOTICIAS:
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.es.dotnet.aspnet&mid=6d24962c-4ed0-4cfd-8394-b99208b386f3&sloc=en-us


11 Comments:
Hola Raul
Gracias por el dato, solo una consulta , el evento textChabged me parece que
no fuerza el postback, si no que espera que haya un postback para ejecutarse
y por tanto necesitaria no mas de un boton para el postback.
De todas formas voy a probar tu sugerencia
GRACIAS
salu2
Sergio
Debes asignarle el valor de la propiedad autopostback a true del campo de texto para que se ejecute el código.
Y ya no necesitarias utilizar botones para ejecutar las operaciones.
Te envio un cordial saludo.
Un administrador del blog ha eliminado esta entrada.
Buen dia colegas estuve leyendo sus comentarios sobre la lectura optica, y me ha ayuda en muchas dudas, pero tengo un problemilla yo tambien desarrolla una aplicacion muy parecida a la de sergioT, y me gustaria saber como hizo para agregar cada dato de la lectora optica dentro del grid uno a uno sin perder los datos anteriores y guardarlos despues en la BD con un simple Click...
Agradeceria mucho su ayuda...
Bueno es muy probable que el este usando un dataset que esta asociado al DataGrid.
Si es asi, entonces el agrega una fila(DataRow) al DataTable que esta dentro de dicho DataSet.
Eso lo hace con el metodo add dentro de la propiedad Rows.
Saludos
Un administrador del blog ha eliminado esta entrada.
Un administrador del blog ha eliminado esta entrada.
Pero Raul tu sabes como insertar cada valor uno a uno he logrado algo pero solo puede agregar dos valores en el grid cunado intento iinsertar el tercero me da error me dice que le indice de la fila del grid que intento acceder no existe...
te envio mi codigo para que lo cheques...cualquier ayuda lo agredecere mucho
Saludos de AlexMartA...
Dim dslocal = Estructura()
Protected Sub INSERTAR(ByVal sender As Object, ByVal e As System.EventArgs)
Dim dr As DataRow = dslocal.tables("Productos").NewRow
Dim i, j As Integer
Dim iCodigo As String
Dim iDescripcion As String
Dim iPrecio As Integer
i = 0
For j = 0 To gvCafeteria.Rows.Count - 1
iCodigo = gvCafeteria.Rows(j).Cells(0).Text
iDescripcion = gvCafeteria.Rows(j).Cells(1).Text
iPrecio = gvCafeteria.Rows(j).Cells(2).Text
Dim idr As DataRow = dslocal.tables("Productos").NewRow
idr("Codigo") = iCodigo
idr("Descripcion") = iDescripcion
idr("Precio") = iPrecio
InsertarNuevaFila(idr, i)
i += 1
Next
dr("Codigo") = CLAVE.Text
dr("Descripcion") = NOMBRE.Text
dr("Precio") = EDAD.Text
dslocal.Tables("Productos").Rows.Add(dr)
gvCafeteria.DataSource = dslocal
gvCafeteria.DataBind()
End Sub
Public Function Estructura()
Dim ds As New DataSet
ds.Tables.Add("Productos")
ds.Tables("Productos").Columns.Add("Codigo")
ds.Tables("Productos").Columns.Add("Descripcion")
ds.Tables("Productos").Columns.Add("Precio")
Return ds
End Function
Public Sub InsertarNuevaFila(ByVal Fila As DataRow, ByVal i As Integer)
Me.dslocal.Tables("Productos").Rows.InsertAt(Fila, i)
gvCafeteria.DataSource = dslocal
Me.gvCafeteria.DataBind()
End Sub
Hola colegas soy yo de nuevo espero no estar molestanso demasiado, al final obte por una solucion distinta, ya que debido al tiempo, el codigo que mostre anteriomente no me cuajaba asi si que decide utilizar una tabla temporal para almacenar los datos y luego volacarlos o replicarlos a la original, pero si llegan a encontrar una solucion al error del codigo que les mostre por favor lo publica....
Gracias por todo....
Diganme...expliquenme.. detallenme.. como es que llega a interactuar el sistema con un artefacto fisico externo como un lector de codigo de barras ???? sera a traves de una .dll? ..o quizas una API ?? o en todo caso un archivo que interactua con el sistema, que viene con la compra de el lector ??????
Explicación Porfavor ..!!
El lector de codigo de barras es el equivalente a un teclado.
Por lo tanto cuando lee un código manda la señal de la misma manera que si lo hubieras tecleado.
Saludos
Publicar un comentario en la entrada
<< Home