RecNo() ou RowNo() ? Entrée et sortie ne racontent pas la même chose
Les deux fonctions numérotent des lignes, mais pas au même endroit du chargement : RecNo() regarde les enregistrements lus, RowNo() les lignes produites.
La différence essentielle
RecNo() correspond à la position de l’enregistrement dans la source en cours de lecture. RowNo() correspond à la position de la ligne dans la table de sortie. Si toutes les lignes passent, les deux peuvent sembler identiques ; un filtre suffit à faire apparaître leur différence.
Le problème
Avec un WHERE, certaines lignes de la source sont lues puis rejetées. RecNo() peut alors présenter des trous tandis que RowNo() continue à numéroter les lignes réellement chargées.
À surveiller
// Ne pas supposer que les deux numéros seront toujours identiques.
LOAD
ID_COMMANDE,
RecNo() AS NumeroSource,
RowNo() AS NumeroSortie
RESIDENT CommandesSource
WHERE Montant > 0;Écriture conseillée
// Choisir selon le besoin :
// position dans la source lue
RecNo() AS NumeroSource
// position dans le résultat chargé
RowNo() AS NumeroSortie