70b1519ecb
- aggiunta gestione selezione facce di supefici diverse per lavorazioni (per ora una sola faccia per superficie).
90 lines
2.4 KiB
VB.net
90 lines
2.4 KiB
VB.net
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
|