PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Comment trier (changer l'ordre) des lignes d'une table une fois remplie par programmation?
Comment trier (changer l'ordre) des lignes d'une table une fois remplie par programmation?
Iniciado por JVE, 24,sep. 2019 16:03 - 3 respuestas
Miembro registrado
48 mensajes
Publicado el 24,septiembre 2019 - 16:03
Bonjour

Je souhaiterais une fois une table remplie par programmation "re-trier" certaines lignes (les remettre à la fin de la table suivant un critère).
Je débute sur Windev et ne vois pas comment m'y prendre.

Code pour le remplissage de la table.

POUR itableBOM=1 À TableOccurrence(TABLE_BOM_ORIGINE)
TableAjouteLigne(TABLE_BOM_ERP)

// colonne NAF COL_1
TABLE_BOM_ERP[itableBOM].COL_1 = sNumeroaffaire

// colonne Rang OOL_2
TABLE_BOM_ERP[itableBOM].COL_2 = 1

// colonne Repère COL_3

SI TABLE_BOM_ORIGINE[itableBOM].COL_1<>"" ALORS
TABLE_BOM_ERP[itableBOM].COL_3 = TABLE_BOM_ORIGINE[itableBOM].COL_2+SAI_Revision
SINON
TABLE_BOM_ERP[itableBOM].COL_3 = TABLE_BOM_ORIGINE[itableBOM].COL_2

FIN
FIN
Miembro registrado
117 mensajes
Publicado el 24,septiembre 2019 - 16:14
tu remplis ton tableau par programmation ou par lecture d'un fichier ?

Si c'est la seconde situation, ne serait-ce pas plus simple d'effectuer un remplissage par fichier/requête et de définir une rubrique de parcours sur les données que tu cherches à trier plutôt que par programmation ?
Miembro registrado
42 mensajes
Publicado el 24,septiembre 2019 - 16:22
Voir l'instruction TableTrie
Miembro registrado
117 mensajes
Publicado el 24,septiembre 2019 - 16:30
sinon, rien ne t'empêche d'y aller à la barbare et de faire une double boucle dans ta table en inversant les numéros de ligne selon ton critère de recherche.

un truc du genre :

i est un entier
n est un entier = 0

pour i = 1 à nbrligne

pour n = i+n à nbrligne

SI ligne[n] > ligne[i] ALORS

//tu inverses les 2 lignes

n++

FIN

n = 0
i++

FIN


un truc du genre
Mensaje modificado, 24,septiembre 2019 - 16:44