Bonjour à toutes et à tous,
J'ai deux champs table dont je compare les ID. Lorsqu'il y a match sur les ID, je voudrais modifier la quatrième colonne de la table comparée avec la troisième colonne de la table de comparaison.
J'ai fait une boucle pour parcourir toutes les lignes de comparaison et rechercher les ID communs dans comparée. Jusque là pas de problème, je relève les indices des lignes pour chaque table avec ID commun.
J'ai fait des "Trace" pour vérifier les valeurs.
Code WINDEV : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 //Rempli table comparée ConstruitTableFichier(TABLE_SansNom8, STOCK_INI_2021, taRemplirTable) // position dans table comparaison nPositionLigne est un entier // position trouvée dans table comparée nPosTrouvée est un entier //Dans le champ table comparée je ne comprends pas un problème libellé des colonnes //J'ai contourné le problème par ces modifications {"TABLE_SansNom8._COL2"}..Libellé = "TABLE_SansNom8._COL2" {"TABLE_SansNom8._COL4"}..Libellé = "TABLE_SansNom8._COL4" sNom est une chaîne sNom = TableEnumèreColonne(TABLE_SansNom8, 2) sNom = {"TABLE_SansNom8."+sNom}..Libellé sNom4 est une chaîne sNom4 = TableEnumèreColonne(TABLE_SansNom8, 4) sNom4 = {"TABLE_SansNom8."+sNom4}..Libellé {"TABLE_SansNom8._COL4"}..TypeSaisie = typSaisieMonétaire {"TABLE_SansNom8._COL4"}..MasqueAffichage = "999 999 999 999 999,99 " POUR TOUTE LIGNE nPositionLigne DE TABLE_Import_Plan5 nPosTrouvée = TableCherche(sNom, TABLE_Import_Plan5.Colonne2[nPositionLigne], rechercheIdentique) SI nPosTrouvée <> 0 ALORS TableModifieColonne("TABLE_SansNom8", nPosTrouvée, TABLE_Import_Plan5.Colonne3[nPositionLigne]) FIN FIN
Ainsi je récupère très bien la valeur que je souhaite de la table comparaison, mais quand il s'agit de modifier la valeur
Cette valeur se modifie dans la première colonne et non la quatrième. Normale me direz-vous puisque "TABLE_Import_Plan5.Colonne3[nPositionLigne]" est le premier élément.
Code windev : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TableModifieColonne("TABLE_SansNom8", nPosTrouvée, TABLE_Import_Plan5.Colonne3[nPositionLigne])
Alors j'ai essayé de le mettre en quatrième élément
Et là impeccable la valeur se mets bien dans la quatrième colonne, mais les trois autres ont été modifiée par un beau 0.
Code windev : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TableModifieColonne("TABLE_SansNom8", nPosTrouvée,"", "", "", TABLE_Import_Plan5.Colonne3[nPositionLigne])
J'ai essayé
Comme pour un tableajouteligne, mais ça ne fonctionne pas plus.
Code windev : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 NbrColonne = TableModifieColonne(TABLE_SansNom8) sNom4[NbrColonne] = TABLE_Import_Plan5.Colonne3[nPositionLigne]
Si quelqu'un pouvait m'orienter vers la bonne façon de faire.
Merci
Gregus
Partager