OPALE - 10.0 - Utilisation

Fonctions de chaines

De MappingDoc
Révision datée du 18 mars 2019 à 12:50 par imported>Admin

UpperLower

La fonction 1UpperLower permet de convertir une chaine de caractères initialement en majuscules ou minuscules dans un format où la première lettre de chaque mot sera une majuscule puis les autres des minuscules (proper case). TABLE.NAME = 1UpperLower ( TABLE.NAME )

Par exemple, CLIENT devient Client après conversion.

FindSubstring

L'opérateur FindSubstring permet de rechercher une sous-chaine de caractères dans une chaine de caractères donnée.

DB.FIND_POS = FindSubstring ( DB.STRING , DB.STRINGTOFIND , DB.STARTPOS )

Les positions sont "zéro base index", c'est-à-dire que le premier caractère est en position 0, le deuxième en position 1, etc.

  • DB.FIND_POS : Position de la chaine trouvée. Si aucune chaine n'est trouvée, cette valeur sera égale à -1.
  • DB.STARTPOS : Position de départ dans la chaine de caractères à partir de laquelle vous commencez à chercher.
  • DB.STRING : Chaine d'origine.
  • DB.STRINGTOFIND : Chaine recherchée.

Format

La nouvelle fonction Format accepte un champ en paramètre et le formate suivant le format passé en paramètre.

DB.str = Format ( DB.Total_Invoice , "Total reformaté ==> %010.5f" )
DB.str2 = Format ( DB.Total_TAX , "Total TTC 0 ==> %020.10f" )
% [Flags][Length][.precision]type

Type:

  • %d => Position du champ Entier
  • %f => Position du champ Float
  • %s => Position du champ String

Flags:

  • - => Alignement à gauche (à droite par défaut)
  • + => Permet d'ajouter un signe + devant les entiers (par défaut seuls les nombres négatifs ont un préfixe)
  • 0 => Si la longueur a un préfixe de 0, les blancs sont remplacés par des zéros

Length:

Permet de spécifier la longueur de champ. Non tronquée si la longueur est trop petite.

.Precision:

Spécifie le nombre de décimales affichées après la virgule

Exemple : DB.int = 123456 DB.str = Format ( DB.int , " mon entier reformaté %010d" ) Integer length 10. Blancs remplacés par des zéros DB.str => mon entier reformaté 0000123456 DB.fl = 1344.05 DB.str = Format ( DB.fl , "==> %020.10f" ) Float avec 10 décimales et longueur totale de 20 caractères DB.str => ==> 000001344.0500000000 DB.str = Format ( “test” , " %-15s" ) DB.str => “test “


Remarque :

La fonction Format n'est pas compatible avec les caractères Unicode.

FormatDate

La fonction FormatDate modifie le format de date imprimé.

TABLE.FIELD = FormatDate ( TABLE.FIELD , "format d'origine" , "nouveau format" , "langue" )

Exemple :

TABLE.DATE = FormatDate ( TABLE.DATE , "MM/YY" , "%B %y" , "English" )

Le format d'origine est MM/YY (03/07)

Le nouveau format est (March 07)

FormatString

La fonction FormatString permet de changer le format de la date et des heures.

TABLE.FIELD = FormatString ( TABLE.FIELD , "new format" )


Exemple :

TABLE.TEXT = FormatString ( TABLE.TEXT , "xx xx xx xx xx / xtotox xx xx xx")

Chaque "x" correspond à un caractère. Chaque caractère supplémentaire sera ajouté au résultat.Si la valeur du champ d'origine est "this is the text", la valeur reformatée sera "th is is th e t /toto ex t ".

Cette fonction peut aussi être utilisée pour convertir des prix en chaines de caractères en utilisant les opérateurs clés "money_fr" et "money_us". Plus généralement, il est aussi possible de convertir un nombre en lettres à l'aide de "convert_fr" et "convert_us".

DB.Sum = 123.55

DB.strSum = FormatString ( DB.Sum , "money_fr" )

La variable strSum contient la chaine : " Cent vingt trois, 55 "

DB.strSum = FormatString ( DB.Sum , "money_us" )

La variable strSum contient la chaine : " One hundred [and] twenty three, 55 "

GetLength

L'opérateur GetLength permet de renvoyer la longueur d'une chaine de caractères donnée.

Exemple :

DB.VALUE="TEST"
DB.LEN = GetLength ( DB.VALUE )

Dans cet exemple, DB.LEN est égal à 4.

IsNumeric

Cette fonction retourne 0 si la chaine de caractères passée en paramètre est non-numérique ou 1 si elle est numérique.

Iower

La fonction Lower convertit une chaine de caractères en minuscules.

TABLE.NAME = Lower ( TABLE.NAME )

Après conversion, CLIENT devient donc client.

MakeDate

MakeDate formate une date de la même façon que l'opérateur FormatDate à la différence près que MakeDate accepte un paramètre de plus qui peut être utilisé pour additionner ou soustraire un nombre de jours, mois ou années.

DB.date = “03/03”
DB.date = MakeDate ( DB.Date, "MM/YY" , "%B %y" , "English" , "+3m" )
DB.date => 3 June
Le format d'origine est MM/YY auquel sont ajoutés 3 mois (03/03) ce qui donne June 03.
La syntaxe du dernier champ est :
  • - + or – pour ajouter ou soustraire
  • - le nombre
  • - le type ( « d » pour day, « m » pour month , « y » pour year)