Fonctions de conversion
Les fonctions de conversion transforment des valeurs d’un type de données vers un autre. Ces fonctions sont essentielles pour garantir la compatibilité des données lors de la combinaison de différents types de données dans des expressions, ou lors de la préparation de données pour des formats de sortie spécifiques.
Fonction AsBoolean
La fonction AsBoolean convertit une expression en valeur booléenne (True ou False). Cette fonction est utile pour évaluer des conditions, vérifier des valeurs vides ou convertir des valeurs numériques et de chaînes en valeurs logiques.
Cette fonction renvoie un type de données Boolean.
Syntaxe
AsBoolean(expression)
|
Paramètre |
Description |
|---|---|
|
expression |
Obligatoire. La valeur à convertir en booléen. Peut être de n’importe quel type de données (nombre, chaîne, date ou null). |
Règles de conversion
|
Type d’entrée |
Règle de conversion |
|---|---|
|
Null |
Renvoie False |
|
Number |
Renvoie False si la valeur est 0 ; sinon renvoie True |
|
String |
Renvoie False si la chaîne est vide ("") ; sinon renvoie True |
|
Date |
Renvoie toujours True (toute date valide est considérée comme vraie) |
|
Boolean |
Renvoie la valeur inchangée |
Exemples
-
Convertir des valeurs numériques en booléen :
AsBoolean(1)
Résultat : True
AsBoolean(0)
Résultat : False
AsBoolean(-5)
Résultat : True
-
Convertir des valeurs de chaînes en booléen :
AsBoolean("Hello")
Résultat : True
AsBoolean("")
Résultat : False
-
Vérifier si un champ de destinataire contient une valeur. Supposons que le champ MiddleName puisse être vide pour certains destinataires :
AsBoolean(|->[MiddleName])
Si MiddleName = "Robert"
Résultat : True
Si MiddleName = ""
Résultat : False
-
Utiliser dans une expression conditionnelle pour vérifier des données valides :
If (AsBoolean(|->[PhoneNumber])) {"Contact available"} else {"No contact info"}
Si PhoneNumber = "555-1234"
Résultat : "Contact available"
Si PhoneNumber = ""
Résultat : "No contact info"
Fonction AsDate
La fonction AsDate convertit une expression en valeur de type Date. Cette fonction interprète les chaînes comme des dates, convertit les nombres en dates selon un système de date sérielle et gère les valeurs nulles en renvoyant la date et l’heure courantes.
Cette fonction renvoie un type de données Date.
Syntaxe
AsDate(expression)
|
Paramètre |
Description |
|---|---|
|
expression |
Obligatoire. La valeur à convertir en date. Peut être une chaîne, un nombre ou null. |
Règles de conversion
|
Type d’entrée |
Règle de conversion |
|---|---|
|
Null |
Renvoie la date et l’heure courantes |
|
Number |
Interprète le nombre comme le nombre de jours à partir du 31 décembre 1899. Par exemple, 1 = 1er janvier 1900. |
|
String |
Analyse la chaîne comme une date en utilisant les formats de date standard |
|
Date |
Renvoie la valeur inchangée |
Exemples
-
Convertir une chaîne de date en valeur Date :
AsDate("02/07/2006")
Résultat : 02/07/2006 (2 juillet 2006 ou 7 février 2006 selon les paramètres régionaux)
-
Convertir une chaîne de date avec un format différent :
AsDate("23/02/1994")
Résultat : 23/02/1994 (23 février 1994)
-
Convertir un nombre en date. Les nombres représentent les jours depuis le 31 décembre 1899 :
AsDate(1)
Résultat : 01/01/1900 (1er janvier 1900)
AsDate(44197)
Résultat : 01/01/2021 (1er janvier 2021)
-
Gérer les valeurs nulles (renvoie la date courante) :
AsDate(Null)
Résultat : [Date et heure courantes]
-
Convertir un champ de date d’un destinataire stocké sous forme de texte. Supposons que BirthDateText contient la chaîne "15/03/1985" :
AsDate(|->[BirthDateText])
Résultat : #15/03/1985#
-
Convertir un champ de date d’un destinataire stocké sous forme de texte et utiliser la fonction FormatDate() pour formater la chaîne de date comme souhaité. Supposons à nouveau que BirthDateText est "15/03/1985" :
FormatDate(AsDate(|->[BirthDateText]), "MMMM dd, yyyy")
Résultat : March 15, 1985
-
Calculer l’âge à partir d’une chaîne de date de naissance :
Floor(Age(AsDate(|->[BirthDateText])))
Si BirthDateText = "15/03/1985" et l’année en cours est 2024 :
Résultat : 39 (ou 38, selon que l’anniversaire est déjà passé cette année)
Remarque : L’analyse des chaînes de date dépend des paramètres régionaux du système. Assurez-vous que vos chaînes de date correspondent au format attendu pour votre environnement. Pour des résultats prévisibles, utilisez le format ISO (AAAA-MM-JJ) lorsque possible.
Fonction AsJsonArray
La fonction AsJsonArray prend plusieurs expressions séparées par des virgules et renvoie un tableau JSON contenant leurs valeurs. Cette fonction est utile pour transmettre plusieurs valeurs à d’autres fonctions, créer des données structurées pour des services web ou construire du contenu dynamique nécessitant un formatage en tableau.
Cette fonction renvoie un type de données String (formaté comme un tableau JSON).
Syntaxe
AsJsonArray(expression1, expression2, ...)
|
Paramètre |
Description |
|---|---|
|
expression1, expression2, ... |
Obligatoire. Une ou plusieurs expressions à inclure dans le tableau JSON. Peut être de n’importe quel type de données, y compris des références de champs, des littéraux et des valeurs calculées. |
Comportement
-
Les valeurs de chaînes sont encadrées par des guillemets doubles dans la sortie
-
Les valeurs numériques apparaissent sans guillemets
-
Les valeurs booléennes apparaissent comme true ou false (minuscules)
-
Les valeurs nulles apparaissent comme null
-
Les expressions sont évaluées avant d’être ajoutées au tableau
Exemples
-
Créer un tableau JSON avec des valeurs littérales :
AsJsonArray("apple", "banana", "cherry")
Résultat : ["apple","banana","cherry"]
-
Créer un tableau JSON avec des types de données mixtes :
AsJsonArray("John", 25, True)
Résultat : ["John",25,true]
-
Créer un tableau JSON avec des données de destinataires et des valeurs calculées :
AsJsonArray(|->[CustomerID], @{FirstName}, 1+3)
Si CustomerID = "ML343" et l’ADOR FirstName renvoie "John" :
Résultat : ["ML343","John",4]
-
Construire un tableau d’ID de produits pour un appel de service web :
AsJsonArray(|->[Product1], |->[Product2], |->[Product3])
Si Product1 = "SKU001", Product2 = "SKU002", Product3 = "SKU003" :
Résultat : ["SKU001","SKU002","SKU003"]
-
Créer un tableau avec des calculs numériques :
AsJsonArray(|->[Quantity], |->[UnitPrice], |->[Quantity] * |->[UnitPrice])
Si Quantity = 5 et UnitPrice = 19.99 :
Résultat : [5,19.99,99.95]
-
Construire un tableau d’informations de contact client :
AsJsonArray(|->[Email], |->[Phone], |->[Address])
Si Email = "john@example.com", Phone = "555-1234", Address = "123 Main St" :
Résultat : ["john@example.com","555-1234","123 Main St"]
Fonction AsNumber
La fonction AsNumber convertit une expression en valeur numérique. Cette fonction est essentielle pour effectuer des opérations mathématiques sur des données pouvant être stockées sous forme de texte, ou pour garantir que les comparaisons numériques fonctionnent correctement.
Cette fonction renvoie un type de données Number.
Syntaxe
AsNumber(expression)
|
Paramètre |
Description |
|---|---|
|
expression |
Obligatoire. La valeur à convertir en nombre. Peut être de n’importe quel type de données (chaîne, booléen, date ou null). |
Règles de conversion
|
Type d’entrée |
Règle de conversion |
|---|---|
|
Null |
Renvoie 0 |
|
Boolean |
Renvoie 1 pour True, 0 pour False |
|
String |
Extrait la partie numérique de début. Si la chaîne ne commence pas par un nombre, renvoie 0. |
|
Date |
Renvoie le numéro de date sérielle (jours depuis le 31 décembre 1899) |
|
Number |
Renvoie la valeur inchangée |
Exemples
-
Convertir des nombres sous forme de chaînes en valeurs numériques :
AsNumber("42")
Résultat : 42
AsNumber("+24")
Résultat : 24
AsNumber("-15.5")
Résultat : -15.5
-
Extraire des nombres de chaînes avec du texte en fin :
AsNumber("23ab")
Résultat : 23
AsNumber("100 units")
Résultat : 100
AsNumber("$50.00")
Résultat : 0 (la chaîne commence par un caractère non numérique)
-
Gérer les chaînes qui ne commencent pas par des nombres :
AsNumber("James")
Résultat : 0
AsNumber("ab23")
Résultat : 0
-
Convertir des valeurs booléennes :
AsNumber(True)
Résultat : 1
AsNumber(False)
Résultat : 0
-
Gérer les valeurs nulles :
AsNumber(Null)
Résultat : 0
-
Convertir un champ de destinataire stocké sous forme de texte pour effectuer des calculs. Supposons que QuantityOrdered est stocké comme texte "5" :
AsNumber(|->[QuantityOrdered]) * AsNumber(|->[UnitPrice])
Si QuantityOrdered = "5" et UnitPrice = "19.99" :
Résultat : 99.95
-
Calculer un total avec conversion numérique par sécurité :
AsNumber(|->[Subtotal]) + AsNumber(|->[Tax]) + AsNumber(|->[Shipping])
Si Subtotal = "150.00", Tax = "12.00", Shipping = "8.50" :
Résultat : 170.5
-
Compter les réponses en convertissant des réponses booléennes :
AsNumber(|->[OptIn1]) + AsNumber(|->[OptIn2]) + AsNumber(|->[OptIn3])
Si OptIn1 = True, OptIn2 = False, OptIn3 = True :
Résultat : 2
Important : Lors de la conversion de chaînes contenant des symboles monétaires ou d’autres caractères non numériques en début (comme "$50.00"), la fonction renvoie 0. Utilisez la fonction Replace() ou FindAndReplace() pour supprimer ces caractères avant la conversion, ou utilisez la fonction CleanNumber().
Fonction AsString
La fonction AsString convertit une expression en valeur de chaîne (texte). Cette fonction est utile pour concaténer différents types de données, préparer des données pour une sortie textuelle ou garantir un formatage de chaîne cohérent.
Cette fonction renvoie un type de données String.
Syntaxe
AsString(expression)
|
Paramètre |
Description |
|---|---|
|
expression |
Obligatoire. La valeur à convertir en chaîne. Peut être de n’importe quel type de données (nombre, booléen, date ou null). |
Règles de conversion
|
Type d’entrée |
Règle de conversion |
|---|---|
|
Null |
Renvoie une chaîne vide ("") |
|
Number |
Renvoie la représentation sous forme de chaîne du nombre |
|
Boolean |
Renvoie "True" ou "False" |
|
Date |
Renvoie la date formatée sous forme de chaîne en utilisant le format de date par défaut du système |
|
String |
Renvoie la valeur inchangée |
Exemples
-
Convertir des valeurs numériques en chaînes :
AsString(12)
Résultat : "12"
AsString(3.14159)
Résultat : "3.14159"
AsString(-42)
Résultat : "-42"
-
Convertir des valeurs booléennes en chaînes :
AsString(True)
Résultat : "True"
AsString(False)
Résultat : "False"
-
Gérer les valeurs nulles :
AsString(Null)
Résultat : "" (chaîne vide)
-
Concaténer un nombre avec du texte :
"Order #" + AsString(|->[OrderNumber])
Si OrderNumber = 12345 :
Résultat : "Order #12345"
-
Construire un message formaté avec des types de données mixtes :
"You ordered " + AsString(|->[Quantity]) + " items for $" + AsString(|->[Total])
Si Quantity = 3 et Total = 59.97 :
Résultat : "You ordered 3 items for $59.97"
-
Créer un identifiant unique en combinant des champs :
AsString(|->[CustomerID]) + "-" + AsString(|->[OrderID]) + "-" + AsString(|->[LineItem])
Si CustomerID = 1001, OrderID = 5432, LineItem = 2 :
Résultat : "1001-5432-2"
-
Construire une formule de salutation avec conversion sécurisée contre les null :
If (AsString(|->[Title]) != ""){AsString(|->[Title]) + " "} else {""} + AsString(|->[LastName])
Si Title = "Dr." et LastName = "Smith" :
Résultat : "Dr. Smith"
Si Title = Null et LastName = "Johnson" :
Résultat : "Johnson"
-
Formater un numéro de téléphone en convertissant et concaténant les parties :
"(" + AsString(|->[AreaCode]) + ") " + AsString(|->[PhonePrefix]) + "-" + AsString(|->[PhoneSuffix])
Si AreaCode = 555, PhonePrefix = 123, PhoneSuffix = 4567 :
Résultat : "(555) 123-4567"
Astuces :
-
Pour un meilleur contrôle du formatage des nombres et des dates sous forme de chaînes, envisagez d’utiliser les fonctions FormatNumber() ou FormatDate() au lieu de AsString(). Ces fonctions de formatage spécialisées offrent des options pour les décimales, les modèles de date et le formatage spécifique aux paramètres régionaux.
-
Lors de la concaténation d’ADOR ou de variables, l’utilisation de l’opérateur & au lieu de + forcera les valeurs à être traitées comme des chaînes. Par exemple, "Order #" & |->[OrderNumber] est identique à "Order #" + AsString(|->[OrderNumber])
Rubriques associées
-
Fonctions numériques - Fonctions pour les opérations mathématiques
-
Fonctions de chaînes - Fonctions de manipulation de texte
-
Fonctions de date - Fonctions pour les opérations de date et d’heure