Sin descripción
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

安培容量計算.vb 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. Public Class 安培容量計算
  2. Dim 開始計算 As Boolean
  3. Private Sub Set_電線清單()
  4. Dim ds1 As New DataSet : 電線清單_dgv.DataSource = Nothing : ds1.Clear()
  5. 電線清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  6. 電線清單_dgv.ColumnHeadersHeight = 25
  7. 電線清單_dgv.AllowUserToAddRows = False
  8. SQL_電線清單()
  9. da.Fill(ds1) : 電線清單_dgv.DataSource = ds1.Tables(0) : conn.Close()
  10. End Sub
  11. Private Sub Set_電纜清單()
  12. Dim ds1 As New DataSet : 電纜清單_dgv.DataSource = Nothing : ds1.Clear()
  13. 電纜清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  14. 電纜清單_dgv.ColumnHeadersHeight = 25
  15. 電纜清單_dgv.AllowUserToAddRows = False
  16. If 表定安培容量1_tb.Text = "" Then : 表定安培容量1_tb.Text = "0" : End If
  17. SQL_電纜清單()
  18. da.Fill(ds1) : 電纜清單_dgv.DataSource = ds1.Tables(0) : conn.Close()
  19. End Sub
  20. Private Sub 安培容量計算_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  21. End Sub
  22. Private Sub 安培容量計算_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  23. 開始計算 = False : 最高容許溫度_cb.SelectedIndex = 0 : 周圍溫度_cb.SelectedIndex = 0 : 電線_cb.SelectedIndex = 0 : 施工方式_cb.SelectedIndex = 0
  24. 額定電壓_cb.SelectedIndex = 0 : 周圍溫度1_cb.Text = "30" : 開始計算 = True
  25. End Sub
  26. Private Sub 電線總類_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 電線清單_dgv.CellClick
  27. If e.RowIndex = -1 Then : Else
  28. 線別_cb.Text = 電線清單_dgv("線別", e.RowIndex).Value.ToString
  29. 公稱截面積_cb.Text = 電線清單_dgv("公稱截面積", e.RowIndex).Value.ToString : 根數直徑_cb.Text = 電線清單_dgv("根數/直徑", e.RowIndex).Value.ToString
  30. End If
  31. End Sub
  32. Private Sub 電纜清單_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 電纜清單_dgv.CellClick
  33. If e.RowIndex = -1 Then : Else : 公稱截面積1_cb.Text = 電纜清單_dgv("公稱截面積", e.RowIndex).Value.ToString : End If
  34. End Sub
  35. '-------------------電線--------------------------------------------------------------------------------------------------------------------------------------------------
  36. Private Sub 最高容許溫度_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 最高容許溫度_cb.SelectedIndexChanged
  37. PA1 = 最高容許溫度_cb.Text : SQL_電線總類清單1() : 電線_cb.Items.Clear() : While (dr.Read()) : 電線_cb.Items.Add(Strings.Mid(dr("絕緣電線種類"), 3, 50)) : End While : conn.Close()
  38. If 開始計算 = True Then
  39. If 正向計算_ch.Checked = True Then
  40. PA9 = 周圍溫度_cb.Text : SQL_安培容量表基數4()
  41. If dr.Read() Then
  42. If 最高容許溫度_cb.Text = "60" Then : 修正係數_tb.Text = dr("60℃").ToString : ElseIf 最高容許溫度_cb.Text = "75" Then : 修正係數_tb.Text = dr("75℃").ToString
  43. ElseIf 最高容許溫度_cb.Text = "80" Then : 修正係數_tb.Text = dr("80℃").ToString : ElseIf 最高容許溫度_cb.Text = "90" Then : 修正係數_tb.Text = dr("90℃").ToString : End If
  44. End If : 計算安培數()
  45. Else
  46. PA9 = 周圍溫度_cb.Text : SQL_安培容量表基數4()
  47. If dr.Read() Then
  48. If 最高容許溫度_cb.Text = "60" Then : 修正係數_tb.Text = dr("60℃").ToString : ElseIf 最高容許溫度_cb.Text = "75" Then : 修正係數_tb.Text = dr("75℃").ToString
  49. ElseIf 最高容許溫度_cb.Text = "80" Then : 修正係數_tb.Text = dr("80℃").ToString : ElseIf 最高容許溫度_cb.Text = "90" Then : 修正係數_tb.Text = dr("90℃").ToString : End If
  50. End If : 安培容量反推()
  51. End If
  52. End If
  53. End Sub
  54. Private Sub 配線方式_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 配線方式_cb.SelectedIndexChanged
  55. If 正向計算_ch.Checked = True Then
  56. PA9 = 配線方式_cb.Text
  57. SQL_安培容量表基數3() : 導線數_cb.Items.Clear() : While (dr.Read()) : 導線數_cb.Items.Add(dr("導線管內導線數")) : End While : conn.Close() : 計算安培數()
  58. Else
  59. PA9 = 配線方式_cb.Text
  60. SQL_安培容量表基數3() : 導線數_cb.Items.Clear() : While (dr.Read()) : 導線數_cb.Items.Add(dr("導線管內導線數")) : End While : conn.Close() : 安培容量反推()
  61. End If
  62. End Sub
  63. Private Sub 線別_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 線別_cb.SelectedIndexChanged
  64. PA9 = 線別_cb.Text
  65. SQL_安培容量表基數1() : 公稱截面積_cb.Items.Clear() : While (dr.Read()) : 公稱截面積_cb.Items.Add(dr("公稱截面積")) : End While : conn.Close()
  66. SQL_安培容量表基數2() : 根數直徑_cb.Items.Clear() : While (dr.Read()) : 根數直徑_cb.Items.Add(dr("根數/直徑")) : End While : conn.Close()
  67. If 正向計算_ch.Checked = True Then : 計算安培數() : Else : End If
  68. End Sub
  69. Private Sub 周圍溫度_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 周圍溫度_cb.SelectedIndexChanged
  70. PA9 = 周圍溫度_cb.Text : SQL_安培容量表基數4()
  71. If dr.Read() Then
  72. If 最高容許溫度_cb.Text = "60" Then : 修正係數_tb.Text = dr("60℃").ToString : ElseIf 最高容許溫度_cb.Text = "75" Then : 修正係數_tb.Text = dr("75℃").ToString
  73. ElseIf 最高容許溫度_cb.Text = "80" Then : 修正係數_tb.Text = dr("80℃").ToString : ElseIf 最高容許溫度_cb.Text = "90" Then : 修正係數_tb.Text = dr("90℃").ToString : End If
  74. End If
  75. If 正向計算_ch.Checked = True Then : 計算安培數() : Else : End If
  76. End Sub
  77. Private Sub 根數直徑_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 根數直徑_cb.SelectedIndexChanged
  78. PA9 = 根數直徑_cb.Text : SQL_安培容量表基數5() : If dr.Read() Then : 公稱截面積_cb.Text = dr("公稱截面積").ToString : End If
  79. If 正向計算_ch.Checked = True Then : 計算安培數() : Else : End If
  80. End Sub
  81. Private Sub 導線數_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 導線數_cb.SelectedIndexChanged
  82. If 正向計算_ch.Checked = True Then : 計算安培數() : Else : 安培容量反推() : End If
  83. End Sub
  84. Private Sub 計算安培數()
  85. PA1 = 配線方式_cb.Text : PA2 = 線別_cb.Text : PA3 = 根數直徑_cb.Text : PA4 = 最高容許溫度_cb.Text : PA5 = 導線數_cb.Text
  86. SQL_安培容量表基數6() : If dr.Read() Then : 表定安培容量_tb.Text = dr("安培容量").ToString : Else : 表定安培容量_tb.Text = "" : End If
  87. End Sub
  88. Private Sub 表定安培容量_tb_TextChanged(sender As Object, e As EventArgs) Handles 表定安培容量_tb.TextChanged
  89. If 正向計算_ch.Checked = True Then
  90. If IsNumeric(表定安培容量_tb.Text) = True And IsNumeric(修正係數_tb.Text) = True Then
  91. If 修正係數_tb.Text = "0" Then : 表定安培容量_tb.Text = 安培容量_tb.Text : Else
  92. 安培容量_tb.Text = Strings.Format(CInt(表定安培容量_tb.Text) * CDbl(修正係數_tb.Text), "#,##0.0")
  93. End If
  94. Else : 安培容量_tb.Text = "" : End If
  95. Else : End If
  96. End Sub
  97. Private Sub 修正係數_tb_TextChanged(sender As Object, e As EventArgs) Handles 修正係數_tb.TextChanged
  98. If 正向計算_ch.Checked = True Then
  99. If IsNumeric(表定安培容量_tb.Text) = True And IsNumeric(修正係數_tb.Text) = True Then
  100. If 修正係數_tb.Text = "0" Then : 表定安培容量_tb.Text = 安培容量_tb.Text : Else
  101. 安培容量_tb.Text = Strings.Format(CInt(表定安培容量_tb.Text) * CDbl(修正係數_tb.Text), "#,##0.0")
  102. End If
  103. Else : 安培容量_tb.Text = "" : End If
  104. Else
  105. If IsNumeric(安培容量_tb.Text) = True And IsNumeric(修正係數_tb.Text) = True Then
  106. If 修正係數_tb.Text = "0" Then : 表定安培容量_tb.Text = 安培容量_tb.Text : Else
  107. 表定安培容量_tb.Text = CInt(CInt(安培容量_tb.Text) / CDbl(修正係數_tb.Text))
  108. End If
  109. Else : 安培容量_tb.Text = "" : End If
  110. End If
  111. End Sub
  112. Private Sub 正向計算_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 正向計算_ch.Click
  113. 正向計算_ch.Checked = True : 反向計算_ch.Checked = False
  114. 最高容許溫度_lb.ForeColor = Color.Red : 線別_lb.ForeColor = Color.Red : 配線方式_lb.ForeColor = Color.Red
  115. 導線數_lb.ForeColor = Color.Red : 根數直徑_lb.ForeColor = Color.Red : 表定安培容量_lb.Text = "表定安培容量"
  116. End Sub
  117. Private Sub 反向計算_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 反向計算_ch.Click
  118. 正向計算_ch.Checked = False : 反向計算_ch.Checked = True
  119. 最高容許溫度_lb.ForeColor = Color.Red : 線別_lb.ForeColor = Color.Black : 配線方式_lb.ForeColor = Color.Red
  120. 導線數_lb.ForeColor = Color.Red : 根數直徑_lb.ForeColor = Color.Black : 表定安培容量_lb.Text = "推算安培容量"
  121. End Sub
  122. Private Sub 安培容量反推()
  123. If 安培容量_tb.Text = "" Then : 安培容量_tb.Text = "0" : End If
  124. If 修正係數_tb.Text = "0" Then : 表定安培容量_tb.Text = 安培容量_tb.Text : Else
  125. 表定安培容量_tb.Text = CInt(CInt(安培容量_tb.Text) / CDbl(修正係數_tb.Text))
  126. End If
  127. PA1 = 配線方式_cb.Text : PA2 = 最高容許溫度_cb.Text : PA3 = 表定安培容量_tb.Text : PA4 = 導線數_cb.Text
  128. Set_電線清單()
  129. End Sub
  130. Private Sub 安培容量_tb_TextChanged(sender As Object, e As EventArgs) Handles 安培容量_tb.TextChanged
  131. If 正向計算_ch.Checked = True Then : Else : 安培容量反推() : End If
  132. End Sub
  133. '-------------------電纜--------------------------------------------------------------------------------------------------------------------------------------------------
  134. Private Sub 正向計算1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 正向計算1_ch.Click
  135. 正向計算1_ch.Checked = True : 反向計算1_ch.Checked = False : 表定安培容量1_lb.Text = "表定安培容量" : 公稱截面積1_lb.ForeColor = Color.Red
  136. End Sub
  137. Private Sub 反向計算1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 反向計算1_ch.Click
  138. 正向計算1_ch.Checked = False : 反向計算1_ch.Checked = True : 表定安培容量1_lb.Text = "推算安培容量" : 公稱截面積1_lb.ForeColor = Color.Black
  139. End Sub
  140. Private Sub 施工方式_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 施工方式_cb.SelectedIndexChanged
  141. PA9 = 施工方式_cb.Text
  142. SQL_電纜安培容量表基數1() : 電纜_cb.Items.Clear() : While (dr.Read()) : 電纜_cb.Items.Add(dr("材質")) : End While : conn.Close()
  143. PA9 = 周圍溫度1_cb.Text : SQL_電纜安培容量表基數5()
  144. If dr.Read() Then
  145. If 施工方式_cb.Text = "地下管路敷設" Or 施工方式_cb.Text = "直埋敷設" Then : 修正係數1_tb.Text = dr("地下敷設").ToString
  146. Else : 修正係數1_tb.Text = dr("暗渠空架").ToString : End If
  147. End If
  148. End Sub
  149. Private Sub 電纜_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 電纜_cb.SelectedIndexChanged
  150. PA9 = 施工方式_cb.Text : PA8 = 電纜_cb.Text
  151. SQL_電纜安培容量表基數2() : 管路_心數_cb.Items.Clear() : While (dr.Read()) : 管路_心數_cb.Items.Add(dr("管路數/心數")) : End While : conn.Close()
  152. PA9 = 施工方式_cb.Text : PA8 = 電纜_cb.Text : PA7 = 額定電壓_cb.Text
  153. SQL_電纜安培容量表基數3() : 公稱截面積1_cb.Items.Clear() : While (dr.Read()) : 公稱截面積1_cb.Items.Add(dr("公稱截面積")) : End While : conn.Close()
  154. End Sub
  155. Private Sub 額定電壓_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 額定電壓_cb.SelectedIndexChanged
  156. PA9 = 施工方式_cb.Text : PA8 = 電纜_cb.Text : PA7 = 額定電壓_cb.Text : If 正向計算1_ch.Checked = True Then : 表定安培容量1_tb.Text = "" : End If
  157. SQL_電纜安培容量表基數3() : 公稱截面積1_cb.Items.Clear() : While (dr.Read()) : 公稱截面積1_cb.Items.Add(dr("公稱截面積")) : End While : conn.Close()
  158. If 正向計算1_ch.Checked = True Then : Else
  159. PA1 = 施工方式_cb.Text : PA2 = 電纜_cb.Text : PA3 = 表定安培容量1_tb.Text : PA4 = 額定電壓_cb.Text : PA5 = 管路_心數_cb.Text : Set_電纜清單()
  160. End If
  161. End Sub
  162. Private Sub 公稱截面積1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 公稱截面積1_cb.SelectedIndexChanged
  163. If 正向計算1_ch.Checked = True Then
  164. If 管路_心數_cb.Text = "" Then : 表定安培容量1_tb.Text = "" : Else
  165. PA9 = 施工方式_cb.Text : PA8 = 電纜_cb.Text : PA7 = 額定電壓_cb.Text : PA6 = 公稱截面積1_cb.Text : PA5 = 管路_心數_cb.Text
  166. SQL_電纜安培容量表基數4() : If dr.Read() Then : 表定安培容量1_tb.Text = dr("安培容量").ToString : End If
  167. End If
  168. Else : End If
  169. End Sub
  170. Private Sub 周圍溫度1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 周圍溫度1_cb.SelectedIndexChanged
  171. PA9 = 周圍溫度1_cb.Text : SQL_電纜安培容量表基數5()
  172. If dr.Read() Then
  173. If 施工方式_cb.Text = "地下管路敷設" Or 施工方式_cb.Text = "直埋敷設" Then : 修正係數1_tb.Text = dr("地下敷設").ToString
  174. Else : 修正係數1_tb.Text = dr("暗渠空架").ToString : End If
  175. End If
  176. End Sub
  177. Private Sub 表定安培容量1_tb_TextChanged(sender As Object, e As EventArgs) Handles 表定安培容量1_tb.TextChanged
  178. If 正向計算1_ch.Checked = True Then
  179. If 表定安培容量1_tb.Text <> "" And 表定安培容量1_tb.Text <> "" Then
  180. 安培容量1_tb.Text = Strings.Format(CInt(表定安培容量1_tb.Text) * CDbl(修正係數1_tb.Text), "#,##0.00")
  181. Else : 安培容量1_tb.Text = "0" : End If
  182. Else
  183. PA1 = 施工方式_cb.Text : PA2 = 電纜_cb.Text : PA3 = 表定安培容量1_tb.Text : PA4 = 額定電壓_cb.Text : PA5 = 管路_心數_cb.Text : Set_電纜清單()
  184. End If
  185. End Sub
  186. Private Sub 修正係數1_tb_TextChanged(sender As Object, e As EventArgs) Handles 修正係數1_tb.TextChanged
  187. If 正向計算1_ch.Checked = True Then
  188. If 表定安培容量1_tb.Text <> "" And 表定安培容量1_tb.Text <> "" Then
  189. 安培容量1_tb.Text = Strings.Format(CInt(表定安培容量1_tb.Text) * CDbl(修正係數1_tb.Text), "#,##0.00")
  190. Else : 安培容量1_tb.Text = "0" : End If
  191. Else
  192. If 修正係數1_tb.Text <> "" And 安培容量1_tb.Text <> "" Then
  193. 表定安培容量1_tb.Text = Strings.Format(CInt(安培容量1_tb.Text) / CDbl(修正係數1_tb.Text), "#,##0.00")
  194. Else : 安培容量1_tb.Text = "0" : End If
  195. End If
  196. End Sub
  197. Private Sub 安培容量1_tb_TextChanged(sender As Object, e As EventArgs) Handles 安培容量1_tb.TextChanged
  198. If 正向計算1_ch.Checked = True Then : Else
  199. If 修正係數1_tb.Text <> "" And 安培容量1_tb.Text <> "" Then
  200. 表定安培容量1_tb.Text = Strings.Format(CInt(安培容量1_tb.Text) / CDbl(修正係數1_tb.Text), "#,##0.00")
  201. Else : 安培容量1_tb.Text = "0" : End If
  202. End If
  203. End Sub
  204. Private Sub 管路_心數_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 管路_心數_cb.SelectedIndexChanged
  205. If 正向計算1_ch.Checked = True Then : Else
  206. PA1 = 施工方式_cb.Text : PA2 = 電纜_cb.Text : PA3 = 表定安培容量1_tb.Text : PA4 = 額定電壓_cb.Text : PA5 = 管路_心數_cb.Text : Set_電纜清單()
  207. End If
  208. End Sub
  209. End Class