Tout d'abord, comme vous voulez effectuer une "recherche à l'identique", il vaudrait mieux utiliser HlitRecherchePremier.
HLitRecherche convient plutôt aux recherches génériques.
A lire votre projet de code, j'ai supposé que vous ne connaissiez pas le nom de la rubrique sur laquelle le HLitRecherche doit s'effectuer et que vous souhaitiez utiliser une procédure pour trouver / construire ce nom en fonction du contexte.
Dans ce cas, vous devez passez par l'indirection, en utilisant les accolades autour du résultat de votre procédure.
Dans ce cas, le code devait être :
HLitrecherchePremier(fichier, {procédure(fichier.rubrique)},valeurrecherchée)
Si vous le connaissez - par ex, Fichier.NoDeSérie, alors on retombe sur l'instruction classique et pas besoin d'accolades
<Résultat> = HLitRecherchePremier(<Nom du fichier>, <Nom de la rubrique> , <Valeur recherchée> [, <Options>])
Soit
<Résultat> = HLitRecherchePremier(Fichier, Fichier.NoDeSérie, <Valeur recherchée>)
créer un index sur la partie significative du numéro de série :
Le plus simple est d'ajouter une rubrique 'Fichier.CleNoDeSérie' de type chaîne à votre fichier et d'en faire une clé (a priori) unique.
Pour chaque enregistrement, il faudra prendre la valeur de Fichier.NoDeSérie, en enlever les leading zeros et affecter le résultat à Fichier.CléNoDeSérie.
Ensuite, les recherches seront effectuées comme suit :
<Résultat> = HLitRecherchePremier(Fichier, Fichier.CléNoDeSérie , <Valeur recherchée>)
Voilà, encore un peu de code à pondre ...
Bon travail
Hemgé
Partager