4D v14.3

Trouver dans champ

Accueil

 
4D v14.3
Trouver dans champ

Trouver dans champ 


 

Trouver dans champ ( champCible ; valeur ) -> Résultat 
Paramètre Type   Description
champCible  Champ in Champ sur lequel effectuer la recherche
valeur  Champ, Variable in Valeur à rechercher
in Valeur trouvée
Résultat  Entier long in Numéro de l’enregistrement trouvé ou -1 si pas d’enregistrement trouvé

La commande Trouver dans champ retourne le numéro du premier enregistrement dont le champ champCible est égal à la valeur valeur.
Si aucun enregistrement ne correspond au critère, Trouver dans champ retourne -1.

Après l’appel, le paramètre valeur contient la valeur effectivement trouvée. Ce fonctionnement permet d’effectuer des recherches utilisant le caractère “@” sur des champs de type alpha, et pour lesquelles il est nécessaire de récupérer la valeur trouvée.

La commande ne modifie ni la sélection courante, ni l’enregistrement courant.

Cette fonction, très rapide, est particulièrement utile pour prévenir la création de doublons au moment de la saisie de données.

Note historique : Dans les anciennes versions de 4D, la commande Trouver dans champ était nommée Trouver clef index et ne fonctionnait qu'avec les champs indexés. La commande a été renommée et la limitation supprimée à compter de 4D v11 SQL.

Dans une base de données de CD audio, vous souhaitez vérifier, au moment de la saisie d’un nouveau nom de chanteur, si celui-ci n’existe pas déjà dans la base. Comme il peut exister des homonymes, vous ne souhaitez pas toutefois que le champ [Chanteur]Nom soit unique. Pour cela, dans le formulaire d’entrée, vous écrivez dans la méthode objet du champ [Chanteur]Nom :

 Si(Evenement formulaire=Sur données modifiées)
    $EnrgNum:=Trouver dans champ([Chanteur]Nom;[Chanteur]Nom)
    Si($EnrgNum #-1) ` Si ce nom a déjà été saisi
       CONFIRMER("Un chanteur de ce nom existe déjà. Voulez-vous visualiser sa fiche ?";"Oui";"Non")
       Si(OK=1)
          ALLER A ENREGISTREMENT([Chanteur];$EnrgNum)
       Fin de si
    Fin de si
 Fin de si

Voici un exemple permettant de vérifier l'existence d'une valeur :

 C_ENTIER LONG($id;$1)
 $id:=$1
 Si(Trouver dans champ([MaTable]MonID;$id)>=0)
    $0:=Vrai
 Sinon
    $0:=Faux
 Fin de si

Remarquez le >= qui permet de couvrir tous les cas. En effet, la fonction retourne un numéro d'enregistrement et le premier enregistrement porte le numéro 0.

 
PROPRIÉTÉS 

Produit : 4D
Thème : Recherches et tris
Numéro : 653
Nom intl. : Find in field

 
HISTORIQUE 

Modifié : 4D v11 SQL

 
MOTS-CLÉS 

Trouver clef index

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v12.4)
4D - Langage ( 4D v11 SQL Release 6)
4D - Langage ( 4D v14 R3)
4D - Langage ( 4D v14 R2)
4D - Langage ( 4D v13.5)
4D - Langage ( 4D v14.3)
4D - Langage ( 4D v14 R4)