Bonjour,
J’utilise la version 7.5.1.2 sous Linux Mint 20.3 Cinnamon. J’ai développé une petite application et je souhaite que le formulaire d’accueil s’ouvre automatiquement. J’ai donc ajouté la macro nécessaire et je l’ai connectée à l’évènement “Ouvrir le document” du document base de données.
Problème : la plupart du temps Libre Office se fige au lancement. Le formulaire, s’il s’ouvre ne permet aucune action et un message système m’indique que l’application ne répond pas et je peux alors la fermer. Seule solution trouvée pour m’en sortir si après plusieurs tentatives de démarrage l’appli est toujours bloquée : dézipper le fichier, chercher la macro appelée et en changer le nom pour provoquer une erreur au démarrage, rezipper et ouvrir la base. Je récupère la main et je peux alors virer l’appel de la macro. Pas simple…
Voici la procédure que j’utilise :
Sub OnOpenDocument
Dim ObjTypeWhat
Dim ObjName As String
ObjName = "Menu"
ObjTypeWhat = com.sun.star.sdb.application.DatabaseObject.FORM
'Check the form exists
If ThisDatabaseDocument.FormDocuments.hasbyname(ObjName) Then
'If the form exists connect to the database
ThisDataBaseDocument.CurrentController.Connect()
'Open the form
ThisDatabaseDocument.CurrentController.loadComponent(ObjTypeWhat, ObjName, FALSE)
Else
MsgBox "Error! Wrong form name used. " & ObjName
End If
End Sub
J’ai essayé aussi cette autre façon de faire, sans plus de succès.
Sub OnOpenDocument
Dim oConnexion As Object
Dim props(0) As New com.sun.star.beans.PropertyValue
ThisDatabaseDocument.CurrentController.connect("","")
oConnexion = ThisDatabasedocument.CurrentController.ActiveConnection
ThisComponent.FormDocuments.loadComponentFromURL("Menu","", 0, props())
End Sub
Une idée ? Dois-je ouvrir un bug ?