UDF Basics
Cette rubrique explique comment créer, importer, éditer, copier-coller et supprimer les fonctions définies par l’utilisateur (abrégé UDF).
Créer des UDF
Cette sous-section explique comment créer une FDU de zéro et de composants déjà existants. L’exigence minimum est un compostant de sortie auquel quelques données sont connectées. Pour les paramètres d'entrée, une fonction peut avoir zéro, une ou plusieurs entrées. Les paramètres d'entrée et de sortie peuvent être de type simple (comme un string) ou de type complexe (une structure). Pour plus d'information concernant les paramètres simples et complexes, voir Paramètres UDF.
UDF à partir de zéro
Pour créer une FDU à partir de zéro, suivez les instructions ci-dessous :
1.Sélectionnez Fonction | Créer des fonctions définies par l'utilisateur. En alternative, cliquez sur le bouton de la barre d’outils .
2.Saisissez l’information pertinente dans le dialogue Créer une fonction définie par l’utilisateur (voir la capture d’écran ci-dessous).
![mf_udf_03](./images/mf_udf_03.png)
Les options disponibles sont recensées ci-dessous :
•Nom de la fonction : Champ obligatoire. Pour le nom de votre UDF, vous pouvez utiliser le caractère suivant : caractères alphanumériques (a-z, A-Z, 09), un trait de soulignement ( _ ), un trait d’union/tiret ( - ), et un deux-points ( : ).
•Nom de la bibliothèque : Champ obligatoire. Il s’agit du nom de la bibliothèque de fonction (dans la fenêtre Bibliothèques) dans laquelle votre fonction sera enregistrée. Si vous ne spécifiez pas le nom de bibliothèque, la fonction sera placée dans une bibliothèque par défaut appelée user.
•Syntaxe : Champ optionnel. Saisir un texte décrivant brièvement la syntaxe de la fonction (par ex., paramètres attendus). Ce texte sera affiché à côté de la fonction dans la fenêtre Bibliothèques et n'influera pas sur la mise en place de la fonction.
•Détail : Champ optionnel. Cette description sera affichée lorsque vous déplacez le curseur sur la fonction dans la fenêtre Bibliothèques ou dans d'autres contextes.
•Utilisation Inline : Sélectionnez cette case à cocher si la fonction doit être créée comme inline. Pour plus d'informations, voir UDF régulières vs. Inline ci-dessous.
3.Cliquez sur OK. La fonction devient immédiatement visible dans la fenêtre Bibliothèques sous le nom de bibliothèque spécifié ci-dessus. De même, la fenêtre de mappage est maintenant redessinée afin de vous permettre de créer une nouvelle fonction (il s'agit d'un mappage autonome dont la référence est le mappage de la fonction). Le mappage de la fonction inclut un composant de sortie par défaut.
4.Ajoutez tous les composants requis du mappage de la fonction. Vous pouvez faire ceci comme pour un mappage standard.
Pour utiliser l’UDF dans un mappage, glissez-la depuis la fenêtre Bibliothèques vers la zone principale de mappage. Voir aussi Appeler et importer les UDF ci-dessous.
UDF de composants existants
Pour créer une UDF depuis des composantes existantes, suivez les étapes suivantes :
1.Choisir les composants pertinents sur le mappage en effectuant une sélection rectangulaire avec la souris. Vous pouvez aussi choisir plusieurs composants en cliquant sur chacun d'entre eux tout en maintenant la touche Ctrl appuyée.
2.Sélectionnez la commande de menu Fonction | Créer une fonction définie par l'utilisateur depuis la sélection. En alternative, cliquez sur le bouton de la barre d’outils .
3.Suivez les étapes 2 à 4 depuis l’UDF à partir de zéro.
UDF régulières vs. Inline
Il existe deux types de FDU : regular et inline. Vous pouvez spécifier le type de votre FDU quand vous le créez. Les fonctions inline et regular se comportent différemment en termes de génération de code, de récursivité et la capacité d'avoir plusieurs paramètres de sortie. La table ci-dessous résume les différences principales entre les FDU regular et inline.
Fonctions Inline (bordure en pointillés) | Fonctions régulières (bordure solide) |
---|---|
Avec les fonctions inline, le code FDU est inséré dans tous les emplacements là où la fonction est appelée. Si la FDU est appelée plusieurs fois, le code de programme généré serait plus long de manière significative. | Le code de la FDU est généré une fois et les entrées sont passées comme valeurs de paramètre. Si la FDU est appelée plusieurs fois, la FDU est évaluée chaque fois avec les valeurs de paramètre correspondantes. |
Les fonctions inline peuvent avoir plusieurs sorties et donc retourner plusieurs valeurs. | Les fonctions régulières ne peuvent avoir qu'une sortie. Pour retourner de multiples valeurs, vous pouvez déclarer la sortie comme étant de type complexe (par exemple, structure XML), qui vous permettrait de passer de multiples valeurs à l’appelant. |
Les fonctions inline ne peuvent pas être appelées récursivement. | Les fonctions régulières peuvent être appelées récursivement. |
Les fonctions inline ne prennent pas en charge la configuration d’un contexte de priorité dans un paramètre. | Les fonctions régulières prennent en charge la configuration un contexte de priorité dans un paramètre. |
Note : | Basculer un formulaire FDU de inline à régulier, et vice versa, peut affecter le contexte de mappage, et ceci pourrait amener le mappage à produire un résultat différent. |
Appeler et importer les UDF
Après avoir créé une FDU, vous pouvez l’appeler du même mappage dans lequel vous l’avez créé ou depuis tout autre mappage.
Appeler la FDU du même mappage
Pour appeler une FDU depuis le même mappage, suivez les étapes suivantes ci-dessous :
1.Trouver la fonction pertinente dans la fenêtre Bibliothèques sous la bibliothèque que vous avez spécifiée quand vous avez créé la fonction. Pour ce faire, commencez à taper le nom dans la fenêtre Bibliothèques.
2.Glissez la fonction depuis la fenêtre Bibliothèques dans le mappage. Vous pouvez désormais connecter tous les paramètres requis à la fonction.
Importer la FDU d‘un mappage différent
Pour importer une FDU à partir d’un autre mappage, suivez les instructions ci-dessous :
1.Cliquez sur la touche Ajouter/Supprimer des bibliothèques en bas de la fenêtre Bibliothèques. La fenêtre Gérer les Bibliothèques s’ouvre (voir la capture d'écran ci-dessous).
![mf_manage_libraries_window_empty](./images/mf_manage_libraries_window_empty.png)
2.Pour importer des fonctions en tant que bibliothèque locale (uniquement dans le cadre du document actuel), cliquez sur Ajouter sous le nom actuel du mappage. Pour importer les fonctions en tant que bibliothèque globale (au niveau du programme), cliquez sur Ajouter à côté des Importations Bibliothèques globales. Lorsque vous importez une bibliothèque localement, vous pouvez définir le chemin du fichier de bibliothèque pour qu'il soit relatif au fichier de mappage. Avec des bibliothèques importées globalement, le chemin de la bibliothèque importée est toujours absolu.
3.Cherchez le fichier .mfd qui contient les fonctions, et cliquez sur Ouvrir. Un message apparaît vous informant qu'une nouvelle bibliothèque a été ajoutée et pouvant être accédée dans la fenêtre Bibliothèques.
Vous pouvez maintenant utiliser une des fonctions importées dans le mappage actuel en les glissant depuis la fenêtre Libraries dans le mappage. Pour plus informations concernant la consultation et l'organisation des bibliothèques de fonction, voir Gérer des bibliothèques de fonction.
Mappage avec identifiants (Enterprise Edition)
Si le fichier .mfd importé contient des identifiants, ceux-ci sont affichés en tant qu'importés (avec un arrière-plan jaune) dans le Gestionnaire d'identifiants. Par défaut, les identifiants importés ne sont pas enregistrés avec le mappage principal, mais vous pouvez créer en option une copie locale et les enregistrer sous le mappage principal. Voir les Identifiants dans les FDU.
Éditer les UDF
Pour éditer une FDU, suivez les étapes ci-dessous :
1.Ouvrir le mappage qui contient une FDU.
2.Double-cliquez sur la barre de titre de la FDU dans le mappage pour voir les contenus de la fonction là où vous pouvez ajouter, éditer ou supprimer les composants, tel que requis.
3.Pour changer les propriétés de la fonction (par ex., le nom de la description), cliquez avec la touche de droite sur une zone vide dans le mappage et sélectionnez Paramètres de fonction depuis le menu contextuel. En alternative, cliquez sur la touche de la barre d’outils .
Vous pouvez aussi éditer une fonction en double-cliquant sur son nom dans la fenêtre Bibliothèques. Néanmoins, seules des fonctions se trouvant dans le document actif actuellement peuvent être ouvertes de cette manière. Double-cliquer sur une fonction définie par l'utilisateur qui a été créée dans un autre mappage ouvre ce mappage dans une autre fenêtre. Si vous éditez ou supprimez une fonction définie par l'utilisateur qui a été importée dans plusieurs mappages, tous ces mappages seront touchés par la modification.
Pour retourner au mappage principal, cliquer sur la touche dans le coin supérieur gauche de la fenêtre de mappage.
MapForce vous permet de naviguer à travers différents mappages et FDU en utilisant les touches de la barre d’outils et
. Les raccourcis de clavier correspondants pour ces touches sont Alt+Left et Alt+Right, respectivement.
Copier-coller les UDF
Pour copier une FDU à le collez dans un d’un autre mappage, suivez les étapes ci-dessous :
1.Ouvre la fenêtre de gestion des bibliothèques.
2.Cliquez avec la touche de droite dans une zone vide de la fenêtre Bibliothèques et choisissez l’option Afficher tous les documents ouverts.
3.Ouvrir les mappages de source et destination. Assurez-vous que les deux mappages sont enregistrés sur le disque. Ceci assure une résolution correcte des chemins. Voir aussi Copier-coller et les chemins relatifs.
4.Cliquez avec la touche de droite sur la FDU pertinente depuis le mappage de source dans la fenêtre Gérer les bibliohèques et sélectionnez Copier depuis le menu contextuel (voir la capture d’écran ci-dessous) ou appuyez sur Ctrl+C. Laissez la fenêtre Gérer les bibliothèques ouverte.
![mf_udf_copy](./images/mf_udf_copy.png)
5.Basculer à la fenêtre de de mappage de destination (et la fenêtre Gérer les bibliothèques sera modifiée conformément), cliquez avec la touche de droite sur Fonctions définies par l’utilisateur, et sélectionnez Coller depuis le menu contextuel.
Supprimer les UDF
Pour supprimer une FDU, suivez les étapes ci-dessous :
1.Double-cliquer sur la barre de titre de la FDU dans le mappage.
2.Cliquer sur la touche dans le coin supérieur droit de la fenêtre Mappage.
3.Si la fonction est utilisée dans le mappage ouvert actuel, MapForce demandera si vous voulez remplacer toutes les instances avec des composants internes. Cliquer sur Oui si vous souhaitez supprimer la fonction et remplacer toutes les instances dans lesquelles elle est appelée avec les composants de la fonction. Cela vous permet de garder valide le mappage principal même si la fonction est supprimée. Néanmoins, si la fonction supprimée est utilisée dans d'autres mappages externes, ceux-ci ne seront pas valides. Cliquez sur Non si vous voulez supprimer la fonction et tous ses composants internes en permanence. Dans ce cas, tous les mappages où la fonction est utilisée ne sera pas valide.