Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Borrar Fila De Un ColumnView (Solucionado)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Borrar Fila De Un ColumnView (Solucionado) 
 
Hola comunidad.

 Tengo un pequeño problema a la hora de borrar una fila de un ColumnView. Esto es lo que hago:

columna_derecha.Remove(a)
 


Donde columna_derecha es el nombre de la ColumnView y la variable "a" es la fila que quiero borrar.

Hasta aquí ningún problema, ya que me borrar perfectamente. El problema viene cuando ejecuto esto:

for a=1 to columna_derecha.Count
 b=columna_derecha[a][0]
 c=columna_derecha[a][2]
next
 


 Este trozo de código funciona a la perfección si añado filas a la ColumnView, es más, cada vez que añado una fila se pasea por ese trozo de código pero si borro una ahí es donde radica el problema. Para explicarlo mejor. Supongamos que he añadido tres filas a la ColumnaView, si borro la última fila del ColumnView perfecto, pero si borro la primera fila o la segunda fila ahí es donde me da un error, más concretamente Null Key. Vamos a suponer que he borrado la segunda fila de tres datos. Si paro el programa la primera pasada del ciclo For es perfecta y en la segunda pasada es donde me da el error.

 También he probado añadiendo esto después de borrar la fila del ColumnView:

columna_derecha.Refresh
Wait
 


Y problema persiste.

Mi versión de gambas es 3.3.4 corriendo sobre Ubuntu 12.04 con Gnome Shell.

Desde ya muchas gracias.
 



 
última edición por Guizans el Jueves, 07 Febrero 2013, 22:08; editado 1 vez 
Guizans - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Borrar Fila De Un ColumnView 
 
for a=1 to columna_derecha.Count
b=columna_derecha[a][0]
c=columna_derecha[a][2]
next

 


Citar:
Si paro el programa la primera pasada del ciclo For es perfecta y en la segunda pasada es donde me da el error.


Tu problema se debe a el 2 esta mal....
Te explico:
Al iniciar tienes 3 columnas, -> referencia a las columnas: 0,1,2
Borras la 2º: te queda: 0 y 1  (la 2 se ha convertido en 1)
Cuando intentas leer la 2, salta el error porque no la encuentra, ya que en el paso anterior se ha convertido en la 1.

Saludos


    ERROR: entendi que lo que querias borrar era una columna... en vez de una fila...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Viernes, 08 Febrero 2013, 10:35; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Borrar Fila De Un ColumnView 
 
Hola!.

Hice un pequeño ejemplo. Los registros se borran al hacer click en uno y se añaden desde el botón.
Ups, olvide limpiar los Textbox después de ingresar los datos.  

 eliminarregistrocolumnview

Código:

Private posicion As Integer

Public Sub _new()

End

Public Sub Form_Open()
  Tabla = LlenarColumnV(Tabla)      
  posicion = Tabla.Count
End


Public Function LlenarColumnV(unatabla As ColumnView) As ColumnView
  
  unatabla.Columns.Count = 3
  unatabla.Columns[0].Text = "Nombre"
  unatabla.Columns[1].Text = "Apellidos"
  unatabla.Columns[2].Text = "Dirección"
  
  unatabla.Add(0, "Juan")  
  unatabla[0][1] = "Muñiz Toro"
  unatabla[0][2] = "C/ Calle 1"  
  
  unatabla.Add(1, "Alberto")  
  unatabla[1][1] = "Gonzalez Garcia"
  unatabla[1][2] = "C/ Calle 2"
  
  unatabla.Add(2, "Jose Luis")
  unatabla[2][1] = "Ortiz Dominguez"
  unatabla[2][2] = "C/ Calle 3"
    
  Return unatabla
    
End

Public Sub Tabla_Click()
  Dim x As Integer
 
  posicion = Tabla.Key      
  Tabla.Remove(Tabla.Key)
      
  If posicion < Tabla.Count Then  
    Do While posicion < Tabla.Count
      Tabla.Add(posicion, Tabla[posicion + 1][0])
      Tabla[posicion][1] = Tabla[posicion + 1][1]
      Tabla[posicion][2] = Tabla[posicion + 1][2]      
      Tabla.Remove(posicion + 1)    
      posicion += 1      
    Loop  
  Endif  

End

Public Sub BtnIngresar_Click()  
  Tabla.Add(posicion, txtNombre.Text)
  Tabla[posicion][1] = txtApellido.Text
  Tabla[posicion][2] = txtCalle.Text  
  posicion += 1  
End

 


Saludos

EliminarRegistroColumView.tar.gz
Descripción:  
Descargar
Nombre del archivo: EliminarRegistroColumView.tar.gz
Tamaño: 6.22 KB
Descargado: 34 veces
EliminarRegistroColumView.tar.gz
Descripción:  
Descargar
Nombre del archivo: EliminarRegistroColumView.tar.gz
Tamaño: 6.22 KB
Descargado: 34 veces
EliminarRegistroColumView.tar.gz
Descripción:  
Descargar
Nombre del archivo: EliminarRegistroColumView.tar.gz
Tamaño: 6.22 KB
Descargado: 34 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Jueves, 07 Febrero 2013, 20:51; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Borrar Fila De Un ColumnView 
 
Muchísimas gracias.

Me fue de mucha utilidad y ya funciona correctamente, pos anda que no le di vueltas y tenía la solución delante de mis narices  

Un cordial saludo.
 



 
Guizans - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

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
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron