Ciao, ho utilizzato la seguente Macro per poter aprire un rapporto con tasto in un formulario:
Sub Main
nometuoreport="articoliProva"
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
dove al posto di nometuoreport va inserito il nome del rapporto, ma la riga
pip = thisComponent.Parent.getReportDocuments
mi da il seguente errore :
Proprietà o metodo non trovati: Parent
Qualcuno sa come rimediare?
Grazie
Ciao
[Risolto] Aprire Rapporti da Formulari
-
- Messaggi: 4
- Iscritto il: giovedì 25 novembre 2010, 18:10
[Risolto] Aprire Rapporti da Formulari
Ultima modifica di cecchinotto il giovedì 9 dicembre 2010, 10:14, modificato 1 volta in totale.
Re: Aprire Rapporti da Formulari
Io ho inserito questa macro per richiamare il Rapporto da un Formulario. Ho notato che se la macro è attivata da un pulsante creato sul formulario funziona benissimo mentre se la chiami da Strumenti>Macro>Esegui macro etc.. non funziona evidenziando il messaggio di errore Proprietà o metodo non trovati:Parent. Come dice Martello che cito: "Io ho fatto le prove lanciandola direttamente dal documento .odb. Lanciandola da un formulario thisComponent potrebbe non essere riferita al documento .odb ma al documento formulario stesso e quindi potrebbe non andare."
Se il tuo problema è risolto aggiungi Risolto! al titolo.
Ciao Riccardo
Se il tuo problema è risolto aggiungi Risolto! al titolo.
Ciao Riccardo
Codice: Seleziona tutto
REM istruzioni per aprire un rapporto presente nel file.odb DA PULSANTE PRESENTE NEL FORMULARIO
REM attenzione funziona solo se la macro è chiamata da un pulsante creato nel formulario
Sub Apri_rapporto
nometuoreport="metti_il _nome_del_rapporto"
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
Windows 10 - Apache OpenOffice 4.1.8
Re: Aprire Rapporti da Formulari
In alternativa ho trovato anche questa macro che funziona sempre se attivata da un pulsante sul formulario:
Ringrazio Augusto Scatolini e il suo progetto biblioteca dal quale ho copiato questo codice
indirizzo web http://www.comunecampagnano.it/gnu/bibl ... /index.htm
Ciao e buon lavoro
Ringrazio Augusto Scatolini e il suo progetto biblioteca dal quale ho copiato questo codice
indirizzo web http://www.comunecampagnano.it/gnu/bibl ... /index.htm
Codice: Seleziona tutto
REM procedura alternativa----------------------------------------------------------------------
sub nome_macro( oEv as variant )
OpenReport( getReportsTC, getConnectionTC, "nome_tuo_rapporto" )
end sub
function getConnectionTC() as variant
getConnectionTC = thisComponent.Drawpage.Forms(0).ActiveConnection
end function
function OpenReport( reportContainer as variant, oConnection as variant, sReportName as string) as variant
Dim aProp(1) As New com.sun.star.beans.PropertyValue
aProp(0).Name = "ActiveConnection"
aProp(0).Value = oConnection
aProp(1).Name = "OpenMode"
aProp(1).Value = "open"
OpenReport=reportContainer.loadComponentFromURL(sReportName,"_blank",0,aProp())
end function
function getReportsTC() as variant
getReportsTC = thisComponent.Parent.getReportDocuments
end function
REM ----------------------------------------------------------------------------------------------
Windows 10 - Apache OpenOffice 4.1.8
-
- Messaggi: 4
- Iscritto il: giovedì 25 novembre 2010, 18:10
Re: Aprire Rapporti da Formulari
Grazie mille, ho risolto con il secondo metodo che hai consigliato. Il primo mi da errore nell'ultima riga
penReport1 = pip.loadComponentFromURL(nome,"_blank",8,ReportPropArgs())
Grazie Ancora
Ciao
edit:
questa macro non funziona se si vogliono aprire più report, almeno io non ci sono ruscito, sono arrivato a modificare le variabili ma mi compaiono altri errori
in alternativa c'è questa
sub rep_case
ThisDatabaseDocument.reportDocuments.getbyname("case").open
end sub
penReport1 = pip.loadComponentFromURL(nome,"_blank",8,ReportPropArgs())
Grazie Ancora
Ciao
edit:
questa macro non funziona se si vogliono aprire più report, almeno io non ci sono ruscito, sono arrivato a modificare le variabili ma mi compaiono altri errori
in alternativa c'è questa
sub rep_case
ThisDatabaseDocument.reportDocuments.getbyname("case").open
end sub
Openoffice 3.2.1 su Debian