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 "Commence par" sur un fichier de données, une vue ou une requête. Le filtre de type "Commence par" permet de sélectionner tous les enregistrements commençant par une suite de caractères définie.
Après son exécution, les cas suivants sont les plus fréquents :
  • le filtre ne peut pas être créé : la fonction HFiltreCommencePar renvoie une chaîne vide (""). La fonction HErreur permet de récupérer l'identifiant de l'erreur.
  • le filtre est créé : la fonction HFiltreCommencePar 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é est une chaîne
// Sélectionne tous les clients habitant la ville commençant par "Mon"
MaClé = HFiltreCommencePar(Client, Ville, "Mon")
HLitPremier(Client, MaClé)
TANTQUE PAS HEnDehors()
Trace(Client.NomClient, Client.Ville) 
HLitSuivant(Client, MaClé)
FIN
...
// Annule le filtre
HDésactiveFiltre(Client)
Syntaxe
<Résultat> = HFiltreCommencePar(<Fichier de données> , <Rubrique clé> , <Filtre pour la composante 1 de la clé> [, <Filtre pour la composante 2 de la clé> [... [, <Filtre pour 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 HFSQL, 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.
<Filtre pour la composante 1 de la clé> : Type de la première composante de la clé de parcours
Valeur recherchée pour la première composante (respectivement 2ème, ...) de la clé composée.
Le type de ce paramètre doit correspondre au type de la composante de la rubrique clé sur laquelle le filtre est défini.
<Filtre pour la composante 2 de la clé> : Type de la seconde composante de la clé de parcours
Valeur recherchée pour la seconde composante de la clé composée.
Le type de ce paramètre doit correspondre au type de la composante de la rubrique clé sur laquelle le filtre est défini.
<Filtre pour la composante N de la clé> : Type de la composante N de la clé de parcours
Valeur recherchée pour la composante N de la clé composée.
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 HFiltreCommencePar gère automatiquement les filtres sur les clés simples comme sur les clés composées.
Exemple 1 : Utilisation de la fonction HFiltreCommencePar avec une clé simple :
Res = HFiltreCommencePar(Client, Nom, "A")
// Sélection de tous les clients dont le nom commence par A
Exemple 2 : Utilisation de la fonction HFiltreCommencePar avec une clé composée de deux rubriques :
// Exemple avec NomPrénom une clé composée de : Nom + Prénom
// Sélection de tous les clients dont le nom est DUPONT 
// et le prénom commence par C
Res = HFiltreCommencePar(Client, NomPrénom, "DUPONT", "C")
Cette ligne de code est équivalente à :
HFiltre(Client, NomPrénom, ...
HConstruitValClé(Client, NomPrénom, "DUPONT", "C") + hValMin, ...
HConstruitValClé(Client, NomPrénom, "DUPONT", "C") + hValMax)
Exemple 3 : Utilisation de la fonction HFiltreCommencePar avec une clé composée de trois rubriques :
// Exemple avec FACTCLI une clé composée de : NuméroClient+Date+Heure
// Toutes les factures d'un client (triées par date)
Res = HFiltreCommencePar(Facture, FACTCLI, Client.NumCli)
Cette ligne de code est équivalente à :
HFiltre(Facture, FactCli, ...
HConstruitValClé(Facture, FactCli, Client.NumCli) + hValMin, ...
HConstruitValClé(Facture, FactCli, Client.NumCli) + hValMax)
Exemple 4 : Utilisation de la fonction HFiltreCommencePar avec une clé composée de trois rubriques :
// Exemple avec FACTCLI une clé composée de : NuméroClient+Date+Heure
// Toutes les factures du jour d'un client (triées par date)
Res = HFiltreCommencePar(Facture, FactCli, Client.NumCli, DateDuJour())
Cette ligne de code est équivalente à :
HFiltre(Facture, FactCli, ...
HConstruitValClé(Facture, FactCli, Client.NumCli, DateDuJour()) + hValMin, ...
HConstruitValClé(Facture, FactCli, Client.NumCli, DateDuJour()) + hValMax)

Filtre et parcours filtré :

Après l'exécution de la fonction HFiltreCommencePar, le parcours du fichier de données doit obligatoirement être effectué sur la rubrique renvoyée par la fonction HFiltreCommencePar. 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 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 HFiltreCommencePar 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êtesAndroidWidget AndroidCode Utilisateur (MCU)AjaxProcédures stockéesOLE DBConnecteurs Natifs (Accès Natifs)

Fichiers de données non HFSQL

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

Dernière modification : 25/05/2022

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