Pannello di Controllo Moderatore ]

(risolto)macro per aprire formulario chiudendo il precedente

Discussioni sulle caratteristiche di database

(risolto)macro per aprire formulario chiudendo il precedente

Messaggioda il fendente » mercoledì 14 dicembre 2011, 10:50

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
il fendente
 
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

Re: macro per aprire formulario chiudendo il precedente

Messaggioda bydindi » mercoledì 14 dicembre 2011, 14:08

Ciao, nell' altro topic dove anche tu sei intervenuto:
viewtopic.php?f=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 3.3.0 su Windows Vista
Avatar utente
bydindi
 
Messaggi: 205
Iscritto il: lunedì 21 febbraio 2011, 10:16

Re: macro per aprire formulario chiudendo il precedente

Messaggioda il fendente » mercoledì 14 dicembre 2011, 14:35

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

Messaggioda il fendente » mercoledì 14 dicembre 2011, 15:44

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
il fendente
 
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

Re: macro per aprire formulario chiudendo il precedente

Messaggioda laquila » martedì 20 dicembre 2011, 8:36

x il fendente:
anch'io ho usato la tua macro per l'apertura del formulario,
in quale riga inserisci la stringa
Codice: Seleziona tutto   Espandi visualeStringi visuale
ThisComponent.CurrentController.Frame.close(True)

nella tua macro per chiudere l'altra?
grazie!
openoffice.org 3.3.0 su win7 professional (32bit)
laquila
 
Messaggi: 8
Iscritto il: martedì 13 dicembre 2011, 9:04

Re: macro per aprire formulario chiudendo il precedente

Messaggioda il fendente » martedì 20 dicembre 2011, 12:02

ecco la macro completa:

Codice: Seleziona tutto   Espandi visualeStringi visuale
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
il fendente
 
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

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

Messaggioda laquila » martedì 20 dicembre 2011, 13:36

inserendo la stringa
Codice: Seleziona tutto   Espandi visualeStringi visuale
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   Espandi visualeStringi visuale
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)
laquila
 
Messaggi: 8
Iscritto il: martedì 13 dicembre 2011, 9:04

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

Messaggioda il fendente » giovedì 22 dicembre 2011, 11:32

scusami ho scritto penultima riga perché consideravo anche la riga "end sub"
l'ordine corretto è questo:
Codice: Seleziona tutto   Espandi visualeStringi visuale
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
il fendente
 
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

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

Messaggioda laquila » venerdì 23 dicembre 2011, 8:54

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)
laquila
 
Messaggi: 8
Iscritto il: martedì 13 dicembre 2011, 9:04

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

Messaggioda vladko » venerdì 23 dicembre 2011, 10:19

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 :-)
vladko
 
Messaggi: 1575
Iscritto il: martedì 3 agosto 2010, 7:02

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

Messaggioda il fendente » martedì 27 dicembre 2011, 12:25

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
il fendente
 
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

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

Messaggioda TMY » martedì 24 gennaio 2012, 7:14

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
TMY
 
Messaggi: 81
Iscritto il: giovedì 22 dicembre 2011, 7:41


Torna a Base

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite