Page 1 sur 1

[Résolu] Lister les contrôles d'une section de formulaire

MessagePublié: 08 Mars 2018 18:44
par gelinp
Bonjour,

Je cherche l'API Uno qui me permettrait de lister les contrôles d'une section depuis une macro Basic. J'ai bien trouvé le service com.sun.star.text.Textsection mais aucune méthode ne semble accéder à la liste des contrôles dans la section ...

Merci pour votre aide ....
Patrick

Re: Comment lister les contrôles d'une section de formulaire

MessagePublié: 08 Mars 2018 19:49
par jeanmimi
Bonjour,
Juste pour savoir, qu'est-ce que c'est une section dans Base ?

Re: Comment lister les contrôles d'une section de formulaire

MessagePublié: 09 Mars 2018 08:47
par gelinp
Un formulaire Base est un document Writer. Un document Writer peut utiliser des Sections (Menu : Insérer > Section...) pour modifier la mise en page sur un passage particulier du document. Une section peut aussi recevoir un ensemble de paramétrage qui lui seront spécifiques. L'intérêt d'une section dans un formulaire est surtout de gérer la visibilité d'un ensemble de contrôles de manière dynamique en fonction de certaines valeurs de l'enregistrement courant ou pour gérer un formulaire complexe avec des onglets. Pour ce dernier cas, on ajoute quelques boutons pour servir d'onglet en haut du formulaire et en fonction du bouton activé on affiche de manière exclusive un sous ensemble des sections du formulaire.

Mais je rencontre un problème, car lorsque j'affiche une section, il arrive que les contrôles contenus à l'intérieur ne soient pas rafraichies, et donc ils restent invisibles. J'ai donc besoin de parcourir l'ensemble des contrôle contenus dans la section affichée pour forcer leur propriété de visibilité. De même pour les sections cachées, certains contrôles restent malgré tout visibles...

Ci-dessous un extrait de code pour basculer On/Off la propriété visible d'une section :

Code : Tout sélectionner   AgrandirRéduire
   
If not (oUnoSection.IsVisible EQV etat) Then
   oUnoSection.IsVisible = etat
EndIf

J'ai essayé de résoudre ce problème de deux façons :

  • Avec plusieurs formes d'encrage des contrôles : paragraphe, au caractère, comme caractère, etc. Mais cela ne change pas vraiment, il faut forcer leur visibilité individuellement. Sinon peut être commandé seulement un rafraichissement ...
  • En utilisant le paramètre de masquage sous condition (Menu : Format > Section) en utilisant une variable globale pointée dans ma condition, laquelle était modifiée par mon programme. Mais le résultat n'était pas probant, je rencontrais le même problème avec les contrôles mais aussi avec les sections ... Peut être un problème d'actualisation de la formule "sous condition" avec les variables globales modifiées par le programme ...
Pour gagner du temps j'appelle oUnoSection.IsVisible = etat seulement si l'état est différent, sinon le rafraichissement est déclenché même pour une valeur identique (isvisible = etat) et cela fait perdre beaucoup de temps...

Patrick

Re: Lister les contrôles d'une section de formulaire

MessagePublié: 09 Mars 2018 09:44
par Bidouille
gelinp a écrit:Je cherche l'API Uno

Vous devriez plutôt chercher à lire le bandeau rouge en haut des pages.

Re: Lister les contrôles d'une section de formulaire

MessagePublié: 09 Mars 2018 14:35
par Piaf
Bonjour
gelinp a écrit:mais aucune méthode ne semble accéder à la liste des contrôles dans la section ...
Cest faisable
Ctrl.png
Mais comme précisé par Bidouille tu devrais poser ta question dans la section Macros et API avec la balise [Base].
En l'absence de fichier, j'ai utilisé la base du tutoriel [Base] Simuler un formulaire à onglets.
A+

Re: Lister les contrôles d'une section de formulaire

MessagePublié: 10 Mars 2018 08:18
par gelinp
... et donc suite du fil dans la section Macros et API ... Bien que déplacer un fil de la section Base vers une section Macro en ajoutant la balise [Base]me laisse perplexe ... Pourquoi obligé l'usage de balises puisque les mêmes dénominations existent en sections ? Une balise pour catégoriser une section : OK, mais une balise en concurrence avec les sections ...

Re: Lister les contrôles d'une section de formulaire

MessagePublié: 10 Mars 2018 16:48
par Oukcha
gelinp a écrit:Pourquoi obligé l'usage de balises puisque les mêmes dénominations existent en sections ?
Justement, dans cette section dédiée à Base, la balise serait redondante, donc les fil de cette section ne comportent pas de telles balises ; en revanche, la section Macro accueillant des fils dédiés à de nombreux modules oblige à un balise rigoureux.

Ainsi, une recherche en section macro avec les termes base +lister +contrôles renvoie 7 résultats comprenant notamment votre nouveau fil, alors qu'une recherche sur les termes lister contrôles en renvoie 18. Selon le type de recherche, la balise permet souvent de diviser les résultats pertinents par 10.

Le présent fil ayant reçu une réponse satisfaisante permettant de le clôturer, merci d'y apposer la balise Image[Résolu] (Comment faire)