DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Fonctions HFSQL
  • Gestion automatique des clés composées
  • Filtre et parcours filtré
  • Activation/désactivation d'un filtre
  • Fichiers de données non HFSQL
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Définit et active un filtre de type "Compris entre" sur un fichier de données, une vue ou une requête. Le filtre de type "Compris Entre" permet de sélectionner tous les enregistrements compris entre deux valeurs données.
Après son exécution, les cas suivants sont les plus fréquents :
  • le filtre ne peut pas être créé : la fonction HFiltreComprisEntre renvoie une chaîne vide (""). La fonction HErreur permet de récupérer l'identifiant de l'erreur.
  • le filtre est créé : la fonction HFiltreComprisEntre renvoie la clé de parcours optimale à utiliser pour réaliser le parcours du fichier de données, de la vue ou de la requête.
Exemple
MaCléParcours est une chaîne
MaCléParcours = HFiltreComprisEntre(Client, NomPrénom, ...
		"A", "B" + hValMax, hSéparateurBorne, "C", "D" + hValMax)
// Sélection de tous les clients dont le nom est compris entre A et C
// et dont le prénom est compris entre C et D
HLitPremier(Client, MaCléParcours)
TANTQUE PAS HEnDehors(Client)
	Trace(Client.NomClient, Client.Ville)
	HLitSuivant(Client, MaCléParcours)
FIN
...
// Désactive le filtre
HDésactiveFiltre(Client)
Syntaxe
<Résultat> = HFiltreComprisEntre(<Fichier de données> , <Rubrique clé> , <Borne min de la composante 1 de la clé> [, <Borne min de la composante 2 de la clé> [... [, <Borne min de la composante N de la clé>]]] , <hSéparateurBorne> , <Borne max de la composante 1 de la clé> [, <Borne max de la composante 2 de la clé> [... [, <Borne min de la composante N de la clé>]]])
<Résultat> : Chaîne de caractères
Rubrique de parcours. Correspond :
  • soit à la clé de parcours du fichier de données si le filtre est activé.
  • soit à une chaîne vide ("") si le filtre ne peut pas être mis en place.
<Fichier de données> : Chaîne de caractères
Nom du fichier de données, de la vue ou de la requête manipulé.
<Rubrique clé> : Chaîne de caractères
Nom de la rubrique clé sur laquelle le filtre doit être réalisé. Cette rubrique peut être une clé simple de type chaîne ou une clé composée.
Attention : ce paramètre ne doit contenir que des lettres, des caractères soulignés ou des chiffres. Dans le cas contraire, il faut entourer le nom de guillemets.
<Borne min de la composante 1 de la clé> : Type de la première composante de la clé de parcours
Borne minimale pour la première (respectivement deuxième, ...) composante de la clé composée. Les enregistrements correspondant à cette valeur sont inclus dans le filtre.
Le type de ce paramètre doit correspondre au type de la composante de la rubrique clé sur laquelle le filtre est défini.
<Borne min de la composante 2 de la clé> : Type de la seconde composante de la clé de parcours
Borne minimale pour la seconde composante de la clé composée. Les enregistrements correspondant à cette valeur sont inclus dans le filtre.
Le type de ce paramètre doit correspondre au type de la composante de la rubrique clé sur laquelle le filtre est défini.
<Borne min de la composante N de la clé> : Type de la nième composante de la clé de parcours
Borne minimale pour la nième composante de la clé composée. Les enregistrements correspondant à cette valeur sont inclus dans le filtre.
Le type de ce paramètre doit correspondre au type de la composante de la rubrique clé sur laquelle le filtre est défini.
<hSéparateurBorne> : Constante de type Entier
La constante hSéparateurBorne permet de séparer les valeurs des bornes minimales et maximales pour les composantes de la clé composée.
<Borne max de la composante 1 de la clé> : Type de la première composante de la clé de parcours
Borne maximale pour la première (respectivement deuxième, ...) composante de la clé composée. Les enregistrements correspondant à cette valeur sont inclus dans le filtre.
Le type de ce paramètre doit correspondre au type de la composante de la rubrique clé sur laquelle le filtre est défini.
<Borne max de la composante 2 de la clé> : Type de la seconde composante de la clé de parcours
Borne maximale pour la seconde composante de la clé composée. Les enregistrements correspondant à cette valeur sont inclus dans le filtre.
Le type de ce paramètre doit correspondre au type de la composante de la rubrique clé sur laquelle le filtre est défini.
<Borne min de la composante N de la clé> : Type de la nième composante de la clé de parcours
Borne minimale pour la nième composante de la clé composée. Les enregistrements correspondant à cette valeur sont inclus dans le filtre.
Le type de ce paramètre doit correspondre au type de la composante de la rubrique clé sur laquelle le filtre est défini.
Remarques

Gestion automatique des clés composées

La fonction HFiltreComprisEntre gère automatiquement les filtres sur les clés simples comme sur les clés composées.
Exemple : Utilisation de la fonction HFiltreComprisEntre avec une clé simple :
RésultatFiltre = HFiltreComprisEntre(Client, Nom, "A", hSéparateurBorne, "B" + hValMax)
// Sélection de tous les clients dont le nom est compris entre A et C
Exemple : Utilisation de la fonction HFiltreComprisEntre avec une clé composée
RésultatFiltre = HFiltreComprisEntre(Client, NomPrénom, "A", "B" + hValMax, ...
		hSéparateurBorne, "C", "D" + hValMax)
// Sélection de tous les clients dont le nom est compris entre A et C
// et dont le prénom est compris entre C et D
Cette ligne de code est équivalente à :
HFiltre(Client, NomPrénom, ...
	HConstruitValClé(Client, NomPrénom, "A", "B" + hValMin), ... 
	HConstruitValClé(Client, NomPrénom, "C", "D" + hValMax))

Filtre et parcours filtré

Après l'exécution de la fonction HFiltreComprisEntre, le parcours du fichier de données doit obligatoirement être effectué sur la rubrique renvoyée par la fonction HFiltreComprisEntre. Si une autre rubrique est utilisée pour le parcours du fichier de données, le filtre ne sera pas pris en compte.
Lorsqu'un filtre est défini et activé sur un fichier de données (une vue ou une requête), tout enregistrement lu correspond au filtre. Si il n'y a plus d'enregistrement correspondant au filtre lors du parcours :
  • la fonction HEnDehors renvoie Vrai.
  • l'enregistrement en cours correspond au dernier enregistrement lu avec le filtre.
Par exemple :
Sur un fichier de données filtré, après la fonction :l'enregistrement en cours est :
HLitPremierle premier enregistrement du fichier de données correspondant au filtre
HLitDernierle dernier enregistrement du fichier de données correspondant au filtre
HLitSuivant (ou HAvance)l'enregistrement suivant (ou le nième suivant) correspondant au filtre
HLitPrécédent (ou HRecule)l'enregistrement précédent (ou le nième précédent) correspondant au filtre

Activation/désactivation d'un filtre

  • La fonction HDésactiveFiltre permet de désactiver un filtre.
  • La fonction HActiveFiltre permet de ré-activer un filtre.
  • Lorsque le fichier de données (la requête ou la vue) est fermé (fonction HFerme par exemple), le filtre est supprimé.
  • A un même instant, il ne peut exister qu'un seul filtre sur un fichier de données (une requête ou une vue). Si la fonction HFiltreComprisEntre est utilisée plusieurs fois, seul le dernier filtre sera pris en compte : le(s) filtre(s) précédent(s) seront supprimés. De même si plusieurs filtres sont utilisés (fonctions HFiltre*), seul le dernier filtre sera pris en compte.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)AjaxProcédures stockéesOLE DBConnecteurs Natifs (Accès Natifs)

Fichiers de données non HFSQL

Composante : wd300hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 03/06/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale