IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

comment Filtrer un champ contenant plus d'un mot


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2024
    Messages : 3
    Par défaut comment Filtrer un champ contenant plus d'un mot
    La bonne façon de filtrer un champ de chaîne avec plus d'un mot dans certains programmes : Si vous souhaitez rechercher un champ, vous écrivez le premier mot, puis / et utilisez un autre mot afin de rapprocher votre recherche de vous et de la rendre plus proche de vous. facile et dynamique. Merci d'avance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if Edit1.Text='' then
    begin
    FDM.ADOT1.Filter := 'colum like '+ QuotedStr ('%'+ Edit1.Text +'%');
    FDM.ADOT1.Filtered := True;
    end else
    FDM.ADOT1.Filtered := False;

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 962
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 962
    Par défaut
    Split et Join

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function CreateFilter(const aSearch :string) :string;
    begin
      var Texts := aSearch.Split(['/']);
     
      for var i := 0 to High(Texts) do
        Texts[i] := 'colum like ' +QuotedStr('%' +Texts[i] +'%');
     
      Result := string.Join(' and ', Texts);
    end;

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 123
    Par défaut
    Plusieurs LIKE dans le WHERE


    EDIT : Grillé
    PS : Faudrait la version de Delphi car le code ci-dessus est dans une syntaxe très moderne
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2024
    Messages : 3
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Plusieurs LIKE dans le WHERE


    EDIT : Grillé
    PS : Faudrait la version de Delphi car le code ci-dessus est dans une syntaxe très moderne
    XE8

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2024
    Messages : 3
    Par défaut
    Y a-t-il quelqu'un qui puisse répondre ?

  6. #6
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 942
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Je pensais que la réponse avait été donnée : ce n'est pas le cas ?
    S'il suffit d'adapter le code proposé vers une version de Delphi ne disposant pas des String.helpers utilisés, regarder du côté des TStringList devrait permettre de reproduire aisément leurs fonctionnalités.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Moi, quand je lis filtre, j'ai toujours des difficultés et réponds le plus souvent par SQL.

    Sans le SGBD, sans un exemple précis, sans la structure de la table, et sans la version de Delphi (déjà demandée) on n'avancera pas à grand-chose.
    Tout ce qui peut être déduit pour l'instant est qu'il s'agit de l'utilisation d'une table ADO. ADO que je n'installe jamais avec mes versions de Delphi tant j'en ai une allergie !

    Néanmoins, il y a l'événement OnFilterRecord qui pourrait aussi répondre à cette problématique sans trop se casser la tête avec des ANDs ou des ORs (on ne sait toujours pas s'il s'agit de l'un ou de l'autre ).

    Reste à comprendre ce qui est réellement demandé (le colum dans la clause me fait douter, pendant un moment, j'ai pensé que Edit1.Text contiendrait nomcolonne/valeur)

    Enfin, avec la version 12, Firedac réactualise le QBE qui pourrait rendre obsolete la demande

Discussions similaires

  1. [XL-2010] Comment Filtrer le champ d'un TCD en macro VBA (Tableau croisé dynamique)
    Par Demha_2022 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/04/2022, 23h44
  2. Réponses: 18
    Dernier message: 24/06/2011, 16h13
  3. comment ajouter un champs plus et donner les valeurs sous PDI
    Par helene0618 dans le forum kettle/PDI
    Réponses: 3
    Dernier message: 04/03/2009, 18h16
  4. Réponses: 6
    Dernier message: 16/10/2006, 10h37
  5. [ADO.NET][VB.Net]Comment filtrer certains champs de DataRow?
    Par Philorix dans le forum Accès aux données
    Réponses: 3
    Dernier message: 14/02/2006, 21h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo