|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Comparaison entre deux tables |
Débuté par Jeremy, 23 jan. 2020 09:41 - 7 réponses |
| |
| | | |
|
| |
Membre enregistré 12 messages Popularité : +1 (1 vote) |
|
Posté le 23 janvier 2020 - 09:41 |
Bonjour, je vous écris car j'ai 2 petits problèmes concernant mon code,
L'application permet de comparer deux "formules" et doit mettre en avant les différences. Le client sélectionne la première formule, ce qui remplit mon premier tableau via une requête, même chose pour la seconde formule. (Une formule peut avoir un nombre différent d'entrées) Le client clique alors sur comparer.
J'ai donc écris ceci :
nPosTrouvée est un entier j est un entier = 1
POUR TOUTE LIGNE j de Table_Rq_CompoFormuleB1
nPosTrouvée = TableCherche(Table_Rq_CompoFormuleB1.Designation,Table_Rq_CompoFormuleB2.Designation[j]) Trace(nPosTrouvée)
SI nPosTrouvée = -1 ALORS Table_Rq_CompoFormuleB1.Designation[j]..Couleur=RougeClair FIN j++ FIN
Premiere erreur : le trace me renvoie systématiquement un -1 sur ma première ligne (meme si je compare deux formules similaires). Le débug me montre bel et bien deux désignation similaire avec un -1 sur mon TableCherche (???)
Seconde erreur : Si le tableau B1 a un nombre d'entrées supérieur au tableau B2, l'appli crash car elle ne trouve pas l'indice j (comment détourner cette erreur ?)
Merci de votre aide Message modifié, 23 janvier 2020 - 09:41 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 446 messages Popularité : +31 (43 votes) |
|
Posté le 23 janvier 2020 - 11:32 |
Bonjour
Et comme ca ?
nPosTrouvée est un entier
POUR TOUTE LIGNE de Table_Rq_CompoFormuleB1 nPosTrouvée = TableCherche(Table_Rq_CompoFormuleB2.Designation,Table_Rq_CompoFormuleB1.Designation) Trace(nPosTrouvée)
SI nPosTrouvée = -1 ALORS Table_Rq_CompoFormuleB1.Designation..Couleur = RougeClair FIN FIN
cdlt
DG |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 12 messages Popularité : +1 (1 vote) |
|
Posté le 23 janvier 2020 - 13:55 |
Re Bonjour, avec cette solution, je n'ai plus d'erreur sur l'indice j vu qu'il a disparu, par contre, j'aimerai que seulement les lignes qui sont différentes passent au rouge, actuellement, n'ayant pas d'indicateur de ligne, si nPosTrouvée renvoie -1, toutes les lignes passent au rouge.
Merci de ton aide |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 446 messages Popularité : +31 (43 votes) |
|
Posté le 23 janvier 2020 - 14:17 |
et comme ça du coup ?
nPosTrouvée est un entier J est un entier
pour j = 1 _A_ Table_Rq_CompoFormuleB1..occurence
nPosTrouvée = TableCherche(Table_Rq_CompoFormuleB2.Designation,Table_Rq_CompoFormuleB1[J].Designation) Trace(nPosTrouvée)
SI nPosTrouvée = -1 ALORS Table_Rq_CompoFormuleB1[J].Designation..Couleur = RougeClair FIN FIN |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 12 messages Popularité : +1 (1 vote) |
|
Posté le 23 janvier 2020 - 14:23 |
Super, ça fonctionne du tonnerre.
Merci beaucoup de ton aide ! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 446 messages Popularité : +31 (43 votes) |
|
Posté le 23 janvier 2020 - 15:01 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 12 messages Popularité : +1 (1 vote) |
|
Posté le 23 janvier 2020 - 16:28 |
Re, c'est encore moi, j'ai donc utilisé ce qui a été définit précédemment, et j'ai essayer de faire la même chose dans l'autre sens, c'est a dire, maintenant que la table 1 scrute les donnée de la table 2 en colorant les différences, je tente de scruter la table 1 avec la deuxieme, J'ai malheureusement un retour étrange, en mode débug, je peux voir que les lignes de la table 1 se colores correctement, mais quand la fonction passe sur la table 2, toutes les couleurs de la 1 disparraissent. C'est a n'y rien comprendre
POUR K = 1 _A_ TableB1Size nPosTrouvée1 = TableCherche(Table_Rq_CompoFormuleB2.Designation,Table_Rq_CompoFormuleB1[K].Designation) Trace(nPosTrouvée1) SI nPosTrouvée1 = -1 ALORS
Table_Rq_CompoFormuleB1[K].Designation..Couleur = RougeClair
SINON Table_Rq_CompoFormuleB1[K].Designation..Couleur = VertFoncé
FIN FIN
POUR J = 1 _A_ TableB2Size nPosTrouvée3 = TableCherche(Table_Rq_CompoFormuleB1.Designation,Table_Rq_CompoFormuleB2[J].Designation) Trace(nPosTrouvée3) SI nPosTrouvée3 = -1 ALORS Table_Rq_CompoFormuleB2[J].Designation..Couleur = RougeClair SINON Table_Rq_CompoFormuleB2[J].Designation..Couleur = VertFoncé FIN FIN
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 446 messages Popularité : +31 (43 votes) |
|
Posté le 23 janvier 2020 - 17:36 |
euh idem cela devrait fonctionner et si on reprend la première version du code légerement modifié comme ce qui suit ? sinon après je vois que le support technique car pour moi cela devrait déjà fonctionner comme vous l'avez ecrit
j'ai modifié cette ligne : Table_Rq_CompoFormuleB1[Table_Rq_CompoFormuleB1].Designation..Couleur = RougeClair voir aussi si besoin de modifié cette ligne :nPosTrouvée = TableCherche(Table_Rq_CompoFormuleB2.Designation Table_Rq_CompoFormuleB1[Table_Rq_CompoFormuleB1].Designation)
nPosTrouvée est un entier
POUR TOUTE LIGNE de Table_Rq_CompoFormuleB1 nPosTrouvée = TableCherche(Table_Rq_CompoFormuleB2.Designation,Table_Rq_CompoFormuleB1.Designation) Trace(nPosTrouvée)
SI nPosTrouvée = -1 ALORS Table_Rq_CompoFormuleB1[Table_Rq_CompoFormuleB1].Designation..Couleur = RougeClair FIN FIN |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|