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

WinDev Discussion :

[WD14] HLitRecherche problème sur HIdentique


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Points : 108
    Points
    108
    Par défaut [WD14] HLitRecherche problème sur HIdentique
    Bonjour à tous,

    J'utilise la fonction hlitrecherche avec l'option hidentique. Seul problème il me semble que cette fonction ne prends pas tous les caractères de mon libellé...

    Pour exemple,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Note d'honoraire pour la réalisation des déperditions et de la note de calcul réglementaire du chantier cité en référence.
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Note d'honoraire pour la réalisation des déperditions et puissance par pièces, du calcul réglementaire et des fiches énergétiques par logement du chantier cité en référence.
    ressortent identiques... Pourtant seul le début est identique.

    Dans mes 2 fichiers le champ est un memo texte. Mais dans le fichier facture (origine) il est non clé et dans l'autre (libelleFacture) il est clé sans doublon.



    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    HLitPremier(Facture)
    TANTQUE PAS HEnDehors(Facture)
    	HLitRecherche(LibelléFacture,Libelle,Facture.LibelléFacture,hIdentique)
    	SI PAS HTrouve ALORS
    		LibelléFacture.Libelle = Facture.LibelléFacture
    		HAjoute(LibelléFacture)
    	FIN
    	Facture.IDLibelléFacture = LibelléFacture.IDLibelléFacture
    	HModifie(Facture)
     
    	HLitSuivant(Facture)
    FIN

    Je n'arrive pas à comprendre pourquoi le hidentique ne fonctionne pas.

    Quelqu'un aurait une idée svp ?

    Merci par avance.

  2. #2
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Essaie avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HLitRecherchePremier(LibelléFacture,Libelle,Facture.LibelléFacture)
    Juste pour voir...

  3. #3
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Points : 108
    Points
    108
    Par défaut
    Je te remercie pour ta réponse.

    Ca ne change rien...

    Est-ce que ce ne serait pas un problème car ce sont des mémotextes ?

  4. #4
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    ah oui ça change tout en effet. c'est pas possible ça. Jze sais que sous la 14 il y a un nouveau truc pour faire des recherches dans des memo textes il faut suivre cette méthode.

  5. #5
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Points : 108
    Points
    108
    Par défaut
    OK merci pour l'info. Je vais regarder ça de près.....

    Mais si quelqu'un a une idée, n'hésitez pas

  6. #6
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Le texte suivant provient de Pc-Soft :

    Mise en place d’une recherche Fulltext dans une base HyperFileSQL existante.
    La recherche FullText permet de réaliser des recherches complexes dans un fichier de données. Le principe est simple : la recherche est réalisée sur plusieurs rubriques texte à la fois (y compris sur des contenus au format RTF ou HTML).
    C’est le principe de recherche que vous utilisez quotidiennement avec google.
    Les index FullText permettent simplement d’indexer non plus des mots isolés mais directement le contenu des documents.

    La mise en place d'une recherche Fulltext se fait en 3 étapes :
    1. Création des index full-text
    2. Création d'une requête
    3. Analyse du résultat.
    1 Créer les index Fulltext :

    La création des index Fulltext est réalisée dans l'éditeur d'analyse. Dans la description des rubriques du fichier de données :
    - cliquez sur l'icône "Index fulltext".
    - sélectionnez les rubriques texte à prendre en compte dans l'index fulltext
    - indiquez les caractéristiques des rubriques à indexer : texte au format RTF ou HTML, recherches case sensitive, gestion des accents et des caractères spéciaux.



    2. Créer une requête avec l’éditeur de requêtes :
    Pour effectuer la recherche fulltext, il faut créer une requête. La création de la requête est réalisée avec l'assistant, comme d'habitude.
    Seule différence : la rubrique FullText doit être ajoutée au résultat de la requête et une condition doit être définie sur cette rubrique.
    La condition peut correspondre à un paramètre ou à une valeur spécifique.

    - Comportement par défaut :
    Par défaut la recherche trouve tous les enregistrements contenant un des mots contenus dans le paramètre.
    Les enregistrements contenants tous les mots sont affichés en premier (indice de pertinence plus grand).
    Si vous avez coché l’option Tous les mots doivent être présents, par défaut seuls les enregistrements contenant tous mots sont trouvés.

    - Pertinence du résultat :
    Le résultat d'une requête fulltext donne pour chaque enregistrement la pertinence de l'enregistrement par rapport à la valeur de recherche.
    Si la pertinence est égale à 0, le texte recherché n’est pas présent.
    Plus la pertinence est grande, plus le texte recherché est présent dans la réponse.
    Par défaut, seuls les enregistrements pertinents sont affichés et ils sont triés selon cette pertinence.

    3. Utilisation de la requête :
    La requête fulltext s’utilise comme une requête classique avec paramètre.
    Grâce à de nombreux opérateurs combinables (+,-,*,(…),~, «…»), il est possible de réaliser des recherches très précises et aux possibilités multiples. Ces recherches peuvent être réalisées directement par vous (par programme) ou par l'utilisateur final (si l'application le permet).

    Exemples :
    - Je recherche les enregistrements qui contiennent le mot « WinDev » et pas le mot « WebDev » : le paramètre sera : WinDev –WebDev.
    - Je recherche les enregistrements qui contiennent la phrase "Exemples livrés", le mot "WinDev" et tous les mots commençant par "email" : le paramètre sera : « Exemples livrées » +WinDev +email*

    - Documentation des opérateurs :
    + : indique que le mot doit être obligatoirement présent dans le résultat
    (n’est pas utile si on a coché "Tous les mots doivent être présents dans la requête").
    - : indique que le mot ne doit pas être présent dans le résultat
    (…) : sert à grouper des mots en sous-expressions. Les groupes de parenthèses peuvent être imbriquées.
    ~ : marque la négation, et fait que la contribution du mot à la pertinence sera négative. Cet opérateur est pratique pour marquer les mots ambigus. Une ligne qui contient un tel mot sera classée bien plus bas, mais elle ne sera pas exclue, comme ce serait le cas avec -.
    * : opérateur de troncature. Contrairement aux autres opérateurs, il doit être en suffixe et non pas en préfixe.
    "…" : Une phrase entre guillemets double (‘"’) est recherchée littéralement, telle qu'elle a été saisie.

    Cette recherche est très performante et permet d’indexer des quantités d’informations. On peut par exemple indexer toute une base documentaire de manière automatique.
    N'hésitez pas à mettre en place une recherche FullText dans vos applications, c'est simple et rapide et vos utilisateurs apprécieront cette nouvelle fonctionnalité de la version 14 .

  7. #7
    Membre expérimenté Avatar de klbsjpolp
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 065
    Points : 1 322
    Points
    1 322
    Par défaut
    Extrait de l'aide de la fonction HLitRecherche (dans les Notes)
    Recherche générique / Recherche à l'identique
    ...
    Si vous utilisez des nouveaux fichiers au format HyperFileSQL Classic :

    Sous l'éditeur d'analyses, l'option "Mode Classic - Rubriques texte terminées par un caractère binaire zéro "\0"" est automatiquement cochée.

    Pour effectuer une recherche à l'identique, il suffit d'utiliser :

    - soit la fonction HLitRecherchePremier

    - soit la fonction HLitRecherche en ajoutant la valeur Caract(0) à la fin de la valeur recherchée.

  8. #8
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par klbsjpolp Voir le message
    Extrait de l'aide de la fonction HLitRecherche (dans les Notes)
    J'ai essayé mais ça ne fontionne pas plus...

  9. #9
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Points : 108
    Points
    108
    Par défaut
    Ca y est j'ai trouvé. Ca ne venait pas de mon code ni du fait que c'était un mémotexte MAIS du fait qu'un des deux libellé était clé sans doublon. J'ai mis non clé et tout à fonctionné direct...

    Merci pour tes recherches et ton aide

    Et même pour être encore plus clair pour ceux que ça pourrait aider, on peut laisser en clé mais il faut penser à augmenter la taille de la partie indexée à plus de 20 caractères comme indiqué d'origine

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème sur la recherche fulltext en v4 !
    Par poppa dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/05/2004, 23h06
  2. Problème sur fiche MDIchild
    Par nivet dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/01/2004, 08h07
  3. Problème sur GetPrivateProfileString ???
    Par Bordelique dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2003, 22h15
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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