Comment : |
Langages disponibles : reporting
La fonction EDIT extrait les caractères d'une chaîne source et ajoute des caractères à la chaîne de sortie, par comparaison avec un masque. Elle peut extraire une sous-chaîne à partir de différentes parties de la chaîne source. Elle peut aussi insérer des caractères depuis la chaîne source dans la chaîne de sortie. Par exemple, on peut extraire les deux premiers caractères et les deux derniers caractères d'une chaîne pour former une seule sous-chaîne.
EDIT compare les caractères d'un masque à ceux d'un champ source. Quand il rencontre un neuf dans le masque, EDIT copie le caractère correspondant du champ source dans le nouveau champ. Lorsqu'elle trouve un signe dollar ($) dans le masque, EDIT ignore le caractère correspondant du champ source. Quand il rencontre n'importe quel autre caractère dans le masque, EDIT copies ce caractère à la position correspondante dans le nouveau champ. Ce processus s'arrête quand le masque est épuisé.
Remarque :
EDIT(source_string, 'mask');
où :
Alphanumérique
est la chaîne de caractères dont les caractères doivent être choisis. Chacun des 9 du masque représente un chiffre, ce qui fait que le champ source_string doit être au moins aussi long que la chaîne de 9.
Alphanumérique
est une chaîne de caractères de masque entre guillemets simples ou un champ contenant la chaîne de caractères entre guillemets simples . La longueur du masque, excluant tous les autres caractères autres que 9 et $, détermine la longueur d'un champ de sortie.
EDIT extraits de la première initiale du champ FIRST_NAME; le résultat est stocké dans FIRST_INIT. EDIT ajoute aussi des tirets à un champ EMP_ID; le résultat est stocké dans EMPIDEDIT : Le masque utilisé pour extraire la première initiale stockée dans le champ virtuel appelé MASK1 :
DEFINE FILE EMPLOYEE MASK1/A10 = '9$$$$$$$$$' END TABLE FILE EMPLOYEE PRINT LAST_NAME AND COMPUTE FIRST_INIT/A1 = EDIT(FIRST_NAME, MASK1); EMPIDEDIT/A11 = EDIT(EMP_ID, '999-99-9999'); WHERE DEPARTMENT EQ 'MIS'; END
La sortie est :
LAST_NAME FIRST_INIT EMPIDEDIT --------- ---------- --------- SMITH M 112-84-7612 JONES D 117-59-3129 MCCOY J 219-98-4371 BLACKWOOD R 326-17-9357 GREENSPAN M 543-72-9165 CROSS B 818-69-2173
Information Builders |