trie dynamique
Anonyme
j'envoie en parametre a un etat basé sur une table HF un nom de rubrique et le sens de trie et je voudrais par programmation effectuer le trie desirer. La table HF est deja filtrée dans l'etat par un hfiltre afin de ne visualiser que les enregistrement souhaité.
Une idée?

Contribution le : 16/09/2005 14:52
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour,
Vous avez défini un filtre sur le fichier pour réaliser votre état.
Pour assurer un tri complémentaire à ce filtre, il faut dans la description de l'état>données>tris et définir un tri comme vous l'entendez (il est préférable que cela soit sur une rubrique clé).

Ce tri s'ajoute au parcours du fichier trié !

Contribution le : 16/09/2005 15:09
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Anonyme
je ne connais pas le champ de trie ni le sens a l'avance, c est l utilisateur qui le parametrera cela doit etre dynamique

Contribution le : 16/09/2005 15:31
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
OK on avance...
Dans cet endroit, il est possible de définir un tri non pas sur une rubrique mais selon une procédure... locale à l'état.

Cette procédure devra retourner des valeurs dont l'interprétation déterminera le tri.
par exemple :
PROCEDURE TRI(pnTri est un entier = 1)
SELON pnTRI
CAS 1:
   // tri sur le nom : on retourne la rubrique nom
   RENVOYER FICHIER.NOM
CAS 2:
   // tri sur le prénom : on retourne la rubrique prénom
   RENVOYER FICHIER.PRENOM
CAS 3:
   // tri sur les initiales : on retourne le premières lettres des nom et prénoms
   RENVOYER gauche(FICHIER.NOM,1)+gauche(FICHIER.PRENOM,1)
AUTRES CAS
   RENVOYER ""
FIN


Votre état devra alors recevoir le paramètre pntri... pour déterminer l'ordre d'impression.
IImprimeEtat(FICHIER,CLE,min,max,3)



Contribution le : 16/09/2005 16:01
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Anonyme
j'ai deja essayer ca le probleme est que je ne connais pas d'avance le sens du tri, j ai donc declaré deux fonction une fonction tri_croissant et une fonction tri_decroissant dans l'editeur. Dans la fonction tri_croissant je renvois "" si le sens de tri est decroisannt et l'inverse dans l'autre. mais le fait de renvoyer "" dans tri_decroissant m annule par exemple ma fonction tri_croissant

Contribution le : 16/09/2005 16:06
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Anonyme
j'ai deja essayer ca le probleme est que je ne connais pas d'avance le sens du tri, j ai donc declaré deux fonction une fonction tri_croissant et une fonction tri_decroissant dans l'editeur. Dans la fonction tri_croissant je renvois "" si le sens de tri est decroisannt et l'inverse dans l'autre. mais le fait de renvoyer "" dans tri_decroissant m annule par exemple ma fonction tri_croissant

Contribution le : 16/09/2005 16:12
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Developpeur WDF
Inscrit:
10/02/2005 14:25
De Lille
Post(s): 123
tu passes par 2 fonctions mais si on sélectionne tri croissant tu n'execute que la fonction tri croissant et inversement donc pourquoi tu passes par les deux???

Comprends pas...

Contribution le : 19/09/2005 09:41
_________________
Windev POOOOWWWWAAA!!!!!!
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Anonyme
C'est exactement ce que j'aimerais faire

Dans l'editeur de trie je suis obligé de saisir une fonction en trie croissant et une autre en trie decroissant.
Si mon etat recois en paramtre un trie croissant j aimerais que seule la fonction croissante soit executée mais comme dans l'editeur de trie je suis obligé de lui mettre 2 fonction windev passe systematiquement dans les deux fonction et je ne sais pas comment annuler la fonction de tri decroissant si je fais renvoyer "" cela annule mon trie croissant.
Je commets peut etre une boulette ?

Contribution le : 19/09/2005 10:18
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Anonyme
il y a bien quelque chose que l'utilisateur fait pour déterminer le type de tri...

Tu dois créer une procédure de ce type:

PROCEDURE Tri()

SELON Critere
CAS "Ville" : RENVOYER Client.Ville
CAS "CP" : RENVOYER Client.CP
FIN

Pour toi ce serait peut etre :

SELON Type_Tri

CAS "Croissant" : RENVOYER Tri_Croissant()
CAS "Decroissant" : RENVOYER Tri_Decroissant()

FIN

Je n'ai pas testé mais essaie...ca reste a confirmer

Contribution le : 19/09/2005 11:46
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Developpeur WDF
Inscrit:
10/02/2005 14:25
De Lille
Post(s): 123
Oops pas fait gaffe que j'etais deconnecté...dsl c 'etait moi au dessus

Contribution le : 19/09/2005 11:47
_________________
Windev POOOOWWWWAAA!!!!!!
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Anonyme
Cela ne me semble pas clair, a ce que j'ai compris dans les état de windev la seule facon de parametre dynamique un trie est dans l'editeur de trie de saisir un nom de fonction en indiquant a l'aide d'une fleche si le tri est croissant ou decroissant, le champ de tri est donc parametrable mais le sens est lui indiqué en dur dans l'editeur d etat.
Pour arriver a parametre le sens je ne vois comme solution que de creer 2 fonctions dans l editeur de tri un coché trie croissant l autre decroissant et d'annuler la fonction qui ne correspond pas mais je n'arrive pas a faire cette annulation.

tu me conseille cela

PROCEDURE Tri()

SELON Type_Tri

CAS "Croissant" : RENVOYER Tri_Croissant()
CAS "Decroissant" : RENVOYER Tri_Decroissant()

