Public Class GUI_Gratings_Data ' --- Creates the table with points data used in SW --- Public Shared Function Create_ExportTable() As DataTable Dim lSpacing As String = GUI.ComboBox_MeshSize.Text.Split("x")(0) Dim cSpacing As String = GUI.ComboBox_MeshSize.Text.Split("x")(1).Split(" ")(0) Dim gratingTable As New DataTable gratingTable.Columns.Add("TYPE", GetType(String)) gratingTable.Columns.Add("SERRATED", GetType(Boolean)) gratingTable.Columns.Add("WIDTH", GetType(Decimal)) gratingTable.Columns.Add("LENGTH", GetType(Decimal)) gratingTable.Columns.Add("LOADBAR_THICKNESS", GetType(Decimal)) gratingTable.Columns.Add("LOADBAR_HEIGHT", GetType(Decimal)) gratingTable.Columns.Add("LOADBAR_SPACING", GetType(Decimal)) gratingTable.Columns.Add("CROSSBAR_SPACING", GetType(Decimal)) gratingTable.Columns.Add("CROSSBAR_DIAMETER", GetType(Decimal)) gratingTable.Columns.Add("CROSSBAR_THICKNESS", GetType(Decimal)) gratingTable.Columns.Add("CROSSBAR_HEIGHT", GetType(Decimal)) gratingTable.Rows.Add() gratingTable.Rows(0)("SERRATED") = False 'Hämta från GUI gratingTable.Rows(0)("WIDTH") = CDec(GUI.ComboBox_Width.Text) gratingTable.Rows(0)("LENGTH") = CDec(GUI.ComboBox_Length.Text) gratingTable.Rows(0)("LOADBAR_THICKNESS") = CDec(GUI.ComboBox_Thickness.Text) gratingTable.Rows(0)("LOADBAR_HEIGHT") = CDec(GUI.ComboBox_Height.Text) gratingTable.Rows(0)("LOADBAR_SPACING") = CDec(lSpacing) gratingTable.Rows(0)("CROSSBAR_SPACING") = CDec(cSpacing) If GUI.ComboBox_TypeChooser.Text = "Pressure Welded" Then gratingTable.Rows(0)("TYPE") = "pressure_welded" ' Här behövs namn på HLCt modellen gratingTable.Rows(0)("CROSSBAR_DIAMETER") = 5 gratingTable.Rows(0)("CROSSBAR_THICKNESS") = 0 gratingTable.Rows(0)("CROSSBAR_HEIGHT") = 0 Else gratingTable.Rows(0)("TYPE") = "type_a" ' Här behövs namn på HLCt modellen gratingTable.Rows(0)("CROSSBAR_DIAMETER") = 0 gratingTable.Rows(0)("CROSSBAR_THICKNESS") = 2 gratingTable.Rows(0)("CROSSBAR_HEIGHT") = 15 End If Return gratingTable End Function ' --- Generate a table containing all the points X- and Y-values --- Public Shared Function Create_PointTable() Dim pointTable As New DataTable pointTable.Columns.Add("X", GetType(Decimal)) pointTable.Columns.Add("Y", GetType(Decimal)) For i = 0 To GUI.pointsOrder.Count - 1 Dim pTemp() As Decimal pTemp = GUI.points(GUI.pointsOrder(i)) pointTable.Rows.Add() pointTable.Rows(i)("X") = pTemp(2) pointTable.Rows(i)("Y") = pTemp(3) Next Return pointTable End Function ' --- Check if the key pressed is a number --- Private Sub Check_IfNumber(e As KeyPressEventArgs) If Asc(e.KeyChar) <> 8 Then If Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57 Then e.Handled = True End If End If End Sub Private Sub Create_TextBox(TextBoxName As String, TextBoxText As String, TextBoxLeft As Integer, TextBoxTop As Integer, TextBoxWidth As Integer) Dim textBoxTemp As New TextBox textBoxTemp.Name = TextBoxName textBoxTemp.Text = TextBoxText textBoxTemp.Left = TextBoxLeft textBoxTemp.Top = TextBoxTop textBoxTemp.Width = TextBoxWidth textBoxTemp.Font = New Font("Microsoft Sans Serif", 10) Me.Controls.Add(textBoxTemp) End Sub Private Sub Create_Label(LabelName As String, LabelText As String, LabelLeft As Integer, LabelTop As Integer) Dim LabelTemp As New Label LabelTemp.Name = LabelName LabelTemp.Text = LabelText LabelTemp.Left = LabelLeft LabelTemp.Top = LabelTop LabelTemp.Font = New Font("Microsoft Sans Serif", 10) Me.Controls.Add(LabelTemp) End Sub Public Shared Sub TypeChanged(sender As Object, e As EventArgs) ComboBox_Material.Enabled = True ComboBox_Material.Items.Clear() gratingType = ComboBox_TypeChooser.Text Dim materialDT As DataTable = dataBase("Material") Dim typeColumn As Integer = Get_ColumnIndex("TYPE", materialDT) Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", materialDT) Dim typeInDT As String = materialDT.Rows(0)(typeColumn) For i = 0 To materialDT.Rows.Count - 1 If gratingType = materialDT.Rows(i)(typeColumn) Then ComboBox_Material.Items.Add(materialDT.Rows(i)(materialColumn)) End If Try typeInDT = materialDT.Rows(i + 1)(typeColumn) Catch ex As Exception End Try Next ComboBox_Material.Text = ComboBox_Material.Items(0) End Sub Public Shared Sub MaterialChanged(sender As Object, e As EventArgs) ComboBox_MeshSize.Enabled = True gratingMaterial = ComboBox_Material.Text Dim serratedDT As DataTable = dataBase("Serrated") Dim removeCheckBox As Boolean = True Dim typeInDT As String = serratedDT.Rows(0)("TYPE") Dim materialInDT As String = serratedDT.Rows(0)("MATERIAL") If serratedCheckBoxBol = False Then For i = 0 To serratedDT.Rows.Count - 1 If gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then serratedCheckBox.Name = "CheckBox_Serrated" serratedCheckBox.Text = "Serrated" serratedCheckBox.Left = 115 serratedCheckBox.Top = 115 AddHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged Me.Controls.Add(serratedCheckBox) serratedCheckBoxBol = True Exit For End If Try typeInDT = serratedDT.Rows(i + 1)("TYPE") materialInDT = serratedDT.Rows(i + 1)("MATERIAL") Catch ex As Exception End Try Next Else For i = 0 To serratedDT.Rows.Count - 1 If gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then removeCheckBox = False Exit For End If Try typeInDT = serratedDT.Rows(i + 1)("TYPE") materialInDT = serratedDT.Rows(i + 1)("MATERIAL") Catch ex As Exception End Try Next If serratedCheckBoxBol = True AndAlso removeCheckBox = True Then RemoveHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged Me.Controls.RemoveByKey("CheckBox_Serrated") serratedCheckBoxBol = False gratingSerrated = False End If End If If lacqueredCheckBoxBol = False AndAlso (gratingMaterial = "Hot dip galvanized steel" OrElse gratingMaterial = "Untreated") Then lacqueredCheckBox.Name = "CheckBox_Lacquered" lacqueredCheckBox.Text = "Lacquered" lacqueredCheckBox.Left = 115 lacqueredCheckBox.Top = 135 AddHandler lacqueredCheckBox.CheckedChanged, AddressOf CheckBox_Lacquered_CheckedChanged Me.Controls.Add(lacqueredCheckBox) lacqueredCheckBoxBol = True ElseIf lacqueredCheckBoxBol = True AndAlso gratingMaterial <> "Hot dip galvanized steel" AndAlso gratingMaterial <> "Untreated" Then RemoveHandler lacqueredCheckBox.CheckedChanged, AddressOf CheckBox_Lacquered_CheckedChanged Me.Controls.RemoveByKey("CheckBox_Lacquered") lacqueredCheckBoxBol = False gratingLacquered = False End If ' Untreated finns för alla som är varmförzinkade enligt Jakob Teams Update_AvalaibleMeshes() End Sub Private Sub CheckBox_Serrated_CheckedChanged(sender As Object, e As EventArgs) If sender.Checked Then gratingSerrated = True Update_AvalaibleMeshes() Else gratingSerrated = False Update_AvalaibleMeshes() End If End Sub Private Sub CheckBox_Lacquered_CheckedChanged(sender As Object, e As EventArgs) 'Här hanterar vi om den är lackad eller inte 'påverkar ej övrig kod (förutom kommentar att det är special order) If sender.Checked Then gratingLacquered = True Else gratingLacquered = False End If End Sub Private Sub Update_AvalaibleMeshes() ComboBox_MeshSize.Items.Clear() Dim meshesDT As DataTable = dataBase("Meshes") Dim typeColumn As Integer = Get_ColumnIndex("TYPE", meshesDT) Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", meshesDT) Dim serratedColumn As Integer = Get_ColumnIndex("SERRATED", meshesDT) Dim typeInDT As String = meshesDT.Rows(0)(typeColumn) Dim materialInDT As String = meshesDT.Rows(0)(materialColumn) Dim serratedInDT As Boolean = CBool(meshesDT.Rows(0)(serratedColumn)) For i = 0 To meshesDT.Rows.Count - 1 If gratingSerrated = serratedInDT AndAlso gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then Dim item As String item = meshesDT.Rows(i)("LB-SPACING") & "x" & meshesDT.Rows(i)("CB-SPACING") & " (" & meshesDT.Rows(i)("NAME") & ")" Dim addItem As Boolean = True For j = 0 To ComboBox_MeshSize.Items.Count - 1 If item = ComboBox_MeshSize.Items(j) Then addItem = False Exit For End If Next If addItem = True Then ComboBox_MeshSize.Items.Add(item) End If End If Try typeInDT = meshesDT.Rows(i + 1)(typeColumn) materialInDT = meshesDT.Rows(i + 1)(materialColumn) serratedInDT = meshesDT.Rows(i + 1)(serratedColumn) Catch ex As Exception End Try Next If ComboBox_MeshSize.Items.Count = 0 Then ComboBox_MeshSize.Items.Add("") End If End Sub Public Shared Sub MeshChanged(sender As Object, e As EventArgs) ComboBox_Height.Enabled = True ComboBox_Height.Items.Clear() gratingMesh = ComboBox_MeshSize.Text loadBarSpacing = CInt(gratingMesh.Split("x")(0)) crossBarSpacing = CInt(gratingMesh.Split("x")(1).Split(" ")(0)) ' Add heights If loadBarSpacing = 12 And crossBarSpacing = 100 Then ComboBox_Height.Items.Add("20") ComboBox_Height.Items.Add("25") End If End Sub Public Shared Sub HeightChanged(sender As Object, e As EventArgs) ComboBox_Thickness.Enabled = True ComboBox_Thickness.Items.Clear() gratingHeight = CInt(ComboBox_Height.Text) ' Add thicknesses If gratingHeight = 20 Then ComboBox_Thickness.Items.Add("2") ComboBox_Thickness.Items.Add("3") End If End Sub Public Shared Sub ThicknessChanged(sender As Object, e As EventArgs) ComboBox_Width.Enabled = True ComboBox_Width.Items.Clear() ComboBox_Length.Enabled = True ComboBox_Length.Items.Clear() loadBarThickness = CInt(ComboBox_Thickness.Text) ' Add Widths ComboBox_Width.Items.Add("300") ComboBox_Width.Items.Add("500") ComboBox_Width.Items.Add("1000") ComboBox_Width.Text = ComboBox_Width.Items(0) ' Add Length ComboBox_Length.Items.Add("500") ComboBox_Length.Items.Add("1000") ComboBox_Length.Text = ComboBox_Length.Items(0) End Sub Public Shared Sub WholeMeshWidthsChanged(sender As Object, e As EventArgs) If CheckBox_WholeMeshWidths.Checked Then ComboBox_Width.DropDownStyle = ComboBoxStyle.DropDownList Else ComboBox_Width.DropDownStyle = ComboBoxStyle.DropDown End If End Sub Public Shared Sub WidthChanged(sender As Object, e As EventArgs) If ComboBox_Width.Text <> "" Then If CDec(ComboBox_Width.Text) > 0 Then gratingMaxW = CDec(ComboBox_Width.Text) Update_GratingPoints() End If End If 'If stocked length options exist If gratingMaxW = 500 Then Dim stockedCheckBox As New CheckBox stockedCheckBox.Name = "CheckBox_Stocked" stockedCheckBox.Text = "Only stocked lengths" stockedCheckBox.Left = 94 stockedCheckBox.Top = 386 stockedCheckBox.Checked = True Me.Controls.Add(stockedCheckBox) End If End Sub Public Shared Sub LengthChanged(sender As Object, e As EventArgs) If ComboBox_Length.Text <> "" Then If CDec(ComboBox_Length.Text) > 0 Then gratingMaxL = CDec(ComboBox_Length.Text) Update_GratingPoints() End If End If End Sub End Class