PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → triage d'une colonne d'une table
triage d'une colonne d'une table
Iniciado por Maxime, 26,ago. 2019 10:55 - 11 respuestas
Miembro registrado
106 mensajes
Publicado el 26,agosto 2019 - 10:55
Bonjour , je viens vers vous car je suis un peu perdu dans mes recherches .
J'aimerai faire un trie de ma table selon une colonne et que l'affichage du table ce fait en fonction du trie effectué .

exemple :

admettons j'ai deux colonnes :
-position
-etat

avec 4 position .
j'ai deux boutons un pour affiché les deux premières position uniquement et le second les deux dernière uniquement



J'aimerai mettre en place mon exemple mai je ne sais pas comment m'y prendre pour trié ma table via les boutons

Merci pour votre aide
cordialement M.P
Mensaje modificado, 26,agosto 2019 - 10:56
Miembro registrado
4.361 mensajes
Publicado el 26,agosto 2019 - 11:10
Bonjour,
Comment est alimenté ton champ table ?

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
106 mensajes
Publicado el 26,agosto 2019 - 11:16
il est alimenté par un requête qui traite les données brut reçue pas un automate et actualisant cette table toutes les 10 secondes .
Miembro registrado
909 mensajes
Publicado el 26,agosto 2019 - 11:30
Bonjour,

TableTrie() peu être :-)

--
Christian - kick71
Miembro registrado
106 mensajes
Publicado el 26,agosto 2019 - 11:34
Bonjour ,

ayant vue TableTrie() je ne pense pas que ce soit ce que je recherche .

Je tiens a affiché des valeurs précise par exemple j'ai 4 machine allant de 1 a 4 admettons .
mon bouton 1 servira affiché les machines 1 et 2 et le bouton 2 les machines 3 et 4 .

le TableTrie() trie de maniere croissante ou décroissante si j'ai bien lu

Cordialement M.P
Miembro registrado
4.361 mensajes
Publicado el 26,agosto 2019 - 12:03
Tu peux aussi modifier ta requête comme suit :
SELECT
Machine.NDX_Position,
Machine.Etat
FROM
Machine
WHERE
Machine.NDX_Position IN ({pPosition})


Le premier bouton aura pour code :
REQ_AffichagePosition.pPosition="1;2" //le ; peut être remplacé par TAB ou RC
TableAffiche(Table_Machine,taInit)


Le deuxième :
REQ_AffichagePosition.pPosition="3;4" //le ; peut être remplacé par TAB ou RC
TableAffiche(Table_Machine,taInit)


Pour tout afficher, il faut passer Null en paramètre
--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 26,agosto 2019 - 12:12
Miembro registrado
106 mensajes
Publicado el 26,agosto 2019 - 12:11
je vais testé ceci merci de votre aide .

je reviens vers vous dès que j'aurai testé.


