[Résolu][Base] Liste des contrôles de section de formulaire

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][Base] Liste des contrôles de section de formulaire

Messagepar gelinp » 10 Mars 2018 08:18

Suite du fil de discussion commencé dans la section Base...

Je me doutais bien que ce serait possible, mais la question c'est comment ... Vous montrez une capture d'écran montrant un parcours de sections et leurs contrôles, mais quel objet Uno / API OOBasic avez-vous utilisé ? Est-ce un algorithme personnel ?

Notez que l'exemple de simulation du formulaire à onglets ne fonctionne pas sur mon poste. Je n'ai pas accès à l'édition à la base de donnée, et l'ouverture en édition du formulaire n'est pas disponible. Or c'est précisément cela qui m'aurait intéressé pour comprendre d'ou vient ce rectangle sous les contrôles et qui est utilisé pour l'encrage ...

Merci pour votre aide...
LibreOffice Version 6.0.6.2 - Linux Mint tara - 64 bits
gelinp
Membre lOOyal
Membre lOOyal
 
Message(s) : 42
Inscrit le : 12 Mars 2011 21:40

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

Messagepar Piaf » 10 Mars 2018 10:57

Bonjour
A tester
Code : Tout sélectionner   AgrandirRéduire
Sub ListerCtrl()
Dim monCtrl as Object, Groupe as Object
Dim i as Integer, n as Integer, txt as String
   For i = 0 To thisComponent.drawPage.Count - 1
      monCtrl = thisComponent.drawPage.getByIndex(i)
      If Not isEmpty(monCtrl.Anchor.TextSection) Then
         If monCtrl.supportsService("com.sun.star.drawing.GroupShape") Then
            Groupe = monCtrl
            For n = 0 To Groupe.Count - 1
               txt = txt & "Section : " & Groupe.getByIndex(n).Anchor.TextSection.Name & Space(3) & "Ctrl : " & Groupe.getByIndex(n).Control.Name & _
               Space(3) & "Service : " & Groupe.getByIndex(n).Control.ServiceName & Space(3) & "Couche : " & Groupe.getByIndex(n).LayerName & chr(13)
            Next n
         ElseIf monCtrl.supportsService("com.sun.star.drawing.ControlShape") Then
               txt = txt & "Section : " & monCtrl.Anchor.TextSection.Name & Space(3) & "Ctrl : " & monCtrl.Control.Name & _
               Space(3) & "Service : " & monCtrl.Control.ServiceName & Space(3) &  "Couche : " & monCtrl.LayerName & chr(13)
         End If
      End If      
   Next i
   MsgBox txt
End Sub
gelinp a écrit:d'ou vient ce rectangle sous les contrôles et qui est utilisé pour l'encrage ...
Ce ne sont que des objets de dessin, les contrôles sont ancrés au paragraphe.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Google [Bot] et 6 invité(s)