Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Borrado De Filas En Control TableView
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Borrado De Filas En Control TableView 
 
Hola a todos...

Para saber si una fila esta seleccionada uso:

TableView.Rows[Fila].Selected


Si quiero borrar una no hay problema...

TableView.Rows.Remove(Fila, 1)


Pero cuando quiero borrar todas las filas seleccionadas, no encuentro un método que me deuelva solo las filas seleccionadas para no tener que iterar en todas las filas del control.

En la documentación del control no veo algo al respecto: http://gambaswiki.org/wiki/comp/gb.form/tableview
y buscando en internet y este foro tampoco he encontrado algo al respecto.

 ¿alguna idea?

Gracias y saludos

S.O. Mint 17.1, Cinamon
gambas 3.1.1, gb.QT
 



 
mauriciobaeza - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Borrado De Filas En Control TableView 
 
Hola Mauricio.

Existe una propiedad que contiene las filas seleccionadas.
Tabla.Rows.Selections

Es un array de las filas seleccionadas. Así si tienes seleccionadas las filas 1 y 3. Los elementos del array que contienen Tabla.Rows.Selections serian:

 Tabla.Rows.Selections[0] = 1
 Tabla.Rows.Selections[1] = 3

Pero, veo un problema. ¿ Que pasa si eliminas una fila ?. Pues que el valor de las filas cambian por lo tanto el valor que contiene ese array es un fila menos.
Solo no debemos tocar el primero. Así que al borrar el primero.

El siguiente elemento:
Tabla.Rows.Selections[1] = 3

El valor de la fila pasa a uno menos.

Tabla.Rows.Selections[1] = 3 -1
Tabla.Rows.Selections[1] = 2

Hice este ejemplo, a ver si se puede mejorar, es funcional. Casi.

' gambas class file

Public Sub _new()
  
End

Public Sub Form_Open()
  
  tblEjemplo = titulos(tblEjemplo)
  LlenarTabla(tblEjemplo)
  
End

Public Function titulos(hTabla As TableView) As TableView
  
  With hTabla
    .Header = 3
    .Columns.Count = 5
    .Rows.Count = 5  
    .Columns.Resizable = True
    .Columns[0].Title = "A"    
    .Columns[1].Title = "B"
    .Columns[2].Title = "C"
    .Columns[3].Title = "D"
    .Columns[4].Title = "E"
  End With
  Return hTabla
  
End

Public Sub LlenarTabla(hTabla As TableView)
  
  Dim columnas, filas As Integer
  
  For columnas = 0 To hTabla.Columns.Count - 1
    For filas = 0 To hTabla.Rows.Count - 1
      hTabla[filas, columnas].Text = "F: " & filas & " " & "C: " & columnas
    Next
  Next
  
End

Public Sub btnEliminarFIlas_Click()
  
  Dim fseleccionadas As New Integer[]
  Dim x As Integer
  
  If BorrarFilas(tblEjemplo) Then
    If tblEjemplo.Rows.Selection.Count = 1 Then
      tblEjemplo.Rows.Remove(tblEjemplo.Rows.Selection[0])  
    Else
      For x = 0 To tblEjemplo.Rows.Selection.Max
        If x = 0 Then
          fseleccionadas.Add(tblEjemplo.Rows.Selection[x])
        Else
          fseleccionadas.Add(tblEjemplo.Rows.Selection[x] - 1)  
        Endif        
      Next
    Endif  
    
    For x = 0 To fseleccionadas.Max
      tblEjemplo.Rows.Remove(fseleccionadas[x])
    Next
    
  Endif  
  
End

Public Sub BorrarFilas(hTabla As TableView) As Boolean
  
  If hTabla.Rows.Selection.Count > 0 Then Return True
  
End
 


Aquí tienes el ejemplo para que lo pruebes. Como ves elimina cada fila seleccionada.

P.d ¿ La Linux Mint 17 No trae la gambas 3.5 ?.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 07 Febrero 2015, 11:29; editado 4 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Borrado De Filas En Control TableView 
 
Errores observados:

Primero y principal: Llega un momento que da Argumento invalido en:

For x = 0 To fseleccionadas.Max
tblEjemplo.Rows.Remove(fseleccionadas[x])
Next
 


Y lo más curioso, si elimino todas las filas,¿ cómo es que en tblEjemplo.Rows.Selection sigue existiendo el índice 0 con valor 0 ?.
He tenido que cambiar el procedimiento Borrar Filas:
Public Sub BorrarFilas(hTabla As TableView) As Boolean
  
  If hTabla.Rows.Count <> 0 And hTabla.Rows.Selection.Count > 0 Then Return True
  
End
 


Otras observaciones:

- Si elimino una fila. ¿ Cómo es que se queda seleccionada una nueva fila si yo no la he seleccionado ? ( color )
- Seleccionamos todas las filas. Ahora selecciono una sola fila de las seleccionadas.:
¿ Cómo es que no se  ha deseleccionado las anteriores y  no queda solo una fila seleccionada ?.

 

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Borrado De Filas En Control TableView 
 
Hola Compañero...

Muchas gracias por tu respuesta...

En mi versión de gambas no veo esa propiedad y cuando la intento usar me da el error "simbolo desconocido", mismo mensaje cuando pruebo tu ejemplo. Desafortunadamente por ahora dependo totalmente de usar gambas 3.1, es algo grande el proyecto y la veces que he intentado migrar a la ultima versión me rompe muchas cosas... tantas que voy a aprovechar para reescribir el sistema en la ultima versión, en cuanto pueda...

Si, es posible instalar sin problemas la ultima versión de gambas en Mint, pero ahora que usaré la ultima versión ya podré trabajar en mi distribución de cabecerá que es ArchLinux...

Saludos y gracias de nuevo
 



 
mauriciobaeza - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes El Control TableView - Como Editar Un Camb... arubioc Controles/Librerías/Componentes 4 Lunes, 01 Agosto 2011, 15:16 Ver último mensaje
arubioc
No hay nuevos mensajes Control TableView Hoja De Calculo tercoIDE Controles/Librerías/Componentes 6 Miercoles, 20 Julio 2016, 01:24 Ver último mensaje
tercoIDE
No hay nuevos mensajes Filas Visibles De Un Gridview shordi General 2 Domingo, 14 Agosto 2016, 09:58 Ver último mensaje
shordi
No hay nuevos mensajes DirBox No Da Evento Click Con Boton De Bor... tincho Controles/Librerías/Componentes 9 Sabado, 06 Julio 2019, 00:18 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario