Comment : |
Langages disponibles : reporting
La fonction OVRLAY superpose une base chaîne de caractères avec une sous-chaîne. Cette fonction vous permet d'éditer une partie d'un champ alphanumérique sans avoir à remplacer le champ en entier.
Il existe une version de la fonction OVRLAY qui est disponible uniquement dans le langage Maintain. Pour plus d'informations sur cette fonction, consultez OVRLAY : Superposer une chaîne de caractères (Maintain).
OVRLAY(source_string, length, substring, sublen, position, output)
où :
Alphanumérique
est la chaîne de caractères de base.
Entier
est le nombre de caractère dans source_string et output, ou dans un champ contenant la longueur. Si l'argument est inférieur ou égal à 0, le résultat de la fonction est imprévisible.
Alphanumérique
est la sous-chaîne qui superpose source_string.
Entier
est le nombre de caractère dans substring, ou un champ contenant la longueur. Si cet argument est égal ou inférieur à 0, la fonction renvoie les espaces.
Entier
est la position dans source_string à laquelle la superposition commence. Si l'argument est inférieur ou égal à 0, la fonction renvoie des espaces. Si cet argument est plus grand que stringlen, la fonction renvoie la chaîne source.
Alphanumérique
est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples. Si la superposition de chaîne est plus long que le champ de sortie, la chaîne est tronquée pour s'ajuster au champ.
Si la superposition de chaîne est plus longue que le champ de sortie, la chaîne est tronquée pour s'ajuster au champ.
OVRLAY remplace les trois derniers caractères de EMP_ID avec CURR_JOBCODE pour créer un nouveau code d'identification de sécurité; le résultat est stocké dans NEW_ID :
TABLE FILE EMPLOYEE
PRINT EMP_ID AND CURR_JOBCODE AND COMPUTE
NEW_ID/A9 = OVRLAY(EMP_ID, 9, CURR_JOBCODE, 3, 7, NEW_ID);
BY LAST_NAME BY FIRST_NAME
WHERE DEPARTMENT EQ 'MIS';
END
La sortie est :
LAST_NAME FIRST_NAME EMP_ID CURR_JOBCODE NEW_ID --------- ---------- ------ ------------ ------ BLACKWOOD ROSEMARIE 326179357 B04 326179B04 CROSS BARBARA 818692173 A17 818692A17 GREENSPAN MARY 543729165 A07 543729A07 JONES DIANE 117593129 B03 117593B03 MCCOY JOHN 219984371 B02 219984B02 SMITH MARY 112847612 B14 112847B14
WebFOCUS |