[Résolu][Calc] Appel des boites de dialogues internes

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

[Résolu][Calc] Appel des boites de dialogues internes

Messagepar Sébastien C » 29 Déc 2009 18:23

Bonjour à tous,

Tout le monde (ou presque) connaît l’appel à la boite de dialogue filePicker :
Code : Tout sélectionner   AgrandirRéduire
CreateUniService("com.sun.star.ui.dialogs.FilePicker")


Le récent post d’Alain de la Chaume (dont je reste encore béat d’admiration), suivi du non moins développé « Suprême de code » de Dude, me fait me rappeler qu’il est je crois possible d’accéder à n’importe qu’elle boite de dialogue propre à OOo.

Par exemple, dans Calc, il en est une qui peut être très utile : c’est celle qui permet de saisir une plage de cellules par sélection directe tout en visualisant l’adresse de la plage.
selection.png
selection.png (3.27 Kio) Consulté 2196 fois


On peut y accéder (entre autres) par la boite de dialogue qui répond au menu Insertion / Noms / Définir... ou par celle de Format / Zône d’impression / Éditer... en cliquant sur l’icône :
icone_appel.png
icone_appel.png (819 octet(s)) Consulté 2196 fois

Je suis à la recherche de la commande qui me permettrait d’accéder à cette boite de dialogue et, partant, à toutes celles que l’on connaît au sein de la suite bureautique. Je crois cela possible, mais je n’ai aucune méthodologie de recherche pour arriver à mes fins. D’aucun d’entre-vous pourrait-il me mettre sur une piste API quelconque ?

:-)
Dernière édition par Sébastien C le 31 Déc 2009 17:07, édité 2 fois.
LibreOffice 3.5.3.2 sous GNU-Linux Mageia 2.
Avatar de l’utilisateur
Sébastien C
Membre hOOnoraire
Membre hOOnoraire
 
Message(s) : 157
Inscrit le : 29 Avr 2008 00:21
Localisation : Meymac (19250)

Re: [Calc] Appel des boites de dialogues internes

Messagepar Alain de La Chaume » 29 Déc 2009 19:42

Bonjour Sébastien C, bonjour à tous.

Heu... d'après moi la réponse est dans la question :
Le récent post d’Alain de la Chaume
[...]
On peut y accéder (entre autres) par la boite de dialogue qui répond au menu Insertion / Noms / Définir...

J'ai donc procédé comme dans le fil que vous citez (merci pour ça !) et j'obtiens ceci :
Code : Tout sélectionner   AgrandirRéduire
<menu:menu menu:id="vnd.openoffice.org:CustomMenu1" menu:label="adlc">
  <menu:menupopup>
   <menu:menuitem menu:id=".uno:DefineName" menu:helpid=".uno:DefineName" menu:label="Définir un nom"/>
  </menu:menupopup>
</menu:menu>
... que j'utilise pour créer ce code :
Code : Tout sélectionner   AgrandirRéduire
sub acDlgDefNom()
dim oFrame as object, dsp as object

   oFrame = thisComponent.currentController.Frame
   dsp = createUnoService("com.sun.star.frame.DispatchHelper")
   dsp.executeDispatch(oFrame, ".uno:DefineName", "", 0, array())
end sub
... qui m'a tout l'air de répondre à votre attente. Non ?
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
 
Message(s) : 1527
Inscrit le : 28 Sep 2008 13:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [Calc] Appel des boites de dialogues internes

Messagepar Sébastien C » 29 Déc 2009 20:38

Et non Alain, ce n’est pas celle-là que je cherche mais celle qui depuis celle-là, en cliquant sur le bouton Image, permet d’accéder à celle ci :

Image

Petite nuance que je laisse à votre perspicacité...
:wink:
LibreOffice 3.5.3.2 sous GNU-Linux Mageia 2.
Avatar de l’utilisateur
Sébastien C
Membre hOOnoraire
Membre hOOnoraire
 
