[RESUELTO] Cargar Valor de Variable desde otro archivo.

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

[RESUELTO] Cargar Valor de Variable desde otro archivo.

Mensaje por Chelo2 »

Hola amigos...

Desde un libro de Calc y a través de un diálogo, cargo datos de ese diálogo a diferentes campos de un archivo de Writer. Hasta allí me funcionar perfecto.

Dado que una vez que abrió el archivo Writer, sigo trabajando con macros que se encuentran en ese archivo, quisiera usar para las mismas un valor de una variable que usaba en el primero de los archivos (el Calc.).

Para explicarlo mejor, en el primer libro de Calc tengo cargado en una variable el usuario que entró y se validó, y me gustaría que cuando paso al 2do archivo (al de Writer) poder seguir usando esa variable cargada con el nombre del usuario.

Deduzco que así como puedo cargar los campos de la nota Writer, debería poder también cargar una variable declarada en ese archivo Writer con el valor de la variable que tenía en el archivo Calc que guardaba el dato del usuario. Y aquí viene el problema y es que no se me ocurre como realizarlo. Cómo, una vez que abrí el archivo, decirle que "Usuario2" (el de Writer) = a Usuario1 (el de Calc).

Un último recurso que me quedaría, sería cargar el valor de la variable a un campo oculto de la nota y luego desde allí cargar la variable de de ese archivo, pero me parece algo rudimentaria la solución. Calculo que debe poderse hacer de otra manera.

Si alguien puede darme alguna pista se lo agradeceré muchísimo.

Un saludo desde Buenos Aires, Argentina.

Chelo2
Última edición por Chelo2 el Mié Abr 20, 2016 2:15 pm, editado 1 vez en total.
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Cargar Valor de Variable desde otro archivo.

Mensaje por mauricio »

Sin ver código es algo complicado ayudarles... pero... ¿una variable global?... para eso son...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Cargar Valor de Variable desde otro archivo.

Mensaje por Chelo2 »

Está declarada como variable global, pero al pasar al otro archivo, cuando verifico el valor de la misma mostrándolo a través de un MsgBox, no pasó. Está vacía.

Transcribo el código que utilizo en el botón para pasarlos datos del diálogo a los campos:

Código: Seleccionar todo

'###############################################################################################################
'      PASAJE DE DATOS A LA PLANTILLA DE NOTAS
'###############################################################################################################

Dim Libro_Plant_Notas as object


'ABRE LA PLANTILLA DE NOTAS TIPO
'===============================================================================================================
Sub Abre_Plant_Nota

'TOMA LA RUTA DE UNA CELDA CON NOMBRE DE RANGO	
	oDoc = ThisComponent
	oParam = oDoc.getSheets.getByName("Param")
	oDire = oParam.getCellRangeByName("B135")
	Ruta = oDire.getString
		
'VERIFICA SI EL ARCHIVO NO SE ENCUENTRA ABIERTO. sI ES ASÍ CANCELA EL PROCEDMIENTO	
	ocupado = False
	If DocumentoAbierto(Ruta) = True Then 
		ocupado = True
		Exit Sub
	End if
	
'SI NO ESTÁ ABIERTO, LO ABRE	
	Libro_Plant_Notas = AbrirArchivo (Ruta, "False", "", 3, "False") '(Ruta, Oculto, password, con Macro, SoloLectura)	
	'Libro.Close(True)
	
	Call Guarda_Datos_2
	
End Sub

'PASA LOS DATOS DEL DIÁLOGO A LOS CAMPOS DE LA NOTA TIPO
'=======================================================================================
Sub Guarda_Datos_2
	
		Carga "Sig_Area", xSg1.Text
		Carga "Sig_Num", xSg2.Text
		Carga "Sig_Anio", xSg3.Text
		Carga "Sig_Alc", xSg4.Text
		Carga "Nota", xNota.Text
		''If xNota = "" Then xNota = oDialogo.Model.TF_5.Text
		Carga "N_Anio", xAnio.Text
		Carga "Fecha", xFecha.Text
		Carga "Destino", xDest.Text
		Carga "Inic1", Ucase( xInic1.Text)
		Carga "Inic2", Ucase(xInic2.Text)
		Carga "Inic3", Ucase(xInic3.Text)

'SI EL ASUNTO NO SE IDENTIFICA CON UN CUIT Y NOMBRE		
		If xCheck2.State = 1 Then
			Carga "Asun_Dato_Adic", Ucase(xAsunto.Text)
		Else
			Carga "Asun_Dato_Adic", Ucase(xNombre.Text) & Chr(10) & "CUIT N° " & xCuit.Text & Chr(10) &  Ucase(xAsunto.Text)
			'Carga "Asun_Cuit", xCuit.Text
			'Carga "Asun_Dato_Adic", Ucase(xAsunto.Text)
		End if	
End Sub


