[RESUELTO] Macro sencilla para implementar un setFocus()

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
fabirx
Mensajes: 2
Registrado: Mar Dic 05, 2017 6:04 pm

[RESUELTO] Macro sencilla para implementar un setFocus()

Mensaje por fabirx »

Saludos para toda la comunidad. Pues como está en el titulo, estoy trabajando en una pequeña aplicación usando OO Calc 4.1 para gestionar la información de unos pacientes. La idea es que haga lo siguiente.

* Al digitar los datos en cada TextField, cuando se pulse Enter, pase a la siguiente caja de texto. (Opcional)
* Cuando se pulse el botón Guardar, se pasen los datos a la Hoja2, guarde el archivo y automáticamente se enfoque en el TextField1 (la propiedad setFocus según entiendo).

En este paso es donde he tenido problemas: Al pulsar el botón, se crean los datos en Hoja2 y se limpian los TextField, pero no me deja aplicar el setFocus (No se encontró la propiedad).

Les agradezco su ayuda. Buen día para todos.
Adjuntos
Prueba App Archivo.ods
(12.64 KiB) Descargado 207 veces
Última edición por fabirx el Dom Dic 10, 2017 5:15 am, editado 1 vez en total.
OpenOffice 4.1 - Windows 7 Pro
Avatar de Usuario
gustavodiaz00
Mensajes: 64
Registrado: Mié Abr 26, 2017 1:29 am
Ubicación: Argentina, San Nicolás de los Arroyos

Re: Macro sencilla para implementar un setFocus()

Mensaje por gustavodiaz00 »

Hola fabirx para aplicar de setFocus u otras propiedades debes asignar el control a una variable objeto para poder acceder a ellas, por ejemplo

Código: Seleccionar todo

     Dim  ObjetoControl As Object
     ObjetoControl = Dlg.getControl("TextField1")
     ObjetoControl.Text = "Hola Mundo"                      'Accedemos a la propiedad texto
     ObjetoControl.setFocus( )                              'Recibe el foco
     ObjetoControl.setEnable( True )                        'False   Lo activamos o desactivamos
     ObjetoControl.addMouseListener(MouseClick)             'Agregamos las rutinas de control del mouse
     ObjetoControladdKeyListener(oKeyListener)              'Agregamos las rutinas de control de teclado
La declaración Dim ObjetoControl As Object puede ser evitada dado que funciona igual.

Espero que no me mal entiendas pero casi todas las dudas que se nos presentan ya fueron planteadas y resueltas no dejes de buscar que lo mas probable es que alles la solución.
El lenguaje es muy amplio y encontrarás que se pueden hacer muchas cosas muy buenas, no te desanimes, adelante.

aca te dejo el ejemplo con una pequeña modificación.
Prueba App Archivo.ods
(12.89 KiB) Descargado 260 veces
Saludos.
LibreOffice 6.1 en KDE Neon
fabirx
Mensajes: 2
Registrado: Mar Dic 05, 2017 6:04 pm

Re: Macro sencilla para implementar un setFocus()

Mensaje por fabirx »

Te agradezco la ayuda, realmente era lo que necesitaba. Adicionalmente encontré la forma de navegar a través de los TextField con la tecla Enter y ya la mini aplicación funciona como se requería.

Admito que no había encontrado un código sencillo, ya que todo lo que había encontrado era un código demasiado complejo que al modificarlo no funcionaba en lo absoluto. De nuevo muchas gracias a toda la comunidad. Saludos.
OpenOffice 4.1 - Windows 7 Pro
Responder