[resolu] Ce fichus filtre ne marche plus !!!
Stagiaire WDF
Inscrit:
23/07/2004 10:24
De St Ouen
Post(s): 38
Et c'est carrément la galère vus qu'il n'en fais plus qu'a sa tête ce c.. .
Je vais tacher d'être un peu plus clair quand même :
j'ai un fichier ou il y a la liste de mes clients sur lequel j'applique un filtre après avoir désactivé l'éventuel filtre présent sur le fichier, je lit le premier et je teste si je suis dehors ou pas.
Jusque là tout me semblait correcte et fonctionnais impeccable en 5.5, sauf que maintenant en version 8, une fois sur deux je suis dehors de suite alors que je travail toujours sur le même fichier et que je n'y effectue aucune modification. En conséquence je suis obligé de cliquer plusieur fois sur le bouton pour que mon traitement s'execute et je me vois mal expliquer à mon client que quand ses stats s'ffichent pas, faut cliquer sur le bouton jusqu'a temps qu'elles s'affichent.

Si quelqu'un à déjà connus ce problème et qu'il dispose d'une solution merci d'avance, je suis en train d'y perdre mon w-langage à ce rythme

Contribution le : 03/08/2004 15:44
_________________
......
Créer un fichier PDF de la contribution Imprimer


Re: Ce fichus filtre ne marche plus !!!
Stagiaire WDF
Inscrit:
02/08/2004 18:07
De Champs sur Marne / Strasbourg
Post(s): 14
Salut,

peux tu nous montrer ton code source?

je ne sais pas quelle méthode tu as utilisé pour le filtrage.

exemple de filtrage :

// - tableaffiche est remplis par le fichier client
// - filtrage simple avec borne entre 1 et 2, selon clé CLIENT.Phase
sValcle1 = HFiltre(CLIENT, CLIENT.Phase, 1,2 )
TableAffiche(Table_CLIENT)

// - Table_Actions est remplis par le fichier actionRéalisée
// - filtrage selon personne qui a créer tache et id personne sur qui on fait un suivi
sValcle1 = HConstruitValClé (ActionRéalisée,Select_taches,gpwRecupInfoUtilisateur(gpwInfonom),personne.IDPersonne)
Table_Actions..RubriqueParcourue= "Select_taches"
Table_Actions..Filtre=svalcle1
TableAffiche(Table_Actions)


Salutations.

Contribution le : 03/08/2004 16:13
Créer un fichier PDF de la contribution Imprimer


Re: Ce fichus filtre ne marche plus !!!
Stagiaire WDF
Inscrit:
23/07/2004 10:24
De St Ouen
Post(s): 38
Il s'agit d'un filtre tout simple, importé de WD5.5
HDésactiveFiltre(CLIENT)
SI COMRVS=1 ALORS // Pas d'opération
   HFiltre(CLIENT,CLCLEPRO,macd+Caract(0),macf+Caract(255))	
   HLitPremier(CLIENT,CLCLEPRO)
SINON
   ....
FIN
BOUCLE
   SI COMRVS=1 ALORS
      SI HEnDehors(CLIENT) ALORS SORTIR
   SINON
    // faire mon traitement

