Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:v3:acquisition:apprentissage:fonctionsspecifiques [2018/03/26 10:31] romain [Comment utiliser l'interface et l'assistant ?] |
doc:v3:acquisition:apprentissage:fonctionsspecifiques [2023/03/17 09:56] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Fonctions spécifiques ====== | ====== Fonctions spécifiques ====== | ||
- | ===== Comment utiliser l'interface et l'assistant ? ===== | ||
- | A venir... | ||
- | ===== 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 ==== | ||
- | |||
- | **@or** renvoi 1 (sous forme de chaîne de caractère) si les champs champ1 OU champ2 ont été retrouvés sur le document. | ||
- | Dans le cas contraire la chaîne vide sera renvoyée. | ||
- | |||
- | <code>@or(champ1,champ2)</code> | ||
- | |||
- | Où champ1 et champ2 sont des références de champs (@FLDX) | ||
- | |||
- | ====Condition évaluée ==== | ||
- | <code>@condition(<expression>)</code> | ||
- | |||
- | Où //expression// doit être une expression python valide. | ||
- | 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 | ||
- | est évaluée à faux. | ||
- | |||
- | {{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). | ||
- | Attention donc car un nombre devient une chaîne de caractère ! Il peut être alors nécessaire d'utiliser des fonctions | ||
- | de conversion ([[https://docs.python.org/2/library/stdtypes.html#numeric-types-int-float-long-complex|long(), int(), float()]]) | ||
- | |||
- | ====Conversion du jour numérique en texte ==== | ||
- | |||
- | **@int2day** est une macro qui traduit un jour exprimé sous forme numérique dans sa représentation littérale. | ||
- | |||
- | <code>@int2day(nombre)</code> | ||
- | |||
- | Où nombre peut prendre les valeurs suivantes: | ||
- | * 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. | ||
- | |||
- | |||
- | |||
- | @int2day(3) => mercredi | ||
- | @int2day("7") => dimanche | ||
- | | ||
- | | ||
- | En utilisant @self, si celui-ci vaut 5: | ||
- | @int2day(@self) => vendredi | ||
- | | ||
- | | ||
- | En utilisant une [[cold:reference:groupname|variable de capture]] //<jour>// qui vaut 1 | ||
- | @int2day(@<jour>) => lundi | ||
- | ==== Conversion du mois texte en mois numérique== | ||
- | <code>@monthint(mois)</code> | ||
- | |||
- | Où le paramètre //mois// est une chaîne de caractères qui représente l'écriture d'un mois sous sa forme littérale. | ||
- | |||
- | **@monthint** retourne le numéro (sur deux chiffres) du mois correspondant. | ||
- | |||
- | Ci dessous le tableau des correspondances entre un numéro et une représentation littérale du mois. | ||
- | |||
- | ^ Numéro de mois en sortie ^ Valeurs possibles en entrée ^ | ||
- | | 01 | ja, jan, janv, janu, janvi, janua, janvie, janvier, januar, january | | ||
- | | 02 | f, fe, fev, feb, fevr, febr, fevri, febru, fevrie, februa, fevrier, februar, february | | ||
- | | 03 | mar, mars, marc, march, marz | | ||
- | | 04 | av, ap, avr, apr, avri, apri, avril, april | | ||
- | | 05 | mai, may | | ||
- | | 06 | juin, jun, june, juni | | ||
- | | 07 | jul, july, juil, juill, juille, juillet | | ||
- | | 08 | au, ao, aug, aou, aout, augu, augus, august | | ||
- | | 09 | s, se, sept, septe, septem, septemb, septembe, septembr, septembre, september | | ||
- | | 10 | o, oc, oct, octo, octob, octobe, octobr, october, octobre, okt, oktober | | ||
- | | 11 | n, no, nov, nove, novem, novemb, novembr, novembe, novembre, november | | ||
- | | 12 | d, de, dec, dece, decem, decemb, decembr, decembe, decembre, december, dez, dezember | | ||
- | |||
- | |||
- | ==== Conversion du mois numérique en texte ==== | ||
- | |||
- | **@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') |