[RESUELTO] Macro sencilla para implementar un setFocus()

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Macro sencilla para implementar un setFocus()

Notapor fabirx » Mar Dic 05, 2017 6:22 pm

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) 54 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
fabirx
 
Mensajes: 2
Registrado: Mar Dic 05, 2017 6:04 pm

Re: Macro sencilla para implementar un setFocus()

Notapor gustavodiaz00 » Mié Dic 06, 2017 10:28 pm

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   Expandir vistaContraer vista
     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) 76 veces


Saludos.
LibreOffice 6.1 en KDE Neon
Avatar de Usuario
gustavodiaz00
 
Mensajes: 48
Registrado: Mié Abr 26, 2017 1:29 am
Ubicación: Argentina, San Nicolás de los Arroyos

Re: Macro sencilla para implementar un setFocus()

Notapor fabirx » Dom Dic 10, 2017 4:29 am

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
fabirx
 
Mensajes: 2
Registrado: Mar Dic 05, 2017 6:04 pm


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados