Mi primer post en el foro, intentaré explicarme correctamente.
Mi versión de OpenOffice es 4.1.1 en Windows 8.1 Pro x64
He insertado un grid en un diálogo (writer), que creo mediante código de la forma siguiente:
- Código: Seleccionar todo Expandir vistaContraer vista
' Inicializar
Dim oPage1 As Object
Dim oCol1 As Object
Dim oCol2 As Object
Dim oColModel As Object
gridFicheros = FormModel.createInstance ( "com.sun.star.awt.grid.UnoControlGridModel" )
gridFicheros.setPropertyValues ( Array ( "Height", "PositionX", "PositionY", "Width" ), _
Array ( 62, 4, 126, 369 ) )
FormModel.insertByName ( "grdFicheros", gridFicheros )
gridFicheros.Name = "grdFicheros"
gridFicheros.ShowColumnHeader = True
gridFicheros.ShowRowHeader = True
gridFicheros.HScroll = False
gridFicheros.VScroll = False
oCol1 = CreateUnoService ( "com.sun.star.awt.grid.GridColumn" )
oCol1.Title = "TIPO"
oCol1.MaxWidth = 31
oCol1.MinWidth = oCol1.MaxWidth -1
oCol1.HorizontalAlign = com.sun.star.style.HorizontalAlignment.LEFT
oCol2 = CreateUnoService ( "com.sun.star.awt.grid.GridColumn" )
oCol2.Title = "PATH"
oCol2.MaxWidth = 327
oCol2.MinWidth = oCol2.MaxWidth -1
oCol2.HorizontalAlign = com.sun.star.style.HorizontalAlignment.LEFT
oColModel = CreateUnoService ( "com.sun.star.awt.grid.DefaultGridColumnModel" )
oColModel.addColumn ( oCol1 )
oColModel.addColumn ( oCol2 )
gridFicheros.ColumnModel = oColModel
' Rellenar celdas
Dim oDataModel As Object
oDataModel = CreateUnoService ( "com.sun.star.awt.grid.DefaultGridDataModel" )
oDataModel.addRow ( "1", Array ( "Informe", PathFicheroOdt ) )
oDataModel.addRow ( "2", Array ( "Informe", PathFicheroPdf ) )
oDataModel.addRow ( "3", Array ( "Certificado", PathFicheroOdt ) )
gridFicheros.GridDataModel = oDataModel
La salida es correcta, ya que se visualiza correctamente el grid en el diálogo.
Mi pregunta es, ¿se puede actualizar el contenido de una celda en el grid? He buscado bastante pero no encuentro la forma. Si que puedo acceder al contenido de las celdas usando (gridFicheros.GridDataModel.getRowData (0...N)), pero no modificar su contenido.
Gracias desde ya por la ayuda. Gran foro, se aprende bastante por aquí