EgtCAM5 :

- correzione selezione per lavorazioni.
This commit is contained in:
Dario Sassi
2026-03-31 11:42:26 +02:00
parent d8c97cf352
commit 06510d5925
+20 -47
View File
@@ -96,61 +96,34 @@ Module SelData
Return False
End Function
Friend Function GetIdSubCount() As Integer
Return m_IdSub.Count()
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
Friend Function GetAllSelectedGeom(ByRef vId() As Integer, ByRef vSub() As Integer) As Boolean
If GetIdSubCount() > 0 then
VerifyIdSub()
GetAllIdSub(vId, vSub)
Else
Dim MyId(EgtGetSelectedObjCount() - 1) As Integer
Dim MySub(EgtGetSelectedObjCount() - 1) As Integer
Dim nInd As Integer = 0
Dim EntId As Integer = EgtGetFirstSelectedObj()
While EntId <> GDB_ID.NULL
MyId(nInd) = EntId
MySub(nInd) = -1
nInd += 1
EntId = EgtGetNextSelectedObj()
End While
vId = MyId
vSub = MySub
End If
VerifyIdSub()
' Recupero tutte le entità selezionate con le loro eventuali sotto-parti
Dim MyId As New List(Of Integer)
Dim MySub As New List(Of Integer)
Dim nEntId As Integer = EgtGetFirstSelectedObj()
While nEntId <> GDB_ID.NULL
Dim MyEntSub As New List(Of Integer)
GetSubFromId( nEntId, MyEntSub)
For Each nEntSub As Integer In MyEntSub
MyId.Add(nEntId)
MySub.Add(nEntSub)
Next
nEntId = EgtGetNextSelectedObj()
End While
vId = MyId.ToArray()
vSub = MySub.ToArray()
Return True
End Function
Friend Function GetSubFromId( nId As Integer, ByRef nSub As Integer) As Boolean
Friend Function GetSubFromId(nId As Integer, ByRef vSub As List(Of Integer)) As Boolean
For i As Integer = 0 To m_IdSub.Count() - 1
If m_IdSub(i).m_nId = nId Then
nSub = m_IdSub(i).m_nSub
Return True
vSub.Add(m_IdSub(i).m_nSub)
End If
Next
nSub = -1
If vSub.Count > 0 Then Return True
vSub.Add(-1)
Return False
End Function