necesito definir macro para un formulario

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
elmesiasahora
Mensajes: 25
Registrado: Sab Jul 04, 2009 4:18 pm

necesito definir macro para un formulario

Mensaje por elmesiasahora »

Hola , estoy haciendo un formulario con openoffice y quiero saber como hago para validar las funciones del mismo con las macros...por ejemplo el formulario consta de casillas de desplazamitnos ; donde elijo :

vinos
gaseosas
botellas
lacteos

mas algo de texto estatico, lo que quiero hacer es que luego de completar todos los campos poder a travez de un boton guardar este formulario en una carpeta del c:\ en formato PDF.

CONSULTA : Lo ideal seria poder visualizar este "firmulario" por intranet en formato html pero lo guarde con esta extension el tema es que cuando lo abro aparecen todos los campos corridos y grandes..???????? me podran ayudar ????? muchas gracias!!!
Gaston

Editado por el moderador (RGB-es): he eliminado la dirección de e-mail ya que la gente que quiera contactarte puede utilizar las herramientas propias del foro (como mensajes privados o incluso un e-mail). Además, a menos que tengas un apetito insaciable por spam, no es buena idea poner la dirección de e-mail en un foro público como este... ;)

También he separado estos mensajes del tema original por tratarse de un(os) problema(s) diferente(s). Si no lo has hecho aún por favor lee la Guía de supervivencia
elmesiasahora
Mensajes: 25
Registrado: Sab Jul 04, 2009 4:18 pm

Re: necesito definir macro para un formulario

Mensaje por elmesiasahora »

Jose Manuel escribió:El formulario lo haces con base?
Hola Jose, por ahora no,
Hola , quiero darle las instruccion a un boton que te[img][img][/img]ngo en un formulario "GUARDAR" para que guarde el documento en una ruta del c:/...en un tutorial consegui este escript pero al ejecutarlo me lanza este error ???

ERROR DE SINTAXIS BASIC
NO SE PERMITE sub EN PROCEDIMEINTOS[/b]
-----------------------------------------------------------------------------------------

El tutorial dice :

Ahora, introduzca la Sub creaNuevoDocumento, alterando la variable sUrl para que conten­ga una vía de acceso completa a una plantilla de texto en su sistema, y ejecute la macro para ver el resultado.

Pero no se donde insertar la Sub creaNuevoDocumento?????????

gcias.

-------------------------------------------------
' Crea un nuevo documento a partir de una plantilla
' -------------------------------------------------
Sub creaNuevoDocumento
Dim oDesktop As Variant
Dim oDocumento As Object
Dim mPropArchivo(0) As New com.sun.star.beans.PropertyValue
Dim sUrl As String

' crea el objeto oDesktop
oDesktop = createUnoService("com.sun.star.frame.Desktop")
' define la URL del Archivo modelo, MODIFÍQUELO según su sistema
surl = "file:///D:/nad/openoffice/documentation.stw"
' define la propiedad AsTemplate como True (Verdadero)
mPropArchivo(0).Name = "AsTemplate"
mPropArchivo(0).Value = True
' crea el objeto oDocumento
oDocumento = oDesktop.loadComponentFromURL(sUrl,"_blank",0,mPropArchivo())
' INSERTAR CÓDIGO PARA SALVAR AQUÍ
End Sub

Editado por el moderador (RGB-es) para borrar la respuesta duplicada
elmesiasahora
Mensajes: 25
Registrado: Sab Jul 04, 2009 4:18 pm

Re: necesito definir macro para un formulario

Mensaje por elmesiasahora »

QuazzieEvil escribió:aca esta un ejemplo. en el archivo adjunto hay instructiones de como salvar los macros, y asignarlos a un evento.

Esto solo funciona si tienes un programa de coreo como MS Outlook, Thunderbird, oh algo por el estilo. O sea de correo POP3.
Function principal

Código: Seleccionar todo

Sub cmdExportSendForm_OnClick(Event As Object)
	Dim URL As String
	Dim FormDoc As Object
	Dim mTo As String
	Dim mSubject As String
	
	mTo="tu direccion de correo electronico"
	mSubject="tema"
	FormDoc=Event.Source.Model.Parent.Parent.Parent
	URL=convertToURL("C:\TempFormExport.pdf")
	exportBaseFormToPDF(FormDoc,URL)
	sendEmailMessage(mTo,mSubject,"",Array(URL) )
	Kill URL 'borrar archivo
