|
Fr:Ajouter un Contrôle de Tri à un Formulaire
From NeoWiki
Revision as of 14:22, 17 October 2007 (edit) Jgd (Talk | contribs) (translation of the English article "Adding a Search Control to a Form") ← Previous diff |
Current revision (14:28, 17 October 2007) (edit) (undo) Jgd (Talk | contribs) m |
||
Line 16: | Line 16: | ||
===Corriger la colonne '''Nom1'''=== | ===Corriger la colonne '''Nom1'''=== | ||
#Faites un clic droit ou Ctrl-clic sur l'en-tête de la colonne '''Nom1''' et choisissez {{menu|Colonne}} | #Faites un clic droit ou Ctrl-clic sur l'en-tête de la colonne '''Nom1''' et choisissez {{menu|Colonne}} | ||
- | #Dans l'onglet {{Section|Général} de la fenêtre {{Window|Propriétés: Zone de texte}}, remplacez '''Nom1OuNom2''' par '''Nom1''' | + | #Dans l'onglet {{Section|Général}} de la fenêtre {{Window|Propriétés: Zone de texte}}, remplacez '''Nom1OuNom2''' par '''Nom1''' |
#Fermez la fenêtre {{Window|Propriétés: Zone de texte}}. | #Fermez la fenêtre {{Window|Propriétés: Zone de texte}}. | ||
Current revision
En complément à l'utilisation de filtres de formulaires, vous pouvez aussi ajouter un contrôle à un formulaire. Cela vous permettra de trier rapidement les données selon les régles définies pour ce contrôle. Comme exemple, nous allons créer une boîte combinée dans le formulaire Ensemble des observations pour trier par département. La méthode utilisée pour créer un contrôle de tri à l'aide d'un champ de texte ou d'une zone de liste est très semblable.
Contents |
Ajouter un Alias à la requête Liste des observations
En testant cette méthode, l'auteur de ce tutoriel a remarqué qu'un champ posait des problèmes. Il s'agisait d'un champ répertoriant l'état ou la province aux U.S.A. Le titre de ce champ est "StateOrProvince" et la macro décrite ci-dessous interprétait ce titre comme deux noms de champs séparés par l'opérateur logique 'OU' et renvoyait un message d'erreur SQL. Si vous rencontez ce problème, ou un problème analogue, vous pouvez vous inspirer de la méthode décrite ici pour le résoudre facilement. Il suffit de créer un alias pour le champ en question. Supposons donc que vous ayez un champ dont le titre est semblable à "Nom1OuNom2" dans la requête Liste des observations, suivez alors les indications qui suivent. Si ce n'est pas le cas, vous pouvez passer directement à la section Créer la macro
- Ouvrez la requête Liste des observations pour la modifier. (Dans la fenêtre principale, cliquez sur Requêtes dans la colonne de gauche, et faites un clic droit ou Ctrl-clic sur la requête Liste des observations et choisissez Modifier dans le menu contextuel).
- Dans la ligne Alias de la colonne Nom1OuNom2, entrez Nom1
- Enregistrez votre modification en pressant les touches Cmd-S
- Fermez la requête
Ouvrir le formulaire pour le modifier
Ouvrez le formulaire Ensemble des observations pour le modifier. (Dans la fenêtre principale du document, cliquez sur Formulaires dans la colonne de gauche, puis faites un clic droit ou Ctrl-clic sur le formulaire Ensemble des observations et choisissez Modifier dans le menu contextuel).
Corriger la colonne Nom1
- Faites un clic droit ou Ctrl-clic sur l'en-tête de la colonne Nom1 et choisissez Colonne
- Dans l'onglet Général de la fenêtre Propriétés: Zone de texte, remplacez Nom1OuNom2 par Nom1
- Fermez la fenêtre Propriétés: Zone de texte.
Créer la macro
- Le formulaire Ensemble des observations étant ouvert pour modification (voir ci-dessus), allez dans le menu Outils, choisissez Macros puis Gérer les macros et enfin NeoOffice Basic.... la fenêtre Macros NeoOffice Basic s'ouvre.
- Dans la section Macro de, cliquez sur le triangle à gauche de Ensemble de observations.
- Cliquez sur le triangle à gauche du dossier appelé Standard sous l'entrée Ensemble des observations.
- S'il n'y a pas de module dans le dossier Standard, cliquez sur le bouton Nouveau.
- Dans la fenêtre Nouveau Module, entrez MacrosTri dans le champ Nom et cliquez sur OK.
- Cliquez sur le module MacrosTri
- Dans le champ Nom de la macro, entrez TriParDepartement
- Cliquez sur le bouton Nouveau. La fenêtre Ensemble des observations.Standard NeoOffice Basic s'ouvre.
- Après l'entrée End Sub , collez le code suivant (n'utilisez pas de lettres accentuées, j'ai écrit Departement pour cette raison) :
- Sub TriParDepartement dim oFilter as object dim oFormCtl as object oFormCtl = ThisComponent.Drawpage.Forms.getByName("Standard") oFilter = oFormCtl.getByName("BoiteTriDepartement") if oFilter.CurrentValue <> "" then oFormCtl.Filter = "Département LIKE " + "'"+oFilter.CurrentValue+"'" oFormCtl.ApplyFilter = True else oFormCtl.ApplyFilter = False end if oFormCtl.Reload End Sub
- Enregistrez les modifications en cliquant sur l'icône Enregistrer (le disque dur) dans la barre d'outils.
- Fermez la fenêtre Ensemble des observations.Standard NeoOffice Basic.
Note Enregistrer la macro directement dans le formulaire a l'avantage de permettre à la macro de fonctionner si vous déplacez ou copiez la base sur un autre ordinateur. Cette méthode présente toutefois l'inconvénient de vous obliger à décider, chaque fois que vous ouvrez le formulaire , si vous acceptez d'activer ou non les macros.
Ajouter le contrôle au formulaire
- Si la barre d'outils Contrôles de formulaire n'est pas visible, allez dans le menu Affichage et choisissez Barres d'outils puis Contrôles de formulaire.
- Cliquez sur le bouton Boîte combinée dans la barre d'outils.
- Glissez le curseur pour créer une boite combinée dans l'espace entre le titre et la table.
- Cliquez sur le bouton Champ d'étiquette dans la barre d'outils (le bouton ABC).
- Glissez le curseur sur le formulaire, à côté de la boîte combinée pour créer un champ d'étiquette.
- Double cliquez sur ce champ d'étiquette. La fenêtre Propriétés: Champ d'étiquette s'ouvre.
- Dans l'onglet Général, dans le champ Titre, entrez Tri par département.
- Double cliquez sur la boîte combinée que vous avez créée. La fenêtre Propriétés: Zone combinée s'ouvre.
- Dans l'onglet Général, dans le champ Nom entrez BoiteTriDepartement
- Dans l'onglet Données, faites les modifications suivantes :
- Vérifiez que le champ Champ de données est vide.
- Réglez Type de contenu de liste sur Sql.
- Dans le champ Contenu de liste entrez la commande suivante :
- SELECT DISTINCT "Département" FROM "Liste des observations"
- Dans l'onglet Événements, cliquez sur le bouton ... à droite du champ vide sur la ligne Texte modifié. La fenêtre Assigner une action s'ouvre.
- Vérifiez que l'événement Texte modifié est sélectionné.
- Cliquez sur le bouton Macro…. La fenêtre Sélecteur de macro s'ouvre.
- Dans la section Bibliothèque, cliquez sur le triangle à côté de Ensemble des observations.
- Cliquez sur le triangle à côté du dossier Standard sous Ensemble des observations.
- Cliquez sur le dossier MacrosTri. Une liste de macros apparait dans la section Nom de la macro.
- Dans la liste Nom de la macro, sélectionnez TriParDepartement
- Cliquez sur OK dans la fenêtre Sélecteur de macro et de nouveau dans la fenêtre Assigner une action.
- Fermez la fenêtre Propriétés : Zone combinée.
- Désactivez le mode conception en cliquant sur le triangle bleu dans la barre de contrôles de formulaire.
- Réglez la boîte combinée sur l'une des options de département et vérifiez que le tri s'effectue correctement.
- Pour supprimer le filtre, supprimer l'entrée dans la boîte combinée.