Page 1 sur 1

[API] Accès aux contrôles d'un formulaire sous Base

Posté : sam. mars 14, 2009 4:56 pm
par Bidouille
Il faut partir de ThisDatabaseDocument et lancer une connexion pour obtenir les formulaires / rapports

Code : Tout sélectionner

   oDB = thisDatabaseDocument
   oCnx = oDB.currentcontroller
   If Not oCnx.isConnected() Then oCnx.Connect
   oForms = oDB.FormDocuments
   oDoc = oForms.getByName("Formulaire") 'ici le nom du document formulaire 
   oForm = oDoc.Component.DrawPage.Forms(0) 'ici le contrôle formulaire dans le document
   oCtrl = oForm.getByName("Contrôle") 'ici le nom du contrôle

Attention à la saisie des noms qui sont sensibles à la casse.

Interroger le bon contrôle

Posté : ven. déc. 16, 2016 7:40 am
par Bidouille
Une erreur courante est de passer n'importe quoi dans la méthode getByName.
Cela vient souvent d'un copier/coller de code que vous pensez correct et qui bien sûr, ne fonctionnera pas avec votre formulaire.

Pour vous assurer de chaque nom à donner vous devez lancer votre formulaire en mode Conception.
capture1.jpg

Puis vous activez le navigateur de formulaire pour afficher le nom des différents contrôles.
capture2.jpg

Ce sont ces noms tels qu'exposés dans la fenêtre que vous devez utiliser :
capture3.jpg


Pour des raisons pratiques et de lisibilité de votre code, je vous conseille de ne pas utiliser d'espace ou de caractère spéciaux.

Chaque contrôle est spécifique

Posté : mer. juil. 12, 2017 3:33 pm
par Bidouille
Ca peut paraître bête à écrire mais un contrôle "Zone de texte" n'aura pas les mêmes propriétés qu'une "Zone de liste".
Je vous invite à utiliser XRay pour explorer les propriétés et méthodes de vos contrôles afin de ne pas avoir d'erreur.

Le formulaire, un terme (trop) générique

Posté : mer. juil. 12, 2017 5:05 pm
par Bidouille
Attention, le formulaire sous Base désigne plusieurs choses. Ce terme générique peut vous induire en erreur car il recouvre plusieurs objets.

D'abord, un formulaire sous Base est un document issu du module Writer. C'est un ODT qui est encapsulé dans l'ODB.
Ensuite, il y a la couche des formulaires qui est accessible dans l'ODT.
Vous pouvez avoir un ou plusieurs formulaires principaux et des sous-formulaires (voir des sous-sous-formulaires mais ne compliquons pas).

Bref, le document formulaire n'aura pas forcément le même nom que l'objet formulaire accessible par l'API.

Reportez-vous au Navigateur de formulaires pour obtenir les véritables noms à exploiter (cf. partie Interroger le bon contrôle).