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

Ecrans personnalisables : expressions

0000001953     -      27/10/2017

Les expressions peuvent être ajoutées librement dans les signalétiques de Mercator. Cela se fait via cet outil :ParamSigExpr.
Chaque expression fait référence à un code écrit en C# qui renvoie toujours un type String. Un éditeur C# avec coloration de syntaxe et intellisense est disponible à cet effet. Quand cette propriété est ouverte pour la première fois, un code minimum est placé dans l'éditeur. Il suffit d'écrire le code juste sous le commentaire : // enter your customized code here.

Exemple de codes

  • Date de création de la fiche client

    return System.Convert.ToDateTime(currentExpression.Form.DataSource.Rows[0]["C_CREATION"]).ToString("dd/MM/yyyy");

  • Nom du dernier utilisateur ayant modifié la fiche client

    return xFunctions.xUser(currentExpression.Form.DataSource.Rows[0]["C_ID_USER2"].ToString());

  • Exemple avec xLookUp

    string d_cat1 = currentExpression.Form.DataSource.Rows[0]["D_CAT1"].ToString();
    if (d_cat1 == "")
        return "";
    else
        return xFunctions.xLookUp("cli", "c_cle2", d_cat1, "c_email").ToString();

Si l'évaluation de l'expression produit une erreur (par exemple, utilisation d'un champ inexistant), alors elle affiche ce contenu : "!!! Error !!! (click here)" et il suffit de cliquer dans l'expression pour obtenir le message d'erreur détaillé.

Caption
La propriété "Caption" des expressions est destinée à recevoir une information qui est affichée dans l'expression quand le signalétique est en mode "paramétrage". Il s'agit donc d'une information totalement libre, qui n'est pas utilisée par Mercator et qui permet simplement une identification rapide de chaque expression en mode "paramétrage".

Evaluation des expressions
Toutes les expressions d'un signalétique sont évaluées lors de la lecture d'une fiche de signalétique.

Il est possible toutefois de provoquer un recalcul d'une expression au départ d'un ou de plusieurs autres objets de la fiche (ici sans changer de fiche). Pour cela, il faut lier l'expression à ce ou ces objets par sa propriété "RefreshedBy". Cette dernière peut contenir un ou plusieurs ID (à mettre en liste, un élément par ligne) correspondant à ces objets qui devront provoquer la réévaluation de l'expression.
Pour rappel, l'ID d'un objet est disponible dans sa fenêtre de propriété et est facilement copiable.

Performances
Chaque expression donne lieu à un asssembly, compilé lors de sa création en mode "paramétrage" et stocké dans la database SQL (table Assemblies). Les mécanismes .net sont tels que le premier chargement d'un assembly peut être quelque peu pénalisant en terme de temps et donc de performances. Dès lors, si un très grand nombre d'expressions sont placées dans un même signalétique, cela peut grever le temps du premier affichage de ce signalétique. Dans ce cas, il est préférable d'utiliser un customizer. Celui-ci peut en effet, à partir d'un seul assembly, gérer un nombre illimité d'objets.