(risolto)macro per aprire formulario chiudendo il precedente

Discussioni sulle caratteristiche di database
Rispondi
il fendente
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

(risolto)macro per aprire formulario chiudendo il precedente

Messaggio 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
Ultima modifica di il fendente il martedì 20 dicembre 2011, 12:04, modificato 1 volta in totale.
openoffice 3.3.0
OOO 330m20

Mac OS X 10.7.2
Avatar utente
bydindi
Volontario
Volontario
Messaggi: 258
Iscritto il: lunedì 21 febbraio 2011, 10:16

Re: macro per aprire formulario chiudendo il precedente

Messaggio 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
OOo 4.1.1 su Windows Vista
il fendente
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

Re: macro per aprire formulario chiudendo il precedente

Messaggio 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("","")
openoffice 3.3.0
OOO 330m20

Mac OS X 10.7.2
il fendente
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

Re: macro per aprire formulario chiudendo il precedente

Messaggio da il fendente »

contro ordine!!
mi è bastato inserire quella tua stringa di testo nella mia macro e ora funziona perfettamente
grazie mille
openoffice 3.3.0
OOO 330m20

Mac OS X 10.7.2
laquila
Messaggi: 8
Iscritto il: martedì 13 dicembre 2011, 9:04

Re: macro per aprire formulario chiudendo il precedente

Messaggio da laquila »

x il fendente:
anch'io ho usato la tua macro per l'apertura del formulario,
in quale riga inserisci la stringa

Codice: Seleziona tutto

ThisComponent.CurrentController.Frame.close(True)
nella tua macro per chiudere l'altra?
grazie!
openoffice.org 3.3.0 su win7 professional (32bit)
il fendente
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

Re: macro per aprire formulario chiudendo il precedente

Messaggio 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 ;-)
openoffice 3.3.0
OOO 330m20

Mac OS X 10.7.2
laquila
Messaggi: 8
Iscritto il: martedì 13 dicembre 2011, 9:04

Re: (risolto)macro per aprire formulario chiudendo il preced

Messaggio da laquila »

inserendo la stringa

Codice: Seleziona tutto

ThisComponent.CurrentController.Frame.close(True)
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
openoffice.org 3.3.0 su win7 professional (32bit)
il fendente
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

Re: (risolto)macro per aprire formulario chiudendo il preced

Messaggio 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
openoffice 3.3.0
OOO 330m20

Mac OS X 10.7.2
laquila
Messaggi: 8
Iscritto il: martedì 13 dicembre 2011, 9:04

Re: (risolto)macro per aprire formulario chiudendo il preced

Messaggio da laquila »

anche invertendoli succede la stessa cosa: si apre la seconda maschera e subito si richiude e la prima, invece, resta aperta :/
openoffice.org 3.3.0 su win7 professional (32bit)
vladko
Volontario
Volontario
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: (risolto)macro per aprire formulario chiudendo il preced

Messaggio 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
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
il fendente
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

Re: (risolto)macro per aprire formulario chiudendo il preced

Messaggio 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.
openoffice 3.3.0
OOO 330m20

Mac OS X 10.7.2
TMY
Messaggi: 81
Iscritto il: giovedì 22 dicembre 2011, 7:41

Re: (risolto)macro per aprire formulario chiudendo il preced

Messaggio 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???????
windows XP a casa
windows Vista in ufficio
opn office 3.3.0
Rispondi