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

Quoi ? Vous ne connaissez pas cette suite bureautique libre et gratuite. Elle vous permet de faire ce que vous faîtes avec MS-Office sans avoir à pirater.
Bidouille
Webmestre
Messages : 531
Enregistré le : lun. mai 21, 2007 2:08 pm

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

Messagepar Bidouille » sam. mars 14, 2009 4:56 pm

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.

Bidouille
Webmestre
Messages : 531
Enregistré le : lun. mai 21, 2007 2:08 pm

Interroger le bon contrôle

Messagepar Bidouille » ven. déc. 16, 2016 7:40 am

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.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Bidouille
Webmestre
Messages : 531
Enregistré le : lun. mai 21, 2007 2:08 pm

Chaque contrôle est spécifique

Messagepar Bidouille » mer. juil. 12, 2017 3:33 pm

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.

Bidouille
Webmestre
Messages : 531
Enregistré le : lun. mai 21, 2007 2:08 pm

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

Messagepar Bidouille » mer. juil. 12, 2017 5:05 pm

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).


Retourner vers « OpenOffice »

Qui est en ligne

Utilisateurs parcourant ce forum : claudebot [Crawler] et 1 invité