Outils pour utilisateurs

Outils du site


doc:v3:acquisition:apprentissage:fonctionsevaluation

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:v3:acquisition:apprentissage:fonctionsevaluation [2017/12/29 09:47]
romain [Rechercher la position d'une chaine xxx depuis le debut]
doc:v3:acquisition:apprentissage:fonctionsevaluation [2023/03/17 09:56] (Version actuelle)
Ligne 1: Ligne 1:
 ====== Fonctions d'​évaluations ====== ====== Fonctions d'​évaluations ======
  
-===== Fonctions ===== 
-  
-==== Convertir en entier (cast) ==== 
  
-Double cliquez sur la fonction voulue donc "​**Convertir en entier**",​ cela fait apparaitre la fonction dans la zone texte au dessus.+===== Comment utiliser l'​interface et l'​assistant ? =====
  
-La fonction ​**long()** prend en paramètre ​une variable qu'elle transforme ​en entier.+Pour utiliser un élément ou une fonction ​
 +  - dans la zone de texte en haut, posistionnez le curseur à l'​endroit ou vous voulez l'​inclure 
 +  - Double cliquer sur la fonction ou l'​élément souhaité dans une des deux listes en dessous, la fonction ou l'élément apparait automatiquement ​en haut dans la zone de texte
  
-Dans la liste de champs en-dessous, il suffit donc de choisir le champs qui contient la valeur que vous souhaitez convertir. Faites un double clic.+Deux cas possibles :
  
-Vous verrez alors apparaitre ​la pseudo-variablecorrespondant au champs, ​dans la zone texteen argument ​de la fonction. +  * Soit vous avez une fonction comme split, qui affiche un point "​."​ devant, ​ exemple: .split("​-"​) 
-A moins d'une erreuril n'y a plus qu'à cliquer sur Valider pour que votre choix soit prêt à être appliquéIl est indiqué ​dans le formulairesection "**Options de capture**"+  * Soit vous avez une fonction sans point devant, donc avec () à la fin 
 + 
 +Dans le **premier cas**, le champs à impacter doit être placé devant le point qui précède la fonction donc : 
 +<​code>​ 
 +@FLD19.split('​-') 
 +</​code>​ 
 +Dans le **second cas**le champs ​à impacter sera entre parenthèses,​ comme un argument en programmation : 
 + 
 +Dans ce second cas, la position du champs dépend ensuite de la fonctionpour plus d'​informations,​ voir le sommaire ​de cette page et cherchez ​la fonction ​concernée
 + 
 +Vous pouvez également dans la zone **Options de capture** > **Fonction**,​ appeler vos propres fonctions. **todo** 
 +===== Fonctions disponibles ===== 
 + 
 +====  Concaténation ​d'éléments ​ ==== 
 +<​code>​@concat</​code>​ 
 +Permet de concaténer les valeurs de chacun des paramètres qui lui sont fournis. 
 + 
 +Il est également possible de spécifier un séparateur. 
 + 
 +{{wiki:​icons:​info.png}} Elle vous permet de réaliser des opérations de concaténation directement dans votre champ de recherche variable sans passer par un second champ de type spécifique. 
 + 
 +=== Options de capture === 
 + 
 +Deux syntaxes sont possibles. 
 + 
 +Sans spécifier de séparateur:​ 
 +<​code>​@concat(valeur1,valeur2,​...,​valeurN)</​code>​ 
 + 
 +En spécifiant un séparateur:​ 
 + 
 +<​code>​@concat('@sep:​separateur',​valeur1,​valeur2,​...,​valeurN)</​code>​ 
 + 
 +Où //​separateur//​ peut être le caractère (ou chaîne de caractères) de votre choix à l'​exception du caractère quote simple. 
 + 
 +Chaque valeur peut être 
 +  * Une chaîne de caractères encadrée par des quotes simples. 
 +  * Un numérique. 
 +  * [[#​@self|@self]] : une référence au champ lui-même. 
 +  * [[#​@<​groupname>​|@<​groupname>​]] : une référence à une capture ​dans le filtre de champ. (effectuée dans le filtre de champ). 
 + 
 +====  Date d'​échéance ​ ==== 
 +<​code>​@dateecheance(@fldX,jours)</​code>​ 
 +une macro qui fait une chose bien pratique de façon simple.  
 +== Options de capture== 
 + 
 + 
 +@fldX 
 +La référence au champ date. 
 + 
 +jours 
 +Le nombre de jours que l'on souhaite ajouter à la date 
 +====  Concaténation de Date ==== 
 +**@concatdate** permet de concaténer les valeurs de chacun des paramètres qui lui sont fournis et en plus leur applique la macro @Smartdate. 
 +<​code>​@concatdate(valeur1,​valeur2,​...,​valeurN)</​code>​ 
 + 
 +ou 
 +<​code>​@concat('​@sep:​separateur',​valeur1,​valeur2,​...,​valeurN)</​code>​ 
 + 
 +Pour plus de détails se référer à la macro [[#​Concaténation d'​éléments|@concat]] 
 + 
 +====  Concaténation d'​éléments et conversion en Date ==== 
 + 
 + 
 +**@concatdate** permet de concaténer les valeurs de chacun des paramètres qui lui sont fournis et en plus leur applique la macro **@Smartdate**. 
 +<​code>​@concatdate(valeur1,​valeur2,​...,​valeurN)</​code>​ 
 + 
 +ou 
 +<​code>​@concat('​@sep:​separateur',​valeur1,​valeur2,​...,​valeurN)</​code>​ 
 + 
 +Pour plus de détails se référer à la macro [[#​Concaténation d'​éléments|@concat]]
 ==== Condition OU entre plusieurs champs ==== ==== Condition OU entre plusieurs champs ====
  
Ligne 26: Ligne 94:
  
 Où //​expression//​ doit être une expression python valide. ​ Où //​expression//​ doit être une expression python valide. ​
-Elle peut contenir des références à des champs d'​analyse COLD ([[cold:​reference:​coldfldextra:​fld|@FLDX]]).+Elle peut contenir des références à des champs d'​analyse COLD (**@FLD**//​xxx//​).
 **@condition** évalue l'​expression python fournie en paramètre. Elle retourne 1 si l'​expression est évaluée à vraie, et 0 si l'​expression **@condition** évalue l'​expression python fournie en paramètre. Elle retourne 1 si l'​expression est évaluée à vraie, et 0 si l'​expression
 est évaluée à faux. est évaluée à faux.
  
-{{wiki:​icons:​info.png}} Avant évaluation les références @FLDX sont remplacées par leurs valeurs et sont encadrées+{{wiki:​icons:​info.png}} Avant évaluation les références ​**@FLD**//​xxx// ​sont remplacées par leurs valeurs et sont encadrées
 par des simples quotes (sauf pour les valeurs 0, 1, True, False). par des simples quotes (sauf pour les valeurs 0, 1, True, False).
 Attention donc car un nombre devient une chaîne de caractère ! Il peut être alors nécessaire d'​utiliser des fonctions Attention donc car un nombre devient une chaîne de caractère ! Il peut être alors nécessaire d'​utiliser des fonctions
Ligne 87: Ligne 155:
 **@int2month** est une macro qui traduit un mois exprimé sous forme numérique dans sa représentation littérale. **@int2month** est une macro qui traduit un mois exprimé sous forme numérique dans sa représentation littérale.
  
 +====  Valeurs alternatives ====
 +
 +
 +
 +**
 +@alternative** renvoi la première valeur non vide parmi une liste de valeurs possibles.
 +<​code>​
 +@alternative(@FLD4,​@FLD3,'​Non renseignée'​)
 +</​code>​
 + La macro **@alternative** prend au minimum 2 paramètres.
 +
 +Chaque paramètre alternatif peut être :
 +
 +      * Une chaîne de caractère (encadrée ou non par des simples quotes ou des doubles quotes)
 +     ​* ​ Une référence à un champ (**@FLD**//​xxx//​).
 +
 +=== Exemple ===
 +
 +^ ID ^ Description du champ ^ Valeur retrouvée ^
 +|3| Adresse de facturation | 2 Rue Pégoud, 90130 PETIT-CROIX |
 +|4| Recherche Adresse de livraison| 1 Rue du Général de Gaulle, 90130 Montreux-Château |
 +
 +Nous avons deux champs. L'un nous retrouve l'​adresse de facturation. Le second l'​adresse de livraison.
 +Nous voudrions, si l'​adresse de livraison n'est pas spécifiée,​ choisir l'​adresse de facturation.
 +
 +Créons un champ supplémentaire de type spécifique et utilisons la macro @alternative
 +  @alternative(@FLD4,​@FLD3)
 +  ​
 +Le premier choix se porte sur le champ 4 (Recherche Adresse de livraison). S'il n'est pas trouvé on prendra la valeur
 +du champ 3 (Adresse de facturation).
 +
 +Et si aucun n'est trouvé et que l'on souhaite indexer une valeur par défaut :
 +  @alternative(@FLD4,​@FLD3,'​Non renseignée'​)
 + 
 +==== Convertir en entier (cast) ====
 +
 +Double cliquez sur la fonction voulue donc "​**Convertir en entier**",​ cela fait apparaitre la fonction dans la zone texte au dessus.
 +
 +La fonction **long()** prend en paramètre une variable qu'​elle transforme en entier.
 +
 +Dans la liste de champs en-dessous, il suffit donc de choisir le champs qui contient la valeur que vous souhaitez convertir. Faites un double clic.
 +
 +Vous verrez alors apparaitre la pseudo-variable,​ correspondant au champs, dans la zone texte, en argument de la fonction.
 +A moins d'une erreur, il n'y a plus qu'à cliquer sur Valider pour que votre choix soit prêt à être appliqué. Il est indiqué dans le formulaire, section "​**Options de capture**"​
 +
 +==== Couper sur séparateur (split) ====
 +
 +La fonction split génère un tableau contenant toutes les parties.
 +
 +Exemple : \\
 +"​559_1003"​.split("​_"​) donne
 +
 +["​559",​ "​1003"​]
 +
 +Les index sont : 0,1
 +
 +Ou la première case donc index 0 : "​559_1003"​.split("​_"​)[0] contient "​559"​\\
 +Et la deuxième case donc index 1 : "​559_1003"​.split("​_"​)[1] contient "​1003"​
 +
 +Vous pouvez aussi parcourir les cases depuis la fin donc en partant de -1 pour la première case :
 +
 +"​559_1003"​.split("​_"​)[-1] donne "​1003"​
  
 ====  Extraction d'une partie de la chaine ==== ====  Extraction d'une partie de la chaine ====
Ligne 94: Ligne 224:
  
  
-Il faut savoir qu'une chaine en python est en réalité un tableau de caractères affichés les uns à la suite des autres.+Il faut savoir qu'une chaine ​de texte en python est en réalité un tableau de caractères affichés les uns à la suite des autres.
  
 C'est à dire : "glou glou"​\\ C'est à dire : "glou glou"​\\
doc/v3/acquisition/apprentissage/fonctionsevaluation.1514540858.txt.gz · Dernière modification: 2023/03/17 09:56 (modification externe)