BASE: Blocage à l'ouverture si ouverture automatique de formulaire

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 ?

Bonjour,

Cette version n’est pas considérée comme stable.

Dois-je ouvrir un bug ?

Pourquoi pas ?
Bonne soirée,
Ajout : cette macro fonctionne très bien avec LibO 7.4.5 sur Mint 21.

JM

Au final, je pense que l’ouverture en automatique n’est pas le problème ici. Lors de l’ouverture d’un formulaire, j’appelle une procédure pour supprimer les barres d’outils et redimensionner la fenêtre. Si je retire le dimensionnement, je n’ai plus de problème. Je vais donc faire sans (malheureusement).

Alors forcément si vous ne publiez pas le code dans son intégralité et surtout la partie qui ne fonctionne pas, comment pensez-vous être aidé ?

Comme toujours, il est plus simple de fournir directement un ODB permettant de reproduire le problème.

J’ai bien pensé à fournir une solution. C’est en la préparant que je me suis rendu compte qu’il devait y avoir conflit entre l’ouverture automatique et le resize que j’ai alors supprimé, résolvant du coup l’origine du problème.
Concernant la version, sous Linux, et si je veux avoir une mise à jour automatique, j’ai le choix entre la vieille version de la distrib ou la toute dernière. J’ai donc opté pour la toute dernière. Je n’ai pas trouvé comment installer la dernière version stable et avoir ses mises à jour. Mais ça c’est un autre sujet.