'Carga en los Campos de la Nota los valores de los cuadros de Texto del Diálogo
'==========================================================================================
Sub Carga (cCampo as string, cCopia as string)
Dim Campo as object
	Campo = Libro_Plant_Notas.getTextFieldMasters.GetByName ("com.sun.star.text.FieldMaster.User." & cCampo)
	Campo.Content = cCopia	
End Sub

Gracias Mauricio...

Chelo2
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Cargar Valor de Variable desde otro archivo.

Mensaje por mauricio »

No veo la variable global... ¿cual es?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Cargar Valor de Variable desde otro archivo.

Mensaje por Chelo2 »

Perdón.. no la había copiado aquí, pero estaba en el primer módulo del conjunto de código. Estas son las variables que puedo llegar a usar en el archivo Writer que abro:

Código: Seleccionar todo

Global usuario As Variant
Global usu_largo As Variant
Global usu_corto As Variant
Global area As Variant
Muchas gracias.

Chelo2
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Cargar Valor de Variable desde otro archivo.

Mensaje por mauricio »

el código que muestras... ¿esta dentro de un archivo o dentro de Mis Macros en la aplicación?...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Cargar Valor de Variable desde otro archivo.

Mensaje por Chelo2 »

Todo el código, incluso las variables globales están en el archivo (No en Mis macros). de hecho esas variables globales las utilizo en diferentes módulos, para distintas tareas y funcionan perfectamente. Pero no se me ocurre como usarlas en el segundo libro o como cargar ese mismo valor las variables en el segundo archivo. ya sean con el mismo nombre o con otro si fuera necesario.

Muchas gracias,

Chelo2
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Cargar Valor de Variable desde otro archivo.

Mensaje por mauricio »

Hace mucho que no programo en Basic, pero la ultima vez, el manejo de variables globales no era muy fino... pero... el que las tengas dentro de los archivos, puede que sea el problema, es decir, puede que el "ambito" "normal" de una variable global "dentro" de un archivo, sea solo visible en los modulos de ese archivo. Si puedes probar a declarar solo una variable Global pero dentro de Mis Macros e intentar usarla, tal vez resuelva el problema.

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
PepeOooSevilla
Mensajes: 1480
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Cargar Valor de Variable desde otro archivo.

Mensaje por PepeOooSevilla »

Hola.
Si no funciona lo comentado por mauricio podrías intentar lo siguiente:
  • En CALC:
    - Guardar valor (o valores) de la variable (o variables) en archivo de texto o binario. Consultar en la Ayuda la instrucción OPEN.
  • En WRITER:
    - Comprobar que existe archivo de variable
    - Caso SI existe:
    .....- Leer valor guardado de la variable
    .....- Eliminar archivo de variable si procede
    - Caso NO existe:
    .....- Mostrar mensaje (o lo que proceda)
Saludos cordiales.
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Cargar Valor de Variable desde otro archivo.

Mensaje por Chelo2 »

Efectivamente, si cargo las variables globales en "Mis Macros" funciona perfectamente. Pero dado que se trata de un programa que he ido armando de a poco con muchas funcionalidades, cada vez que cambio algo, solo copio el archivo en las diferentes PC a través de la red interna. Lo otro de cargar la variable global en "Mis Macros" me complicaría un poco, ya que debería realizar la carga físicamente en cada PC de usuario.

Voy a estudiar un poco al alternativa propuesta por Pepe a ver si puedo comprenderla y aplicarla.

Muchas gracias a todos por su aporte.

Un saludo desde Buenos Aires, Argentina.

Chelo2
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO] Cargar Valor de Variable desde otro archivo.

Mensaje por mauricio »

Es mucho mejor si desarrollas una extensión, la misma puede apuntar a un repositorio en tu red interna y actualizarse con un click en cada terminal... si necesitas guía para ello, aquí estamos...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: [RESUELTO] Cargar Valor de Variable desde otro archivo.

Mensaje por Chelo2 »

Uyyy... me suena a chino mandarín ..jaja ..como me encantaría entender de que hablas!! .. jeje, pero te cuento que soy un simple empleado administrativo con "0" conocimientos de programación, pero me encanta crear cosas útiles para mis compañeros y para mí, de manera que me he transformado en un "miro-analizo-copio-pego-pruebo" y cuando a veces funciona me pongo felíz!! :lol: :lol: , y cuando no sale lo que espero simplemente no duermo... :lol: :lol: :lol:

Con respecto a las extensiones, me veo un poco limitado para su instalación porque me desempeño en una institución estatal con bastantes restricciones para instalar cosas, pero si tienes algún link con el tema que me sugieres te lo agradeceré, por lo menos para satisfacer mi curiosidad.

Muchísimas gracias Mauricio y a todos por el aporte y el incentivo para aprender más.

Un saludo desde Buenos Aires, Argentina.

Chelo2
OpenOffice 4.1.3 en Windows 7
Responder