MercatorPenguin en écriture : expressions calculées

0000002902     -      19/04/2019

MercatorPenguin 2.3 permet de placer des expressions calculées dans les écrans de modification (Sig, Action, Billing). Ceci se fait directement dans le code XAML via l'ajout de ceci :

<m:EditExpression Expression="$var1$ + $var2$" />

Une EditExpression est en fait un Label qui a la capacité de calculer automatiquement sa propriété Text. Pour que cette expression fonctionne, elle doit faire référence à des EditEntries présents dans l'écran. Dans notre exemple, l'EditExpression utilise deux EditEntries dont les sources sont var1 et var2. Notez que les noms de source ne sont pas case sensitive mais doivent être encadrés par le caractère $.

Le calcul de l'expression en tant que tel est effectué au sein de cet écran de MercatorPenguin. Il n'y a donc aucune sollicitation de MercatorPenguinServer et donc aucune consommation du réseau "data" pour effectuer ce calcul. Il est effectué

  • lors de l'initialisation de l'écran
  • lorsque chacune des EditEntries utilisées dans l'expression perd le focus

Quelle syntaxe peut-on utiliser ?

La syntaxe est celle de System.Data.DataTable.Compute() de .net standard. Cette page donne quelques indications concernant les syntaxes possibles. Avant l'évaluation de l'expression, MercatorPenguin substitue tous les paramètres de type $var$ par leur valeur. Aucun nom de colonne n'est donc pris en compte lors de cette évaluation ; elle se fait en considérant uniquement des valeurs scalaires.

Les chaînes de caractères doivent être indiquées entre simples quotes : '$var1$' + '-' + '$var2$'

Note : la compilation et l'exécution de code compilé est impossible dans les appareils mobiles. Il n'y aura donc jamais de prise en charge complète du langage C# ou d'un autre langage compilé à cet endroit de MercatorPenguin.


Si on souhaite sauvegarder le résultat de cette expression dans la table de base de l'écran en modification (table de signalétique, ou PIEDS_V/A, ou ACTIONS), il suffit d'ajouter une propriété Source indiquant le champ de destination.

<m:EditExpression Expression="$var1$ + $var2$" Source="macolonne" />

 

Le code XAML sur cette page reprend un exemple.