[RESUELTO] organigrama con base de datos

Discute sobre la aplicación de hojas de cálculo

[RESUELTO] organigrama con base de datos

Notapor lucia » Mar Sep 28, 2010 4:16 pm

Preciso hacer un organigrama complejo que incluya nombre de los cargos. Este organigrama debe de estar conectado a una lista. Esperamos que cuando se modifiquen los nombres en la lista automaticamente cambien en el organigrama.
Última edición por lucia el Mié Oct 13, 2010 1:39 pm, editado 1 vez en total
OpenOffice.org 3.1.0
Windows XP
lucia
 
Mensajes: 3
Registrado: Mar Sep 28, 2010 3:51 pm

Re: organigrama con base de datos

Notapor Milor » Sab Oct 02, 2010 4:58 pm

Y que haces en el calc? Si necesitas un organigrama, podrías enseñar al menos un ejemplo de organigrama, para ver si te podemos ayudar (que yo no recuerdo ni lo que son).
LibreOffice 4.2.4.2 en Windows 7 y Ubuntu
El OLMO no da PERAS, usa los PROGRAMAS para lo que están DISEÑADOS
Te ofrecemos nuestro tiempo y ofreces tu tiempo, no lo desperdiciemos. Explicarse y Comprenderse es necesario.
Avatar de Usuario
Milor
 
Mensajes: 60
Registrado: Sab Ago 14, 2010 5:37 pm

Re: organigrama con base de datos

Notapor mriosv » Dom Oct 03, 2010 7:40 pm

Desde luego calc no es el programa para hacer organigramas, pero no es imposible.
El problema es que te puede dar algo de lata para conseguir el formato de estructura adecuado, lo puedes hacer si utiliza las celdas con los formatos de bordes adecuados, el problema son las flechas de enlace entre celdas, que aunque se pueden ajustar al tamaño vertical de la celda, no lo hacen respecto del tamaño horizontal.
En este caso para tener los valores en las celdas, utilizas los métodos habituales de calc.
Por ejemplo puedes insertar los valores desde una base de datos en otra hoja del mismo fichero.
Además deberías de actualizar la versión para poder insertar filas o columnas en celdas combinadas.
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice 5 (Win10x64)
mriosv
 
Mensajes: 2172
Registrado: Sab Dic 27, 2008 1:12 am
Ubicación: Galiza (España)

Re: organigrama con base de datos

Notapor mauricio » Dom Oct 03, 2010 11:11 pm

Hola...

Como ya te comento mi amigo Miguel, Calc no es la herramienta para hacer organigramas. Draw esta para eso, sobre todo los conectores que te permiten enlazar y jerarquizar los elementos, pero es interesante esta necesidad, veamos si te es útil lo siguiente:
1.- Crea un nuevo documento de Draw y agrega las formas necesarias así como los conectores...
2.- Con el botón secundario del ratón, del menú contextual seleccionas Nombre...
3.- Establece un nombre sencillo para identificar a este elemento...
captura_001.png

4.- Crea un nuevo documento de Calc, llamalo datos.ods y guardalo en el mismo directorio de tu archivo de Draw...
5.- Crea una lista con los nombres de los elementos que hayas escogido y el nombre respectivo, es importante que empieces en la celda A1 de la primer hoja, por ejemplo...
captura_003.png
captura_003.png (13.33 KiB) Visto 7944 veces

6.- Copia la siguiente macro al documento de Draw y ejecutala...
Código: Seleccionar todo   Expandir vistaContraer vista
Option Explicit

Sub ImportarDatos()
Dim oDoc As Object
Dim oPaginaDibujo As Object
Dim co1 As Long, co2 As Long
Dim sDatos As String
Dim sRuta As String
Dim oDatos As Object
Dim oCelda As Object
Dim oCursor As Object
Dim mDatos()

   'El nombre del archivo con los datos
   sDatos = "datos.ods"
   'Este documento
   oDoc = ThisComponent
   'La página de dibujo
   oPaginaDibujo = oDoc.getDrawPages.getByIndex(0)
   'Construimos la ruta para traer los datos
   sRuta = EsteDirectorio( oDoc ) & sDatos
   
   If Dir(sRuta) <> "" Then
      'Abrimos los datos
      oDatos = AbrirDatos( sRuta, True, "" )
      'La celda A1
      oCelda = oDatos.getSheets.getByIndex(0).getCellByPosition(0,0)
      'Un cursor para movernos
      oCursor = oCelda.getSpreadSheet.createCursorByRange( oCelda )
      'Expandimos a la región actual
      oCursor.collapseToCurrentRegion()
      'Traemos los datos
      mDatos = oCursor.getDataArray()
      'Iteramos entre todos los objetos gráficos de la hoja
      For co1 = 0 To oPaginaDibujo.getCount - 1
         For co2 = LBound(mDatos) To UBound(mDatos)
            'Verificamos si el nombre del elemento esta asignado
            If oPaginaDibujo.getByIndex(co1).getName = mDatos(co2)(0) Then
               'Si lo esta, establecemos el nombre
               oPaginaDibujo.getByIndex(co1).setString( mDatos(co2)(1) )
            End If
         Next co2
      Next co1
      'Cerramos los datos
      If Not CerrarDatos( oDatos ) Then
         MsgBox "Hubo un problema al cerrar los datos"
      End If
   Else
      Msgbox "No existe el archivo de datos"
   End If