FIN

le probleme est que pour faire l'appel a tri() je dois le renseigner dans l'editeur d'état en indiquant en dur son sens de trie peut importe ce que renverons Tri_Croissant() ou Tri_Decroissant() l'ordre de tri sera celui indiqué dans l'éditeur de tri de l'état.

Contribution le : 19/09/2005 14:38
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Developpeur WDF
Inscrit:
10/02/2005 14:25
De Lille
Post(s): 123
y a un truc que je ne pige pas la...

Comment ton application sait si elle doit trier en croissant ou decroissant????

C 'est bien l'utilisateur qui definit croissant ou decroissant???

Essaie d'expliquer comment procede l'utilisateur

Contribution le : 19/09/2005 14:58
_________________
Windev POOOOWWWWAAA!!!!!!
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Anonyme
le trie sera parametre sur un ecran qui presentera l'ensemble des champs de la table et l'utilisateur selectionnera l'ensemble des champs sur lesquels il voudra trier et leur sens, tout ce parametrage sera stocke en BDD et servira a parametrer un ecran table generique (un pour toute l appli) et l'état generique qui ira avec, c'est bien entendu au niveau de l'etat que je ne vois pas comment faire vu que je ne sais pas a l avance le nombre de champ de tris et leur sens. Je souhaite si possible travailler sur un etat lie directement a une table HF que je filtre plutot que par une vue, car le nombre d enregistrement peux etre important et la liaison directe a une table est plus performante

Contribution le : 19/09/2005 15:05
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Developpeur WDF
Inscrit:
10/02/2005 14:25
De Lille
Post(s): 123
pourquoi a ce moment la ne pas passer par une requete qui se construit automatiquement avec les informations qu'a saisi l'utilisateur :

Exemple :

L'utilisateur sélectionne les champs nom, prénom et ville pour faire son tri :

tu construit la requete comme suit :

POUR i=1 A NbChampsSelect

SI i=1 ALORS
txtChamps+={"Champ"+i}
SINON
txtChamps+=","+{Champ"+i}
FIN
FIN

POUR i=1 A NbTriSelect

SI i=1 ALORS
txtTypeTri+="ORDER BY "+ {"Champ"+i}
SINON
txtTypeTri+=","+{"Champ"+i}
FIN
FIN

SQL="Select "+txtChamps+"FROM NOMTABLE"+txtTypeTri

Voila ta requete est construite et apres tu construis ton etat en parcourant ta requete

Contribution le : 19/09/2005 15:52
_________________
Windev POOOOWWWWAAA!!!!!!
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Developpeur WDF
Inscrit:
10/02/2005 14:25
De Lille
Post(s): 123
Essaie un truc dans ce style...

moi, je me suis heurté a de sacré probleme car je ne savais pas qd on a acheté Windev que les modifications sur des fichier décrit en dynamique étaient impossible...je dois donc développer des moulinettes pour mes traitements en franchement c'est pas simple...Je pense qu'au point de vues BDD c'est génial mais il manque tout de meme des choses

enfin c mon point de vue


Contribution le : 19/09/2005 15:55
_________________
Windev POOOOWWWWAAA!!!!!!
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Anonyme
pour des raisons de performances je prefere eviter les états basés sur des requetes, je ne vois pas trop de solutions a mon problemes pourtant parametrer des tris ne devrait poser aucuns problemes cela se fait tres facilement sur du crystal report par exemple

Contribution le : 19/09/2005 16:09
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Developpeur WDF
Inscrit:
10/02/2005 14:25
De Lille
Post(s): 123
Citation :
pour des raisons de performances

La est le probleme...

Les performances sont tres bonne si tu t'y prends comme il faut mais il est vrai que certains cas ne permmettent pas d'exploiter la puissance des champs indexés qui te permettent de parcourir ta requete sans meme que celle ci soit chargée completement ce qui améliore nettement les performances.


Citation :
cela se fait tres facilement sur du crystal report

Eh oui c'est pas du Crystal report qui lui se base sur des requetes non???

1 - Est ce que ta "table" provient d'un fichier décrit dans l'analyse manuellement (pas dynamiquement)???

2 - Si oui, définit des indexs sur les champs qui te serviront plus tard au tri

3 - Si tu utilises des indexs tu verras que les performances sont au rendez vous

4 - Si tu veux vraiment que les gens de ce forum t'aide au mieux il faut t'enregistrer et tu verras d'autres se pencheront sur ton probleme car certains n'aiment pas ne pas savoir a qui ils ont a faire (et je fais parti de cela alors enregistre toi STP)

PS : j'ai toujours trouvés des solutionsq a mes problemes sur ce forum...il y a des gens vraiment calés sur Windev...moi ca ne fait que quelques moi que je l'utilise et je progresse a grand pas

Voila sur ce conseil...

Contribution le : 19/09/2005 16:21
_________________
Windev POOOOWWWWAAA!!!!!!
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Anonyme
je fais amende honnarable sur mon inscription je vais le faire de ce pas
Comme je l'ai dit je n'aurais qu'un seul état de type table et l'appli sera relativement grosse niveau données (200 000) enregistrements donc charger la requete en memoire ne me plait pas, je continue a reflechir a la question.
Si d'autres voient la solution miracle qu'ils ne se privent pas

Contribution le : 19/09/2005 16:26
Créer un fichier PDF de la contribution Imprimer


Re: trie dynamique
Stagiaire WDF
Inscrit:
19/09/2005 16:30
Post(s): 1
voila c est fait ;)

Contribution le : 19/09/2005 16: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