End Sub
Esta funcion convierte el formulario de Base a PDF

Código: Seleccionar todo

Sub exportBaseFormToPDF(FormDoc As Object,SaveURL As String)
	Dim Args(0) As New com.sun.star.beans.PropertyValue
	
	Args(0).Name="FilterName" : Args(0).Value="writer_pdf_Export"
	FormDoc.storeToURL(SaveURL,Args)
End Sub
y final mente, la funcion que manda el coreo

Código: Seleccionar todo

Function sendEmailMessage(mTo As String,mSubject As String, mBody As String, Attachements As Object,Optional UI As Integer)  As Boolean
On Error Goto HandleError
   Dim MailClient As Object
   Dim MailAgent As Object
   Dim MailMessage As Object
   
   sendEmailMessage=False
   If IsMissing(UI) Then
      UI=com.sun.star.system.SimpleMailClientFlags.NO_USER_INTERFACE
   End If
    MailAgent=CreateUnoService("com.sun.star.system.SimpleSystemMail") 
    MailClient=MailAgent.querySimpleMailClient()
    MailMessage=MailClient.createSimpleMailMessage()
   
    MailMessage.setRecipient(mTo)
    MailMessage.setSubject(mSubject)
    MailMessage.setAttachement(Attachements)
    MailClient.sendSimpleMailMessage(MailMessage, UI)
   
    sendEmailMessage=True
   
HandleError:
   If err<>0 Then
      Exit Function
   End If     
End Function 
Base solo puede imprimir formularios simples. Si tienes [Grid/Table Controls], esos no impriment bien. otra forma seria de crear un archivo de texto, enves del PDF.

Si prefieres un arhivo de texto, de demuestro despues como cearlo.


Espero que no te haya confundido mas, ya que mi español technico deja mucho que decear.
-------------------------------------------------------------------------------------------
Hola...mi consulta es : Quiero seleccionar una macro de las tantas que trae cuando selecciono : MACROS DE OPENOFFICE.ORG despliega una lista enorme...ahora, aparte de que estan en ingles como se que funcion hacen ???
gcias,

Gaston
elmesiasahora
Mensajes: 25
Registrado: Sab Jul 04, 2009 4:18 pm

Re: necesito definir macro para un formulario

Mensaje por elmesiasahora »

QuazzieEvil escribió:aca esta un ejemplo. en el archivo adjunto hay instructiones de como salvar los macros, y asignarlos a un evento.

Esto solo funciona si tienes un programa de coreo como MS Outlook, Thunderbird, oh algo por el estilo. O sea de correo POP3.
Function principal

Código: Seleccionar todo

Sub cmdExportSendForm_OnClick(Event As Object)
	Dim URL As String
	Dim FormDoc As Object
	Dim mTo As String
	Dim mSubject As String
	
	mTo="tu direccion de correo electronico"
	mSubject="tema"
	FormDoc=Event.Source.Model.Parent.Parent.Parent
	URL=convertToURL("C:\TempFormExport.pdf")
	exportBaseFormToPDF(FormDoc,URL)
	sendEmailMessage(mTo,mSubject,"",Array(URL) )
	Kill URL 'borrar archivo
End Sub
Esta funcion convierte el formulario de Base a PDF

Código: Seleccionar todo

Sub exportBaseFormToPDF(FormDoc As Object,SaveURL As String)
	Dim Args(0) As New com.sun.star.beans.PropertyValue
	
	Args(0).Name="FilterName" : Args(0).Value="writer_pdf_Export"
	FormDoc.storeToURL(SaveURL,Args)
End Sub
y final mente, la funcion que manda el coreo

Código: Seleccionar todo

