Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Problemas Con Tableview
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Problemas Con Tableview 
 
Hola.

A mis años y con problemas como este, pero el caso es que no consigo casi ninguna de las cosas que quiero. Seguramente acabaré haciendo un manual y poniendolo en la base de conocimientos para que estas chorradas no vuelva a hacer perder el tiempo a nadie pero os pongo las cosas que no consigo:

Que sea dinámico
Yo quiero en un formulario un tableview con las cabeceras correspondientes y una sola fila vacía. El usuario si lo cree conveniente rellena las celdas que le interesen.
Si en la última fila pulsa flecha abajo se crea una fila nueva para que pueda agregar mas datos.

Pues no hay manera.
  • pensé en programar el keypress para que si pulsan la tecla apropiada se mire en que fila estoy y si es la última se añada una fila nueva. El keypress no parece funcionar porque nunca llega allí.
  • Pensé en programar el evento save pero allí no puedo controlar las pulsaciones. Solo funciona cuando se pierde el foco de la celda así que me tengo que ir de la última fila para que se añada otra. Además solo funciona si he cambiado el valor de la celda


donde poner el método edit
Si lo pongo en el evento change por alguna razón desconocida me borra el contenido de la celda 0,0. Ni siquiera viendo orden a orden lo que va ocurriendo consigo entender porque se borra esa celda.
Si lo pongo en el evento click solo funciona cuando hacen click por lo que si voy de una celda a otra con el teclado no funciona.

Cuestión estética
Todos los gridview que uso en mi aplicación tienen una fila en un color y otro de otro distinto que produce un efecto agradable a la vista. No consigo hacerlo con el tableview.

¿alguien me puede decir a quien hay que pegar para que el keypress funcione? Pulse lo que pulse nunca pasa por allí.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Con Tableview 
 
Puedes "aprovechar" el código del supergridviews para convertirlo en un supertableviews... yo no me he puesto en ello porque no me ha dado tiempo, pero debe de ser muy simple.... (convertirlo)....supongo...

Este es el enlace de descarga de la ultima versión del supergridviews:
http://proyectolince.googlecode.com...-0.0.128.tar.gz

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Con Tableview 
 
Así es como yo lo hago:

' gambas class file

PRIVATE $filas AS Integer = 1
PRIVATE $cols AS Integer = 4

PUBLIC SUB Form_Open()
    DIM i AS Integer
    DIM cabeceras AS String[] = ["Col0", "Col1", "Col2", "Col3"]
    TableView1.Columns.Count = $cols
    TableView1.Rows.Count = $filas
    FOR i = 0 TO ($cols - 1)
        TableView1.Columns[i].Text = cabeceras[i]
    NEXT
    
END

PUBLIC SUB TableView1_Data(Row AS Integer, Column AS Integer)      

    IF Row MOD 2 = 0 THEN TableView1.Data.Background = Color.LightBackground
' aquí también se puede usar un objeto result para llenar automáticamente
' el tableview, incluso con miles de filas sin perder rendimiento.
' También se puede usar para dar formato (o incluir iconos en determinadas celdas)
' jugando con los índices de filas y columnas
END

PUBLIC SUB TableView1_Save(Row AS Integer, Column AS Integer, Value AS String)
' este evento se dispara cuando el valor de una celda
' se va a guardar por ejemplo en un objeto result
    PRINT Subst("dato \'&1\' guardado en fila &2 columna &3", Value, Row, Column)
 
END

PUBLIC SUB TableView1_Click()
    IF TableView1.Column = 1 THEN
        TableView1.Edit(["peras", "manzanas", "naranjas", "platanos"], FALSE)
    ELSE
        TableView1.Edit()
    ENDIF
    
END

PUBLIC SUB TableView1_Insert()
' este evento se dispara al pulsar Enter
' en la última celda de la última fila
    $filas += 1
    TableView1.Rows.Count = $filas

END



Para la persistencia de los datos, debes de implementar el evento _Save() el cual se encargará de almacenarlo en la base de datos a través del objeto result.

Espero que te sirva,

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Con Tableview 
 
voy a probarlo porque yo había probado todo eso, pero no en el evento data, lo que pasa es que no veo como disparas el evento data y tampoco veo como disparas el evento insert.

Que el edit lo hagas en el evento click supone que si no haces click no editas. Descartas que el usuario se mueva con el teclado.

Bueno, voy a probar, muchas gracias
 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Con Tableview 
 
Lo de editar una celda con otro evento distinto de _Click() no lo he probado, pero esa es la manera recomendada en la documentación.

Por otra parte los eventos _Data() e _Insert() se disparan automáticamente sin necesidad de intervención, cuando se tienen que mostrar datos [1], en el primer caso y como expliqué en el código en el segundo caso: al pulsar Enter en la última celda de la última fila.

[1] Es algo así como que cuando el propio control TableView tiene que redibujarse al cambiar el contenido y cuando detecta que los datos han cambiado...

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Con Tableview 
 
funciona mejor si en vez de click se usa change porque funciona igual con el ratón, pero también incluye al teclado si te mueves de una celda a otra.

Mas o menos ya he conseguido lo que quería, muchas gracias.

De todas formas no me acaba de gustar. Tiene muchas limitaciones y ese save automático no me gusta un pelo. Siempre que he podido he evitado este objeto y pienso seguir hacíendolo porque crea mas problemas que los que soluciona.

Por ejemplo he intentado que la celda que está siendo editada tenga otro color de fondo y no puedo. He creado una columna que indica la fila activa y cuando la editas se pone un lapiz. Queda chulo pero no puedo bloquear esa columna y el keypress no funciona. No hay evento para controlar errores y al final todo lo acabas haciendo en el data y en el save. Creo que a menudo causa mas problemas que soluciones. Quizá es que no lo uso bien pero yo es que no lo veo cómodo

Muchas gracias
  .
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Con Tableview 
 
Personalmente no utilizo listas editables. Además de todos los inconvenientes indicados por Soplo, creo que son muy dadas a errores invisibles (contenido que no cabe en las columnas, columnas que no son visibles, incómodos desplazamientos horizontales al usuario, incapacidad para controlar qué es lo que exactamente ve el usuario, etc. etc.) Utilizo las listas para ver y un formulario para editar. Creo que es lo suyo.

Saludos
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Con Tableview 
 
Exactamente. Por eso a estas alturas ando tan verde con el tableview. Porque siempre lo he evitado, Esta vez solo quería dar libertad al usuario y que escribiera lo que quisiera sabiendo que luego debería recorrer el cuadro y formatear datos antes de grabar, por eso me decidí a probar el tableview.

Y esta tarde lo voy a quitar, dejaré un gridview para que se vean las entradas y un formulario para que el usuario escriba. No solo no me ahorra trabajo sino que me crea problemas nuevos.

Un saludo
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Control Tableview SOURBOY Controles/Librerías/Componentes 0 Viernes, 04 Febrero 2011, 03:50 Ver último mensaje
SOURBOY
No hay nuevos mensajes Tableview jj231089 General 1 Jueves, 21 Agosto 2014, 19:37 Ver último mensaje
jsbsan
No hay nuevos mensajes Problemas Para Acceder A Un Array De Table... Ricardo Prieto General 5 Miercoles, 09 Diciembre 2015, 01:05 Ver último mensaje
Ricardo Prieto
No hay nuevos mensajes El Control Tableview soplo Controles/Librerías/Componentes 31 Miercoles, 22 Marzo 2017, 19:28 Ver último mensaje
drojas
 

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