Utilisation d'expressions d'analyse et de format personnalisés dans LiveBindings

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à LiveBindings dans Appmethod


Lorsque vous liez des contrôles, des propriétés ou des champs avec LiveBindings, vous souhaiterez probablement modifier les données situées à une extrémité d'une liaison avant que ces données n'atteignent l'autre extrémité de la liaison. Par exemple, si vous disposez d'un ensemble de données comportant une liste de noms de couleurs en lettres majuscules, vous souhaiterez probablement les convertir en minuscules avant de présenter la liste. Ces changements se font souvent dans les deux sens ; par exemple, si vous disposez d'un ensemble de données comportant des dates ISO, vous souhaiterez probablement les convertir au format de date local lors de leur présentation à l'utilisateur, et vous voudrez également convertir toute date, entrée manuellement par l'utilisateur, au format ISO avant de la stocker dans votre ensemble de données.

Lorsque vous liez des contrôles, des propriétés ou des champs avec LiveBindings, vous créez une instance d'une classe de liaison telle que TLinkFillControlToField ou TLinkFillControlToProperty. Les propriétés de ces classes incluent les deux types de propriétés suivants :

Spécification d'une expression d'analyse ou de format personnalisé

Pour spécifier une expression d'analyse ou de format personnalisé dans une liaison existante entre des contrôles, des champs ou des propriétés :

  1. Ouvrez le Concepteur LiveBindings et sélectionnez la liaison cible.
    Le Concepteur LiveBindings montre les liaisons sous la forme de flèches bleues qui connectent deux champs. Lorsque vous cliquez sur une flèche pour la sélectionner, elle devient plus épaisse, comme illustré dans ces images :
    LiveBindingsDesignerUnselectedBinding.png LiveBindingsDesignerSelectedBinding.png
  2. Dans l'inspecteur d'objets :
    • Pour spécifier une expression de format personnalisé, localisez la valeur de la propriété CustomFormat correspondante (par exemple, FillHeaderCustomFormat ou FillValueCustomFormat), entrez une expression de liaison, telle que LowerCase(%s), et appuyez sur Entrée pour enregistrer cette nouvelle valeur de propriété.
      ObjectInspectorCustomFormatLowerCase.png
    L'ajout de cette expression garantit que les valeurs du contrôle, de la propriété ou du champ source sont affectées par l'expression spécifiée avant leur transmission au contrôle, à la propriété ou au champ cible.
    FormDesignerCapitalizedColorNameList.png FormDesignerLowerCaseColorNameList.png
    • Pour spécifier une expression d'analyse personnalisée, localisez la valeur de la propriété CustomParse correspondante (par exemple, FillHeaderCustomParse ou FillValueCustomParse), entrez une expression de liaison, telle que UpperCase(%s), et appuyez sur Entrée pour enregistrer cette nouvelle valeur de propriété.
    Les valeurs d'entrée sont maintenant affectées par l'expression spécifiée avant leur stockage dans le contrôle, la propriété ou le champ source.

Expressions de liaison

L'expression de liaison la plus simple que vous pouvez utiliser est %s, où %s correspond à la valeur source. Ainsi, si vous utilisez simplement %s dans une propriété de format personnalisé d'une liaison, la valeur source ne change pas ; le résultat est le même que si vous aviez laissé vide la propriété de format personnalisé.

Accès à l'objet source

Vous pouvez également utiliser Self.Owner pour accéder à l'objet source ; cela vous donne accès non seulement aux données associées à la liaison, mais également à toutes les données de l'objet source. Vous pouvez utiliser l'une des expressions suivantes pour accéder à une portion de données de l'objet source :

  • Self.Owner.Field.Property. Par exemple : Self.Owner.CUSTOMER.Text.
    Remarque : Vous pouvez utiliser cette syntaxe tant que le nom de l'objet source ("CUSTOMER" dans l'exemple précédent) est un ID valide. Si l'objet source est un champ, il est possible que son nom ne soit pas valide ; dans ce cas, utilisez plutôt la syntaxe ci-dessous :
  • Self.Owner.FieldByName('Field').Property.
    Par exemple : Self.Owner.FieldByName('CUSTOMER').Text.

Voir Vidéo : Utilisation d'expressions de liaison dans la propriété CustomFormat d'un composant TLinkPropertyToField.

Utilisation de symboles mathématiques

Vous pouvez utiliser les symboles mathématiques suivants dans vos expressions :

  • Constantes : nil True False Pi
  • Opérateurs arithmétiques : + - * /
  • Opérateurs logiques : = <> < <= > >=
  • Parenthèses, (), pour changer la priorité des opérateurs.

Concaténation de chaînes

Pour ajouter un préfixe ou un suffixe à la valeur source, entourez cette chaîne supplémentaire d'apostrophes ( ' ) et utilisez un signe plus (+) pour concaténer votre chaîne à la chaîne source. Par exemple, 'Hello, ' + %s + '!'.

Utilisation des méthodes LiveBindings

Les méthodes LiveBindings sont des méthodes que vous pouvez utiliser dans vos expressions de liaison personnalisées. Par exemple, vous pourriez écrire une expression telle que 'I like ' + LowerCase(%s) + ' crayons', où la chaîne source, %s, serait convertie en caractères minuscules.

Remarque : Les méthodes LiveBindings sont sensibles à la casse. Si le nom de la méthode LiveBindings est LowerCase, l'utilisation de Lowercase ou de lowercase ne fonctionne pas.

Appmethod fournit de nombreuses méthodes LiveBindings par défaut que vous pouvez utiliser, telles que LowerCase, UpperCase ou Format. Pour obtenir une liste de ces méthodes ainsi que leur documentation, voir Méthodes LiveBindings par défaut

Vous pouvez également créer vos propres méthodes LiveBindings. Voir Création de méthodes LiveBindings personnalisées.

Lorsque vous liez des contrôles, des propriétés ou des champs avec le Concepteur LiveBindings, un composant TBindingsList est ajouté à votre fiche. Vous pouvez ouvrir la propriété Methods de ce composant pour voir une liste de méthodes LiveBindings disponibles que vous pouvez utiliser dans vos expressions de liaison personnalisées, celles fournies par Appmethod et vos propres méthodes LiveBindings personnalisées.

Voir aussi