Pagina 1 di 1
LO & MySQL autoexec funzia?
Inviato: lunedì 17 luglio 2017, 20:04
da Rocky62
mi sovviene un dubbio:
formulario LO con nome
esercizio1.comuni
utente user con passw
perchè questa macro all'apertura del dbase non mi apre il formulario chiedendomi user e passw come mi aspettavo?
Codice: Seleziona tutto
Sub AutoExec
Dim InteractionHandler As Object
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
ThisDatabaseDocument.CurrentController.connect("","")
ThisDatabaseDocument.FormDocuments.getByName ( "esercizio1.comuni" ).open ' ( "Nome del formulario da aprire")
End Sub
Editato: Aggiunta codifica (Admin) |
Re: LO & MySQL autoexec funzia?
Inviato: lunedì 17 luglio 2017, 21:25
da charlie
A quale evento hai assegnato la macro?
Re: LO & MySQL autoexec funzia?
Inviato: lunedì 17 luglio 2017, 23:05
da Rocky62
...durante il caricamento...
Re: LO & MySQL autoexec funzia?
Inviato: martedì 18 luglio 2017, 6:41
da charlie
Deve essere un evento del database:
Re: LO & MySQL autoexec funzia?
Inviato: martedì 18 luglio 2017, 9:52
da Rocky62
grazie Charlie della cortesia. ho messo la macro su dbase, ma all'apertura mi da questo errore..
mysql è in localhost chiaramente...
Re: LO & MySQL autoexec funzia?
Inviato: martedì 18 luglio 2017, 10:08
da vladboscaneanu
E ovvio questo errore perche il metodo connect richiede due argomenti ,username e la password.
Nella tua riga tali valori sono vuoti (.connect("","") ) ,invece di (.connect("ilmiousername", "lamiapassword"))
Re: LO & MySQL autoexec funzia?
Inviato: martedì 18 luglio 2017, 11:07
da Rocky62
ok.
.. ma allora mi chiedo: cosa scrivo come argomenti se esistono più utenti ovviamente con diverse passw?
forse allora manca qualche riga di codice?
Re: LO & MySQL autoexec funzia?
Inviato: mercoledì 19 luglio 2017, 8:05
da vladboscaneanu
Per stabilire la connessione prova questa versione :
Codice: Seleziona tutto
Sub AutoExec
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
ThiComponent.DataSource.ConnectWithCompletion(InteractionHandler)
if ThisComponent.CurrentController.isConnected() Then
ThisDatabaseDocument.FormDocuments.getByName ( "esercizio1.comuni" ).open ' ( "Nome del formulario da aprire")
end if
End Sub
Re: LO & MySQL autoexec funzia?
Inviato: mercoledì 19 luglio 2017, 18:59
da Rocky62
mi da questo errore...
Re: LO & MySQL autoexec funzia?
Inviato: mercoledì 19 luglio 2017, 19:25
da charlie
Questa, in questo file:
viewtopic.php?f=13&t=8105&p=43792&hilit ... xec#p43791, funzionava.
Codice: Seleziona tutto
REM ----------------------------------------------------------------------
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="Eqonomize" 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()
End If
HandleError:
If Err<>0 Then
Exit Sub
End If
End Sub 'Non ci sono commenti
Re: LO & MySQL autoexec funzia?
Inviato: mercoledì 19 luglio 2017, 22:12
da Rocky62
grazie Charlie,
così funziona e mi si apre il FORM che indico, però non chiede nessuna password.... non è strano
Re: LO & MySQL autoexec funzia?
Inviato: mercoledì 19 luglio 2017, 22:31
da Rocky62
....in particolare si apre il menu, ma se clicco per selezionare il form che mi interessa mi da errore e mi dice che non sonno connesso al dbase.
se invece clicco sul form menu (dopo averlo chiuso naturalmente) mi chiede le credenziali. mi connetto e riaprendosi il menu si comporta bene.
non saprei forse serve dire a LO che mentra esegue autoexec deve chiedere di loggarsi...
Re: LO & MySQL autoexec funzia?
Inviato: mercoledì 19 luglio 2017, 22:31
da charlie
Compila la riga
penso funzioni.
Edit: le mie istruziini valgono per database incorporato, per MySql non so.
Re: LO & MySQL autoexec funzia?
Inviato: giovedì 20 luglio 2017, 21:57
da Rocky62
....nisba.
forse è sbagliato l'approccio...
secondo te funzionerebbe creando una tabella users all'nterno del dbase in mysql.
creare una form in LO che si apre con la macro da te postata (senza user e pass).
questa form avrebbe due campi: 1 user 2 passw con tasto connetti e in caso positivo, stabilita la connessione e impostato come evento dopo l'invio aprire una form (per es MENU)?
Re: LO & MySQL autoexec funzia?
Inviato: giovedì 20 luglio 2017, 21:59
da vladboscaneanu
Ciao.
In effetti, scrivendo veloce, ho commesso un errore:
-- la terza riga deve iniziare con
non
In questo modo dovrebbe funzionare.