OPALE - 10.0 - Utilisation
Fonctions de chaines
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.