Dans mon cas les variables (macd et macf) qui servent à créer les bornes ne changent pas quand mon traitement s'exécute et quand il ne s'éxécute pas, de même que COMRVS, A moins que je ne débloque complétement et que je ne soit plus capable lire les infos du débugueur de windev (c'est toujours possible).
Mais de temps en temps je sorts au hendehors() et d'autres fois je sort pas et la j'y comprend plus rien.
Bon de toutes façon j'aurais probablement pas le temps d'y revenir ce soir, donc je reviendrai dessus avec la tête plus fraiche demain
Merci

Contribution le : 03/08/2004 17:57
_________________
......
Créer un fichier PDF de la contribution Imprimer


Re: Ce fichus filtre ne marche plus !!!
Stagiaire WDF
Inscrit:
02/08/2004 18:07
De Champs sur Marne / Strasbourg
Post(s): 14
Bonjour,

voici peut être des piste:
si macd, et macf ne sont pas des clés composées alors pkoiutiliser hValMin et hValMax ?

Filtre sur une clé composée (doc windev)

Pour construire la valeur d'une clé composée, utilisez la fonction HConstruitValClé.

Si la borne minimale et la borne maximale doivent être identiques, et si tous les composants de la clé ne sont pas spécifiés, il est nécessaire de compléter les bornes par les constantes hValMin et hValMax.
L'exemple suivant permet de rechercher tous les enregistrements du fichier client correspondant à "Moulin" :

HFiltre(Client,NomPrenom, ...

HConstruitValClé(Client, NomPrénom, "Moulin")+hValMin, ...

HConstruitValClé(Client, NomPrénom, "Moulin"+hValMax))



Pour construire la valeur d'une clé composée sans utiliser la fonction HConstruitValClé, il est nécessaire de :

compléter les composantes texte sur toute leur taille avec la constante hValMin.

convertir les composantes numériques grâce à la fonction HConvert.




Exemple :

MaClécomposée = Complète(Client.Nom, Dimension(Client.Nom),hValMin) + ...

Complète(Client.Prénom, Dimension(Client.Prénom), hValMin)



Remarques :

hValMin est équivalent à Caract(0)

hValMax est équivalent à caract(255)

Contribution le : 04/08/2004 09:04
Créer un fichier PDF de la contribution Imprimer


Re: Ce fichus filtre ne marche plus !!!
Stagiaire WDF
Inscrit:
23/07/2004 10:24
De St Ouen
Post(s): 38
J'ai vérifié, il s'agit d'un filtre sur une clé composé mais la complétion n'est pas indispensable en elle même (j'ai essayé avec et sans ça fonctionne de la même manière), le filtre s'applique correctement... quand il s'applique.
Le problème est que dans ce traitement pour une raison que j'ignore encore il se trouve que sur dix exécution succesives dans les mêmes conditions (je vais encore faire des tests histoire d'en être bien sur, il est toujours possible que j'ai raté un paramètre) il vas s'appliquer 5fois sans pb et le reste du temps, il vas me renvoyer hendehors après le hlitpremier sur la clée choisi et cé la que je capte plus.
Enfin merci pour les info, je vais voir ce que je peut faire avec.

Contribution le : 04/08/2004 11:57
_________________
......
Créer un fichier PDF de la contribution Imprimer


Re: Ce fichus filtre ne marche plus !!!
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour Benj

Pourquoi ne pas utiliser les nouvelles fonction de WinDev

MacléParcours est une chaîne

SI COMRVS=1 ALORS // Pas d'opération
  MaCléParcours = HFiltreComprisEntre(CLIENT,CLCLEPRO,macd+hValMin, macf+hValMax)
SINON
  ...
FIN

HLitPremier(Client,MacléParcours)
TANTQUE PAS H.EnDehors
  //Traitement
  HLitSuivant(Client,MaCléParcours)
FIN

Trace(Client.NomClient, Client.Ville)
HLitSuivant(Client,MacléParcours)
FIN
...
// désactive le filtre
HDesactiveFiltre(Client)


Contribution le : 05/08/2004 03:02
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Ce fichus filtre ne marche plus !!!
Stagiaire WDF
Inscrit:
23/07/2004 10:24
De St Ouen
Post(s): 38
J'ai essayé c'est pas mal, on fait des progrès maintenant ça ne marche plus jamais, et plus seulement un coup sur deux comme ça au moins je peut me concentrer sur une erreur de mon coté.

Bon finalement les murs de mon bureau on peut être une chance de survivre à ce douloureux passage



----------------------------------------------------
Bon après vérification j'aurais dut faire gaffe, il manquait le hSéparateurBorne entre les deux bornes et la ça fonctionne à tt les coups.
Yiiiiiiiiiiiiiiiipeeeeeeeeeeeeeee

Ca ne m'explique pas pourquoi le filtre flanchais de manière alléatoire avant mais bon c'est déjà un progrès.

Il ne me reste plus qu'un truc à faire maintenant c'est pouvoir faire de même quand je doit rajouter une condition au filtre, mais je devrais y arriver. Quite à filtrer à la main si y faut.

Merci tout le monde

Contribution le : 05/08/2004 11:00
_________________
......
Créer un fichier PDF de la contribution Imprimer


Re: Ce fichus filtre ne marche plus !!!
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Salut Benj,

Bien vu pour HSéparateurBorne j' ai saisi ce poste un peu tard dans la nuit comme tu peux voir l'heure, les yeux ne devaient plus être en face des trous

Contribution le : 05/08/2004 11:39
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Ce fichus filtre ne marche plus !!!
Stagiaire WDF
Inscrit:
23/07/2004 10:24
De St Ouen
Post(s): 38
cé pas grave ça m'as déjà rendu bien service à mon cuir chevelu qui commençais sérieusement à se dégarnir depuis deux jours.
;)

Contribution le : 05/08/2004 11:41
_________________
......
Créer un fichier PDF de la contribution Imprimer


Re: Ce fichus filtre ne marche plus !!!
Stagiaire WDF
Inscrit:
23/07/2004 10:24
De St Ouen
Post(s): 38
Bon j'en suis venus à bout, à force de lire la doc de windev pour trouver un truc qui fonctionne tout le temps.

Le truc c'est que le fonctionnement de hfiltre avec les clées composées semble assez aléatoire tant qu'on ne passe pas par la fonction hconstruitvalclé (merci Shutt même si j'ai pas capté tout de suite) donc au final j'ai trouvé les deux syntaxes là qui fonctionne tt le temps :
HFiltreComprisEntre(CLIENT,CLCLEPRO,macd+hValMin,hSéparateurBorne,macf+hValMax)

HFiltre(CLIENT,CLCLEPRO,HConstruitValClé(CLIENT,CLCLEPRO,macd+hValMin),HConstruitValClé(CLIENT,CLCLEPRO,macf+hValMax))

La deuxième syntaxe permetant de rajouter des conditions sur d'autres clées.
Par contre si un gentil devellopeur de chez PC soft passe par là et peut m'expliquer pourquoi la fonction hfiltre ne marche que quand elle est décidé quand on utilise pas Hconstruitvalclé ce serait cool

Un grand merci à Shutt et à Drcharly pour leur aide

Contribution le : 05/08/2004 14:32
_________________
......
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2