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... :ucrazy:

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.. :knock:
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? :ucrazy:

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... :ucrazy:

Re: LO & MySQL autoexec funzia?

Inviato: mercoledì 19 luglio 2017, 22:31
da charlie
Compila la riga

Codice: Seleziona tutto

Conn=DataSource.getConnection("","") 
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)? :ucrazy:

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

Codice: Seleziona tutto

ThisComponent
non

Codice: Seleziona tutto

ThiComponent
In questo modo dovrebbe funzionare.