Sv Community El Salvador
Soporte y Tecnología => Programación => .NET => Mensaje iniciado por: Darkness en febrero 23, 2010, 11:34:35 am
-
Bueno pues tengo un problemilla con la edicion en un datagrid
Estoy elaborando una aplicacion que genera pedidos para su posterior facturacion, en la creacion del pedido no tengo ningun problema, pero al momento de la edidion de un pedido me he encontrado con una dificultad.
el escenario es el siguiente...
Tengo un dataset el cual aplico al grid
Me.DataGridView1.DataSource = OdatasetDetallePedido
Me.DataGridView1.DataMember = "DETALLEPEDIDO"
(http://www.imagebanana.com/img/4iqg4jk9/Captura.JPG) (http://www.imagebanana.com/)
lo que necesito es que el contenido de los text box al presionar el boton guardar se agrege la linea al datagrid y posteriormente actualizarlo en la tabla fisica.
creo que el inconveniente es por que el grid esta enlazado
Gracias de antemano
-
Hey que ondas men, aqui la solucion, creo que esto necesitas, yo lo hice en un proyecto pero de gridview a gridview, pero ha de ser lo mismo con textbox
Me.DataGridViewX1.Rows.Add(tutextbox.text, tuotrotextobox.text etcc....)
Saludos, Espero te sirva!!..
-
Hey que ondas men, aqui la solucion, creo que esto necesitas, yo lo hice en un proyecto pero de gridview a gridview, pero ha de ser lo mismo con textbox
Me.DataGridViewX1.Rows.Add(tutextbox.text, tuotrotextobox.text etcc....)
Saludos, Espero te sirva!!..
No man no se puede agregar filas ed esta forma cuando se el datagrid esta enlazado a datos
-
DataGridView.AllowUserToAddRows (Propiedad)
Obtiene o establece un valor que indica si se muestra al usuario la opción de agregar filas.
Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)
Dim instance As DataGridView
Dim value As Boolean
value = instance.AllowUserToAddRows
instance.AllowUserToAddRows = value
Fuente:
http://msdn.microsoft.com/es-es/library/system.windows.forms.datagridview.allowusertoaddrows%28VS.80%29.aspx (http://msdn.microsoft.com/es-es/library/system.windows.forms.datagridview.allowusertoaddrows%28VS.80%29.aspx)
Aca hay un tema que tratan en este foro parecido al tuyo, chequealo haber que ondas ahi:
http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/d4e8c7b0-c9dd-40dd-a419-83bab94bbcfa (http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/d4e8c7b0-c9dd-40dd-a419-83bab94bbcfa)
-
Bueno pues tengo un problemilla con la edicion en un datagrid
Estoy elaborando una aplicacion que genera pedidos para su posterior facturacion, en la creacion del pedido no tengo ningun problema, pero al momento de la edidion de un pedido me he encontrado con una dificultad.
el escenario es el siguiente...
Tengo un dataset el cual aplico al grid
Me.DataGridView1.DataSource = OdatasetDetallePedido
Me.DataGridView1.DataMember = "DETALLEPEDIDO"
(http://www.imagebanana.com/img/4iqg4jk9/Captura.JPG) (http://www.imagebanana.com/)
lo que necesito es que el contenido de los text box al presionar el boton guardar se agrege la linea al datagrid y posteriormente actualizarlo en la tabla fisica.
creo que el inconveniente es por que el grid esta enlazado
Gracias de antemano
vaya men lo q tenes q hacer es crear esto
For Each Fila As DataRow In AQUI_PONES_TU_DATASET
'For Each Fila As DataRow In miDataSet.Tables(0).Rows
Select Case Fila.RowState
Case DataRowState.Added
MsgBox("Agrego estos valores: " + Fila(0).ToString + " = " + Fila(1).ToString)
Case DataRowState.Modified
MsgBox("Modifico")
Case DataRowState.Deleted
MsgBox("Elimino")
End Select
Next
'dtConfigurarPrecios.AcceptChanges()
AQUI_PONES_TU_DATASET.AcceptChanges()
Con esta rutina podras saber que elementos se han agregado a tu datagrid y mandar a guardar solamente los nuevos.
Esto lo tendrias q poner en el boton de guardar. Hace la prueba y me avisas :thumbsup:
-
Gracias man por responder...
pero con ese script solamente podria ver los cambios que el grid sufrio, y realmente lo que queiro es adicionar una nueva fila al dataset y po ende actualizarlo en el datagrid
-
Gracias man por responder...
pero con ese script solamente podria ver los cambios que el grid sufrio, y realmente lo que queiro es adicionar una nueva fila al dataset y po ende actualizarlo en el datagrid
pues al ver los cambios sufridos, lo podrias mandar a guardar directamente a la tabla fisica y luego llamar la rutina con la cual llenas el datagrid y ya tendrias tu dataset con los nuevos registros
-
a pos tonces, agrega la fila a tu "enlace de datos"...
yo supondría que tu enlace de datos es un dataTable común
Me.DataGridView1.DataSource = OdatasetDetallePedido
Me.DataGridView1.DataMember = "DETALLEPEDIDO"
OdatasetDetallePedido debería ser un dataset con alguna tabla llamada DETALLEPEDIDO, tonces lo que debes hacer es crear un DataRow del dataTable contenido en este dataset OdatasetDetallePedido y luego agregarlo al dataTable DETALLEPEDIDO y listo!...
como siento muy confuso la teoría te dare las cucharaditas de la solución...
dim dtRow as datarow
dtRow=OdatasetDetallePedido.Tables("DETALLEPEDIDO").NewRow
dtrow("Articulo") = textBoxArticulo.text
dtrow("Cantidad") = textBoxCantidad.text
' -- bla bla bla --
OdatasetDetallePedido.Tables("DETALLEPEDIDO").Rows.Add(dtRow)
-
LoL
Gracias tekun...
me sirvio de maravilla
saludos
-
pregunta?
porque utilizas textBox para agregar al gridView?, porque no haces que el usuario escriba y elija en el gridView?
-
pregunta?
porque utilizas textBox para agregar al gridView?, porque no haces que el usuario escriba y elija en el gridView?
Pues si ves la codificacion de los articulos es bastante compleja asi mismo se usan niveles de precios, entonces seria tedioso que el usuario escribiera los codigos de los articulos a adicionar.
Y me es mas facil realizar las validaciones respectivas de este modo x_x
-
ahh bueno, si tu solución es que el usuario escriba esa codificación, entonces no es una opción "agradable/amigable"
yo te propuse escribir y elegir en el gridView, por decirte algo, la cantidad[pedido] del producto la debe escribir y en otros casos hay campos en los que debe tener la oportunidad de "elegir" de un catálogo, te dejo la inquietud de esa posibilidad, porque si se puede hacer!
-
ahh bueno, si tu solución es que el usuario escriba esa codificación, entonces no es una opción "agradable/amigable"
yo te propuse escribir y elegir en el gridView, por decirte algo, la cantidad[pedido] del producto la debe escribir y en otros casos hay campos en los que debe tener la oportunidad de "elegir" de un catálogo, te dejo la inquietud de esa posibilidad, porque si se puede hacer!
Te comento:
El usuario desplegara un catalogo para elegir el codigo del articulo pulsando doble click o mediante una tecla de funcion [Sobre el TxtArticulo]
al seleccionar el articulo se llenara el campo: Articulo, Descripcion, Precio, y el focus quedara en cantidad para que el usuario la escriba, luego al presionar el boton guardar, se adionara la linea al grid
Y pos tu idea me gusta, pero se me complica un poco el hecho de los eventos en cada una de las posiciones del cursor para poder desplegar el catalogo, mas que todo por esto es que decidi hacerlo de esta forma...
pero si tienes un ejemplito por ahi, me serviria para darle una lieda y posteriormente implementarlo
gracias y saludos
-
fijate que por cuestión de tiempo no puedo ayudarte en este momento, voy a ver que ondas mañana, te aviso...
-
me voy a enfocar en el truco de poder seleccionar de un catálogo un código y pintarlo en una celda específica del gridView:
hay que manejar varios eventos del gridView, creo que para este ejemplo bastan los eventos: RowEnter y CellContentDoubleClick, creo que así se llaman....
obviamente tu ya sabes que posición de columna es donde pintarás el código que seleccionaremos del catálogo... la onda esta que al dar doble clic en la celda donde pintarás el código de la celda se presente el actual catálogo que tienes para seleccionar el producto y luego pintarlo en esa celda y los demás valores de la misma forma...
esa es una forma hay otras, utilizando un comboBox como control "editor" de la celda código de producto...