End Sub


'Devuelve el directorio donde esta el documento pasado
Function EsteDirectorio( Documento ) As String
Dim sTmp As String
Dim mPartes()

   sTmp = Documento.getUrl
   mPartes = Split( sTmp, "/" )
   mPartes( UBound(mPartes) ) = ""
   sTmp = Join( mPartes(), "/" )
   EsteDirectorio = sTmp

End Function


'Abre un archivo guardado, asume que la ruta existe, se puede abrir oculto y con contraseña
Function AbrirDatos( Ruta As String, Oculto As Boolean, Contra As String ) As Object
Dim sRuta As String
Dim mOpc(1) As New "com.sun.star.beans.PropertyValue"

   mOpc(0).Name = "Hidden"
   mOpc(0).Value = Oculto
   mOpc(1).Name = "Password"
   mOpc(1).Value = Contra
      AbrirDatos = StarDesktop.loadComponentFromURL( Ruta, "_blank", 0, mOpc() )

End Function

'Cierra un archivo abierto
Function CerrarDatos( Datos ) As Boolean
   If Not IsNull( Datos ) Then
      Datos.Close(True)
      CerrarDatos = True
   End If
End Function

7.- Mira que bonito queda...
captura_004.png

Posibles mejoras:
Puedes usar una tercer columna para establecer el puesto (yo usaría el mismo nombre del elemento, tanto para identificarlo como para establecer el puesto), de modo que quede algo así:
captura_005.png
captura_005.png (3.23 KiB) Visto 7944 veces

Como Draw es un excelente manipulador de imágenes, con el organigrama resultante puedes hacer lo que quieras, por ejemplo, exportarlo al formato que quieras e insertarlo en donde quieras de cualquier otro documento de OOo.

Anexo archivos de trabajo.

Por favor, si esto responde tu pregunta, edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], de esta forma conseguiremos un foro más ordenado.

Saludos
Adjuntos
Organigrama.7z
(14.06 KiB) 231 veces
______________________________________________
"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: 5827
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: organigrama con base de datos

Notapor lucia » Mar Oct 12, 2010 6:17 pm

Impecable!!! Muchisimas gracias. Era justo lo que estabamos buscando.
Con respecto a la ultima opción que nos proponés, nos surge la duda sobre como implementar lo que muestra tu ultimo dibujo: que en el rectángulo aparezca Nombre y Cargo.
Gracias nuevamente, saludosss
OpenOffice.org 3.1.0
Windows XP
lucia
 
Mensajes: 3
Registrado: Mar Sep 28, 2010 3:51 pm

Re: organigrama con base de datos

Notapor mauricio » Mar Oct 12, 2010 8:52 pm

Hola...

Solo modifica la línea:
Código: Seleccionar todo   Expandir vistaContraer vista
   'Si lo esta, establecemos el nombre
   oPaginaDibujo.getByIndex(co1).setString( mDatos(co2)(1) & Chr(10) & mDatos(co2)(0) )

Para establecer estilos (color, fuente, tamaño, etc), hay que crear un cursor, el texto dentro de las autoformas tiene casi las mismas características de un documento de texto, casi toda la documentación al respecto te servirá..

Por favor, si esto responde tu pregunta, edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], de esta forma conseguiremos un foro más ordenado.

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: 5827
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: organigrama con base de datos

Notapor lucia » Mié Oct 13, 2010 1:38 pm

Sos un genio!!! muchas gracias
OpenOffice.org 3.1.0
Windows XP
lucia
 
Mensajes: 3
Registrado: Mar Sep 28, 2010 3:51 pm

Re: [RESUELTO] organigrama con base de datos

Notapor Maraya » Mié Dic 08, 2010 1:09 am

Hola Mauricio, le agradezco por su respuesta arriba posteada, es de gran ayuda.
Solo tengo una consulta, bajé el archivo de organigrama que está posteado pero
me solicita una contraseña para abrir el archivo, que contraseña hay que indicar?
Mil gracias por la pronta respuesta.
OpenOffice 3.1 en Windows Vista
Maraya
 
Mensajes: 1
Registrado: Mié Dic 08, 2010 12:29 am

Re: [RESUELTO] organigrama con base de datos

Notapor mauricio » Mié Dic 08, 2010 1:42 am

Hola...

Te doy mi palabra de que no le puse contraseña... pero te anexo el que tengo en mi historial que abre sin problemas...

Saludos
Adjuntos
Organigrama.7z
(14.09 KiB) 282 veces
______________________________________________
"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: 5827
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX


Volver a Calc

¿Quién está conectado?

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