[Risolto] Macro Autoexec non funziona
- UTPiovene
- Messaggi: 232
- Iscritto il: giovedì 16 dicembre 2010, 11:24
- Località: Piovene Rocchette per 36 ore alla settimana
[Risolto] Macro Autoexec non funziona
Ho attinto a piene mani dalle varie macro per aprire formulari, report e quant'altro.
La macro per aprire in automatico il formulario al caricamento del documento (la ormai famosa autoexec) non fa il suo dovere e non c'è nessun messaggio di errore.
Ho provato a cambiare i dati di riferimento della macro, ma non cambia nulla. Il database si apre, ma non parte il formulario.
Dato per scontato che la macro non ha problemi, visto che è la stessa che usano anche altri utenti, qualcuno mi sa dire dove potrebbe essere l'inghippo?
La macro l'ho registrata all'interno del documento e l'ho collegata all'evento "Apri documento" nella maschera "Personalizza" del menu "Strumenti".
Il DB si trova su un server di rete.
Grazie
La macro per aprire in automatico il formulario al caricamento del documento (la ormai famosa autoexec) non fa il suo dovere e non c'è nessun messaggio di errore.
Ho provato a cambiare i dati di riferimento della macro, ma non cambia nulla. Il database si apre, ma non parte il formulario.
Dato per scontato che la macro non ha problemi, visto che è la stessa che usano anche altri utenti, qualcuno mi sa dire dove potrebbe essere l'inghippo?
La macro l'ho registrata all'interno del documento e l'ho collegata all'evento "Apri documento" nella maschera "Personalizza" del menu "Strumenti".
Il DB si trova su un server di rete.
Grazie
Ultima modifica di UTPiovene il venerdì 14 gennaio 2011, 15:16, modificato 1 volta in totale.
S.O. Windows 10
LibreOffice Versione: 5.4.5.1
LibreOffice Versione: 5.4.5.1
-
- Messaggi: 93
- Iscritto il: mercoledì 31 marzo 2010, 9:09
- UTPiovene
- Messaggi: 232
- Iscritto il: giovedì 16 dicembre 2010, 11:24
- Località: Piovene Rocchette per 36 ore alla settimana
Re: Macro Autoexec non funziona
si, è registrato.
per scrupolo sono andato a controllare e aveva registrato anche una versione 2 e 3 (che ho cancellato perchè non esistenti)
anzi, adesso lo cancello e poi lo registro nuovamente ... proviamo
per scrupolo sono andato a controllare e aveva registrato anche una versione 2 e 3 (che ho cancellato perchè non esistenti)
anzi, adesso lo cancello e poi lo registro nuovamente ... proviamo
S.O. Windows 10
LibreOffice Versione: 5.4.5.1
LibreOffice Versione: 5.4.5.1
-
- Messaggi: 93
- Iscritto il: mercoledì 31 marzo 2010, 9:09
Re: Macro Autoexec non funziona
Nel mio DB funziona questa
Frm_principale è il nome del form di avvio
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="Frm_Principale"
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()
End If
HandleError:
If Err<>0 Then
Exit Sub
End If
End Sub
LibreOffice 3.3.2
Ubuntu 10.10
Ubuntu 10.10
- UTPiovene
- Messaggi: 232
- Iscritto il: giovedì 16 dicembre 2010, 11:24
- Località: Piovene Rocchette per 36 ore alla settimana
Re: Macro Autoexec non funziona
Esattamente uguale alla mia, ovviamente non il nome del form.
Bisogna forse registrare in qualche modo la macro?
Fra l'altro non è l'unica macro che non funziona, anzi direi neanche una.
Ci deve essere qualcosa nelle impostazioni di Base che le blocca. Oppure nei documenti di Base perchè ieri mi sono portato a casa il documento per testarlo sul mio computer (Ubuntu 10.10 e OOo 3.2.1) e non funziona nemmeno lì.
Bisogna forse registrare in qualche modo la macro?
Fra l'altro non è l'unica macro che non funziona, anzi direi neanche una.
Ci deve essere qualcosa nelle impostazioni di Base che le blocca. Oppure nei documenti di Base perchè ieri mi sono portato a casa il documento per testarlo sul mio computer (Ubuntu 10.10 e OOo 3.2.1) e non funziona nemmeno lì.
S.O. Windows 10
LibreOffice Versione: 5.4.5.1
LibreOffice Versione: 5.4.5.1
-
- Messaggi: 93
- Iscritto il: mercoledì 31 marzo 2010, 9:09
Re: Macro Autoexec non funziona
la sicurezza delle macro deve essere impostata su Medio
prova a avviare la macro direttamente con un doppio click
magari riporta l'errore
prova a avviare la macro direttamente con un doppio click
magari riporta l'errore
LibreOffice 3.3.2
Ubuntu 10.10
Ubuntu 10.10
- UTPiovene
- Messaggi: 232
- Iscritto il: giovedì 16 dicembre 2010, 11:24
- Località: Piovene Rocchette per 36 ore alla settimana
Re: Macro Autoexec non funziona
Sono sempre più convinto che debba essere qualche impostazione del programma perchè ho caricato un DB di esempio di Xergio contenente delle macro e non girano ... comincia a girarmi qualcosaltro



