MercatorPenguin en écriture : obtenir une liste de données et appliquer le résultat dans une zone

0000003099     -      22/07/2022

MercatorPenguin 2.10.9 ou ultérieur permet d'associer un EditListButton à une zone éditable (EditEntry). Ce bouton permet d'exécuter une requête SQL dans la base de données de Mercator et d'en montrer le résultat sous la forme d'une liste. La valeur associée à la ligne sélectionnée est alors placée dans l'EditEntry associé.

Exemple de paramétrage XAML


<m:EditEntry Placeholder="N° série" Source="LINE|NUM_SERIE" HorizontalOptions="FillAndExpand" Grid.Column="0" Grid.Row="6" />
<m:EditListButton TargetSource="LINE|NUM_SERIE" ReqSql="select num_serie as id,num_serie as lib from NUMSERIES where (id_art=@LINE|ID_ARTICLE) and (id_depot=@id_depot)" Grid.Column="1" Grid.Row="6" />

 

Ces propriétés sont obligatoires :

  • TargetSource : source de l'EditEntry associé
  • ReqSql : requête SQL pour l'extraction des données

 

Règles pour composer la requête SQL

  • Elle doit renvoyer une seule table
  • Dans cette table de résultat, ces colonnes sont obligatoires et doivent être de type caractères :
    • ID : la valeur qui sera placée dans l'EditEntry
    • LIB : la valeur affichée dans la liste de sélection
  • Elle peut accepter comme paramètres SQL toutes les sources des contrôles existants dans le code XAML Tab 1. Dans notre exemple :
    • @id_depot
    • @LINE|ID_ARTICLE
  • Elle ne peut effectuer aucune modification dans la base de données

 

Remarques

  • Si la liste renvoyée est vide, alors une vibration est donnée ainsi que le message "Aucun enregistrement trouvé !"
  • Si la liste renvoyée ne contient qu'un seul enregistrement, alors le résultat est directement placé dans l'EditEntry associé
  • Cette fonctionnalité est seulement une aide à la saisie. Elle ne contient aucune logique "métier". Par exemple, dans notre exemple, ce bouton installé dans une séquence de devis permettrait finalement de saisir un numéro de série dans un devis. (Ce qui sera en définitive rejeté lors de la sauvegarde).
  • MercatorPenguinServer : version min. = 2.10.9