Re: parcours et selection selon deux condition ?

Posté par drcharly93 le 2/2/2008 18:16:29
Bonjour,

Si vous utiliser une table mémoire vous pouvez commencer par trier votre table par n et Date
Prenons un exemple avec une table que l'on va nommé MaTable
Cette table va contenir deux colonnes que l'on va appeler:
colNum pour le numéro
colDate pour la date

Je considère que la table a déjà été alimentée comme vous l'avez indiquée.
TableTrie( MaTable, "ColNum", "ColDate" )

vous allez avoir comme résultat :

1002 02/11/2007
1002 02/11/2007
1019 30/04/2007
1019 28/09/2007
1222 02/11/2007
1154 09/03/2007
1154 09/03/2007
1154 16/11/2007
1154 16/11/2007
1061 06/07/2007
1061 28/09/2007
1890 23/03/2007
1890 23/03/2007
1890 24/03/2007

Ensuite on peut calculer le nombre de ligne qui possède le meme numéro mais avec des dates différentes:
nNbDiff est un entier
Ind est un entier
nPos est un entier
//On commence à la 2ieme ligne
Pour Ind = 2 _A_ MaTable..Occurrence
  //On test si la ligne est différente
  Si colNum[Ind] = ColNum[Ind - 1] Alors
    //On conserver la position du premier N° répété 
    Si nPos = 0 alors nPos = Ind - 1
    Si colDate[Ind] <> ColDate[nPos] Alors
      //Même n° - Date différente du Premier N° trouvé
      Table[Ind]..CouleurFond = iRougeClair
      nNbDiff ++
    Fin
  Sinon
    //Le n° à changé on remet à 0
    nPos = 0
  Fin
Fin

Voilà non testé mais l'idée est là

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=18&topic_id=5670&post_id=23136