Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Gridview Editable?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Gridview Editable? 
 
hola la idea inicial es hacer algo como esto para empezar

gridviewii

algo  no directamete util solo para ver como se hace

la idea es que las rows se agregen automaticamnete segun se necesite y
sea un par de columnas editables  el resto se actualize automaticamete


data
similar al gridview de .net


de momento las investigaciones probado con el grid normal y el de qt
y solo se como llenar la grilla mediante codigo
pero las celdas son readonly
?
edit

en  gambas 2
 



 
última edición por codificador el Miercoles, 25 Enero 2012, 06:38; editado 2 veces 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gridview Editable? 
 
Prueba con TableView, es un control igual que el Gridview, pero editable.

Simplemente tendras que añadirle, que cuando el usuario pulse "Enter" o "Return" en la ultima fila y ultima columnas, le añada una fila mas al tableview. (usa el evento keypress) y se posicione el cursor  en esa nueva fila, en la columna primera.

Este es parte del codigo que te puede orientar:
PUBLIC ultimafila AS Integer

PUBLIC SUB _new()
GridView1.Rows.count = 1
GridView1.Columns.count = 2
GridView1.mode = 1
ultimafila = GridView1.Rows.count

END

PUBLIC SUB Form_Open()

END

PUBLIC SUB GridView1_Click()

  IF GridView1.row = ultimafila - 1 THEN
    gridview1.Rows.count += 1
    ultimafila = gridview1.Rows.count
    GridView1.Moveto(ultimafila - 1, 0)
ENDIF
END
 



nota:
De echo buscando en el codigo fuente del gambas (gambas2-2.23.1/comp/src/gb.form/TableView.class), encontre como añadia las funciones de edicion al gridviews:

' gambas class file

INHERITS GridView
EXPORT

EVENT Save(Row AS Integer, Column AS Integer, Value AS String)
EVENT Insert
EVENT Click

PRIVATE $hTextBox AS TextBox
PRIVATE $hComboBox AS ComboBox
PRIVATE $hEditor AS Object
PRIVATE $bTextBox AS Boolean

PRIVATE $iCol AS Integer
PRIVATE $iRow AS Integer
PRIVATE $hWatcher AS Watcher

PUBLIC SUB _new()
  
  DIM hObs AS Observer
  
  hObs = NEW Observer(ME) AS "GridView"
  $hWatcher = NEW Watcher(ME) AS "GridView"
  
  $hComboBox = NEW ComboBox(ME.Window) AS "Editor"
  $hComboBox.Ignore = TRUE
  $hComboBox.Hide

  $hTextBox = NEW TextBox(ME.Window) AS "Editor"
  $hTextBox.Ignore = TRUE
  $hTextBox.Border = FALSE
  $hTextBox.Hide

END

PRIVATE SUB SaveEditor()
  
  DIM sText AS String
  
  IF NOT $hEditor THEN RETURN
  
  sText = $hEditor.Text
  
  IF sText = ME[$iRow, $iCol].Text THEN RETURN
  RAISE Save($iRow, $iCol, sText)
  ME[$iRow, $iCol].Refresh
  
END

PUBLIC SUB Save()
  
  HideEditor
  
END

PUBLIC SUB Cancel()
  
  HideEditor(TRUE)
  
END

PRIVATE SUB HideEditor(OPTIONAL bNoSave AS Boolean)
  
  IF $hEditor THEN
    IF NOT bNoSave THEN SaveEditor
    $hEditor.Hide
    $hEditor = NULL
  ENDIF
  
END

PRIVATE SUB MoveEditor()
  
  DIM X, Y AS Integer
  
  IF NOT $hEditor THEN RETURN
  
  X = ME.ScreenX - ME.Window.ScreenX
  Y = ME.ScreenY - ME.Window.ScreenY - ME.Window.ClientY
  'DEBUG $iRow;; $iCol
  WITH ME[$iRow, $iCol]
    X += .X
    Y += .Y
    $hEditor.Move(X, Y, .Width, .Height)
  END WITH
  'DEBUG
  $hEditor.Font = ME.Font
  $hEditor.Show
  'DEBUG
  
END


PUBLIC SUB GridView_MouseDown()
  
  HideEditor
  
END


PUBLIC SUB GridView_RowResize(Row AS Integer)
  
  HideEditor
  
END


PUBLIC SUB GridView_ColumnResize(Column AS Integer)
  
  HideEditor
  
END


PUBLIC SUB GridView_Scroll()
  
  HideEditor
  
END


PUBLIC SUB GridView_Resize()
  
  HideEditor
  
END


PUBLIC SUB GridView_Hide()
  
  HideEditor
  
END


PUBLIC SUB GridView_Change()
  
  HideEditor
  
END


