Fonction RECOFFSET( )

Renvoie une valeur de champ à partir d'un enregistrement qui correspond à un nombre défini d'enregistrements issus de l'enregistrement actuel.

Syntaxe

RECOFFSET(champ; nombre_d'enregistrements)

Paramètres

Nom Type Description
champ

caractère

numérique

DateHeure

Nom du champ dans lequel il faut récupérer la valeur.

nombre_d'enregistrements numérique

Nombre d'enregistrements issus de l'enregistrement actuel. Un nombre positif indique qu'il existe un enregistrement après l'enregistrement actuel, tandis qu'un nombre négatif indique qu'il existe un enregistrement antérieur à l'enregistrement actuel.

Sortie

Caractère, Numérique ou DateHeure. La valeur renvoyée appartient à la même catégorie de données que le paramètre d'entrée champ.

Exemples

Exemples basiques

Renvoie une valeur Montant à partir de l'enregistrement suivant :

RECOFFSET(Montant;1)

Renvoie une valeur Montant à partir de l'enregistrement précédent :

RECOFFSET(Montant; -1)

Exemples avancés

Utilisation de RECOFFSET dans un champ calculé

Le champ calculé Champ_Suivant affiche la valeur du champ Montant dans l'enregistrement suivant uniquement si ce dernier possède le même numéro de client.

Pour définir ce champ calculé dans un script, utilisez la syntaxe suivante :

DEFINE FIELD Montant_Suivant COMPUTED
RECOFFSET(Montant;1) IF RECOFFSET(Client;1) = Client
0

Montant_Suivant correspond à la valeur du champ Montant de l'enregistrement suivant uniquement si le numéro client de l'enregistrement suivant est le même que celui de l'enregistrement actuel. Sinon, la valeur zéro est attribuée à Montant_Suivant.

Remarques

La fonction RECOFFSET( ) renvoie une valeur de champ issue d'un enregistrement et qui correspond à un nombre spécifique d'enregistrements antérieurs ou postérieurs à l'enregistrement actuel.

Quand utiliser la fonction RECOFFSET( )

Cette fonction est généralement utilisée pour entreprendre des tests de comparaison avancés.

Cette fonction permet de comparer des valeurs de champ se trouvant dans l'enregistrement actuel avec un champ issu d'un autre enregistrement. Vous pouvez, par exemple, ajouter un champ calculé, chargé de calculer l'écart entre un montant de l'enregistrement actuel et un montant de l'enregistrement précédent.

Début ou fin d'une table

Si elle arrive à la fin ou au début de la table, la fonction renvoie la valeur zéro pour les champs numériques, une chaîne vide pour les champs de type caractère ou 1900/01/01 pour les champs de date. RECOFFSET( ) renvoie alors une sortie vide parce qu'il n'existe aucun enregistrement postérieur auquel comparer l'enregistrement actuel.