Merci
Cordialement M.P
Miembro registrado
106 mensajes
Publicado el 26,agosto 2019 - 12:20
SELECT
ETAT_COMPTEUR_ATELIER.IDETAT_COMPTEUR_ATELIER AS IDETAT_COMPTEUR_ATELIER,
ETAT_COMPTEUR_ATELIER.DATE_HEURE_MAJ AS DATE_HEURE_MAJ,
ETAT_COMPTEUR_ATELIER.ID_POS_MACHINE AS ID_POS_MACHINE,
ETAT_COMPTEUR_ATELIER.ID_ETAT_MACHINE AS ID_ETAT_MACHINE,
TABLE_REF_ETAT_MACHINE.LIB_ETAT_MACHINE AS LIB_ETAT_MACHINE,
ETAT_COMPTEUR_ATELIER.CPT_CUMUL_MARCHE_N AS CPT_CUMUL_MARCHE_N,
ETAT_COMPTEUR_ATELIER.CPT_CUMUL_ARRET_N AS CPT_CUMUL_ARRET_N,
ETAT_COMPTEUR_ATELIER.CPT_CUMUL_PMECA_N AS CPT_CUMUL_PMECA_N,
ETAT_COMPTEUR_ATELIER.CPT_CUMUL_PTEX_N AS CPT_CUMUL_PTEX_N,
ETAT_COMPTEUR_ATELIER.CPT_CUMUL_METRE_N AS CPT_CUMUL_METRE_N,
ETAT_COMPTEUR_ATELIER.DATEHEURE_RAZ AS DATEHEURE_RAZ,
ETAT_COMPTEUR_ATELIER.CPT_CUMUL_MARCHE_N_1 AS CPT_CUMUL_MARCHE_N_1,
ETAT_COMPTEUR_ATELIER.CPT_CUMUL_ARRET_N_1 AS CPT_CUMUL_ARRET_N_1,
ETAT_COMPTEUR_ATELIER.CPT_CUMUL_PMECA_N_1 AS CPT_CUMUL_PMECA_N_1,
ETAT_COMPTEUR_ATELIER.CPT_CUMUL_PTEX_N_1 AS CPT_CUMUL_PTEX_N_1,
ETAT_COMPTEUR_ATELIER.CPT_CUMUL_METRE_N_1 AS CPT_CUMUL_METRE_N_1,
ETAT_COMPTEUR_ATELIER.METIER AS Metier,
ETAT_COMPTEUR_ATELIER.O2CLEUNIK AS O2CLEUNIK,
ETAT_COMPTEUR_ATELIER.AFFECTATION_PRODUCTION AS AFFECTATION_PRODUCTION,
ETAT_COMPTEUR_ATELIER.CPT_DEM_OF_MARCHE AS CPT_DEM_OF_MARCHE,
ETAT_COMPTEUR_ATELIER.CPT_DEM_OF_ARRET AS CPT_DEM_OF_ARRET,
ETAT_COMPTEUR_ATELIER.CPT_DEM_OF_PMECA AS CPT_DEM_OF_PMECA,
ETAT_COMPTEUR_ATELIER.CPT_DEM_OF_PTEX AS CPT_DEM_OF_PTEX,
ETAT_COMPTEUR_ATELIER.CPT_DEM_OF_METRE AS CPT_DEM_OF_METRE,
ETAT_COMPTEUR_ATELIER.CPT_COUPE_MARCHE_DEBUT AS CPT_COUPE_MARCHE_DEBUT,
ETAT_COMPTEUR_ATELIER.CPT_COUPE_MARCHE_FIN AS CPT_COUPE_MARCHE_FIN,
ETAT_COMPTEUR_ATELIER.CPT_COUPE_MARCHE AS CPT_COUPE_MARCHE,
ETAT_COMPTEUR_ATELIER.CPT_COUPE_METRE_DEBUT AS CPT_COUPE_METRE_DEBUT,
ETAT_COMPTEUR_ATELIER.CPT_COUPE_METRE_FIN AS CPT_COUPE_METRE_FIN,
ETAT_COMPTEUR_ATELIER.CPT_COUPE_METRE AS CPT_COUPE_METRE
FROM
TABLE_REF_ETAT_MACHINE,
ETAT_COMPTEUR_ATELIER
WHERE
TABLE_REF_ETAT_MACHINE.ID_ETAT_MACHINE = ETAT_COMPTEUR_ATELIER.ID_ETAT_MACHINE

ORDER by
ID_POS_MACHINE Asc


Ma requête est comme ceci mais si je l'a modifie les filtres et traitement actuelle s’enlève quand je souhaite rajouté ce que vous me conseillez.
devrais-je crée une autre requête me permettant d'effectué mon trie ou il y a plus simple ?

ps : Désole je ne suis pas tres a l'aise avec windev
Cordialement M.P
Miembro registrado
4.361 mensajes
Publicado el 26,agosto 2019 - 13:34
Ce n'est pas du Windev là, c'est du SQL, la base des recherches quel que soit le SGBD.
https://sql.sh/
Dans le cas qui nous intéresse, il suffit d'ajouter la condition de filtre souhaitée sur la position dans le WHERE
WHERE
TABLE_REF_ETAT_MACHINE.ID_ETAT_MACHINE = ETAT_COMPTEUR_ATELIER.ID_ETAT_MACHINE
AND
ETAT_COMPTEUR_ATELIER.ID_POS_MACHINE IN ({pPosition}


--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
106 mensajes
Publicado el 26,agosto 2019 - 13:53
WHERE
TABLE_REF_ETAT_MACHINE.ID_ETAT_MACHINE = ETAT_COMPTEUR_ATELIER.ID_ETAT_MACHINE
AND
(
ETAT_COMPTEUR_ATELIER.ID_POS_MACHINE = {pPosition}
)


j'ai bien modifié la condition mais rien ne bouge dans ma table.
Miembro registrado
106 mensajes
Publicado el 26,agosto 2019 - 15:16
J'ai trouvé mon problème j'ai pas fais attention a la condition de ma rubrique d'ou le egal ou lieu de compris dans la liste .

Merci beaucoup de votre aide
Miembro registrado
324 mensajes
Publicado el 26,agosto 2019 - 16:35
Sinon on peut parcourir le tableau et de rendre invisible les lignes à ne pas afficher.

Pour toute ligne de MaTable
SI MaConditionOk = Vrai alors
MaTable[MaTable]..visible = Vrai
SINON
MaTable[MaTable]..visible = faux
FIN
FIN