Imports System.Collections.ObjectModel Imports EgtUILib Module SelData Private Class SelData Friend m_nId As Integer Friend m_nSub As Integer Sub New() m_nId = GDB_ID.NULL m_nSub = -1 End Sub Sub New(nId As Integer, nSub As Integer) m_nId = nId m_nSub = nSub End Sub End Class Private m_IdSub As New List(Of SelData) Friend Sub ClearIdSub() m_IdSub.Clear() End Sub Friend Sub VerifyIdSub() ' Elimino i record con identificativi di entità non selezionate Dim i As Integer = 0 Do While i < m_IdSub.Count() - 1 If Not EgtIsSelectedObj(m_IdSub(i).m_nId) Then m_IdSub.RemoveAt(i) Else i += 1 End If Loop End Sub Friend Function AddIdSub(nId As Integer, nSub As Integer) As Boolean ' Ricerca di record con identificativo da aggiungere Dim nInd As Integer = -1 For i As Integer = 0 To m_IdSub.Count() - 1 If m_IdSub(i).m_nId = nId Then nInd = i Exit For End If Next ' Se trovato, aggiorno Sub If nInd >= 0 Then m_IdSub(nInd).m_nSub = nSub ' altrimenti aggiungo un nuovo record Else m_IdSub.Add(New SelData(nId, nSub)) End If Return True End Function Friend Function RemoveIdSub(nId As Integer) As Boolean ' Ricerca di record con identificativo da rimuovere For i As Integer = 0 To m_IdSub.Count() - 1 If m_IdSub(i).m_nId = nId Then m_IdSub.RemoveAt(i) Exit For End If Next Return True End Function Friend Function GetIdSub(nInd As Integer, ByRef nId As Integer, ByRef nSub As Integer) As Boolean If nInd < 0 Or nInd > m_IdSub.Count() - 1 Then nId = GDB_ID.NULL Return False End If nId = m_IdSub(nInd).m_nId nSub = m_IdSub(nInd).m_nSub Return True End Function Friend Function GetAllIdSub(ByRef vId() As Integer, ByRef vSub() As Integer) As Boolean Dim MyId(m_IdSub.Count() - 1) As Integer Dim MySub(m_IdSub.Count() - 1) As Integer For i As Integer = 0 To m_IdSub.Count() - 1 MyId(i) = m_IdSub(i).m_nId MySub(i) = m_IdSub(i).m_nSub Next vId = MyId vSub = MySub Return True End Function End Module