Pagina 1 di 1
(risolto)macro per aprire formulario chiudendo il precedente
Inviato: mercoledì 14 dicembre 2011, 10:50
da il fendente
Buongiorno a tutti, non sono un esperto di database ma cercherò ugualmente di farmi capire.
Il database su cui sto lavorando ha un formulario in cui è presente un pulsante che, se cliccato, apre un altro formulario grazie ad una macro collegata al pulsante (e fin qui ok).
Ecco la macro in questione:
- Sub OpenForm( oEvent as variant, aFormName as string) as variant
Dim args(1) As New com.sun.star.beans.PropertyValue
Dim container as variant
container = oEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments
args(0).Name = "ActiveConnection"
args(0).Value = oEvent.Source.Model.Parent.ActiveConnection
args(1).Name = "OpenMode"
args(1).Value = "open"
container.loadComponentFromURL(aFormName,"_blank",0,args())
End Sub
Sub onClickOpenInserisci ( oEvent as variant )
OpenForm(oEvent, "Inserisci nuovo utente")
End sub
Il problema è che il nuovo formulario si apre in un'altra finestra sovrapposta alla precedente mentre, per comodità, preferirei che l'utente lavorasse su un'unica finestra.
Mi servirebbe quindi una macro che mi apra il formulario chiudendo contemporaneamente il precedente (o qualcosa di simile).
Grazie
Re: macro per aprire formulario chiudendo il precedente
Inviato: mercoledì 14 dicembre 2011, 14:08
da bydindi
Ciao, nell' altro topic dove anche tu sei intervenuto:
http://user.services.openoffice.org/it/ ... =13&t=2370
Ho inserito la macro che utilizzo io, noterai che c'è una riga che è questa:
ThisComponent.CurrentController.Frame.close(True)
che esegue cio che tu chiedi
Re: macro per aprire formulario chiudendo il precedente
Inviato: mercoledì 14 dicembre 2011, 14:35
da il fendente
ciao ho inserito la macro che hai postato nell'altra discussione ma mi esce una finestra d'errore
"errore di runtime BASIC. variabile dell'oggetto non impostata"
e mi evidenzia questa riga
oConnection = oDatabase.DataSource.getConnection("","")
Re: macro per aprire formulario chiudendo il precedente
Inviato: mercoledì 14 dicembre 2011, 15:44
da il fendente
contro ordine!!
mi è bastato inserire quella tua stringa di testo nella mia macro e ora funziona perfettamente
grazie mille
Re: macro per aprire formulario chiudendo il precedente
Inviato: martedì 20 dicembre 2011, 8:36
da laquila
x il fendente:
anch'io ho usato la tua macro per l'apertura del formulario,
in quale riga inserisci la stringa
nella tua macro per chiudere l'altra?
grazie!
Re: macro per aprire formulario chiudendo il precedente
Inviato: martedì 20 dicembre 2011, 12:02
da il fendente
ecco la macro completa:
Codice: Seleziona tutto
Sub OpenForm( oEvent as variant, aFormName as string) as variant
Dim args(1) As New com.sun.star.beans.PropertyValue
Dim container as variant
container = oEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments
args(0).Name = "ActiveConnection"
args(0).Value = oEvent.Source.Model.Parent.ActiveConnection
args(1).Name = "OpenMode"
args(1).Value = "open"
container.loadComponentFromURL(aFormName,"_blank",0,args())
End Sub
Sub onClickOpenInserisci ( oEvent as variant )
OpenForm(oEvent, "Inserisci nuovo contatto")
ThisComponent.CurrentController.Frame.close(True)
End sub
come puoi vedere l'ho inserita alla penultima riga
Re: (risolto)macro per aprire formulario chiudendo il preced
Inviato: martedì 20 dicembre 2011, 13:36
da laquila
inserendo la stringa
nella penultima riga ho che il secondo formulario (DATI POZZO) si apre e subito si richiude. Invece vorrei che si chiudesse il primo formulario (ARCHIVIO POZZI) e restasse aperto solo il secondo (DATI POZZO). Qualche suggerimento?grazie!
ecco il codice completo
Codice: Seleziona tutto
REM ***** BASIC *****
Sub OpenForm( oEvent as variant, aFormName as string) as variant
Dim args(1) As New com.sun.star.beans.PropertyValue
Dim container as variant
container = oEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments
args(0).Name = "ActiveConnection"
args(0).Value = oEvent.Source.Model.Parent.ActiveConnection
args(1).Name = "OpenMode"
args(1).Value = "open"
container.loadComponentFromURL(aFormName,"_blank",0,args())
End Sub
Sub onClickOpenDatiPozzo ( oEvent as variant )
ThisComponent.CurrentController.Frame.close(True)
OpenForm(oEvent, "DATI POZZO")
End sub
Re: (risolto)macro per aprire formulario chiudendo il preced
Inviato: giovedì 22 dicembre 2011, 11:32
da il fendente
scusami ho scritto penultima riga perché consideravo anche la riga "end sub"
l'ordine corretto è questo:
Codice: Seleziona tutto
OpenForm(oEvent, "Inserisci nuovo contatto")
ThisComponent.CurrentController.Frame.close(True)
tu li hai invertiti
Re: (risolto)macro per aprire formulario chiudendo il preced
Inviato: venerdì 23 dicembre 2011, 8:54
da laquila
anche invertendoli succede la stessa cosa: si apre la seconda maschera e subito si richiude e la prima, invece, resta aperta :/
Re: (risolto)macro per aprire formulario chiudendo il preced
Inviato: venerdì 23 dicembre 2011, 10:19
da vladko
puoi mettere per intero tua macro o ancora meglio tuo file che non funziona come si deve
prima di mettere file sostituisci tuoi dati con dati falsi come Paperina Paperino etc
cosi è veramente difficile capire
Re: (risolto)macro per aprire formulario chiudendo il preced
Inviato: martedì 27 dicembre 2011, 12:25
da il fendente
quoto vladko, prova a postare il tuo database dopo averlo pulito dai dati sensibili.
Hai registrato il database? Forse è per questo che non ti funziona la macro.
Re: (risolto)macro per aprire formulario chiudendo il preced
Inviato: martedì 24 gennaio 2012, 7:14
da TMY
Ho usato la seguente macro:
Sub OpenForm( oEvent as variant, aFormName as string) as variant
Dim args(1) As New com.sun.star.beans.PropertyValue
Dim container as variant
container = oEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments
args(0).Name = "ActiveConnection"
args(0).Value = oEvent.Source.Model.Parent.ActiveConnection
args(1).Name = "OpenMode"
args(1).Value = "open"
container.loadComponentFromURL(aFormName,"_blank",0,args())
End Sub
Sub onClickOpenDatiPozzo ( oEvent as variant )
ThisComponent.CurrentController.Frame.close(True)
OpenForm(oEvent, "RicercaB")
End sub
ma ricevo il seguente messaggio: Wrong number of parameters
dove sbaglio???????