[RISOLTO]Apertura formulario in automatico
-
- Messaggi: 5
- Iscritto il: martedì 29 marzo 2011, 11:48
[RISOLTO]Apertura formulario in automatico
Come faccio ad impostare che all'apertura del db si apra in automatico un formulario?
Inoltre volevo creare degli utenti alcuni in sola lettura e altri in lettura e scrittura, oltre alla ad un amministratore. Come faccio? ho provato da strumenti > amministrazione degli utenti, ma la selezione è disabilitata..
Ciao
Inoltre volevo creare degli utenti alcuni in sola lettura e altri in lettura e scrittura, oltre alla ad un amministratore. Come faccio? ho provato da strumenti > amministrazione degli utenti, ma la selezione è disabilitata..
Ciao
Ultima modifica di fantacilli il sabato 9 aprile 2011, 7:48, modificato 1 volta in totale.
openoffice 3.2
Re: Apertura formulario in automatico
Primo metodo
Strumenti > Personalizza > Apri documento assegna Macro
di solito si assegna la macro Autoexec che trovi qui nel forum
Secondo metodo (che uso io)
creare un lanciatore sul desktop che apre il file e avvia la macro. Il lanciatore contiene il seguente comando:
In UBUNTU
oobase /home/docenti2/alterna/Alterna.odb macro:///Alterna.Module1.login1
dove Alterna.odb è il file oobase e login1 è la macro da avviare
In Windows il corrispondente è questo
"C:\Program Files\OpenOffice.org 3\program\soffice.exe" C:\Users\cri\Desktop\Riccardo\dbase\alterna\Alterna.odb macro:///alterna.Module1.login1
Riguardo alla gestione utenti credo ti convenga usare MYSQL come motore dbase perchè ti consente una personalizzazione molto fine degli utenti connessi. Se invece vuoi utilizzare solo oobase con HSQL credo sia necessario creare una macro di login che va ad aprire un menu formulario dedicato a ciascun utente. Questo menu richiamerà a sua volta i formulari nel quale abilitati i permessi e i controlli che desideri.
Naturalmente questa è una possibilità e probabilmente ce ne saranno molte altre.
Ciao
Strumenti > Personalizza > Apri documento assegna Macro
di solito si assegna la macro Autoexec che trovi qui nel forum
Secondo metodo (che uso io)
creare un lanciatore sul desktop che apre il file e avvia la macro. Il lanciatore contiene il seguente comando:
In UBUNTU
oobase /home/docenti2/alterna/Alterna.odb macro:///Alterna.Module1.login1
dove Alterna.odb è il file oobase e login1 è la macro da avviare
In Windows il corrispondente è questo
"C:\Program Files\OpenOffice.org 3\program\soffice.exe" C:\Users\cri\Desktop\Riccardo\dbase\alterna\Alterna.odb macro:///alterna.Module1.login1
Riguardo alla gestione utenti credo ti convenga usare MYSQL come motore dbase perchè ti consente una personalizzazione molto fine degli utenti connessi. Se invece vuoi utilizzare solo oobase con HSQL credo sia necessario creare una macro di login che va ad aprire un menu formulario dedicato a ciascun utente. Questo menu richiamerà a sua volta i formulari nel quale abilitati i permessi e i controlli che desideri.
Naturalmente questa è una possibilità e probabilmente ce ne saranno molte altre.
Ciao
Windows 10 - Apache OpenOffice 4.1.8
-
- Messaggi: 5
- Iscritto il: martedì 29 marzo 2011, 11:48
Re: Apertura formulario in automatico
scusa l'ignoranza, ma dove la trovo la macro autoexec?
openoffice 3.2
Re: Apertura formulario in automatico
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
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie
-
- Messaggi: 5
- Iscritto il: martedì 29 marzo 2011, 11:48
Re: Apertura formulario in automatico
Mi puoi postare la macro autoexec?r.vanoni ha scritto:Primo metodo
Strumenti > Personalizza > Apri documento assegna Macro
di solito si assegna la macro Autoexec che trovi qui nel forum
Secondo metodo (che uso io)
creare un lanciatore sul desktop che apre il file e avvia la macro. Il lanciatore contiene il seguente comando:
In UBUNTU
oobase /home/docenti2/alterna/Alterna.odb macro:///Alterna.Module1.login1
dove Alterna.odb è il file oobase e login1 è la macro da avviare
In Windows il corrispondente è questo
"C:\Program Files\OpenOffice.org 3\program\soffice.exe" C:\Users\cri\Desktop\Riccardo\dbase\alterna\Alterna.odb macro:///alterna.Module1.login1
Riguardo alla gestione utenti credo ti convenga usare MYSQL come motore dbase perchè ti consente una personalizzazione molto fine degli utenti connessi. Se invece vuoi utilizzare solo oobase con HSQL credo sia necessario creare una macro di login che va ad aprire un menu formulario dedicato a ciascun utente. Questo menu richiamerà a sua volta i formulari nel quale abilitati i permessi e i controlli che desideri.
Naturalmente questa è una possibilità e probabilmente ce ne saranno molte altre.
Ciao
openoffice 3.2
Re: Apertura formulario in automatico
Scusa ma è così fatica leggere il forum? Per stavolta ecco qua un esempio ma approfitto per chiarire che la macro autoexec è una semplice macro che devi creare tu e che potrebbe chiamarsi anche pippo o topolino. Rimane il fatto che sarà eseguita all'apertura del file .odb perché impostato da te (vedi sopra).
Scrivi RISOLTO se ok
Codice: Seleziona tutto
Sub AutoExec
On Error Goto HandleError
Dim LastFrame As Object
Dim NumFrames As Integer
Static FormDocs As Object
Dim DBDoc As Object
Dim ImpName As String
Dim DataSource As Object
Dim Conn As Object
Dim Args(1) As New com.sun.star.beans.PropertyValue
Dim FormName As String
Dim FormDoc As Object
FormName="MENU" REM CHANGE TO YOUR FORM NAME
ImpName="com.sun.star.comp.dba.ODatabaseDocument"
NumFrames=StarDesktop.Frames.Count
LastFrame=StarDesktop.Frames.getByIndex(NumFrames-1)
If LastFrame.Frames.Count>1 Then
Exit Sub
End If
If Not (LastFrame.Controller.Model.ImplementationName=ImpName) Then
Exit Sub REM not a db doc
End If
DataSource=LastFrame.Controller.DataSource
DBDoc=DataSource.DatabaseDocument
FormDocs=DBDoc.FormDocuments
Conn=DataSource.getConnection("","") REM no user/password
Args(0).Name="ActiveConnection" : Args(0).Value=Conn
if FormDocs.hasByName(FormName) Then
FormDoc=FormDocs.loadComponentFromURL(FormName,"_self",2,Args() )
FormDoc.CurrentController.Frame.ContainerWindow.setFocus()
REM nasconde menu oooffice
oLMgr = FormDoc.CurrentController.Frame.LayoutManager
oLMgr.setVisible(False) 'nasconde strumenti
oLMgr.hideElement("private:resource/menubar/menubar") ' nasconde il menu
End If
HandleError:
If Err<>0 Then
Exit Sub
End If
REM nasconde finestra iniziale OOO
'oWin = starDesktop.getCurrentFrame.getContainerWindow()
' oWin.visible = false
End Sub
Windows 10 - Apache OpenOffice 4.1.8
-
- Messaggi: 5
- Iscritto il: martedì 29 marzo 2011, 11:48
Re: Apertura formulario in automatico
r.vanoni ha scritto:Scusa ma è così fatica leggere il forum? Per stavolta ecco qua un esempio ma approfitto per chiarire che la macro autoexec è una semplice macro che devi creare tu e che potrebbe chiamarsi anche pippo o topolino. Rimane il fatto che sarà eseguita all'apertura del file .odb perché impostato da te (vedi sopra).
Mitico...ho risolto!
openoffice 3.2
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: [RISOLTO]Apertura formulario in automatico
Ho utilizzato la macro Autoexec per aprire il menu del mio database.Funziona nel senso che all'apertura del documento mi apre il menu
PERO' se poi premo uno dei pulsanti per raggiungere un altro form mi restituisce questo errore
Faccio notare che se apro il form MENU manualmente,i pulsanti dei collegamenti ad altri form funzionano correttamente
Cosa può essere?
PERO' se poi premo uno dei pulsanti per raggiungere un altro form mi restituisce questo errore
Faccio notare che se apro il form MENU manualmente,i pulsanti dei collegamenti ad altri form funzionano correttamente
Cosa può essere?
OpenOffice.Org 3.2.1 su Windows XP
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: [RISOLTO]Apertura formulario in automatico
nessun suggerimento sul motivo per cui mi da questo errore?
E' strano perchè come ho detto aprendolo manualmente i collegamenti funzionano
E' strano perchè come ho detto aprendolo manualmente i collegamenti funzionano
OpenOffice.Org 3.2.1 su Windows XP
Re: [RISOLTO]Apertura formulario in automatico
ma il tuo database è registrato?
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
Re: [RISOLTO]Apertura formulario in automatico
Dato che il mio attuale problema in qualche modo è legato a questo inizio a postarlo qui...
Quello che vorrei ottenere è l'apertura di un formulario INGRANDITO in automatico.
Attualmente nella mia macro utilizzo questa funzione:
che fa il suo sporco lavoro tuttavia il formulario non viene aperto con la finestra ingradita..
Sapreste dirmi quale sia il parametro da impostare per ottenere l'effetto desiderato ?
Quello che vorrei ottenere è l'apertura di un formulario INGRANDITO in automatico.
Attualmente nella mia macro utilizzo questa funzione:
Codice: Seleziona tutto
sub subDisplayForm(sDatabaseName as string, sFormName as string)
dim mArgs(1) as new com.sun.star.beans.PropertyValue
oDatabase = fnGetOpenDatabase(sDatabaseName)
oConnection = oDatabase.DataSource.getConnection("","")
mArgs(0).name = "OpenMode"
mArgs(0).value = "open" '"openDesign" ' '"openForMail"
mArgs(1).name = "ActiveConnection"
mArgs(1).value = oConnection
oForm = oDatabase.getFormDocuments.getByName(sFormName)
oDatabase.getFormDocuments.loadComponentFromURL(sFormName, "_blank", 0, mArgs())
end sub
Sapreste dirmi quale sia il parametro da impostare per ottenere l'effetto desiderato ?
OpenOffice 3.3.0 su Windows 7 Professional 64bit
- giorgiofoga
- Messaggi: 116
- Iscritto il: venerdì 28 gennaio 2011, 11:39
Re: [RISOLTO]Apertura formulario in automatico
With oForm.getCurrentController().getFrame().getContainerWindow()
.setPosSize( 50, 50 , , , com.sun.star.awt.PosSize.POS) 'REM posizione dell'angolo in alto a sinistra
.setPosSize( , , 1400, 1046 , com.sun.star.awt.PosSize.SIZE ) 'REM dimensione in pixel della finestra (att.ne .... se vai fuori schermo non vedi più _[]X
End With
righe che mancavano anche nella mia macro fino a una settimana fa.....
.setPosSize( 50, 50 , , , com.sun.star.awt.PosSize.POS) 'REM posizione dell'angolo in alto a sinistra
.setPosSize( , , 1400, 1046 , com.sun.star.awt.PosSize.SIZE ) 'REM dimensione in pixel della finestra (att.ne .... se vai fuori schermo non vedi più _[]X
End With
righe che mancavano anche nella mia macro fino a una settimana fa.....
libreoffice 3.3.1 su ubuntu 10.10 64bit
openoffice 3.2.1 su ubuntu 10.10 32bit
openoffice 3.2.1 su ubuntu 10.10 32bit
Re: [RISOLTO]Apertura formulario in automatico
Ciao giorgiofoga,
intanto grazie per la risposta !
In linea teorica il codice che mi hai postato potrebbe andare bene (anche se sarebbe meglio il codice che corrisponde proprio alla pressione del tasto "ingrandisci" perchè non conosco nè risoluzione nè dimensione del monitor di chi utilizzerà il database e tra l'altro verrà sicuramente utilizzato con monitor diversi).
In ogni caso non riesco a farlo funzionare, mi viene restituito questo errore:
Errore di runtime basic.
Proprietà o metodo non trovati: getCurrentController.
Hai idea di cosa possa essere ?
PS
il form è dichiarato così:
Dim oForm as Object
intanto grazie per la risposta !
In linea teorica il codice che mi hai postato potrebbe andare bene (anche se sarebbe meglio il codice che corrisponde proprio alla pressione del tasto "ingrandisci" perchè non conosco nè risoluzione nè dimensione del monitor di chi utilizzerà il database e tra l'altro verrà sicuramente utilizzato con monitor diversi).
In ogni caso non riesco a farlo funzionare, mi viene restituito questo errore:
Errore di runtime basic.
Proprietà o metodo non trovati: getCurrentController.
Hai idea di cosa possa essere ?
PS
il form è dichiarato così:
Dim oForm as Object
OpenOffice 3.3.0 su Windows 7 Professional 64bit
Re: [RISOLTO]Apertura formulario in automatico
Ho rivisto un po' il codice prendendo spunto da qui:
http://de.openoffice.info/viewtopic.php?f=18&t=16028
Così facendo funziona correttamente.
Rispetto a prima cambia la modalità di apertura del database e i "property values".
(ATTENZIONE: il parametro sDatabaseName deve essere passato alla funzione senza l'estensione odb).
Rimane il quesito di poter aprire il form massimizzando la sua dimensione rispetto alla risoluzione del monitor in uso...ci sto sbattendo la testa ma non sono ancora arrivato a nulla..
edit (22/04/2011):
nel codice mancava la riga che provvede al posizionamento del punto in alto a sinistra del form, ho provveduto ad aggiungerla e commentarla
http://de.openoffice.info/viewtopic.php?f=18&t=16028
Codice: Seleziona tutto
Sub subDisplayForm2(sDatabaseName as string, sFormName as string)
Dim pProp(1) As New com.sun.star.beans.PropertyValue
Dim dbContext As Object
dbContext = createUnoService("com.sun.star.sdb.DatabaseContext")
oDataSource = dbContext.GetByName(sDatabaseName)
oForms = oDataSource.DatabaseDocument.FormDocuments
oAConnection = oDataSource.getConnection("","")
'impostazione properties
pProp(0).Name = "ActiveConnection"
pProp(0).Value = oAConnection
pProp(1).Name = "OpenMode"
pProp(1).Value = "open" ' OR: openDesign
'apertura form
oFormulario = oForms.loadComponentFromURL(sFormName,"_blank",0,pProp())
'impostazione dimensioni form
With oFormulario.getCurrentController().getFrame().getContainerWindow()
.setPosSize( 50, 50 , , , com.sun.star.awt.PosSize.POS) 'posizione dell'angolo in alto a sinistra
.setPosSize( .PosSize.x, .PosSize.y , 800, 600 , com.sun.star.awt.PosSize.SIZE ) 'dimensione in pixel della finestra
End With
End Sub
Rispetto a prima cambia la modalità di apertura del database e i "property values".
(ATTENZIONE: il parametro sDatabaseName deve essere passato alla funzione senza l'estensione odb).
Rimane il quesito di poter aprire il form massimizzando la sua dimensione rispetto alla risoluzione del monitor in uso...ci sto sbattendo la testa ma non sono ancora arrivato a nulla..
edit (22/04/2011):
nel codice mancava la riga che provvede al posizionamento del punto in alto a sinistra del form, ho provveduto ad aggiungerla e commentarla
OpenOffice 3.3.0 su Windows 7 Professional 64bit
- giorgiofoga
- Messaggi: 116
- Iscritto il: venerdì 28 gennaio 2011, 11:39
Re: [RISOLTO]Apertura formulario in automatico
bhe direi tante cose ::: ma ne dico una sola invece...
una volta ho visto usare la prprietà IsMaximise ...... ma chiissà dove non lo ricordo più infatti non l'ho mai usata.
una volta ho visto usare la prprietà IsMaximise ...... ma chiissà dove non lo ricordo più infatti non l'ho mai usata.
libreoffice 3.3.1 su ubuntu 10.10 64bit
openoffice 3.2.1 su ubuntu 10.10 32bit
openoffice 3.2.1 su ubuntu 10.10 32bit
Re: [RISOLTO]Apertura formulario in automatico
ora scrivo ma non posso provare anche....
anche in altro messaggio scritto che trucco è tutto schermo che su macro si scrive
già uso con linux e funziona perfetto ma
qui trovato qualcuno che si lamenta
http://user.services.openoffice.org/es/ ... een#p18248
e qui altra soluzione
http://user.services.openoffice.org/es/ ... een#p18560
spero che vada bene anche per te o che metti tua soluzione grazie
anche in altro messaggio scritto che trucco è tutto schermo che su macro si scrive
Codice: Seleziona tutto
uno:FullScreen
qui trovato qualcuno che si lamenta
http://user.services.openoffice.org/es/ ... een#p18248
e qui altra soluzione
http://user.services.openoffice.org/es/ ... een#p18560
spero che vada bene anche per te o che metti tua soluzione grazie
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
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie
Re: Apertura formulario in automatico
Ciao vladko !
Ho provato le due possibilità indicate nel forum spagnolo.
Purtroppo però non riesco a far funzionare neanche queste ..
In corrispondenza di questa riga di codice:
oFrame=Event.Source.Parent.Parent.CurrentController.Frame
Mi viene visualizzato il seguente errore runtime:
Variabile dell'oggetto non impostata.
Possibile che sia così complicato aprire un form massimizzato ?!
Ho provato le due possibilità indicate nel forum spagnolo.
Purtroppo però non riesco a far funzionare neanche queste ..
In corrispondenza di questa riga di codice:
oFrame=Event.Source.Parent.Parent.CurrentController.Frame
Mi viene visualizzato il seguente errore runtime:
Variabile dell'oggetto non impostata.
Possibile che sia così complicato aprire un form massimizzato ?!
OpenOffice 3.3.0 su Windows 7 Professional 64bit
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: [RISOLTO]Apertura formulario in automatico
scusa il ritardo,non ho avuto accesso a Internet per un pò di giornicodicem ha scritto:ma il tuo database è registrato?
si il databaase è registrato
OpenOffice.Org 3.2.1 su Windows XP
Re: [RISOLTO]Apertura formulario in automatico
Prova a usare questa macro per l'apertura dei forms:marcelotero ha scritto: scusa il ritardo,non ho avuto accesso a Internet per un pò di giorni
si il databaase è registrato
Codice: Seleziona tutto
Sub ApriForm
Dim InteractionHandler As Object
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
ThisDatabaseDocument.CurrentController.connect("","")
ThisDatabaseDocument.FormDocuments.getByName ( "NometuoForm" ).open
End Sub
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
- giorgiofoga
- Messaggi: 116
- Iscritto il: venerdì 28 gennaio 2011, 11:39
Re: [RISOLTO]Apertura formulario in automatico
nessuno ha poi mai usato la proprietà .... IsMaximized ...?? evidentemente .... la dimensione dello schermo in pixel va bene uguale ..... peccato mi sarebbe piacuto saperne qualcosa in più.
libreoffice 3.3.1 su ubuntu 10.10 64bit
openoffice 3.2.1 su ubuntu 10.10 32bit
openoffice 3.2.1 su ubuntu 10.10 32bit
Re: [RISOLTO]Apertura formulario in automatico
Ciao giorgiofoga,giorgiofoga ha scritto:nessuno ha poi mai usato la proprietà .... IsMaximized ...?? evidentemente .... la dimensione dello schermo in pixel va bene uguale ..... peccato mi sarebbe piacuto saperne qualcosa in più.
no no la dimensione dello schermo in pixel a me non va affatto bene perchè ho a che fare con monitor e risoluzioni diverse...
La proprietà di cui parli (IsMaximized) non ho ben capito come usarla..ho fatto qualche prova senza ottenere un esito positivo.
Se riesci a darmi qualche dritta in più faccio volentieri altre prove
OpenOffice 3.3.0 su Windows 7 Professional 64bit
-
- Messaggi: 62
- Iscritto il: lunedì 21 febbraio 2011, 7:00
Re: [RISOLTO]Apertura formulario in automatico
in altri linguaggi (C) ci sono funzioni che rilevano la risoluzione dello schermo, poi con le proporzioni (quelle che abbiamo studiato alla scuola media) si scrive una funzione che modula opportunamente lunghezze e larghezze
ma in openoffice non ho trovato nulla
qualcuno ne sa qualcosa?
ovviamente poi tutto va gestito da macro/programma
ma in openoffice non ho trovato nulla
qualcuno ne sa qualcosa?
ovviamente poi tutto va gestito da macro/programma
open office 3.2.1
window 7
window 7