Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Filtrer le résultat d'une recherche sur liaison avec un signalétique

0000002944     -      30/03/2022

Un EditEntry peut être lié automatiquement à un signalétique. Depuis la version 2.6 de MercatorPenguin, il est possible de filtrer cette recherche avec toute clause where valide sur la table de ce signalétique de destination. Cette clause doit être placée dans la propriété TargetSigComplWhere de l'EditEntry.

Par exemple, pour limiter la recherche d'articles au sein d'un rayon défini :

<m:EditEntry Placeholder="Article 1" Source="id_art1" WidthRequest="120" TargetSigComplWhere="s_id_rayon='6F0C1922E2'" />

Il est possible de placer une clause where variable, dépendant de données trouvées dans la DataRow de l'écran en cours de modification dans MercatorPenguin. Pour cela, il suffit de spécifier le nom de la colonne, en majuscules, entourée par des accolades. Par exemple, dans la table ACTIONS, la colonne ID_TACT1 char(10) a été ajoutée pour spécifier un contact sur une action liée aux clients. Il est dès lors simple de filtrer les contacts en fonction du client en cours dans l'action (ID_SIG).

<m:EditEntry Source="ID_SIG" IsVisible="False" />
<StackLayout Orientation="Horizontal">
    <m:EditEntry Placeholder="Contact" Source="id_tact1" Margin="0,0,25,0" WidthRequest="120"
TargetSigComplWhere="exists(select * from TACTSIG where (module='CLI') and (id_sig={ID_SIG}) and (id_tact=t_id))" />
    <m:TargetSigLabel Origin="id_tact1" Font="Medium" VerticalOptions="Center" HorizontalOptions="FillAndExpand" />
</StackLayout>

Notez que, dans cet exemple, {ID_SIG} est évalué grâce à un EditEntry qui n'est pas visible, puisque l'utilisateur ne doit pas pouvoir modifier cette valeur.