Public Class User_Input Public Shared gratingType, gratingMaterial, gratingMesh, gratingName As String Public Shared gratingSerrated As Boolean = False Public Shared gratingLacquered As Boolean = False Public Shared loadBarSpacing, crossBarSpacing, gratingHeight, loadBarThickness As Integer Public Shared CBDiameter, CBHeight, CBThickness As Double Public Shared wholeMeshesColumn As String Private Shared serratedCheckBox As New CheckBox Private Shared serratedCheckBoxBol As Boolean = False Private Shared lacqueredCheckBox As New CheckBox Private Shared lacqueredCheckBoxBol As Boolean = False Public Shared Sub TypeChanged(sender As Object, e As EventArgs) Individual.ComboBox_Material.Enabled = True Individual.ComboBox_Material.Items.Clear() gratingType = Individual.ComboBox_Type.Text Dim materialDT As DataTable = Database.database.Tables("Material") Dim typeInDT As String = materialDT.Rows(0)("TYPE") For i = 0 To materialDT.Rows.Count - 1 If gratingType = typeInDT Then Individual.ComboBox_Material.Items.Add(materialDT.Rows(i)("MATERIAL")) End If Try typeInDT = materialDT.Rows(i + 1)("TYPE") Catch ex As Exception End Try Next Individual.ComboBox_Material.Text = Individual.ComboBox_Material.Items(0) End Sub Public Shared Sub MaterialChanged(sender As Object, e As EventArgs) Individual.ComboBox_Mesh.Enabled = True gratingMaterial = Individual.ComboBox_Material.Text Dim serratedDT As DataTable = Database.database.Tables("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 = Individual.ComboBox_Material.Left serratedCheckBox.Top = Individual.ComboBox_Material.Top + 25 AddHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged Individual.Panel_Data.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 Individual.Panel_Data.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 = Individual.ComboBox_Material.Left lacqueredCheckBox.Top = Individual.ComboBox_Material.Top + 50 AddHandler lacqueredCheckBox.CheckedChanged, AddressOf CheckBox_Lacquered_CheckedChanged Individual.Panel_Data.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 Individual.Panel_Data.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 Shared 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 Shared 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 Shared Sub Update_AvalaibleMeshes() Individual.ComboBox_Height.Items.Clear() Individual.ComboBox_Height.Enabled = False Individual.ComboBox_Thickness.Items.Clear() Individual.ComboBox_Thickness.Enabled = False Individual.ComboBox_Mesh.Items.Clear() Dim meshesDT As DataTable = Database.database.Tables("Meshes") Dim typeInDT As String = meshesDT.Rows(0)("TYPE") Dim materialInDT As String = meshesDT.Rows(0)("MATERIAL") Dim serratedInDT As Boolean = CBool(meshesDT.Rows(0)("SERRATED")) 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 Individual.ComboBox_Mesh.Items.Count - 1 If item = Individual.ComboBox_Mesh.Items(j) Then addItem = False Exit For End If Next If addItem = True Then Individual.ComboBox_Mesh.Items.Add(item) End If End If Try typeInDT = meshesDT.Rows(i + 1)("TYPE") materialInDT = meshesDT.Rows(i + 1)("MATERIAL") serratedInDT = meshesDT.Rows(i + 1)("SERRATED") Catch ex As Exception End Try Next If Individual.ComboBox_Mesh.Items.Count = 0 Then Individual.ComboBox_Mesh.Items.Add("") End If End Sub Public Shared Sub MeshChanged(sender As Object, e As EventArgs) Individual.ComboBox_Thickness.Items.Clear() Individual.ComboBox_Thickness.Enabled = False Individual.ComboBox_Height.Enabled = True Individual.ComboBox_Height.Items.Clear() gratingMesh = Individual.ComboBox_Mesh.Text loadBarSpacing = CInt(gratingMesh.Split("x")(0)) crossBarSpacing = CInt(gratingMesh.Split("x")(1).Split(" ")(0)) gratingName = gratingMesh.Split("(")(1).Split(")")(0) ' Add heights Dim meshesDT As DataTable = Database.database.Tables("Meshes") Dim nameInDT As String = meshesDT.Rows(0)("NAME") Dim materialInDT As String = meshesDT.Rows(0)("MATERIAL") Dim serratedInDT As Boolean = CBool(meshesDT.Rows(0)("SERRATED")) Dim LBSpacingInDT As Integer = CInt(meshesDT.Rows(0)("LB-SPACING")) Dim CBSpacingInDT As Integer = CInt(meshesDT.Rows(0)("CB-SPACING")) Dim tempList As New List(Of Integer) For i = 0 To meshesDT.Rows.Count - 1 If gratingName = nameInDT AndAlso loadBarSpacing = LBSpacingInDT AndAlso crossBarSpacing = CBSpacingInDT _ AndAlso gratingSerrated = serratedInDT AndAlso gratingMaterial = materialInDT Then Dim addItem As Boolean = True For j = 0 To tempList.Count - 1 If meshesDT.Rows(i)("LB-HEIGHT") = tempList(j) Then addItem = False Exit For End If Next If addItem = True Then tempList.Add(CInt(meshesDT.Rows(i)("LB-HEIGHT"))) End If End If Try nameInDT = meshesDT.Rows(i + 1)("NAME") materialInDT = meshesDT.Rows(i + 1)("MATERIAL") serratedInDT = CBool(meshesDT.Rows(i + 1)("SERRATED")) LBSpacingInDT = CInt(meshesDT.Rows(i + 1)("LB-SPACING")) CBSpacingInDT = CInt(meshesDT.Rows(i + 1)("CB-SPACING")) Catch ex As Exception End Try Next tempList.Sort() For i = 0 To tempList.Count - 1 Individual.ComboBox_Height.Items.Add(tempList(i)) Next End Sub Public Shared Sub HeightChanged(sender As Object, e As EventArgs) Individual.ComboBox_Thickness.Enabled = True Individual.ComboBox_Thickness.Items.Clear() gratingHeight = CInt(Individual.ComboBox_Height.Text) Dim meshesDT As DataTable = Database.database.Tables("Meshes") Dim nameInDT As String = meshesDT.Rows(0)("NAME") Dim materialInDT As String = meshesDT.Rows(0)("MATERIAL") Dim serratedInDT As Boolean = CBool(meshesDT.Rows(0)("SERRATED")) Dim LBSpacingInDT As Integer = CInt(meshesDT.Rows(0)("LB-SPACING")) Dim CBSpacingInDT As Integer = CInt(meshesDT.Rows(0)("CB-SPACING")) Dim HeightInDT As Integer = CInt(meshesDT.Rows(0)("LB-HEIGHT")) Dim tempList As New List(Of Integer) For i = 0 To meshesDT.Rows.Count - 1 If gratingName = nameInDT AndAlso loadBarSpacing = LBSpacingInDT AndAlso crossBarSpacing = CBSpacingInDT _ AndAlso gratingSerrated = serratedInDT AndAlso gratingMaterial = materialInDT _ AndAlso gratingHeight = HeightInDT Then Dim addItem As Boolean = True For j = 0 To tempList.Count - 1 If meshesDT.Rows(i)("LB-THICKNESS") = tempList(j) Then addItem = False Exit For End If Next If addItem = True Then tempList.Add(CInt(meshesDT.Rows(i)("LB-THICKNESS"))) End If End If Try nameInDT = meshesDT.Rows(i + 1)("NAME") materialInDT = meshesDT.Rows(i + 1)("MATERIAL") serratedInDT = CBool(meshesDT.Rows(i + 1)("SERRATED")) LBSpacingInDT = CInt(meshesDT.Rows(i + 1)("LB-SPACING")) CBSpacingInDT = CInt(meshesDT.Rows(i + 1)("CB-SPACING")) HeightInDT = CInt(meshesDT.Rows(i + 1)("LB-HEIGHT")) Catch ex As Exception End Try Next tempList.Sort() For i = 0 To tempList.Count - 1 Individual.ComboBox_Thickness.Items.Add(tempList(i)) Next End Sub Public Shared Sub WholeMeshWidthsChanged(sender As Object, e As EventArgs) If sender.Checked Then Individual.ComboBox_Width.DropDownStyle = ComboBoxStyle.DropDownList Else Individual.ComboBox_Width.DropDownStyle = ComboBoxStyle.DropDown End If End Sub Public Shared Sub ThicknessChanged(sender As Object, e As EventArgs) Individual.ComboBox_Width.Enabled = True Individual.ComboBox_Width.Items.Clear() Individual.TextBox_Width.Enabled = True Individual.TextBox_Length.Text = 1000 Individual.TextBox_Length.Enabled = True If AppForm.fillMode = False Then Individual.Panel_Data.Controls("CheckBox_Whole_Mesh").Enabled = True End If loadBarThickness = CInt(Individual.ComboBox_Thickness.Text) Dim meshesDT As DataTable = Database.database.Tables("Meshes") Dim nameInDT As String = meshesDT.Rows(0)("NAME") Dim materialInDT As String = meshesDT.Rows(0)("MATERIAL") Dim serratedInDT As Boolean = CBool(meshesDT.Rows(0)("SERRATED")) Dim LBSpacingInDT As Integer = CInt(meshesDT.Rows(0)("LB-SPACING")) Dim CBSpacingInDT As Integer = CInt(meshesDT.Rows(0)("CB-SPACING")) Dim HeightInDT As Integer = CInt(meshesDT.Rows(0)("LB-HEIGHT")) Dim ThicknessInDT As Integer = CInt(meshesDT.Rows(0)("LB-THICKNESS")) For i = 0 To meshesDT.Rows.Count - 1 If gratingName = nameInDT AndAlso loadBarSpacing = LBSpacingInDT AndAlso crossBarSpacing = CBSpacingInDT _ AndAlso gratingSerrated = serratedInDT AndAlso gratingMaterial = materialInDT _ AndAlso gratingHeight = HeightInDT AndAlso loadBarThickness = ThicknessInDT Then wholeMeshesColumn = meshesDT.Rows(i)("WHOLE MESHES") If gratingType = "Pressure Welded" Then CBDiameter = meshesDT.Rows(i)("CB-DIAMETER") CBHeight = 0 CBThickness = 0 Else CBDiameter = 0 CBHeight = meshesDT.Rows(i)("CB-HEIGHT") CBThickness = meshesDT.Rows(i)("CB-THICKNESS") End If Exit For End If Try nameInDT = meshesDT.Rows(i + 1)("NAME") materialInDT = meshesDT.Rows(i + 1)("MATERIAL") serratedInDT = CBool(meshesDT.Rows(i + 1)("SERRATED")) LBSpacingInDT = CInt(meshesDT.Rows(i + 1)("LB-SPACING")) CBSpacingInDT = CInt(meshesDT.Rows(i + 1)("CB-SPACING")) HeightInDT = CInt(meshesDT.Rows(i + 1)("LB-HEIGHT")) ThicknessInDT = CInt(meshesDT.Rows(i + 1)("LB-THICKNESS")) Catch ex As Exception End Try Next Dim wholeMeshesDT As DataTable = Database.database.Tables("Whole Meshes") For i = 0 To wholeMeshesDT.Rows.Count - 1 If Not IsDBNull(wholeMeshesDT.Rows(i)(wholeMeshesColumn)) Then Individual.ComboBox_Width.Items.Add(wholeMeshesDT.Rows(i)(wholeMeshesColumn)) End If Next Individual.ComboBox_Width.Text = Individual.ComboBox_Width.Items(0) Individual.TextBox_Width.Text = 1000 End Sub Public Shared Sub WidthChanged(sender As Object, e As EventArgs) If AppForm.fillMode Then If Individual.TextBox_Width.Text <> "" Then If CInt(Individual.TextBox_Width.Text) >= Individual.ComboBox_Width.Items(Individual.ComboBox_Width.Items.Count - 1) Then Data.gratingW = CInt(Individual.TextBox_Width.Text) Draw_Grating.Update_GratingPoints() End If Enable_Buttons() End If Else If Individual.ComboBox_Width.Text <> "" Then If CInt(Individual.ComboBox_Width.Text) >= Individual.ComboBox_Width.Items(Individual.ComboBox_Width.Items.Count - 1) AndAlso CInt(Individual.ComboBox_Width.Text) <= Individual.ComboBox_Width.Items(0) Then Data.gratingW = CInt(Individual.ComboBox_Width.Text) Draw_Grating.Update_GratingPoints() End If Enable_Buttons() End If End If End Sub Public Shared Sub LengthChanged(sender As Object, e As EventArgs) If Individual.TextBox_Length.Text <> "" Then If AppForm.fillMode Then If CInt(Individual.TextBox_Length.Text) >= 200 Then Data.gratingL = CInt(Individual.TextBox_Length.Text) Draw_Grating.Update_GratingPoints() Else 'Message: Out of boundary End If Enable_Buttons() Else If CInt(Individual.TextBox_Length.Text) >= 200 AndAlso CInt(Individual.TextBox_Length.Text) <= 6000 Then Data.gratingL = CInt(Individual.TextBox_Length.Text) Draw_Grating.Update_GratingPoints() Else 'Message: Out of boundary End If Enable_Buttons() End If End If End Sub Private Shared Sub Enable_Buttons() If AppForm.fillMode Then If Individual.TextBox_Width.Text <> "" AndAlso Individual.TextBox_Length.Text <> "" Then Individual.Button_Export_GUI.Enabled = True Individual.Button_Export_SW.Enabled = True Individual.Panel_Data.Controls("Button_Calculate").Enabled = True Individual.Button_Angle_Corner.Enabled = True Individual.Button_Angle_Side.Enabled = True Individual.Button_Square_Corner.Enabled = True Individual.Button_Square_Side.Enabled = True Individual.Button_Square_Middle.Enabled = True Individual.Panel_Data.Controls("TextBox_Max_Load").Enabled = True End If Else If Individual.ComboBox_Width.Text <> "" AndAlso Individual.TextBox_Length.Text <> "" Then Individual.Button_Export_GUI.Enabled = True Individual.Button_Export_SW.Enabled = True Individual.Button_Angle_Corner.Enabled = True Individual.Button_Angle_Side.Enabled = True Individual.Button_Square_Corner.Enabled = True Individual.Button_Square_Side.Enabled = True Individual.Button_Square_Middle.Enabled = True End If End If End Sub ' --- Creates the table with points data used in SW --- Public Shared Function Create_ExportTable() As DataTable Dim lSpacing As String = Individual.ComboBox_Mesh.Text.Split("x")(0) Dim cSpacing As String = Individual.ComboBox_Mesh.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(Integer)) gratingTable.Columns.Add("LENGTH", GetType(Integer)) gratingTable.Columns.Add("LOADBAR_THICKNESS", GetType(Integer)) gratingTable.Columns.Add("LOADBAR_HEIGHT", GetType(Integer)) gratingTable.Columns.Add("LOADBAR_SPACING", GetType(Integer)) gratingTable.Columns.Add("CROSSBAR_SPACING", GetType(Integer)) gratingTable.Columns.Add("CROSSBAR_DIAMETER", GetType(Integer)) gratingTable.Columns.Add("CROSSBAR_THICKNESS", GetType(Integer)) gratingTable.Columns.Add("CROSSBAR_HEIGHT", GetType(Integer)) gratingTable.Rows.Add() gratingTable.Rows(0)("SERRATED") = False 'Hämta från GUI gratingTable.Rows(0)("WIDTH") = CInt(Individual.ComboBox_Width.Text) gratingTable.Rows(0)("LENGTH") = CInt(Individual.TextBox_Length.Text) gratingTable.Rows(0)("LOADBAR_THICKNESS") = CInt(Individual.ComboBox_Thickness.Text) gratingTable.Rows(0)("LOADBAR_HEIGHT") = CInt(Individual.ComboBox_Height.Text) gratingTable.Rows(0)("LOADBAR_SPACING") = CInt(lSpacing) gratingTable.Rows(0)("CROSSBAR_SPACING") = CInt(cSpacing) If Individual.ComboBox_Type.Text = "Pressure Welded" Then gratingTable.Rows(0)("TYPE") = "pressure_welded" ' Här behövs namn på HLCt modellen gratingTable.Rows(0)("CROSSBAR_DIAMETER") = CBDiameter 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") = CBThickness gratingTable.Rows(0)("CROSSBAR_HEIGHT") = CBHeight End If Return gratingTable End Function ' --- Check if the key pressed is a number --- Public Shared 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 End Class