Message(s) : 157
Inscrit le : 29 Avr 2008 00:21
Localisation : Meymac (19250)

Re: [Calc] Appel des boites de dialogues internes

Messagepar Dude » 30 Déc 2009 09:40

Salut,

Ce bouton n'est activé que si tu as renseigné le nom de ta plage. Donc, ce dialogue n'est pas accessible directement via le dispatcheur.

Si tu cherches à définir une plage, le plus simple est d'utiliser la propriété NamedRanges. Le forum comprend bien sûr de nombreux exemples.
AOO 4.1.5 sous Windows 7 Pro x64

Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20556
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Calc] Appel des boites de dialogues internes

Messagepar Sébastien C » 30 Déc 2009 21:31

Merci Dude pour ta réponse ; mais ce même dialogue (au titre près) est aussi accessible depuis Format / Zône d’impression / Éditer... toujours en cliquant sur toujours la même icône : Image et, cette fois, pas de nom de plage à renseigner...

Je ne cherche pas à définir une plage, mais à donner la possibilité à l’utilisateur de mon propre dialogue de pouvoir spécifier un nombre conséquent de lignes de provenances différentes sans avoir, au préalable, à les marquer comme zones.

Ce dialogue me fait saliver parce que justement, il offre très simplement la possibilité de sortir de l’appelant en retournant à la (Zône d’impression) ou aux feuille(s) (Noms de plage). Je ne sais même pas si cette technique est possible avec un dialogue normal (ce qui demanderait alors un autre fil que je suis prêt à ouvrir si certains d’entre-vous me laissent entendre que ce le soit).

Mais évidemment, accéder à ce dialogue-là permettrait de ne pas à avoir à réinventer la roue si seules quelques petites propriétés pouvaient être spécifiées...
:-)
LibreOffice 3.5.3.2 sous GNU-Linux Mageia 2.
Avatar de l’utilisateur
Sébastien C
Membre hOOnoraire
Membre hOOnoraire
 
Message(s) : 157
Inscrit le : 29 Avr 2008 00:21
Localisation : Meymac (19250)

Re: [Calc] Appel des boites de dialogues internes

Messagepar Pierre-Yves Samyn » 31 Déc 2009 12:44

Bonjour

Ce que tu souhaites peut s'obtenir par un listener (cf http://wiki.services.openoffice.org/wik ... _Selection)
Un exemple tout fait peut-être trouvé dans le classeur MyDataPilot.sxc disponible ici http://homepages.paradise.net.nz/hillview/OOo/

Voir la procédure subEventShrink dans le module ModDPtextControls
Cette procédure est associée au bouton CommandButtonSourceRange (étiquette : Rng) visible dans l'onglet (pseudo) Locations, soit en page 1 du dialogue (en mode conception)
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 11276
Inscrit le : 02 Mai 2006 09:42

Re: [Calc] Appel des boites de dialogues internes

Messagepar Sébastien C » 31 Déc 2009 17:06

Bien cher Pierre-Yves,

Comment te remercier ? Les liens que tu me donnes, tant des pages Web à lire, que des exemples à consulter correspondent EXACTEMENT à ce que je recherche...

Et tout ce qui tourne autour mes amis, quelle richesse !

Merci, merci, merci !!!
:D :bravo: :super:

[Édit du premier de janvier de l’an de grâce MM.X.]
Et un petit exemple d’utilisation commenté en français en retour pour les petits amis que cela intéresse et pour bien commencer l’année.
;-)
Pièces jointes
expSchrink.ods
(31.38 Kio) Téléchargé 178 fois
LibreOffice 3.5.3.2 sous GNU-Linux Mageia 2.
Avatar de l’utilisateur
Sébastien C
Membre hOOnoraire
Membre hOOnoraire
 
Message(s) : 157
Inscrit le : 29 Avr 2008 00:21
Localisation : Meymac (19250)


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Google [Bot], Noonours et 5 invité(s)