Bonjour,
Je travaille sur Visual Studio 2015 en vb.net.
J'ai créé une classe (extrait ci-dessous)
La liste ComposantsScanned est la liste complète et ComposantsScannedCumul est la liste où certains composants identiques sont cumulés (j'additionne la variable CartonsNb du composant déjà existant et je n'ajoute pas le 2ème composant)
Code : 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 Public Class Po_ 'PO Public _Num As Integer 'Numéro de PO Public _ComposantsScanned As List(Of Composant_) Public _ComposantsScannedCumul As List(Of Composant_) Public Property ComposantsScanned() As List(Of Composant_) Get Return _ComposantsScanned End Get Set(ByVal value As List(Of Composant_)) _ComposantsScanned = value End Set End Property Public Property ComposantsScannedCumul() As List(Of Composant_) Get Return _ComposantsScannedCumul End Get Set(ByVal value As List(Of Composant_)) _ComposantsScannedCumul = value End Set End Property End Class
Il y a donc deux objets qui sont des listes d'un autre objet composant extrait ci-dessous
Quand je boucle sur la liste ComposantsScanned pour alimenter l'autre liste ComposantsScannedCumul, ma liste ComposantsScanned est modifiée alors que je ne modifie que la liste ComposantsScannedCumul
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Public Class Composant_ Public _Code As String ' Code Public _CartonsNb As Integer 'Quantité de cartons pour un composant Public Property CartonsNb() As Integer 'Propriété Nombre de cartons pour un composant Get Return _CartonsNb End Get Set(ByVal value As Integer) _CartonsNb = value End Set End Property
Extrait de la boucle :
Concrètement quand je fais ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 For Each Comp In PO.ComposantsScanned 'On boucle sur la ligne des composantsScanned comp_i = ComposantsListe_Recherche(PO.ComposantsScannedCumul, Comp.Code, Comp.LotKarvinaNum) If comp_i <> CodePasTrouve Then 'On a trouvé le composant PO.ComposantsScannedCumul(comp_i).ComposantNb = PO.ComposantsScannedCumul(comp_i).ComposantNb + Comp.ComposantNb PO.ComposantsScannedCumul(comp_i).CartonsNb = PO.ComposantsScannedCumul(comp_i).CartonsNb + Comp.CartonsNb Else 'On n'a pas trouvé le composant PO.ComposantsScannedCumul.Add(Comp) End If
Et bien PO.ComposantsScanned(comp_i).CartonsNb prend la même valeur que PO.ComposantsScannedCumul(comp_i).CartonsNb
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 PO.ComposantsScannedCumul(comp_i).CartonsNb = PO.ComposantsScannedCumul(comp_i).CartonsNb + Comp.CartonsNb
Quelqu'un peut m'aider ???? c'est forcément urgent
Merci d'avance
Partager