OVRLAY : Superposer une chaîne de caractères

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).


Haut de page

x
Syntaxe : Superposer une chaîne de caractères
OVRLAY(source_string, length, substring, sublen, position, output)

où :

source_string

Alphanumérique

est la chaîne de caractères de base.

stringlen

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.

substring

Alphanumérique

est la sous-chaîne qui superpose source_string.

sublen

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.

position

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.

output

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.



Exemple : Remplacement de caractères dans une chaîne de caractères

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