Macro per LibreOffice Base

Buon giorno a tutti,
sto creando un piccolo database per la gestione dei prelievi amatici.
Mi sono arrenato nelle macro.

Cioè: ho cercato in internet diverse soluzioni ma tutte mi si bloccano
da qualche parte.

Mi servirebbe una macro per aprire un formulario da pulsante in un
formulario
Nel "Formulario Prelievi" si trova il pulsante "Contatti" il quale, con
la giusta macro, dovrebbe aprire il "Formulario Contatti".

Una macro per aprire un rapporto da pulsante in un formulario
Nel "Formulario Prelievi" si trova il pulsante "Stampa i prelievi da
fare" il quale dovrebbe aprire il "Rapporto prelievi da fare".

Una macro per salvare e chiudere il data base Prelievi dal pulsante
"Esci" nel "Formulario Prelievi"

In allegato il file odb per le eventuali prove.

Buon fine settimana.

saluti

andrea

Prelievi1.odb (88.8 KB)

Salve, un amico, che non è nella lista mi ha risolto 2 problemi, mi
mancherebbe solo il pulsante Esci (Salva e chiudi db).
Di seguito vi invio copio le macro:

Buon giorno a tutti,
sto creando un piccolo database per la gestione dei prelievi amatici.
Mi sono arrenato nelle macro.

Cioè: ho cercato in internet diverse soluzioni ma tutte mi si bloccano
da qualche parte.

Mi servirebbe una macro per aprire un formulario da pulsante in un
formulario
Nel "Formulario Prelievi" si trova il pulsante "Contatti" il quale,
con la giusta macro, dovrebbe aprire il "Formulario Contatti".

Sub ApriContatti
Dim InteractionHandler As Object
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
ThisDatabaseDocument.CurrentController.connect("","")
ThisDatabaseDocument.FormDocuments.getByName ( "Formulario Contatti" ).open
End Sub

Una macro per aprire un rapporto da pulsante in un formulario
Nel "Formulario Prelievi" si trova il pulsante "Stampa i prelievi da
fare" il quale dovrebbe aprire il "Rapporto prelievi da fare".

REM attenzione funziona solo se la macro è chiamata da un pulsante
creato nel formulario

Sub ApriRapportoPrelieviDaFare
nometuoreport="Rappoto prelievi da fare"
ApriReportPernome(nometuoreport)
End Sub
'________________________________________________
Sub ApriReportPernome(nome)
pip = thisComponent.Parent.getReportDocuments
Dim ReportPropArgs(1) As New com.sun.star.beans.PropertyValue
ReportPropArgs(0).Name = "ActiveConnection"
ReportPropArgs(0).Value=thisComponent.Drawpage.Forms(0).ActiveConnection
ReportPropArgs(1).Name = "OpenMode"
ReportPropArgs(1).Value = "open"
penReport1 = pip.loadComponentFromURL(nome,"_blank",8,ReportPropArgs())
End Sub

attachment.htm (3.26 KB)

Nuovamente buon giorno,
ho trovato le macro adatte che ho inserito sotto:

REM ***** BASIC *****

REM Apre il Formulario Contatti

Sub ApriContatti

Dim InteractionHandler As Object

InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")

ThisDatabaseDocument.CurrentController.connect("","")

ThisDatabaseDocument.FormDocuments.getByName ( "Formulario Contatti" ).open

End Sub

REM apre il Rapporto prelievi da fare

REM attenzione funziona solo se la macro è chiamata da un pulsante
creato nel formulario

Sub ApriRapportoPrelieviDaFare

nometuoreport="Rappoto prelievi da fare"

ApriReportPernome(nometuoreport)

End Sub

'________________________________________________

Sub ApriReportPernome(nome)

pip = thisComponent.Parent.getReportDocuments

Dim ReportPropArgs(1) As New com.sun.star.beans.PropertyValue

ReportPropArgs(0).Name = "ActiveConnection"

ReportPropArgs(0).Value=thisComponent.Drawpage.Forms(0).ActiveConnection

ReportPropArgs(1).Name = "OpenMode"

ReportPropArgs(1).Value = "open"

penReport1 = pip.loadComponentFromURL(nome,"_blank",8,ReportPropArgs())

End Sub

REM Autoexec

Sub AutoExec

Dim InteractionHandler As Object

InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")

ThisDatabaseDocument.CurrentController.connect("","")

ThisDatabaseDocument.FormDocuments.getByName ( "MENU" ).open

End Sub

REM Chiude il database ed esce da LibreOffice

Sub Esci

Dim Control as Object

Control = ThisDatabaseDocument.CurrentController

ThisDatabaseDocument.FormDocuments.GetByName("MENU").Close( true )

ThisDatabaseDocument.close( true )

End Sub

REM Apre a tutto schermo

REM ISTRUZIONI Aprire in modalità struttura il formulario da aprire a
tutto schermo e

REM associare la seguente macro all'evento "Durante il caricamento"

Sub ATuttoSchermo(Event As Object)

Dim oFrame As Object

Dim oDispatchHelper

oFrame=Event.Source.Parent.Parent.CurrentController.Frame

oDispatchHelper=CreateUnoService("com.sun.star.frame.DispatchHelper")

oDispatchHelper.ExecuteDispatch(oFrame,".uno:FullScreen","",0,Array())

End Sub

Saluti

andrea

attachment.htm (6.22 KB)