parcours et selection selon deux condition ?

Le
mostafa
Bonjour,

j'ai un table que je remplie par un requête comme suit :

N Date

1002 02/11/2007
1002 02/11/2007

1222 02/11/2007

1019 28/09/2007 ok
1019 30/04/2007 ok

1061 28/09/2007 ok
1061 06/07/2007 ok

1154 16/11/2007 ok
1154 09/03/2007 ok
1154 16/11/2007 (mon code me colore aussi cette ligne)
1154 09/03/2007 (mon code me colore aussi cette ligne)

1890 23/03/2007 ok
1890 23/03/2007
1890 24/03/2007 ok

je vaudrais calculer le nombre des lignes qui ont un n qui se répètent
avec des dates différentes donc j'ai pensé au début de faire colorer
les lignes qui ont cette condition mais j'ai pas bien y arriver !




NombreTable--

POUR nCompteur = 1 A (NombreTable)





nIndice = TableCherche( N ,MATABLE.N[nCompteur],Vrai,nCompteur+1)

TANTQUE nIndice > 0

SI MATABELE.DATE [nCompteur] <> MATABELE.DATE[nIndice] ALORS

kk = Dimension(tabSuiteDate)

POUR j = 1 A kk

// Pour sauter les lignes déjà colorer

SI MATABLE.DATE [nIndice] = tabSuiteDate [j] ET ( MATABLE.N[nCompteur]
= tabSuiteN [j] OU MATABLE.N[nIndice] = tabSuiteN [j] ) ALORS

GOTO hh


FIN
FIN
BufCompteur ++
Dimension(tabLIsteIndice,BufCompteur)
Dimension(tabLIsteSerail,BufCompteur)

// sauvegarde date et N à colorer
tabSuiteDate[BufCompteur] = MATABLE.DATE[nIndice]
tabSuiteN [BufCompteur] = MATABLE.N [nIndice]

// coloration des ligne de condition MATABLE.N[nCompteur]..CouleurFond
= iVertClair
MATABLE.N[nIndice]..CouleurFond = iVertClair

FIN
hh :

nIndice = TableCherche(N ,MATABLE.N[nCompteur],Vrai,nIndice+1)


FIN

FIN
Svp est ce qu'il y as un truc plus rapide et simple pour ne
selectionner que les lignes ( OK ) ?
Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
TLB
Le #14546571
On 1 fév, 19:39, mostafa
Bonjour,

j'ai un table que je remplie par un requête comme suit :

N Date

1002 02/11/2007
1002 02/11/2007

1222 02/11/2007

1019 28/09/2007 ok
1019 30/04/2007 ok

1061 28/09/2007 ok
1061 06/07/2007 ok

1154 16/11/2007 ok
1154 09/03/2007 ok
1154 16/11/2007 (mon code me colore aussi cette ligne)
1154 09/03/2007 (mon code me colore aussi cette ligne)

1890 23/03/2007 ok
1890 23/03/2007
1890 24/03/2007 ok

je vaudrais calculer le nombre des lignes qui ont un n qui se répètent
avec des dates différentes donc j'ai pensé au début de faire colorer
les lignes qui ont cette condition mais j'ai pas bien y arriver !

NombreTable--

POUR nCompteur = 1 A (NombreTable)

nIndice = TableCherche( N ,MATABLE.N[nCompteur],Vrai,nCompteur+1)

TANTQUE nIndice > 0

SI MATABELE.DATE [nCompteur] <> MATABELE.DATE[nIndice] ALORS

kk = Dimension(tabSuiteDate)

POUR j = 1 A kk

// Pour sauter les lignes déjà colorer

SI MATABLE.DATE [nIndice] = tabSuiteDate [j] ET ( MATABLE.N[nCompteur]
= tabSuiteN [j] OU MATABLE.N[nIndice] = tabSuiteN [j] ) ALORS

GOTO hh

FIN
FIN
BufCompteur ++
Dimension(tabLIsteIndice,BufCompteur)
Dimension(tabLIsteSerail,BufCompteur)

// sauvegarde date et N à colorer
tabSuiteDate[BufCompteur] = MATABLE.DATE[nIndice]
tabSuiteN [BufCompteur] = MATABLE.N [nIndice]

// coloration des ligne de condition MATABLE.N[nCompteur]..CouleurFond
= iVertClair
MATABLE.N[nIndice]..CouleurFond = iVertClair

FIN
hh :

nIndice = TableCherche(N ,MATABLE.N[nCompteur],Vrai,nIndice+1)

FIN

FIN
Svp est ce qu'il y as un truc plus rapide et simple pour ne
selectionner que les lignes ( OK ) ?
Merci


0) je suppose que la table ne contient pas trop de lignes, sinon ce
code risque d'être long !
1) Ajouter une colonne invisible qui mémorisera que la ligne a été
traitée si oui=> mettre indice de la ligne
2) faire 2 boucles imbriquées
pour i=1 à tableoccurrence(table)
si lignetraitée[i]=0 alors
-ntraité=n[i]
-dateTraitéeÚte[i]
-lignetraitée[i]=i
ncompteur=1
-pour j=1 à tableoccurrence(table)
--si lignetraitée[j]=0 alors
--si date[j]Útetraitée alors
---lignetraitée[j]=i
---si ncompteur=1 alors
----ncouleur= // décider de la couleur des lignes
---fin
---ncompteur++
---table[j]..couleur=ncouleur
--fin
--si ncompteur>1 alors
---table[i]..couleur=ncouleur// colorer la ligne d'origine
--fin
-fin
fin
// ttes les lignes sont lues et traitées
//
// je ne peux pas tester ce code
// je vous laisse le soin de le tester et de l'améliorer
// si ce code est trop long, je vs engage à créer un fichier indéxé.
clé=num+date (n'oubliez pas d'y mettre le n° de ligne de la table)
// vs pouvez alors utiliser ce code mais un seul passage est suffisant
// lire du premier au dernier avec cette cle
// tester si la cle de réference=suivante, si oui=>colorer etc ...,
sinon la clé de référence devient la suivante et continuer.

En espérant vous avoir aidé.
Publicité
Poster une réponse
Anonyme