Maximizar control tabla

Discute sobre las herramientas de la base de datos
Avatar de Usuario
JoseJuan
Mensajes: 34
Registrado: Mié Abr 04, 2018 10:41 pm
Ubicación: Valencia (España)

Maximizar control tabla

Mensaje por JoseJuan »

Hola a todos/as,
Tengo un formulario con único control tabla, que se creó inicialmente usando el asistente.
Debido a que se tiene que ejecutar en diferentes equipos con diferentes monitores, necesito que el control tabla se adapte al tamaño del formulario al abrirlo.
Es decir, de la misma forma que se maximiza la ventana del formulario, necesito que se maximice el control al área interior del formulario.
He conseguido algo con setPosSize pero al mover el ratón sobre el formulario, se deshace el cambio y vuelve a su tamaño anterior.
Como puedo hacer que se mantenga el nuevo tamaño?

Código: Seleccionar todo

Public Sub AbrirFormLista(Event As Object)
On Error GoTo Err_AbrirFormLista
   Dim NomForm as String
	Dim FormLista As Object, FormDoc as Object
  	
   NomForm = mid(Event.Source.Model.Name,4)  	' tomo el nombre del formulario desde el nombre del botón que lo llama
	FormDoc =ThisDatabaseDocument.FormDocuments.GetByName(NomForm)
	FormDoc.Close
	FormDoc.Open
	FormDoc.Component.Title = NomForm
	
	FormLista = FormDoc.Component.Drawpage.Forms.getByIndex(0)	
	Wait EsperaCargaForm		' 100 ms
  	
   FormLista.Last
 	FormLista.First                          'this along with .Last above leaves the total number of records in nav bar
 	Wait EsperaCargaForm		' 100 ms
	
	Call OcultarBarras(True, "N")      ' maximiza el form y solo deja la barra de navegación que incluye botones personalizados
 	Wait EsperaCargaForm		' 100 ms
 	
' Ajuste de tamaño
	Dim Fld as Object, Ctl as Object		
	Dim Ventana As Object, RectVentana As New com.sun.star.awt.Rectangle
	Dim RectCtl As New com.sun.star.awt.Rectangle

	Ventana = FormDoc.Component.CurrentController.ComponentWindow
	RectVentana = Ventana.getPosSize   

	Fld = FormLista.getByName("Lista")              '   "Lista" es el nombre del control tabla
	Ctl = FormDoc.Component.getCurrentController().getControl(Fld)
	RectCtl = Ctl.getPosSize()
	
	Ctl.setPosSize( RectCtl.X, RectCtl.Y, RectVentana.Width, RectVentana.Height, com.sun.star.awt.PosSize.SIZE )

Exit_AbrirFormLista:
    Exit Sub

Err_AbrirFormLista:
    MsgBox Err & " - " & LimpiarMensaje(Error)
    Resume Exit_AbrirFormLista
End Sub
Gracias.
libreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Responder