S.O. Windows 10
LibreOffice Versione: 5.4.5.1
LibreOffice Versione: 5.4.5.1
-
- Messaggi: 93
- Iscritto il: mercoledì 31 marzo 2010, 9:09
Re: Macro Autoexec non funziona
la butto a caso
non abilitato ambiente runtime java?
non abilitato ambiente runtime java?
LibreOffice 3.3.2
Ubuntu 10.10
Ubuntu 10.10
- UTPiovene
- Messaggi: 232
- Iscritto il: giovedì 16 dicembre 2010, 11:24
- Località: Piovene Rocchette per 36 ore alla settimana
Re: Macro Autoexec non funziona
dove lo verifico Java?
adesso con la sicurezza macro impostata a "medio" la macro di Xergio funziona, ma le altre no.
adesso con la sicurezza macro impostata a "medio" la macro di Xergio funziona, ma le altre no.
S.O. Windows 10
LibreOffice Versione: 5.4.5.1
LibreOffice Versione: 5.4.5.1
- UTPiovene
- Messaggi: 232
- Iscritto il: giovedì 16 dicembre 2010, 11:24
- Località: Piovene Rocchette per 36 ore alla settimana
[Risolto] Re: Macro Autoexec non funziona
ok adesso autoexec funziona con la sicurezza impostata "medio"
ma ancora non va il richiamo di un formulario da pulsante
metto comunque risolto perchè il 3D era relativo alla macro Autoexec
grazie
ma ancora non va il richiamo di un formulario da pulsante
metto comunque risolto perchè il 3D era relativo alla macro Autoexec
grazie
S.O. Windows 10
LibreOffice Versione: 5.4.5.1
LibreOffice Versione: 5.4.5.1
-
- Messaggi: 93
- Iscritto il: mercoledì 31 marzo 2010, 9:09
- UTPiovene
- Messaggi: 232
- Iscritto il: giovedì 16 dicembre 2010, 11:24
- Località: Piovene Rocchette per 36 ore alla settimana
Re: [RISOLTO] Macro Autoexec non funziona
Codice: Seleziona tutto
REM ----------------------------------------------------------------------
Dim oForm
sub subDisplayForm(sDatabaseName as string, sFormName as string)
REM sub subDisplayForm(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
REM ----------------------------------------------------------------------
function fnGetOpenDatabase(sDatabaseName as string)
oEnum = StarDesktop.getComponents.createEnumeration
while oEnum.hasMoreElements
oPosDB = oEnum.nextElement
if oPosDB.implementationName = "com.sun.star.comp.dba.ODatabaseDocument" then
msgbox oPosDB.DataSource.name
if right(oPosDB.DataSource.name, len(sDatabaseName)) = sDatabaseName then
fnGetOpenDatabase = oPosDB
exit function
end if
end if
wend
end function
REM ----------------------------------------------------------------------
Dim oForm
sub CLASSIFICAZIONE
subDisplayForm("RegistroDitte.odb","CLASSIFICAZIONE")
REM subDisplayForm("CLASSIFICAZIONE")
end sub
S.O. Windows 10
LibreOffice Versione: 5.4.5.1
LibreOffice Versione: 5.4.5.1
- UTPiovene
- Messaggi: 232
- Iscritto il: giovedì 16 dicembre 2010, 11:24
- Località: Piovene Rocchette per 36 ore alla settimana
Re: [RISOLTO] Macro Autoexec non funziona
La macro funziona se la lancio direttamente, anche se mi chiede conferma del percorso del file. Non funziona da pulsante.
S.O. Windows 10
LibreOffice Versione: 5.4.5.1
LibreOffice Versione: 5.4.5.1
-
- Messaggi: 93
- Iscritto il: mercoledì 31 marzo 2010, 9:09
Re: [RISOLTO] Macro Autoexec non funziona
Viene chiesta conferma del nome perchè c'e una msgbox in mezzo
quale è l'associazione della macro che hai fatto con il pulsante?
quale è l'associazione della macro che hai fatto con il pulsante?
LibreOffice 3.3.2
Ubuntu 10.10
Ubuntu 10.10
- UTPiovene
- Messaggi: 232
- Iscritto il: giovedì 16 dicembre 2010, 11:24
- Località: Piovene Rocchette per 36 ore alla settimana
Re: [RISOLTO] Macro Autoexec non funziona
L'ho associata a "Esegui l'azione" perchè se associavo a "Tasto premuto" o "Dopo aver premuto il tasto" non funziona.
La macro è questa:
La macro è questa:
Codice: Seleziona tutto
REM ----------------------------------------------------------------------
Dim oForm
sub subDisplayForm(sDatabaseName as string, sFormName as string)
REM sub subDisplayForm(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
REM ----------------------------------------------------------------------
function fnGetOpenDatabase(sDatabaseName as string)
oEnum = StarDesktop.getComponents.createEnumeration
while oEnum.hasMoreElements
oPosDB = oEnum.nextElement
if oPosDB.implementationName = "com.sun.star.comp.dba.ODatabaseDocument" then
msgbox oPosDB.DataSource.name
if right(oPosDB.DataSource.name, len(sDatabaseName)) = sDatabaseName then
fnGetOpenDatabase = oPosDB
exit function
end if
end if
wend
end function
REM ----------------------------------------------------------------------
Dim oForm
sub INSERIMENTO
subDisplayForm("RegistroDitte.odb","INS_DITTE")
REM subDisplayForm("CLASSIFICAZIONE")
end sub
S.O. Windows 10
LibreOffice Versione: 5.4.5.1
LibreOffice Versione: 5.4.5.1