PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV (versiones precedentes) → Comptage des lignes affichées dans une table hiérarchique mémoire
Comptage des lignes affichées dans une table hiérarchique mémoire
Iniciado por GpEp, 15,jul. 2019 12:18 - 2 respuestas
Miembro registrado
45 mensajes
Publicado el 15,julio 2019 - 12:18
Bonjour à tous

Je veux tout simplement afficher le nombre de lignes déroulées affichées d'une table hiérarchique mémoire.

J'utilise donc la fonction suivante mais le résultat est erroné.
STotalLignes = TableOccurrence(TableHierarchique1,toVisible)

J'ai essayé les options toAffichée, toVisible, et toTotal : elles donnent des valeurs erronées ou le total des lignes chargées dans la table.

J'ai essayé aussi de lire les lignes :
Toutes les lignes sont lues mais à la lecture rien ne différencie les lignes affichées de celles cachées.

Merci pour votre aide
Miembro registrado
46 mensajes
Popularité : -1 (9 votes)
Publicado el 17,julio 2019 - 14:57
Bonjour,
POUR i=1 _A_ TableOccurrence(MaTABLEH)
nTotLigne_Déroulé+=TableFilsOccurrence(MaTABLEH,i)
FIN

Trace(nTotLigne_Déroulé)
Mensaje modificado, 17,julio 2019 - 14:57
Miembro registrado
45 mensajes
Publicado el 17,julio 2019 - 16:30
midou23175 a écrit :
Bonjour,
POUR i=1 _A_ TableOccurrence(MaTABLEH)
nTotLigne_Déroulé+=TableFilsOccurrence(MaTABLEH,i)
FIN

Trace(nTotLigne_Déroulé)
Message modifié, 17 juillet 2019 - 14:57


Bonjour,
Merci pour ta réponse mais elle ne fonctionne pas.
En effet lorsqu'on lit directement les fils on les a toujours tous ( déroulé ou enroulé )

J'ai donc écris la procédure suivante qui fonctionne en utilisant la liste des parents qui contient les noeuds correspondant au fils de la table.

WTotDeroule est un entier = 0
NbT est un entier = ListeParents..Occurrence
WNbDeroule est un tableau de NbT entiers

// on met a zero le tableau
POUR I = 1 À ListeParents..Occurrence
WNbDeroule[I] = 0
FIN

WTypeLigne est un entier
// on verifie le nombre de noeuds déroulés
POUR I = 1 À ListeParents..Occurrence
// -1 taErreur : Trace("Le noeud n'existe pas.")
// 1 taDéroule : Trace("Le noeud est déroulé.")
// 2 taEnroule : Trace("Le noeud est enroulé.")
WTypeNoeud = ListeParents[I]
WTypeLigne = TableEtatElément(TableHierarchique1,WTypeNoeud)
SI WTypeLigne = taDéroule ALORS
WTotDeroule ++
WNbDeroule[I] = I
FIN
FIN

// on cumule les compteurs des noeuds déroulés
WCumulLignes est un entier = 0
POUR I = 1 À ListeParents..Occurrence
SI WNbDeroule[I] > 0
WCumulLignes = WCumulLignes + WCtrParBranche [I]
FIN
FIN
STotalLignes = WCumulLignes

Cette procédure fait la somme des branches déroulées.

S'il y a plus simple à faire je suis preneur.

En tous cas je te remercie pour ton aide













>