guillaumeIA
Messages postés12Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention 3 septembre 2009
-
22 août 2009 à 16:23
guillaumeIA
Messages postés12Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention 3 septembre 2009
-
24 août 2009 à 12:36
Bonjour,
Je suis actuellement coincé sur un programme basé sur une source de base de donnée microsoft que je ne retrouve plus (si vous avez le lien, je serai content de l'avoir)
explication du probleme
a chaque creation d'un nouveau device , les parametres sont affectés aux devices déja créés remplacant ainsi les parametres propres aux autres devices
voici la partie critique du code:
public Class Accueil
Public Shared PLCLineList As New Lines
End Class
////////////////////
Public Class Device_property
Public Structure Device
Dim Name As String
Dim Line As Integer
Dim Adresse As Integer
Dim param() As Integer ' les parametres peuvent changer en fonction du device
End Structure
//////////////
Shared Function Fill_DataSource(ByVal Device As Device_property.Device) 'remplir la datasource
Dim Num_line_created, Found, num_line
Num_line_created = Accueil.PLCLineList.Count
Found = False
num_line = 0
If Num_line_created > 0 Then
For i = 0 To (Num_line_created - 1)
If Accueil.PLCLineList(i).LineID = Device.Line Then
Found = True
num_line = i
i = Num_line_created
End If
Next i
If Not Found Then
Accueil.PLCLineList.Add(New Line(Device.Line, "Line " & Device.Line))
num_line = Accueil.PLCLineList.Count - 1
'num_line = Device.Line
End If
Else
Accueil.PLCLineList.Add(New Line(Device.Line, "Line " & Device.Line))
'num_line = Device.Line
End If
Accueil.PLCLineList(num_line).Device.Add(New Device(Device.Adresse, "Device" & Device.Adresse, Device.param)) 'Je PENSE QUE L'ERREUR VIENT DE LA!! '
DataForm.LinesBindingSource.DataSource = LinesManager.GetAllLines(Accueil.PLCLineList)
Return Nothing
End Function
//////////////////////////////////////////////////
' Copyright (c) Microsoft Corporation. All rights reserved.
''' <summary>
''' A single Device
''' </summary>
Public Class Device
Public Sub New()
End Sub
''' <summary>
''' Creates a new order
''' </summary>
''' The identifier for this order
''' The customer who placed this order
''' The date the order was placed
Public Sub New(ByVal DeviceID As Integer, ByVal DeviceName As String, ByVal Parameter As Array)
DeviceIDValue = DeviceID
DeviceNameValue = DeviceName
ParameterValue = Parameter
End Sub
Private DeviceIDValue As String
''' <summary>
''' Identifier for the Device
''' </summary>
Public ReadOnly Property DeviceID() As Integer
Get
Return DeviceIDValue
End Get
End Property
Private DeviceNameValue As String
''' <summary>
''' The Line where placed this Device
''' </summary>
Public Property DeviceNameID() As String
Get
Return DeviceNameValue
End Get
Set(ByVal Value As String)
DeviceNameValue = Value
End Set
End Property
Public Shared ParameterValue As Array
''' <summary>
''' The parameter of the device
''' </summary>
Public Property Parameter() As Array
Get
Return ParameterValue
End Get
Set(ByVal Value As Array)
ParameterValue = Value
End Set
End Property
End Class
''' <summary>
''' A collection of Device
''' </summary>
Public Class Devices
Inherits System.ComponentModel.BindingList(Of Device)
End Class
///////////////////////////////////////
' Copyright (c) Microsoft Corporation. All rights reserved.
''' <summary>
''' A single customer
''' </summary>
Public Class Line
''' <summary>
''' Creates a new Line
''' </summary>
''' The ID of the line
''' The name of the line
Public Sub New(ByVal LineId As Integer, ByVal LineName As String)
Initialize()
LineIDValue = LineId
LineNameValue = LineName
End Sub
Private Sub Initialize()
DevicesValue = New Devices()
End Sub
Private LineIDValue As Integer
''' <summary>
''' Identifier for the Line
''' </summary>
Public Property LineID() As Integer
Get
Return LineIDValue
End Get
Set(ByVal value As Integer)
LineIDValue = value
End Set
End Property
Private LineNameValue As String
''' <summary>
''' Name for the Line
''' </summary>
Public Property LineName() As String
Get
Return LineNameValue
End Get
Set(ByVal value As String)
LineNameValue = value
End Set
End Property
Public Shared WithEvents DevicesValue As Devices
''' <summary>
''' The Devices for this Line
''' </summary>
Public Property Device() As Devices
Get
Return DevicesValue
End Get
Set(ByVal value As Devices)
DevicesValue = value
End Set
End Property
Public Shared Sub DevicesValue_AddingNew(ByVal sender As Object, ByVal e As System.ComponentModel.AddingNewEventArgs) Handles DevicesValue.AddingNew
e.NewObject = New Device(999, "test", Accueil.TParam)
End Sub
End Class
''' <summary>
''' A collection of Lines
''' </summary>
Public Class Lines
Inherits System.ComponentModel.BindingList(Of Line)
End Class
////////////////////////////////////////
Public Class LinesManager
Public Shared Function GetAllLines(ByVal GlobalList As Lines) As Lines
Return GlobalList
End Function
Public Shared Function GetNewLine() As Line
Return New Line("LineID", "LineName")
End Function
Public Shared Function GetNewDevice() As Device
Return New Device(999, "DeviceName", Accueil.TParam)
End Function
End Class
///////
' Copyright (c) Microsoft Corporation. All rights reserved.
Public Class DataForm
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Accueil.PLCLineList.Count > 0 Then
Dim LineList As New Lines()
LineList.Add(New Line(0, "None"))
LineList(0).Device.Add(New Device(0, "None", Accueil.TParam))
Me.LinesBindingSource.DataSource = LinesManager.GetAllLines(LineList)
Else
Me.LinesBindingSource.DataSource = LinesManager.GetAllLines(Accueil.PLCLineList)
End If
End Sub
' Private Sub LinesBindingSource_AddingNew(ByVal sender As System.Object, ByVal e As System.ComponentModel.AddingNewEventArgs) Handles LinesBindingSource.AddingNew
' e.NewObject = LinesManager.GetNewLine()
'End Sub
Private Sub DevicesBindingSource_AddingNew(ByVal sender As System.Object, ByVal e As System.ComponentModel.AddingNewEventArgs) Handles DeviceBindingSource.AddingNew
e.NewObject = LinesManager.GetNewDevice()
End Sub
End Class
///////////////////////
Si vous pouviez me debloquer cela serait magnifique
pour de plus ample information, je vous repondrai dans la mesure du possible.
guillaumeIA
Messages postés12Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention 3 septembre 2009 22 août 2009 à 17:55
Bonjour,
Je suis actuellement coincé sur un programme basé sur une source de base de donnée microsoft que je ne retrouve plus (si vous avez le lien, je serai content de l'avoir)
explication du probleme
a chaque creation d'un nouveau device , les parametres sont affectés aux devices déja créés remplacant ainsi les parametres propres aux autres devices
voici la partie critique du code:
public Class Accueil
Public Shared PLCLineList As New Lines
End Class
////////////////////
Public Class Device_property
Public Structure Device
Dim Name As String
Dim Line As Integer
Dim Adresse As Integer
Dim param() As Integer ' les parametres peuvent changer en fonction du device
End Structure
//////////////
Shared Function Fill_DataSource(ByVal Device As Device_property.Device) 'remplir la datasource
Dim Num_line_created, Found, num_line
Num_line_created = Accueil.PLCLineList.Count
Found = False
num_line = 0
If Num_line_created > 0 Then
For i = 0 To (Num_line_created - 1)
If Accueil.PLCLineList(i).LineID = Device.Line Then
Found = True
num_line = i
i = Num_line_created
End If
Next i
If Not Found Then
Accueil.PLCLineList.Add(New Line(Device.Line, "Line " & Device.Line))
num_line = Accueil.PLCLineList.Count - 1
'num_line = Device.Line
End If
Else
Accueil.PLCLineList.Add(New Line(Device.Line, "Line " & Device.Line))
'num_line = Device.Line
End If
Accueil.PLCLineList(num_line).Device.Add(New Device(Device.Adresse, "Device" & Device.Adresse, Device.param)) 'Je PENSE QUE L'ERREUR VIENT DE LA!! '
DataForm.LinesBindingSource.DataSource = LinesManager.GetAllLines(Accueil.PLCLineList)
' Copyright (c) Microsoft Corporation. All rights reserved.
''' <summary>
''' A single Device
''' </summary>
Public Class Device
Public Sub New()
End Sub
''' <summary>
''' Creates a new order
''' </summary>
''' The identifier for this order
''' The customer who placed this order
''' The date the order was placed
Public Sub New(ByVal DeviceID As Integer, ByVal DeviceName As String, ByVal Parameter As Array)
DeviceIDValue = DeviceID
DeviceNameValue = DeviceName
ParameterValue = Parameter
End Sub
Private DeviceIDValue As String
''' <summary>
''' Identifier for the Device
''' </summary>
Public ReadOnly Property DeviceID() As Integer
Get
Return DeviceIDValue
End Get
End Property
Private DeviceNameValue As String
''' <summary>
''' The Line where placed this Device
''' </summary>
Public Property DeviceNameID() As String
Get
Return DeviceNameValue
End Get
Set(ByVal Value As String)
DeviceNameValue = Value
End Set
End Property
Public Shared ParameterValue As Array
''' <summary>
''' The parameter of the device
''' </summary>
Public Property Parameter() As Array
Get
Return ParameterValue
End Get
Set(ByVal Value As Array)
ParameterValue = Value
End Set
End Property
End Class
''' <summary>
''' A collection of Device
''' </summary>
Public Class Devices
Inherits System.ComponentModel.BindingList(Of Device)
End Class
///////////////////////////////////////
' Copyright (c) Microsoft Corporation. All rights reserved.
''' <summary>
''' A single customer
''' </summary>
Public Class Line
''' <summary>
''' Creates a new Line
''' </summary>
''' The ID of the line
''' The name of the line
Public Sub New(ByVal LineId As Integer, ByVal LineName As String)
Initialize()
LineIDValue = LineId
LineNameValue = LineName
End Sub
Private Sub Initialize()
DevicesValue = New Devices()
End Sub
Private LineIDValue As Integer
''' <summary>
''' Identifier for the Line
''' </summary>
Public Property LineID() As Integer
Get
Return LineIDValue
End Get
Set(ByVal value As Integer)
LineIDValue = value
End Set
End Property
Private LineNameValue As String
''' <summary>
''' Name for the Line
''' </summary>
Public Property LineName() As String
Get
Return LineNameValue
End Get
Set(ByVal value As String)
LineNameValue = value
End Set
End Property
Public Shared WithEvents DevicesValue As Devices
''' <summary>
''' The Devices for this Line
''' </summary>
Public Property Device() As Devices
Get
Return DevicesValue
End Get
Set(ByVal value As Devices)
DevicesValue = value
End Set
End Property
Public Shared Sub DevicesValue_AddingNew(ByVal sender As Object, ByVal e As System.ComponentModel.AddingNewEventArgs) Handles DevicesValue.AddingNew
e.NewObject = New Device(999, "test", Accueil.TParam)
End Sub
End Class
''' <summary>
''' A collection of Lines
''' </summary>
Public Class Lines
Inherits System.ComponentModel.BindingList(Of Line)
End Class
////////////////////////////////////////
Public Class LinesManager
Public Shared Function GetAllLines(ByVal GlobalList As Lines) As Lines
Return GlobalList
End Function
Public Shared Function GetNewLine() As Line
Return New Line("LineID", "LineName")
End Function
Public Shared Function GetNewDevice() As Device
Return New Device(999, "DeviceName", Accueil.TParam)
End Function
End Class
///////
' Copyright (c) Microsoft Corporation. All rights reserved.
Public Class DataForm
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Accueil.PLCLineList.Count > 0 Then
Dim LineList As New Lines()
LineList.Add(New Line(0, "None"))
LineList(0).Device.Add(New Device(0, "None", Accueil.TParam))
Me.LinesBindingSource.DataSource = LinesManager.GetAllLines(LineList)
Else
Me.LinesBindingSource.DataSource = LinesManager.GetAllLines(Accueil.PLCLineList)
End If
End Sub
' Private Sub LinesBindingSource_AddingNew(ByVal sender As System.Object, ByVal e As System.ComponentModel.AddingNewEventArgs) Handles LinesBindingSource.AddingNew
' e.NewObject = LinesManager.GetNewLine()
'End Sub
Private Sub DevicesBindingSource_AddingNew(ByVal sender As System.Object, ByVal e As System.ComponentModel.AddingNewEventArgs) Handles DeviceBindingSource.AddingNew
e.NewObject = LinesManager.GetNewDevice()
End Sub
End Class
///////////////////////
Si vous pouviez me debloquer cela serait magnifique
pour de plus ample information, je vous repondrai dans la mesure du possible.
guillaumeIA
Messages postés12Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention 3 septembre 2009 22 août 2009 à 18:16
je développe l'explication du probleme :
résumé du problème:
a chaque création d'un nouveau device , les noms et paramètres sont affectés aux devices déjà créés remplaçant ainsi les paramètres propres aux autres devices
explication du problème:
en gros un device est une structure composé d'une ligne (integer), d'une adresse (integer)... quand un device est créé il contient donc une line et une adresse et des paramètres propres a celui ci .
si la database est vide, alors la ligne est créé et le device est ensuite ajouté celle ci et le device apparait alors dans la ligne avec ses paramètres. quand un deuxième device est créé, exemple device1 avec ces parametres1 celui ci est ajouté a la base de donne plclinelist mais toutes ces caractéristique sont copié sur le premier device créé
'(correspondant au device 0 de la ligne 1 different du device 0 de la ligne 0 et chaque parametre de device est different
voila ce que cela devrait faire
mais voila ce que mon code fait:
line0 -> device2 -> deviceid 2
param[19]
device2 -> deviceid 2
param[19]
line1-> device2 -> deviceid 2
param[19]
device2 -> deviceid 2
param[19] si celui ci est le dernier créé!!
guillaumeIA
Messages postés12Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention 3 septembre 2009 24 août 2009 à 12:36
BUG MIS A JOUR
Bonjour,
Je suis actuellement coincé
résumé du problème:
a chaque création d'un nouveau device , les paramètres sont affectés aux devices déjà créés remplaçant ainsi les paramètres propres aux autres devices
voici la partie critique du code:
public Class Accueil
Public Shared PLCLineList As New Lines
End Class
////////////////////
Public Class Device_property
Public Structure Device
Dim Name As String
Dim Line As Integer
Dim Adresse As Integer
Dim param() As Integer ' les parametres peuvent changer en fonction du device
End Structure
//////////////
Shared Function Fill_DataSource(ByVal Device As Device_property.Device) 'remplir la datasource
Dim Num_line_created, Found, num_line
Num_line_created = Accueil.PLCLineList.Count
Found = False
num_line = 0
If Num_line_created > 0 Then
For i = 0 To (Num_line_created - 1)
If Accueil.PLCLineList(i).LineID = Device.Line Then
Found = True
num_line = i
i = Num_line_created
End If
Next i
If Not Found Then
Accueil.PLCLineList.Add(New Line(Device.Line, "Line " & Device.Line))
num_line = Accueil.PLCLineList.Count - 1
End If
Else
Accueil.PLCLineList.Add(New Line(Device.Line, "Line " & Device.Line))
End If
Accueil.PLCLineList(num_line).Device.Add(New Device(num_line, Device.Adresse, "Device" & Device.Adresse, Device.param))
Return Nothing
End Function
///////////////////////
Public Class Line
''' <summary>
''' Creates a new Line
''' </summary>
''' The ID of the line
''' The name of the line
Public Sub New(ByVal LineId As Integer, ByVal LineName As String)
Initialize()
LineIDValue = LineId
LineNameValue = LineName
End Sub
Private Sub Initialize()
DevicesValue = New Devices()
End Sub
Private LineIDValue As String
''' <summary>
''' Identifier for the Line
''' </summary>
Public Property LineID() As String
Get
Return LineIDValue
End Get
Set(ByVal value As String)
LineIDValue = value
End Set
End Property
Private LineNameValue As String
''' <summary>
''' Name for the Line
''' </summary>
Public Property LineName() As String
Get
Return LineNameValue
End Get
Set(ByVal value As String)
LineNameValue = value
End Set
End Property
Private WithEvents DevicesValue As Devices
''' <summary>
''' The Devices for this Line
''' </summary>
Public Property Device() As Devices
Get
Return DevicesValue
End Get
Set(ByVal value As Devices)
DevicesValue = value
End Set
End Property
End Class
''' <summary>
''' A collection of Lines
''' </summary>
Public Class Lines
Inherits System.ComponentModel.BindingList(Of Line)
End Class
////////////////////
Public Class Device
'Public Sub New()
'End Sub
''' <summary>
''' Creates a new device
''' </summary>
''' The identifier for this device
''' The line who placed this device
''' The name of the device
''' The param of the device was placed
Public Sub New(ByVal lineid As Integer, ByVal DeviceID As Integer, ByVal DeviceName As String, ByVal Parameter As Array)
lineIDValue = lineid
DeviceIDValue = DeviceID
DeviceNameValue = DeviceName
ParameterValue = Parameter
End Sub
Private lineIDValue As Integer
''' <summary>
''' Identifier for the order
''' </summary>
Public ReadOnly Property lineID() As Integer
Get
Return lineIDValue
End Get
End Property
Private DeviceIDValue As Integer
''' <summary>
''' Identifier for the Device
''' </summary>
Public ReadOnly Property DeviceID() As Integer
Get
Return DeviceIDValue
End Get
End Property
Private DeviceNameValue As String
''' <summary>
''' The Line where placed this Device
''' </summary>
Public Property DeviceNameID() As String
Get
Return DeviceNameValue
End Get
Set(ByVal Value As String)
DeviceNameValue = Value
End Set
End Property
Private WithEvents ParameterValue As Array
''' <summary>
''' The parameter of the device
''' </summary>
Public Property Parameter() As Array
Get
Return ParameterValue
End Get
Set(ByVal Value As Array)
ParameterValue = Value
End Set
End Property
End Class
''' <summary>
''' A collection of Device
''' </summary>
Public Class Devices
Inherits System.ComponentModel.BindingList(Of Device)
End Class
/////////////////////
Si vous pouviez me debloquer cela serait magnifique
pour de plus ample information, je vous repondrai dans la mesure du possible.