PUBLIC SUB Edit(OPTIONAL List AS String[], OPTIONAL ReadOnly AS Boolean)

  'DEBUG  
  HideEditor
  
  $iCol = ME.Column
  $iRow = ME.Row
  
  IF $iCol < 0 OR $iRow <0> 0
        DEC ME.Row
        RAISE Click
        IF $hEditor THEN
          STOP EVENT
          BREAK
        ENDIF
      WEND

    CASE Key.Down
      WHILE ME.Row <ME> 0 THEN RETURN

      DO
        IF ME.Column > 0 THEN
          DEC ME.Column
          RAISE Click
        ELSE IF ME.Row > 0 THEN
          ME.MoveTo(ME.Row - 1, ME.Columns.Count - 1)
          RAISE Click
        ELSE
          BREAK
        ENDIF
        IF $hEditor THEN
          TRY $hEditor.Pos = $hEditor.Length
          STOP EVENT
          BREAK
        ENDIF
      LOOP

    CASE Key.Right
      IF $bTextBox AND IF $hEditor.Pos < $hEditor.Length THEN RETURN

      DO
        IF ME.Column < (ME.Columns.Count - 1) THEN
          INC ME.Column
          RAISE Click
        ELSE IF ME.Row < (ME.Rows.Count - 1) THEN
          ME.MoveTo(ME.Row + 1, 0)
          RAISE Click
        ELSE
          BREAK
        ENDIF
        IF $hEditor THEN
          TRY $hEditor.Pos = 0
          STOP EVENT
          BREAK
        ENDIF
      LOOP
      
    CASE Key.Enter, Key.Return
      IF $bTextBox THEN
        DO
          IF ME.Column < (ME.Columns.Count - 1) THEN
            INC ME.Column
            RAISE Click
          ELSE IF ME.Row < (ME.Rows.Count - 1) THEN
            ME.MoveTo(ME.Row + 1, 0)
            RAISE Click
          ELSE
            RAISE Insert
            STOP EVENT
            BREAK
          ENDIF
          IF $hEditor THEN
            TRY $hEditor.Pos = 0
            STOP EVENT
            BREAK
          ENDIF
        LOOP
      ENDIF

  END SELECT
  
END
 

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Miercoles, 25 Enero 2012, 17:29; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gridview Editable? 
 
hola si el código  se parece a lo que estaba haciendo
sin embargo sigo sin poder editar
al ejecutar el programa las celdas son de solo lectura

esto es lo que tengo
ahora
en el formulario un tableview y un gridview
para ir probando solamente


' gambas class file
PUBLIC ultimafila AS Integer
PUBLIC SUB _new()
''Relleno de la grilla explicitamente
GridView1.Rows.count = 1
GridView1.Columns.count = 2
GridView1.mode = 1
ultimafila = GridView1.Rows.count

 TableView1.Columns.Count = 2
 TableView1.Rows.Count = 3
 TableView1.Mode = 1
 
 TableView1.Mode = 12
' gridview1.hi
 
END


''Relleno de la grilla explicitamente
'TableView1..count = 1
'TableView1.Columns.count = 2
'TableView1.mode = 1
'ultimafila = TableView1.Rows.count
'END

PUBLIC SUB Form_Open()


END

PUBLIC SUB GridView1_KeyPress()

 ' gridview1.

END

PUBLIC SUB GridView1_Click()

   IF GridView1.row = ultimafila - 1 THEN
   gridview1.Rows.count += 1
   ultimafila = gridview1.Rows.count
   GridView1.Moveto(ultimafila - 1, 0)
ENDIF

END

 


sobre la clase del código fuente de gambas no entendí que hacer
ni como usarla
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gridview Editable? 
 
Mira, he encontrado este ejemplo que te puede servir, creo que es lo que quieres hacer....Cuando llegas a la ultima celda, te añade automaticamente una linea y te vas a la primera columna  de esa fila.

presupuesto2

Lo subi hace tiempo en mi antiguo blog:
NNuevo ejemplo de tableviews presupuestos descompuesto de una unidad

Nota:
El codigo de la clase que subi antes, se supone que es de como esta programado el tableview, pero no he podido ponerlo en funcionamiento...  
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Jueves, 26 Enero 2012, 19:49; editado 2 veces 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gridview Editable? 
 
jsbsan escribió: [Ver mensaje]
Mira, he encontrado este ejemplo que te puede servir, creo que es lo que quieres hacer....
Nota:
El codigo de la clase que subi antes, se supone que es de como esta programado el tableview, pero no he podido ponerlo en funcionamiento...  


hola
 si  es oque quería hacer
gracias

tengo que estudiar tu código
 



 
codificador - 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 Gridview Mostrando Una DB imagomundi Controles/Librerías/Componentes 8 Jueves, 04 Junio 2015, 11:44 Ver último mensaje
shordi
No hay nuevos mensajes Colores De Un Gridview shordi Controles/Librerías/Componentes 4 Martes, 29 Enero 2013, 19:32 Ver último mensaje
arubioc
No hay nuevos mensajes Control Gridview. lnoriega Controles/Librerías/Componentes 4 Miercoles, 16 Febrero 2011, 10:16 Ver último mensaje
Shell
No hay nuevos mensajes Columnas En Gridview techm3 General 5 Sabado, 06 Febrero 2010, 19:59 Ver último mensaje
soplo
 

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

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
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