220 lines
5.6 KiB
VB.net
220 lines
5.6 KiB
VB.net
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class SectionXMaterial
|
|
Inherits VMBase
|
|
|
|
Private Shared m_nType As BWType
|
|
Public Shared ReadOnly Property nType As BWType
|
|
Get
|
|
Return m_nType
|
|
End Get
|
|
End Property
|
|
Public Shared Sub SetType(nType As BWType)
|
|
m_nType = nType
|
|
End Sub
|
|
|
|
Protected m_Material As List(Of String)
|
|
Public ReadOnly Property sMaterial As List(Of String)
|
|
Get
|
|
Return m_Material
|
|
End Get
|
|
End Property
|
|
|
|
Protected m_MaterialForSameSection_List As New List(Of String)
|
|
Public Property MaterialForSameSection_List As List(Of String)
|
|
Get
|
|
Return m_MaterialForSameSection_List
|
|
End Get
|
|
Set(value As List(Of String))
|
|
m_MaterialForSameSection_List = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_SelMaterialForSameSection As String
|
|
Public Property SelMaterialForSameSection As String
|
|
Get
|
|
Return m_SelMaterialForSameSection
|
|
End Get
|
|
Set(value As String)
|
|
m_SelMaterialForSameSection = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_dW As Double = 0
|
|
Public ReadOnly Property dW As Double
|
|
Get
|
|
Return m_dW
|
|
End Get
|
|
End Property
|
|
|
|
Protected m_dH As Double = 0
|
|
Public ReadOnly Property dH As Double
|
|
Get
|
|
Return m_dH
|
|
End Get
|
|
End Property
|
|
|
|
Protected m_dL As Double = 0
|
|
Public ReadOnly Property dL As Double
|
|
Get
|
|
Return m_dL
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property sSectionXMaterial As String
|
|
Get
|
|
Dim sAlias As String = String.Empty
|
|
For Each sMatItem In sMaterial
|
|
sAlias &= sMatItem & ";"
|
|
Next
|
|
sAlias = sAlias.TrimEnd(";")
|
|
If Me = Empty Then
|
|
Return ""
|
|
ElseIf m_nType = MachineType.BEAM Then
|
|
Return LenToString(m_dW, 3) & " x " & LenToString(m_dH, 3) & " " & sAlias
|
|
ElseIf m_nType = MachineType.WALL Then
|
|
Return LenToString(m_dH, 3) & " " & sAlias
|
|
Else Return ""
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Shared Operator =(ByVal S1 As SectionXMaterial, ByVal S2 As SectionXMaterial) As Boolean
|
|
Return (Math.Abs( S1.m_dH - S2.m_dH) < 100 * EPS_SMALL AndAlso
|
|
Math.Abs( S1.m_dW - S2.m_dW) < 100 * EPS_SMALL AndAlso
|
|
Math.Abs( S1.m_dL - S2.m_dL) < 100 * EPS_SMALL AndAlso
|
|
S1.m_Material.Any(Function(x) S2.m_Material.Any(Function(y) y = x)))
|
|
End Operator
|
|
|
|
Shared Operator <>(ByVal S1 As SectionXMaterial, ByVal S2 As SectionXMaterial) As Boolean
|
|
Return Not S1 = S2
|
|
End Operator
|
|
|
|
Public Overrides Function Equals(ByVal obj As Object) As Boolean
|
|
If TypeOf obj Is SectionXMaterial Then
|
|
Return Me = DirectCast(obj, SectionXMaterial) '(m_dH = obj.dH AndAlso m_dW = obj.dW AndAlso m_dL = obj.dL AndAlso m_Material.Any(Function(x) DirectCast(obj.sMaterial, List(Of String)).Any(Function(y) y = x)))
|
|
End If
|
|
Return False
|
|
End Function
|
|
|
|
Sub New(dW As Double, dH As Double, dL As Double, sMaterial As String)
|
|
If m_nType = BWType.BEAM Then
|
|
m_dW = dW
|
|
m_dH = dH
|
|
ElseIf m_nType = BWType.WALL Then
|
|
m_dH = dH
|
|
Else
|
|
m_dW = dW
|
|
m_dH = dH
|
|
m_dL = dL
|
|
End If
|
|
m_Material = New List(Of String)
|
|
Dim sMaterialArray() As String = Split(sMaterial, ";")
|
|
For Each sMatItem In sMaterialArray
|
|
m_Material.Add(sMatItem)
|
|
Next
|
|
End Sub
|
|
|
|
Public Shared Empty As New SectionXMaterial(-1, -1, -1, "")
|
|
|
|
#Region "Import BTL <-> Warehouse"
|
|
|
|
Private m_dNewW As Double
|
|
Public Property dNewW As Double
|
|
Get
|
|
Return m_dNewW
|
|
End Get
|
|
Set(value As Double)
|
|
m_dNewW = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_dNewL As Double
|
|
Public Property dNewL As Double
|
|
Get
|
|
Return m_dNewL
|
|
End Get
|
|
Set(value As Double)
|
|
m_dNewL = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_nQuantity As Integer
|
|
Public Property nQuantity As Integer
|
|
Get
|
|
Return m_nQuantity
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nQuantity = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_Alias_IsEnabled As Boolean
|
|
Public Property Alias_IsEnabled As Boolean
|
|
Get
|
|
Return m_Alias_IsEnabled
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_Alias_IsEnabled = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_Alias_IsChecked As Boolean
|
|
Public Overridable Property Alias_IsChecked As Boolean
|
|
Get
|
|
Return m_Alias_IsChecked
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_Alias_IsChecked = value
|
|
End Set
|
|
End Property
|
|
|
|
Public ReadOnly Property L_Msg As String
|
|
Get
|
|
Return EgtMsg(61604)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property W_Msg As String
|
|
Get
|
|
Return EgtMsg(61605)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property H_Msg As String
|
|
Get
|
|
Return EgtMsg(61606)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Quantity_Msg As String
|
|
Get
|
|
Return EgtMsg(61774)
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(dW As Double, dH As Double, dL As Double, sMaterial As String, nQuantity As Integer)
|
|
If m_nType = BWType.BEAM Then
|
|
m_dW = dW
|
|
m_dH = dH
|
|
ElseIf m_nType = BWType.WALL Then
|
|
m_dH = dH
|
|
Else
|
|
m_dW = dW
|
|
m_dH = dH
|
|
m_dL = dL
|
|
End If
|
|
m_Material = New List(Of String)
|
|
Dim sMaterialArray() As String = Split(sMaterial, ";")
|
|
For Each sMatItem In sMaterialArray
|
|
m_Material.Add(sMatItem)
|
|
Next
|
|
m_nQuantity = nQuantity
|
|
End Sub
|
|
|
|
#End Region ' Import BTL <-> Warehouse
|
|
|
|
End Class
|
|
|