[Base] Sélectionner les objets (tables, requêtes, etc.)

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur : Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 10:42

[Base] Sélectionner les objets (tables, requêtes, etc.)

Message par Pierre-Yves Samyn »

Suite à cette demande postée dans la section base de données voici le code permettant de choisir par programme les objets à afficher : tables, requêtes, formulaires (par défaut à l'ouverture d'une base), rapports.

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...) :
Capture-1.png
Capture-1.png (9.26 Kio) Consulté 4304 fois
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
Pièces jointes
AfficherObjet.odb
(5.18 Kio) Téléchargé 585 fois
Répondre