Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como eliminar varios registros seleccionados a la vez de un MSFlexGrid

Estas en el tema de Como eliminar varios registros seleccionados a la vez de un MSFlexGrid en el foro de Visual Basic clásico en Foros del Web. Hola tengo un problema y no tengo idea como resolverlo estoy buscando como eliminar varias filas seleccionadas de un msflexgrid, tengo una rutina el cual ...
  #1 (permalink)  
Antiguo 13/07/2008, 17:35
 
Fecha de Ingreso: agosto-2007
Ubicación: Peru
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Como eliminar varios registros seleccionados a la vez de un MSFlexGrid

Hola tengo un problema y no tengo idea como resolverlo estoy buscando como eliminar varias filas seleccionadas de un msflexgrid, tengo una rutina el cual me sirve bien cuando selecciono uno a la vez:



Private Sub EliminarFila_Click()
On Error Resume Next
Dim FilaErease, FilaSeleccionada As Integer
FilaSeleccionada = MSFlexGrid2.Row
FilaErease = FilaSeleccionada
If MSFlexGrid2.Rows <= 2 Then
Answ = MsgBox("La cantidad de Datos a Exportar" + Chr(13) + _
"Como minimo es 1 ", 16, "Geologia")
MSFlexGrid2.SetFocus
Else
Dim D_0 As String, D_1 As String
Dim D_2 As String, D_3 As String
Dim D_4 As String, D_5 As String
Dim D_6 As String
D_0 = MSFlexGrid1.TextMatrix(FilaSeleccionada, 0)
D_1 = MSFlexGrid1.TextMatrix(FilaSeleccionada, 1)
D_2 = MSFlexGrid1.TextMatrix(FilaSeleccionada, 2)
D_3 = MSFlexGrid1.TextMatrix(FilaSeleccionada, 3)
D_4 = MSFlexGrid1.TextMatrix(FilaSeleccionada, 4)
D_5 = MSFlexGrid1.TextMatrix(FilaSeleccionada, 5)
D_6 = MSFlexGrid1.TextMatrix(FilaSeleccionada, 6)
If FilaSeleccionada = (MSFlexGrid1.Rows - 1) And MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = "Promedio" Then
Answ = MsgBox("Verifique el registro a Eliminar" + Chr(13) + _
"Selecciono la fila de Promedios", 16, "Error")
End If
Answ = MsgBox("Verifique los datos de este registro :" + Chr(13) + _
Chr(13) + _
"Muestreo : " + Trim(D_0) + Chr(13) + _
"Ancho : " + (Format(D_1, "##0.00")) + Chr(13) + _
"Datos : " + Format(D_2, "##0.0") + ", " + Format(D_3, "##0.00") + _
", " + Format(D_4, "##0.00") + ", " + Format(D_5, "##0.00") + ", " + Format(D_6, "##0.00") + Chr(13) + _
Chr(13) + _
"Desea eliminarlo?", 36, "Geologia")
If Answ = 6 Then
MSFlexGrid1.RemoveItem FilaSeleccionada
Dim Del_Row As Integer
If MSFlexGrid1.TextMatrix((MSFlexGrid1.Rows - 1), 0) = "Promedio" Then
Del_Row = MSFlexGrid1.Rows - 1
MSFlexGrid1.RemoveItem Del_Row
Promedios ' Ingresa el promedio de las leyes actualizando la fila eliminada
End If
Else
Exit Sub
End If
End If
CmdPasar_Click
MSFlexGrid2.FixedRows = 1
End Sub



Como podria seleccionar varias filas y eliminarlas a la ves espero su ayuda gracias por su atencion.
  #2 (permalink)  
Antiguo 14/07/2008, 10:06
Avatar de Jhonnyf  
Fecha de Ingreso: septiembre-2007
Ubicación: Dentro de mi
Mensajes: 87
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Como eliminar varios registros seleccionados a la vez de un MSFlexGrid

No he usado mucho el FEXGrid, pero lo que haria es que una primeta rutina lea los que estan selecionados, lo grabo en un array (los ID)y luego comienzo a eliminar en el GRID con otra rutina

si tienes problemas porque en el Grid se mueven las filas (eran 8, si eliminas la tercera posicion, desde la cuarta bajan 1 posicion) pues haria que por cada ID grabado en mi array, lo busque desde el inicio en el FLEXGRID y lo elimine

en Pseucodigo seria mas o menos asi:

Sub Eliminar
Si hay varios selecionados then
Recore el GRID y grabalo en una matriz o un string separados con un caracter especial
for i=0 to Numerodeelementosselecionados
call EliminaRegistro (ID)
next
else
Usar el codigo de siempre
endif
End Sub


sub EliminaRegistro(QUE ELIMINARE as TIPO DE DATO)
Recorre desde el inicio el Grid
Si encontré QUE ELIMINARE then
Rutinapara eliminar esa posicion
exit sub
endif
End Sub
  #3 (permalink)  
Antiguo 14/07/2008, 12:06
 
Fecha de Ingreso: agosto-2007
Ubicación: Peru
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Como eliminar varios registros seleccionados a la vez de un MSFlexGrid

Gracias Jhonnyf por tu ayuda pero me podrias explicar mejor el tema de array completando el codigo.






.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:23.