[RESUELTO] Mover control Label en tiempo de ejecución

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

[RESUELTO] Mover control Label en tiempo de ejecución

Notapor Fdv » Mar Feb 16, 2016 5:03 pm

Hola!!
Estoy construyéndome otra base de datos, en OpenOffice Base, casi todo el trabajo está realizado en Macros.

Se trata de una herramienta para elaborar Planing de trabajo. Rellenas el trabajo que realizas, se almacena y ofrece unos cálculos.

A la hora se rellenar el planing de un usuario mensual no hay problema, este es el aspecto:

Imagen

La entrada de datos se realiza al clickar en controles label y rellenar un Dialogo que aparece.

El problema viene con el nuevo formulario que estoy realizando. Ahora quiero que me aparezca todo el planing mensual de todos los usuarios en el formulario, imaginar algo así:

Imagen

Yo quisiera que al hacer click en la barra de scroll, se movieran los controles Label. Pero no lo he conseguido, he probado:

Código: Seleccionar todo   Expandir vistaContraer vista
Sub Scroll(oEvent as object)
   dim oForm as object, oScroll as object
   oScroll=oEvent.source.model
   oForm=oScroll.parent
   
   dim mLabel as object, oLabel as object      
   dim x as long, y as long', width as long, height as long
   'y=oLabel.getPosSize.y
   
   dim contador as long

   for contador=1 to 7
      mLabel=oForm.getbyname("d"+cStr(contador))
      oLabel=ThisComponent.getCurrentController().GetControl(mLabel)
      y=oLabel.getPosSize.y
      
      oFigura=SeleccionaFigura("s"+cstr(contador),oForm)
      if oScroll.ScrollValue>contador then
         x=50
         Point.x=0
         else
         x=200+(50*(contador-oScroll.ScrollValue))
         Point.x=5200+(1500*(contador-oScroll.ScrollValue))
         endif
         
      oLabel.setVisible(False)
      oLabel.setPosSize(x,y,,,com.sun.star.awt.PosSize.POSSIZE)
      oLabel.setVisible(true)
      next


Y nada... tambien he probado con oLabel.PosSize.x , experimentado con oLabel.DesignMode=true y nada.... ¡ ME ESTOY VOLVIENDO LOCO!

Nota: El GridControl de los formulario no me sirve, por la forma en la que quiero mostrar los datos. Incluso el grid de los dialogos también me vendría corto, porque es mucha la información (estática en un lateral) que quiero mostrar en cada fila.

¿ Alguien sabe alguna forma de mover un control label en el formulario?
Adjuntos
mover controles.jpg
planing mensual.jpg
Última edición por Fdv el Lun Feb 29, 2016 9:30 am, editado 1 vez en total
OOo 3.3 Corriendo en Windows 7
En mi Espacio para OpenOffice Base tienes programas, recursos y vídeos que he ido creando... visítalo
Fdv
 
Mensajes: 126
Registrado: Lun Abr 05, 2010 6:19 pm

Re: Mover control Label en tiempo de ejecución

Notapor mauricio » Mar Feb 16, 2016 5:27 pm

No es común usar Label con eventos, reitero, solo no es común...

Si agregas un sencillo archivo donde se vea lo que tienes y como quieres que quede, podemos ayudarte mejor, así no partimos de cero...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6063
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Mover control Label en tiempo de ejecución

Notapor Fdv » Mar Feb 16, 2016 6:31 pm

Gracias por el interés!

bien, En el Zip podeis encontrar:

- Cuadrante.odb: es la base de datos que estoy creando. Simplemente es como curiosidad, por si queréis ver como he implementado el acceso a la Base de Datos mediante labels. Formulario: Cuadrante Individual.

- Prueba desplazamiento.odb: Es el problema que planteo (lo estoy realizando en este fichero aparte hasta que sepa como implementarlo).

En Prueba desplazamiento.odb veréis que el formulario tiene un control scroll, y al hacer click en él, se moverán los controles shapes de abajo (lunes martes miercoles...).

En realidad se deberían mover también los controles labels de arriba (lunes, martes, miercoles...).. pero... eso no consigo hacerlo :crazy: :D

Los controles shapes no me sirven para mi propósito, ya que no responden a eventos y se pueden editar con el formulario en ejecución (lo que queda feo :? ).

