Le principe est d'utiliser un "dispatcher" (comme le génère OOo lors de l'enregistrement d'une macro).
Pour trouver la syntaxe de la commande modifier son interface via Outils > Personnaliser (clavier, menu...) :
Puis rechercher la ligne générée dans les fichiers de configuration de OOo, Accelerators.xcu en l'occurrence :
Code : Tout sélectionner
<node oor:name="com.sun.star.sdb.OfficeDatabaseDocument">
<node oor:name="LEFT_SHIFT" oor:op="replace">
<prop oor:name="Command">
<value xml:lang="fr">.uno:DBViewReports</value>
</prop>
</node>
</node>
Code : Tout sélectionner
Sub PysAfficherObjets
dim PysFrame as object
PysFrame = thisDatabaseDocument.currentController.Frame
PysDisp = createUNOService("com.sun.star.frame.DispatchHelper")
PysDisp.executeDispatch(PysFrame, ".uno:DBViewTables", "", 0 , Array())
' .uno:DBViewTables
' .uno:DBViewQueries
' .uno:DBViewReports
' .uno:DBViewForms
End Sub
Il est possible d'associer la macro à l'événement "ouverture" de la base de données par Outils > Personnaliser > Evénements