Function sendEmailMessage(mTo As String,mSubject As String, mBody As String, Attachements As Object,Optional UI As Integer)  As Boolean
On Error Goto HandleError
   Dim MailClient As Object
   Dim MailAgent As Object
   Dim MailMessage As Object
   
   sendEmailMessage=False
   If IsMissing(UI) Then
      UI=com.sun.star.system.SimpleMailClientFlags.NO_USER_INTERFACE
   End If
    MailAgent=CreateUnoService("com.sun.star.system.SimpleSystemMail") 
    MailClient=MailAgent.querySimpleMailClient()
    MailMessage=MailClient.createSimpleMailMessage()
   
    MailMessage.setRecipient(mTo)
    MailMessage.setSubject(mSubject)
    MailMessage.setAttachement(Attachements)
    MailClient.sendSimpleMailMessage(MailMessage, UI)
   
    sendEmailMessage=True
   
HandleError:
   If err<>0 Then
      Exit Function
   End If     
End Function 
Base solo puede imprimir formularios simples. Si tienes [Grid/Table Controls], esos no impriment bien. otra forma seria de crear un archivo de texto, enves del PDF.

Si prefieres un arhivo de texto, de demuestro despues como cearlo.


Espero que no te haya confundido mas, ya que mi español technico deja mucho que decear.
--------------------------------------------------------------------------------

Hola , sabes que utilize este escript y me sale el error :

ERROR EN SINTAXIS DE BASIC
NO SE PERMITE SUN EN UN PROCEDIMIENTO


gcias //Gaston
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: necesito definir macro para un formulario

Mensaje por mauricio »

Hola Gaston...
Hola a todos...

Estas haciendo preguntas sin ton ni son y en varios foros y varios hilos, usas hilos de otras preguntas y repites lo mismo una y otra vez, te recomiendo que comiences un nuevo hilo y por favor, se muy claro, muy muy claro, lo suficiente para que te podamos ayudar en lo que realmente necesitas o quieres.

Saludos a todos...

Mauricio
______________________________________________
"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
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: necesito definir macro para un formulario

Mensaje por RGB-es »

Gastón, he separado estas preguntas del tema original. Como dice Valedor74, por favor trata de expresarte con la mayor claridad posible. Ya te lo he señalado varias veces, pero aquí va una más: Si no lo has hecho aún por favor lee la Guía de supervivencia
No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas

LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
elmesiasahora
Mensajes: 25
Registrado: Sab Jul 04, 2009 4:18 pm

Re: necesito definir macro para un formulario

Mensaje por elmesiasahora »

Buenas tardes, perdon a todos por la desprolijidad, intento crear la macro que se ejemplifica mas arriba y me arroja el siguiente error en la linea :

El argumento no es opcional ..........FormDoc=Event.Source.Model.Parent.Parent.Parent



Sub cmdExportSendForm_OnClick(Event As Object)
Dim URL As String
Dim FormDoc As Object
Dim mTo As String
Dim mSubject As String

mTo="elmesiasahora@yahoo.com.ar"
mSubject="tema"
FormDoc=Event.Source.Model.Parent.Parent.Parent
URL=convertToURL("C:\TempFormExport.pdf")
exportBaseFormToPDF(FormDoc,URL)
sendEmailMessage(mTo,mSubject,"",Array(URL) )
Kill URL 'borrar archivo
End Sub
Sub exportBaseFormToPDF(FormDoc As Object,SaveURL As String)
Dim Args(0) As New com.sun.star.beans.PropertyValue

Args(0).Name="FilterName" : Args(0).Value="writer_pdf_Export"
FormDoc.storeToURL(SaveURL,Args)
End Sub
Function sendEmailMessage(mTo As String,mSubject As String, mBody As String, Attachements As Object,Optional UI As Integer) As Boolean
On Error Goto HandleError
Dim MailClient As Object
Dim MailAgent As Object
Dim MailMessage As Object

sendEmailMessage=False
If IsMissing(UI) Then
UI=com.sun.star.system.SimpleMailClientFlags.NO_USER_INTERFACE
End If
MailAgent=CreateUnoService("com.sun.star.system.SimpleSystemMail")
MailClient=MailAgent.querySimpleMailClient()
MailMessage=MailClient.createSimpleMailMessage()

MailMessage.setRecipient(mTo)
MailMessage.setSubject(mSubject)
MailMessage.setAttachement(Attachements)
MailClient.sendSimpleMailMessage(MailMessage, UI)

sendEmailMessage=True

HandleError:
If err<>0 Then
Exit Function
End If
End Function
Responder