En realidad, estoy construyendo una especie de Grid, lo que pase que los controles grid no me sirven ya que yo quiero mostrar a la izquierda unos datos sobre usuario y contabilidad del mes, y a la derecha el cuadrante desplazable para navegar por todo el mes.

Los que inspeccionen Cuadrante.odb, verán raro como están dispuestos los días del mes.... pero es que en el régimen laboral que trata es así, semanas completas.

A ver si consigo ayuda.
Adjuntos
Pruebas.zip
(78.56 KiB) 88 veces
OOo 3.3 Corriendo en Windows 7
En mi Espacio para OpenOffice Base tienes programas, recursos y vídeos que he ido creando... visítalo
Fdv
 
Mensajes: 126
Registrado: Lun Abr 05, 2010 6:19 pm

Re: Mover control Label en tiempo de ejecución

Notapor Fdv » Mié Feb 17, 2016 10:56 am

Bueno... dándole vueltas al asunto lo he visto en otra perspectiva, y no voy a necesitar mover los labels :lol:

De todas formas sería interesante saber si se pueden mover o no en tiempo de ejecución.

El formulario, para hacer el efecto scroll, me voy a apoyar en matrices que contendrán el texto a mostrar y algún que otro dato. A movimiento de scroll se rellenarán los labels con los datos que correspondan de las matrices. Ya veréis el resultado cuando termine cuadrante.odb.

Es que he pensado, tal y como se mueven los shapes ... que cuando mueva muchos labels a la vez, se va a ver horrible ... osea, mala experiencia de usuario.

Un Saludo. No lo dejo como RESUELTO a la espera de que alguien averigüe como mover un control label en tiempo de ejecución.
OOo 3.3 Corriendo en Windows 7
En mi Espacio para OpenOffice Base tienes programas, recursos y vídeos que he ido creando... visítalo
Fdv
 
Mensajes: 126
Registrado: Lun Abr 05, 2010 6:19 pm

Re: Mover control Label en tiempo de ejecución

Notapor fornelasa » Mar Feb 23, 2016 9:57 pm

Solo como Ejemplo.

Saludos, Federico.
Adjuntos
Prueba desplazamiento.zip
Desplazar controles.
(11.51 KiB) 102 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 3250
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Mover control Label en tiempo de ejecución

Notapor Fdv » Lun Feb 29, 2016 9:29 am

Muchas Gracias!!!

:bravo: :bravo: :bravo: :bravo:

No había imaginado que se podría seleccionar, en lugar del control, la figura en la que se dibuja el control. Al final no era tan complicado, dejo aquí el extracto principal del código porque no lo he visto en ningún otro lugar y ... quizás :? ... Pueda servir a alguien más.

Código: Seleccionar todo   Expandir vistaContraer vista
Sub Scroll(oEvent as object)
   dim oForm as object, oScroll as object
   oScroll=oEvent.source.model
   oForm=oScroll.parent

        dim oFigura as object
        dim Point As New com.sun.star.awt.Point

      Point.y = 12000
   dim contador as long
   for contador=1 to 7
      oFigura=SeleccionaFigura("sh"+cstr(contador),oForm)
      if oScroll.ScrollValue>contador then
         Point.x=50
         else
         Point.x=5200+(1500*(contador-oScroll.ScrollValue))
         endif
          oFigura.Position = Point   
         next
End Sub

Function SeleccionaFigura(oName as string,oForm as object) as object
   dim oDP as object, cantidad as long,c as long, oItem as object
   oDP=oForm.parent.parent.DrawPage
   cantidad=oDP.count
   for c=0 to cantidad-1
       oItem = oDP.getByIndex(c)
         If oItem.Name = oName then
         SeleccionaFigura=oItem         
         exit for
         end If
      next   
end Function



Yo ahora estoy probando a hacer su cometido con matrices de datos... luego quizás mire que es lo más efectivo.

RESUELTO.
OOo 3.3 Corriendo en Windows 7
En mi Espacio para OpenOffice Base tienes programas, recursos y vídeos que he ido creando... visítalo
Fdv
 
Mensajes: 126
Registrado: Lun Abr 05, 2010 6:19 pm


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado