Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

機構組件-零件BOM表.vb 57KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768
  1. Option Strict Off
  2. Imports System.Data.SqlClient
  3. Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
  4. Imports Microsoft.Office.Interop.Excel.Constants
  5. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  6. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  7. Imports Microsoft.Office.Interop.Excel.XlBorderWeight
  8. Imports Microsoft.Office.Interop.Excel.XlThemeFont
  9. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  10. Imports Microsoft.Office.Interop.Excel.XlWindowState
  11. Public Class 機構組件零件BOM表
  12. Dim conn As New SqlConnection : Dim conn1 As New SqlConnection : Dim conn2 As New SqlConnection : Dim conn3 As New SqlConnection
  13. Dim cmd As New SqlCommand : Dim cmd1 As New SqlCommand : Dim cmd2 As New SqlCommand : Dim cmd3 As New SqlCommand
  14. Dim dr1 As SqlDataReader : Dim dr2 As SqlDataReader
  15. Dim da As New SqlDataAdapter : Dim da1 As New SqlDataAdapter : Dim da2 As New SqlDataAdapter : Dim da3 As New SqlDataAdapter : Dim da4 As New SqlDataAdapter : Dim da5 As New SqlDataAdapter
  16. Dim da6 As New SqlDataAdapter : Dim da7 As New SqlDataAdapter
  17. Dim ds As New DataSet : Dim ds1 As New DataSet : Dim ds2 As New DataSet : Dim ds3 As New DataSet : Dim ds4 As New DataSet : Dim ds5 As New DataSet : Dim ds6 As New DataSet : Dim ds7 As New DataSet
  18. Dim 條件 As String
  19. Dim 加總1 As String = "0" : Dim 加總2 As String = "0" : Dim 加總3 As String = "0"
  20. Dim KE As Integer
  21. Private Sub 機構科目清單()
  22. DataGridView4.DataSource = Nothing : ds3.Clear()
  23. DataGridView4.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  24. DataGridView4.ColumnHeadersHeight = 25
  25. DataGridView4.AllowUserToAddRows = False
  26. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  27. SQL1 = "SELECT 品牌, 供應商, 科目, 類型 FROM 機構組件成本紀錄表 WHERE (科目 LIKE N'%" & ComboBox3.Text & "%') GROUP BY 品牌, 供應商, 科目, 類型 ORDER BY 類型"
  28. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da3.SelectCommand = cmd1 : da3.Fill(ds3) : DataGridView4.DataSource = ds3.Tables(0) : conn1.Close()
  29. If ComboBox3.Text <> "-請選擇-" Then : Set_grid4() : End If
  30. End Sub
  31. Private Sub 機構名稱清單()
  32. DataGridView5.DataSource = Nothing : ds4.Clear()
  33. DataGridView5.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  34. DataGridView5.ColumnHeadersHeight = 25
  35. DataGridView5.AllowUserToAddRows = False
  36. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  37. SQL1 = "SELECT 流水碼, 供應商, 品名 FROM 機構組件成本紀錄表 WHERE (類型 LIKE N'%" & ComboBox4.Text & "%') ORDER BY 流水碼"
  38. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da4.SelectCommand = cmd1 : da4.Fill(ds4) : DataGridView5.DataSource = ds4.Tables(0) : conn1.Close()
  39. Set_grid5()
  40. End Sub
  41. Private Sub 零組件清單()
  42. DataGridView6.DataSource = Nothing : ds5.Clear()
  43. DataGridView6.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  44. DataGridView6.ColumnHeadersHeight = 25
  45. DataGridView6.AllowUserToAddRows = False
  46. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  47. If 條件 = "" Then
  48. SQL1 = "SELECT 機構組件零件BOM表.機構碼, 機構組件成本紀錄表.科目, 機構組件成本紀錄表.類型, 機構組件成本紀錄表.品名 FROM 機構組件零件BOM表 INNER JOIN 機構組件成本紀錄表" &
  49. " ON 機構組件零件BOM表.機構碼 = 機構組件成本紀錄表.流水碼 GROUP BY 機構組件零件BOM表.機構碼, 機構組件成本紀錄表.科目, 機構組件成本紀錄表.類型, " &
  50. "機構組件成本紀錄表.品名 ORDER BY 機構組件成本紀錄表.科目"
  51. Else
  52. SQL1 = "SELECT 機構組件零件BOM表.機構碼, 機構組件成本紀錄表.科目, 機構組件成本紀錄表.類型, 機構組件成本紀錄表.品名 FROM 機構組件零件BOM表 INNER JOIN 機構組件成本紀錄表 ON " &
  53. "機構組件零件BOM表.機構碼 = 機構組件成本紀錄表.流水碼 WHERE (機構組件成本紀錄表.流水碼 LIKE N'%" & 條件 & "%') OR (機構組件成本紀錄表.品牌 LIKE N'%" & 條件 & "%') " &
  54. "OR (機構組件成本紀錄表.供應商 LIKE N'%" & 條件 & "%') OR (機構組件成本紀錄表.科目 LIKE N'%" & 條件 & "%') OR (機構組件成本紀錄表.類型 LIKE N'%" & 條件 & "%') OR " &
  55. "(機構組件成本紀錄表.品名 LIKE N'%" & 條件 & "%') GROUP BY 機構組件零件BOM表.機構碼, 機構組件成本紀錄表.科目, 機構組件成本紀錄表.類型, 機構組件成本紀錄表.品名 ORDER BY " &
  56. "機構組件成本紀錄表.科目"
  57. End If
  58. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da5.SelectCommand = cmd1 : da5.Fill(ds5) : DataGridView6.DataSource = ds5.Tables(0) : conn1.Close()
  59. Set_grid6() : 條件 = ""
  60. End Sub
  61. Private Sub DGV2寫入前設定()
  62. DataGridView2.DataSource = Nothing : ds.Clear()
  63. DataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  64. DataGridView2.ColumnHeadersHeight = 25
  65. DataGridView2.AllowUserToAddRows = False
  66. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  67. End Sub
  68. Private Sub DGV2寫入後設定()
  69. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da.SelectCommand = cmd1 : da.Fill(ds) : DataGridView2.DataSource = ds.Tables(0) : conn1.Close()
  70. Set_grid1()
  71. End Sub
  72. Private Sub 讀取零件清單()
  73. If PA = "" Then
  74. DGV2寫入前設定()
  75. SQL1 = "SELECT 流水碼, 品牌, 供應商, 科目, 品名, 型號及備註, 進貨單價, 幣別 FROM 零件成本紀錄表 ORDER BY 科目"
  76. Else
  77. DGV2寫入前設定()
  78. SQL1 = "SELECT 流水碼, 品牌, 供應商, 科目, 品名, 型號及備註, 進貨單價, 幣別 FROM 零件成本紀錄表 WHERE 品牌 like N'%" & PA &
  79. "%' OR 供應商 like N'%" & PA & "%' OR 科目 like N'%" & PA & "%' OR 品名 like N'%" & PA & "%' OR 型號及備註 like N'%" & PA & "%' OR 幣別 like N'%" & PA & "%' ORDER BY 科目"
  80. End If
  81. DGV2寫入後設定()
  82. End Sub
  83. Private Sub 讀取零組件清單()
  84. If PA = "" Then
  85. DGV2寫入前設定()
  86. SQL1 = "SELECT 流水碼, 品牌, 供應商, 科目, 品名, 型號及備註, 進貨單價, 幣別 FROM 零組件成本紀錄表 ORDER BY 科目"
  87. Else
  88. DGV2寫入前設定()
  89. SQL1 = "SELECT 流水碼, 品牌, 供應商, 科目, 品名, 型號及備註, 進貨單價, 幣別 FROM 零組件成本紀錄表 WHERE 品牌 like N'%" & PA &
  90. "%' OR 供應商 like N'%" & PA & "%' OR 科目 like N'%" & PA & "%' OR 品名 like N'%" & PA & "%' OR 型號及備註 like N'%" & PA & "%' OR 幣別 like N'%" & PA & "%' ORDER BY 科目"
  91. End If
  92. DGV2寫入後設定()
  93. End Sub
  94. Private Sub 讀取機構件清單()
  95. If PA = "" Then
  96. DGV2寫入前設定()
  97. SQL1 = "SELECT 流水碼, 品牌, 供應商, 科目, 品名, 型號及備註, 進貨單價, 幣別 FROM 機構件成本紀錄表 ORDER BY 科目"
  98. Else
  99. DGV2寫入前設定()
  100. SQL1 = "SELECT 流水碼, 品牌, 供應商, 科目, 品名, 型號及備註, 進貨單價, 幣別 FROM 機構件成本紀錄表 WHERE 品牌 like N'%" & PA &
  101. "%' OR 供應商 like N'%" & PA & "%' OR 科目 like N'%" & PA & "%' OR 品名 like N'%" & PA & "%' OR 型號及備註 like N'%" & PA & "%' OR 幣別 like N'%" & PA & "%' ORDER BY 科目"
  102. End If
  103. DGV2寫入後設定()
  104. End Sub
  105. Private Sub 讀取機構組件零件BOM表()
  106. DataGridView1.DataSource = Nothing : ds1.Clear()
  107. DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  108. DataGridView1.ColumnHeadersHeight = 25
  109. DataGridView1.AllowUserToAddRows = False
  110. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  111. SQL1 = "SELECT 機構組件零件BOM表.機構碼, 機構組件零件BOM表.零件流水碼, 零件成本紀錄表.科目, 零件成本紀錄表.品名, 機構組件零件BOM表.數量, 零件成本紀錄表.型號及備註," &
  112. "ROUND(Convert(float, 機構組件零件BOM表.數量) * Convert(float, 零件成本紀錄表.進貨單價),2) AS 成本, 零件成本紀錄表.幣別, 零件成本紀錄表.品牌 FROM 機構組件零件BOM表 INNER JOIN 零件成本紀錄表 " &
  113. "ON 機構組件零件BOM表.零件流水碼 = 零件成本紀錄表.流水碼 WHERE 機構組件零件BOM表.機構碼 = '" & ComboBox1.Text & "' ORDER BY 零件成本紀錄表.科目"
  114. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da1.SelectCommand = cmd1 : da1.Fill(ds1) : DataGridView1.DataSource = ds1.Tables(0) : conn1.Close() : dr1.Close()
  115. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  116. SQL1 = "SELECT 機構組件零件BOM表.機構碼, 機構組件零件BOM表.零件流水碼, 零組件成本紀錄表.科目, 零組件成本紀錄表.品名, 機構組件零件BOM表.數量, 零組件成本紀錄表.型號及備註," &
  117. "ROUND(Convert(float, 機構組件零件BOM表.數量) * Convert(float, 零組件成本紀錄表.進貨單價),2) AS 成本, 零組件成本紀錄表.幣別, 零組件成本紀錄表.品牌 FROM 機構組件零件BOM表 INNER JOIN 零組件成本紀錄表 " &
  118. "ON 機構組件零件BOM表.零件流水碼 = 零組件成本紀錄表.流水碼 WHERE 機構組件零件BOM表.機構碼 = '" & ComboBox1.Text & "' ORDER BY 零組件成本紀錄表.科目"
  119. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da1.SelectCommand = cmd1 : da1.Fill(ds1) : DataGridView1.DataSource = ds1.Tables(0) : conn1.Close() : dr1.Close()
  120. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  121. SQL1 = "SELECT 機構組件零件BOM表.機構碼, 機構組件零件BOM表.零件流水碼, 機構件成本紀錄表.科目, 機構件成本紀錄表.品名, 機構組件零件BOM表.數量, 機構件成本紀錄表.型號及備註," &
  122. "ROUND(Convert(float, 機構組件零件BOM表.數量) * Convert(float, 機構件成本紀錄表.進貨單價),2) AS 成本, 機構件成本紀錄表.幣別, 機構件成本紀錄表.品牌 FROM 機構組件零件BOM表 INNER JOIN 機構件成本紀錄表 " &
  123. "ON 機構組件零件BOM表.零件流水碼 = 機構件成本紀錄表.流水碼 WHERE 機構組件零件BOM表.機構碼 = '" & ComboBox1.Text & "' ORDER BY 機構件成本紀錄表.科目"
  124. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da1.SelectCommand = cmd1 : da1.Fill(ds1) : DataGridView1.DataSource = ds1.Tables(0) : conn1.Close() : dr1.Close()
  125. DataGridView3.DataSource = Nothing : ds2.Clear()
  126. DataGridView3.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  127. DataGridView3.ColumnHeadersHeight = 25
  128. DataGridView3.AllowUserToAddRows = False
  129. If conn2.State = ConnectionState.Closed Then : conn2.ConnectionString = ConString : conn2.Open() : End If
  130. SQL2 = "SELECT 零件成本紀錄表_1.科目, ROUND(SUM(CONVERT(float, 機構組件零件BOM表_1.數量) * CONVERT(float, 零件成本紀錄表_1.進貨單價)), 2) AS 成本, " &
  131. "ROUND(SUM(CONVERT(float, 機構組件零件BOM表_1.數量) * CONVERT(float, 零件成本紀錄表_1.進貨單價)) / (SELECT SUM(CONVERT(float, 機構組件零件BOM表.數量) * " &
  132. "CONVERT(float, 零件成本紀錄表.進貨單價)) AS 成本 FROM 機構組件零件BOM表 INNER JOIN 零件成本紀錄表 ON 機構組件零件BOM表.零件流水碼 = 零件成本紀錄表.流水碼 " &
  133. "WHERE (機構組件零件BOM表.機構碼 = '" & ComboBox1.Text & "')), 4) * 100 AS 百分比 FROM 機構組件零件BOM表 AS 機構組件零件BOM表_1 INNER JOIN 零件成本紀錄表 AS " &
  134. "零件成本紀錄表_1 ON 機構組件零件BOM表_1.零件流水碼 = 零件成本紀錄表_1.流水碼 WHERE (機構組件零件BOM表_1.機構碼 = '" & ComboBox1.Text & "') GROUP BY " &
  135. "零件成本紀錄表_1.科目 ORDER BY 零件成本紀錄表_1.科目"
  136. cmd2.Connection = conn2 : cmd2.CommandText = SQL2 : da2.SelectCommand = cmd2 : da2.Fill(ds2) : DataGridView3.DataSource = ds2.Tables(0) : conn2.Close() : dr1.Close()
  137. If conn2.State = ConnectionState.Closed Then : conn2.ConnectionString = ConString : conn2.Open() : End If
  138. SQL2 = "SELECT 零組件成本紀錄表_1.科目, ROUND(SUM(CONVERT(float, 機構組件零件BOM表_1.數量) * CONVERT(float, 零組件成本紀錄表_1.進貨單價)), 2) AS 成本, " &
  139. "ROUND(SUM(CONVERT(float, 機構組件零件BOM表_1.數量) * CONVERT(float, 零組件成本紀錄表_1.進貨單價)) / (SELECT SUM(CONVERT(float, 機構組件零件BOM表.數量) * " &
  140. "CONVERT(float, 零組件成本紀錄表.進貨單價)) AS 成本 FROM 機構組件零件BOM表 INNER JOIN 零組件成本紀錄表 ON 機構組件零件BOM表.零件流水碼 = 零組件成本紀錄表.流水碼 " &
  141. "WHERE (機構組件零件BOM表.機構碼 = '" & ComboBox1.Text & "')), 4) * 100 AS 百分比 FROM 機構組件零件BOM表 AS 機構組件零件BOM表_1 INNER JOIN 零組件成本紀錄表 AS " &
  142. "零組件成本紀錄表_1 ON 機構組件零件BOM表_1.零件流水碼 = 零組件成本紀錄表_1.流水碼 WHERE (機構組件零件BOM表_1.機構碼 = '" & ComboBox1.Text & "') GROUP BY " &
  143. "零組件成本紀錄表_1.科目 ORDER BY 零組件成本紀錄表_1.科目"
  144. cmd2.Connection = conn2 : cmd2.CommandText = SQL2 : da2.SelectCommand = cmd2 : da2.Fill(ds2) : DataGridView3.DataSource = ds2.Tables(0) : conn2.Close() : dr1.Close()
  145. If conn2.State = ConnectionState.Closed Then : conn2.ConnectionString = ConString : conn2.Open() : End If
  146. SQL2 = "SELECT 機構件成本紀錄表_1.科目, ROUND(SUM(CONVERT(float, 機構組件零件BOM表_1.數量) * CONVERT(float, 機構件成本紀錄表_1.進貨單價)), 2) AS 成本, " &
  147. "ROUND(SUM(CONVERT(float, 機構組件零件BOM表_1.數量) * CONVERT(float, 機構件成本紀錄表_1.進貨單價)) / (SELECT SUM(CONVERT(float, 機構組件零件BOM表.數量) * " &
  148. "CONVERT(float, 機構件成本紀錄表.進貨單價)) AS 成本 FROM 機構組件零件BOM表 INNER JOIN 機構件成本紀錄表 ON 機構組件零件BOM表.零件流水碼 = 機構件成本紀錄表.流水碼 " &
  149. "WHERE (機構組件零件BOM表.機構碼 = '" & ComboBox1.Text & "')), 4) * 100 AS 百分比 FROM 機構組件零件BOM表 AS 機構組件零件BOM表_1 INNER JOIN 機構件成本紀錄表 AS " &
  150. "機構件成本紀錄表_1 ON 機構組件零件BOM表_1.零件流水碼 = 機構件成本紀錄表_1.流水碼 WHERE (機構組件零件BOM表_1.機構碼 = '" & ComboBox1.Text & "') GROUP BY " &
  151. "機構件成本紀錄表_1.科目 ORDER BY 機構件成本紀錄表_1.科目"
  152. cmd2.Connection = conn2 : cmd2.CommandText = SQL2 : da2.SelectCommand = cmd2 : da2.Fill(ds2) : DataGridView3.DataSource = ds2.Tables(0) : conn2.Close() : dr1.Close()
  153. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  154. SQL1 = "SELECT ROUND(SUM(CONVERT(float, 機構組件零件BOM表.數量) * CONVERT(float, 零件成本紀錄表.進貨單價)), 2) AS 成本 FROM 機構組件零件BOM表 INNER JOIN 零件成本紀錄表 ON " &
  155. "機構組件零件BOM表.零件流水碼 = 零件成本紀錄表.流水碼 WHERE (機構組件零件BOM表.機構碼 = '" & ComboBox1.Text & "')"
  156. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader
  157. If dr1.Read() Then : 加總1 = dr1("成本").ToString : End If : conn1.Close() : dr1.Close()
  158. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  159. SQL1 = "SELECT ROUND(SUM(CONVERT(float, 機構組件零件BOM表.數量) * CONVERT(float, 零組件成本紀錄表.進貨單價)), 2) AS 成本 FROM 機構組件零件BOM表 INNER JOIN 零組件成本紀錄表 ON " &
  160. "機構組件零件BOM表.零件流水碼 = 零組件成本紀錄表.流水碼 WHERE (機構組件零件BOM表.機構碼 = '" & ComboBox1.Text & "')"
  161. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader
  162. If dr1.Read() Then : 加總2 = dr1("成本").ToString : End If : conn1.Close() : dr1.Close()
  163. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  164. SQL1 = "SELECT ROUND(SUM(CONVERT(float, 機構組件零件BOM表.數量) * CONVERT(float, 機構件成本紀錄表.進貨單價)), 2) AS 成本 FROM 機構組件零件BOM表 INNER JOIN 機構件成本紀錄表 ON " &
  165. "機構組件零件BOM表.零件流水碼 = 機構件成本紀錄表.流水碼 WHERE (機構組件零件BOM表.機構碼 = '" & ComboBox1.Text & "')"
  166. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader
  167. If dr1.Read() Then : 加總3 = dr1("成本").ToString : End If : conn1.Close() : dr1.Close()
  168. If 加總1 = "" Then : 加總1 = "0" : End If : If 加總2 = "" Then : 加總2 = "0" : End If : If 加總3 = "" Then : 加總3 = "0" : End If
  169. TextBox6.Text = CStr(Math.Round((Double.Parse(加總1) + Double.Parse(加總2) + Double.Parse(加總3)), 2))
  170. If TextBox6.Text <> "" Or TextBox6.Text <> "0" Or TextBox6.Text <> "0.0" Or TextBox6.Text <> "0.00" Then
  171. If InStr(TextBox6.Text, ".") = 0 Then
  172. If Len(TextBox6.Text) <= 3 Then
  173. TextBox9.Text = TextBox6.Text & ".00"
  174. ElseIf Len(TextBox6.Text) <= 4 Then
  175. TextBox9.Text = Strings.Left(TextBox6.Text, 1) & "," & Mid(TextBox6.Text, 2, 10) & ".00"
  176. ElseIf Len(TextBox6.Text) <= 5 Then
  177. TextBox9.Text = Strings.Left(TextBox6.Text, 2) & "," & Mid(TextBox6.Text, 3, 10) & ".00"
  178. ElseIf Len(TextBox6.Text) <= 6 Then
  179. TextBox9.Text = Strings.Left(TextBox6.Text, 3) & "," & Mid(TextBox6.Text, 4, 10) & ".00"
  180. ElseIf Len(TextBox6.Text) <= 7 Then
  181. TextBox9.Text = Strings.Left(TextBox6.Text, 1) & "," & Mid(TextBox6.Text, 2, 3) & "," & Mid(TextBox6.Text, 5, 10) & ".00"
  182. End If
  183. Else
  184. If InStr(TextBox6.Text, ".") <= 4 Then
  185. TextBox9.Text = TextBox6.Text
  186. ElseIf InStr(TextBox6.Text, ".") = 5 Then
  187. TextBox9.Text = Strings.Left(TextBox6.Text, 1) & "," & Mid(TextBox6.Text, 2, 10)
  188. ElseIf InStr(TextBox6.Text, ".") = 6 Then
  189. TextBox9.Text = Strings.Left(TextBox6.Text, 2) & "," & Mid(TextBox6.Text, 3, 10)
  190. ElseIf InStr(TextBox6.Text, ".") = 7 Then
  191. TextBox9.Text = Strings.Left(TextBox6.Text, 3) & "," & Mid(TextBox6.Text, 4, 10)
  192. ElseIf InStr(TextBox6.Text, ".") = 8 Then
  193. TextBox9.Text = Strings.Left(TextBox6.Text, 1) & "," & Mid(TextBox6.Text, 2, 3) & "," & Mid(TextBox6.Text, 5, 10)
  194. End If
  195. End If
  196. End If
  197. Set_grid2()
  198. If TextBox6.Text = "" Then
  199. TextBox9.Text = ""
  200. End If
  201. End Sub
  202. Private Sub ComboBox4下拉表單資料載入()
  203. conn1.Close()
  204. If ComboBox3.Text = "" Or ComboBox3.Text = "-請選擇-" Then
  205. ComboBox3.Text = "-請選擇-"
  206. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  207. SQL1 = "SELECT 類型 FROM 機構成本科目類型表 ORDER BY 類型"
  208. Else
  209. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  210. SQL1 = "SELECT 類型 FROM 機構成本科目類型表 WHERE (科目 ='" & ComboBox3.Text & "') ORDER BY 類型"
  211. End If
  212. cmd1.CommandText = SQL1 : cmd1.Connection = conn1 : dr1 = cmd1.ExecuteReader
  213. ComboBox4.Items.Clear()
  214. While (dr1.Read())
  215. ComboBox4.Items.Add(dr1("類型"))
  216. End While
  217. conn1.Close()
  218. End Sub
  219. Private Sub ComboBox1下拉表單資料載入()
  220. conn1.Close()
  221. If ComboBox4.Text = "" Or ComboBox4.Text = "-請選擇-" Or ComboBox3.Text = "" Or ComboBox3.Text = "-請選擇-" Then
  222. ComboBox4.Text = "-請選擇-"
  223. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  224. SQL1 = "SELECT 流水碼 FROM 機構組件成本紀錄表 ORDER BY 流水碼 DESC"
  225. Else
  226. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  227. SQL1 = "SELECT 流水碼 FROM 機構組件成本紀錄表 WHERE 科目 like N'%" & ComboBox3.Text & "%' AND 類型 like N'%" & ComboBox4.Text & "%' ORDER BY 流水碼 DESC"
  228. End If
  229. cmd1.CommandText = SQL1 : cmd1.Connection = conn1 : dr1 = cmd1.ExecuteReader
  230. ComboBox1.Items.Clear()
  231. While (dr1.Read())
  232. ComboBox1.Items.Add(dr1("流水碼"))
  233. End While
  234. conn1.Close()
  235. End Sub
  236. Private Sub 格式設定()
  237. TextBox1.Text = "" : TextBox2.Text = "" : TextBox4.Text = ""
  238. ComboBox1.Enabled = True : Button3.Enabled = True : Button7.Enabled = False : Button2.Enabled = False : Button4.Enabled = False : Button5.Enabled = False
  239. Button8.Enabled = True : Button9.Enabled = False : Button10.Enabled = True : Button11.Enabled = False
  240. Button12.Enabled = False : Button13.Enabled = False
  241. End Sub
  242. Private Sub Set_grid1()
  243. DataGridView2.Columns(0).Visible = False : DataGridView2.Columns(1).Width = 55 : DataGridView2.Columns(2).Width = 80
  244. DataGridView2.Columns(3).Width = 110 : DataGridView2.Columns(4).Width = 230 : DataGridView2.Columns(5).Width = 120
  245. DataGridView2.Columns(6).Visible = False : DataGridView2.Columns(7).Visible = False
  246. End Sub
  247. Private Sub Set_grid2()
  248. DataGridView1.Columns(0).Visible = False : DataGridView1.Columns(1).Width = 80 : DataGridView1.Columns(2).Width = 80
  249. DataGridView1.Columns(3).Width = 250 : DataGridView1.Columns(4).Width = 70 : DataGridView1.Columns(5).Width = 120
  250. DataGridView1.Columns(6).Width = 60 : DataGridView1.Columns(7).Width = 50 : DataGridView1.Columns(8).Visible = False
  251. End Sub
  252. Private Sub Set_grid4()
  253. DataGridView4.Columns(0).Width = 60 : DataGridView4.Columns(1).Width = 60 : DataGridView4.Columns(2).Width = 70
  254. DataGridView4.Columns(3).Width = 115
  255. End Sub
  256. Private Sub Set_grid5()
  257. DataGridView5.Columns(0).Width = 80 : DataGridView5.Columns(1).Width = 60 : DataGridView5.Columns(2).Width = 170
  258. End Sub
  259. Private Sub Set_grid6()
  260. DataGridView6.Columns(0).Width = 65 : DataGridView6.Columns(1).Width = 70 : DataGridView6.Columns(2).Width = 70
  261. DataGridView6.Columns(3).Width = 100
  262. End Sub
  263. Private Sub Set_grid7()
  264. DataGridView7.Columns(0).Visible = False : DataGridView7.Columns(1).Width = 80 : DataGridView7.Columns(2).Width = 80
  265. DataGridView7.Columns(3).Width = 250 : DataGridView7.Columns(4).Width = 70 : DataGridView7.Columns(5).Width = 120
  266. DataGridView7.Columns(6).Width = 60 : DataGridView7.Columns(7).Width = 50 : DataGridView7.Columns(8).Visible = False
  267. End Sub
  268. Private Sub Set_grid8()
  269. DataGridView8.Columns(0).Visible = False : DataGridView8.Columns(1).Width = 80 : DataGridView8.Columns(2).Width = 80
  270. DataGridView8.Columns(3).Width = 250 : DataGridView8.Columns(4).Width = 70 : DataGridView8.Columns(5).Width = 120
  271. DataGridView8.Columns(6).Width = 60 : DataGridView8.Columns(7).Width = 50 : DataGridView8.Columns(8).Visible = False
  272. End Sub
  273. Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView2.CellClick
  274. If e.RowIndex = -1 Then : Else
  275. TextBox1.Text = DataGridView2(0, e.RowIndex).Value.ToString : TextBox4.Text = DataGridView2(4, e.RowIndex).Value.ToString
  276. End If
  277. End Sub
  278. Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
  279. If e.RowIndex = -1 Then : Else
  280. TextBox1.Text = DataGridView1(1, e.RowIndex).Value.ToString : TextBox4.Text = DataGridView1(3, e.RowIndex).Value.ToString
  281. End If
  282. End Sub
  283. Private Sub DataGridView4_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView4.CellClick
  284. If e.RowIndex = -1 Then : Else
  285. ComboBox4.Text = DataGridView4(3, e.RowIndex).Value.ToString
  286. End If
  287. End Sub
  288. Private Sub DataGridView5_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView5.CellClick
  289. If e.RowIndex = -1 Then : Else
  290. ComboBox1.Text = DataGridView5(0, e.RowIndex).Value.ToString
  291. End If
  292. End Sub
  293. Private Sub DataGridView6_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView6.CellClick
  294. If e.RowIndex = -1 Then : Else
  295. ComboBox3.Text = DataGridView6(1, e.RowIndex).Value.ToString : ComboBox4.Text = DataGridView6(2, e.RowIndex).Value.ToString
  296. End If
  297. End Sub
  298. Private Sub DataGridView7_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView7.CellClick
  299. If e.RowIndex = -1 Then : Else
  300. TextBox7.Text = DataGridView7(1, e.RowIndex).Value.ToString
  301. End If
  302. End Sub
  303. Private Sub 機構組件零件BOM表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  304. Me.MdiParent = GCM_ERP_SYS
  305. Me.WindowState = 2
  306. ComboBox3.Items.AddRange(科目清單)
  307. If CheckBox1.Checked = True Then
  308. 讀取零件清單()
  309. ElseIf CheckBox2.Checked = True Then
  310. 讀取零組件清單()
  311. ElseIf CheckBox3.Checked = True Then
  312. 讀取機構件清單()
  313. End If
  314. ComboBox4下拉表單資料載入() : ComboBox1下拉表單資料載入() : 格式設定()
  315. 機構科目清單() : 機構名稱清單() : 零組件清單()
  316. ComboBox1.SelectedIndex = 0
  317. End Sub
  318. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  319. timeNow = 0
  320. GCM_ERP_SYS.Timer1.Enabled = False
  321. GCM_ERP_SYS.Timer1.Enabled = True
  322. End Sub
  323. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  324. timeNow = 0
  325. GCM_ERP_SYS.Timer1.Enabled = False
  326. GCM_ERP_SYS.Timer1.Enabled = True
  327. End Sub
  328. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  329. PA = InputBox("請輸入要查詢零件的資料")
  330. If CheckBox1.Checked = True Then
  331. 讀取零件清單()
  332. ElseIf CheckBox2.Checked = True Then
  333. 讀取零組件清單()
  334. ElseIf CheckBox3.Checked = True Then
  335. 讀取機構件清單()
  336. End If
  337. End Sub
  338. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  339. If TextBox1.Text = "" Then
  340. MsgBox("請選擇零件")
  341. Else
  342. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  343. SQL1 = "SELECT 零件流水碼 FROM 機構組件零件BOM表 WHERE 機構碼 = '" & ComboBox1.Text & "' AND 零件流水碼 = '" & TextBox1.Text & "'"
  344. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader
  345. If dr1.Read() Then : TextBox3.Text = dr1("零件流水碼").ToString : End If
  346. conn1.Close() : dr1.Close()
  347. If TextBox3.Text = "" Then
  348. Dim a As String = InputBox("請輸入數量")
  349. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  350. SQL1 = "INSERT INTO 機構組件零件BOM表 (機構碼, 零件流水碼, 數量) VALUES ('" & ComboBox1.Text & "','" & TextBox1.Text & "','" & a & "')"
  351. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : cmd1.ExecuteNonQuery()
  352. conn1.Close()
  353. Else
  354. MsgBox("零件已有選擇,如需增加請修改數量")
  355. End If
  356. End If
  357. TextBox1.Text = "" : TextBox3.Text = "" : TextBox4.Text = ""
  358. 讀取機構組件零件BOM表()
  359. End Sub
  360. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  361. If TextBox1.Text = "" Then
  362. MsgBox("請選擇零件")
  363. Else
  364. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  365. SQL1 = "SELECT 零件流水碼 FROM 機構組件零件BOM表 WHERE 機構碼 = '" & ComboBox1.Text & "' AND 零件流水碼 = '" & TextBox1.Text & "'"
  366. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader
  367. If dr1.Read() Then : TextBox3.Text = dr1("零件流水碼").ToString : End If
  368. conn1.Close() : dr1.Close()
  369. If TextBox3.Text <> "" Then
  370. Dim a As String = InputBox("請輸入修改數量")
  371. If conn3.State = ConnectionState.Closed Then : conn3.ConnectionString = ConString : conn3.Open() : End If
  372. SQL1 = "UPDATE 機構組件零件BOM表 SET 機構碼 = '" & ComboBox1.Text & "', 數量 = '" & a & "' WHERE (零件流水碼 = '" & TextBox1.Text & "') and (機構碼 = '" & ComboBox1.Text & "')"
  373. cmd3.Connection = conn3 : cmd3.CommandText = SQL1 : cmd3.ExecuteNonQuery() : conn3.Close()
  374. Else
  375. MsgBox("請正確選擇")
  376. End If
  377. End If
  378. TextBox1.Text = "" : TextBox3.Text = "" : TextBox4.Text = ""
  379. 讀取機構組件零件BOM表()
  380. End Sub
  381. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
  382. If TextBox1.Text = "" Then
  383. MsgBox("請選擇零件")
  384. Else
  385. SQL1 = "DELETE FROM 機構組件零件BOM表 WHERE (零件流水碼 = '" & TextBox1.Text & "') and (機構碼 = '" & ComboBox1.Text & "')"
  386. cmd1.CommandText = SQL1 : cmd1.Connection = conn1
  387. If conn1.State = ConnectionState.Closed Then : conn1.Open() : End If
  388. cmd1.ExecuteNonQuery() : MsgBox("刪除完成")
  389. conn1.Close()
  390. End If
  391. TextBox1.Text = "" : TextBox3.Text = "" : TextBox4.Text = ""
  392. 讀取機構組件零件BOM表()
  393. End Sub
  394. Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox3.SelectedIndexChanged
  395. ComboBox4下拉表單資料載入() : 機構科目清單()
  396. End Sub
  397. Private Sub ComboBox4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox4.SelectedIndexChanged
  398. ComboBox1下拉表單資料載入() : 機構名稱清單()
  399. End Sub
  400. Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
  401. conn1.Close() : dr1.Close()
  402. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  403. SQL1 = "SELECT 品名, 型號及備註, 幣別 FROM 機構組件成本紀錄表 WHERE 流水碼 = '" & ComboBox1.Text & "'"
  404. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader
  405. If dr1.Read() Then
  406. TextBox2.Text = dr1("品名").ToString : TextBox5.Text = dr1("型號及備註").ToString : ComboBox2.Text = dr1("幣別").ToString
  407. End If
  408. conn1.Close() : dr1.Close()
  409. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  410. SQL1 = "SELECT 科目 FROM 機構組件成本紀錄表 WHERE 流水碼 = '" & ComboBox1.Text & "'"
  411. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader
  412. If dr1.Read() Then
  413. ComboBox3.Text = dr1("科目").ToString
  414. End If
  415. conn1.Close() : dr1.Close()
  416. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  417. SQL1 = "SELECT 類型 FROM 機構組件成本紀錄表 WHERE 流水碼 = '" & ComboBox1.Text & "'"
  418. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader
  419. If dr1.Read() Then
  420. ComboBox4.Text = dr1("類型").ToString
  421. End If
  422. conn1.Close() : dr1.Close()
  423. 讀取機構組件零件BOM表()
  424. End Sub
  425. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  426. If ComboBox3.Text = "-請選擇-" Or ComboBox4.Text = "-請選擇-" Then
  427. MsgBox("科目或類型欄位不可空白")
  428. Else
  429. Dim NUM1 As Integer
  430. For NUM1 = 0 To 99999
  431. If NUM1 < 10 Then
  432. TextBox1.Text = "GS" & "0000" & NUM1
  433. ElseIf NUM1 > 9 And NUM1 < 100 Then
  434. TextBox1.Text = "GS" & "000" & NUM1
  435. ElseIf NUM1 > 99 And NUM1 < 1000 Then
  436. TextBox1.Text = "GS" & "00" & NUM1
  437. ElseIf NUM1 > 999 And NUM1 < 10000 Then
  438. TextBox1.Text = "GS" & "0" & NUM1
  439. ElseIf NUM1 > 9999 Then
  440. TextBox1.Text = "GS" & NUM1
  441. End If
  442. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  443. SQL1 = "SELECT 流水碼 FROM 機構組件成本紀錄表 WHERE (流水碼 ='" & TextBox1.Text & "')"
  444. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader
  445. If dr1.Read() Then
  446. ComboBox1.Text = dr1("流水碼").ToString
  447. Else
  448. ComboBox1.Text = ""
  449. End If
  450. conn1.Close()
  451. If ComboBox1.Text = "" Then
  452. ComboBox1.Text = TextBox1.Text : TextBox1.Text = "可用"
  453. TextBox1.Text = "" : TextBox2.Text = "" : TextBox5.Text = "" : ComboBox2.Text = ""
  454. ComboBox1.Enabled = False : Button3.Enabled = False : Button7.Enabled = True : Button12.Enabled = True
  455. NUM1 = 99999
  456. End If
  457. Next
  458. Button2.Enabled = True : Button4.Enabled = True : Button5.Enabled = True
  459. 讀取機構組件零件BOM表()
  460. End If
  461. End Sub
  462. Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
  463. If ComboBox1.Enabled = True Or ComboBox3.Text = "-請選擇-" Or ComboBox4.Text = "-請選擇-" Or TextBox2.Text = "" Or TextBox6.Text = "" Or ComboBox2.Text = "" Then
  464. MsgBox("資料不足請檢查後重新確認")
  465. Else
  466. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  467. SQL1 = "INSERT INTO 機構組件成本紀錄表 (流水碼, 品牌, 供應商, 科目, 類型, 型號及備註, 品名, 供應商成本, 進貨單價, 幣別) VALUES ('" & ComboBox1.Text &
  468. "','工巧明','工巧明','" & ComboBox3.Text & "','" & ComboBox4.Text & "','" & TextBox5.Text & "','" & TextBox2.Text &
  469. "','','" & TextBox6.Text & "','" & ComboBox2.Text & "')"
  470. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : cmd1.ExecuteNonQuery()
  471. MsgBox("新增完成")
  472. conn1.Close()
  473. 格式設定() : ComboBox1下拉表單資料載入() : 讀取機構組件零件BOM表() : 機構科目清單() : 機構名稱清單() : 零組件清單()
  474. ComboBox1.Enabled = True
  475. End If
  476. End Sub
  477. Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
  478. ComboBox1.Text = ""
  479. 格式設定() : ComboBox1下拉表單資料載入() : 讀取機構組件零件BOM表()
  480. ComboBox1.SelectedIndex = 0
  481. End Sub
  482. Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
  483. Button2.Enabled = True : Button4.Enabled = True : Button5.Enabled = True : Button8.Enabled = False : Button9.Enabled = True : ComboBox1.Enabled = False
  484. Button13.Enabled = True
  485. End Sub
  486. Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
  487. If ComboBox1.Enabled = True Or ComboBox3.Text = "-請選擇-" Or ComboBox4.Text = "-請選擇-" Or TextBox2.Text = "" Or TextBox6.Text = "" Or ComboBox2.Text = "" Then
  488. MsgBox("資料不足請檢查後重新確認")
  489. Else
  490. If conn1.State = ConnectionState.Closed Then : conn1.Open() : End If
  491. SQL1 = "UPDATE 機構組件成本紀錄表 SET 品牌 = '工巧明', 供應商 = '工巧明', 科目 = '" & ComboBox3.Text & "', 類型 = '" & ComboBox4.Text &
  492. "', 型號及備註 = '" & TextBox5.Text & "', 品名 = '" & TextBox2.Text & "', 供應商成本 = '', 進貨單價 = '" & TextBox6.Text &
  493. "', 幣別 = '" & ComboBox2.Text & "' WHERE (流水碼 = '" & ComboBox1.Text & "')"
  494. cmd1.CommandText = SQL1 : cmd1.ExecuteNonQuery()
  495. MsgBox("修改完成")
  496. conn1.Close()
  497. 格式設定() : ComboBox1下拉表單資料載入() : 讀取機構組件零件BOM表()
  498. End If
  499. End Sub
  500. Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
  501. 格式設定() : ComboBox1下拉表單資料載入() : 讀取機構組件零件BOM表()
  502. End Sub
  503. Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
  504. Button10.Enabled = False : Button11.Enabled = True
  505. End Sub
  506. Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
  507. SQL = "DELETE FROM 機構組件成本紀錄表 WHERE (流水碼 = '" & ComboBox1.Text & "')"
  508. SQL1 = "DELETE FROM 機構組件零件BOM表 WHERE (機構碼 = '" & ComboBox1.Text & "')"
  509. cmd.CommandText = SQL : cmd.Connection = conn
  510. cmd1.CommandText = SQL1 : cmd1.Connection = conn1
  511. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  512. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  513. Dim aa As MsgBoxResult
  514. aa = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel)
  515. If aa = MsgBoxResult.Ok Then : cmd.ExecuteNonQuery() : cmd1.ExecuteNonQuery() : MsgBox("刪除完成") : End If
  516. conn.Close() : conn1.Close()
  517. 格式設定() : ComboBox1下拉表單資料載入() : 讀取機構組件零件BOM表()
  518. End Sub
  519. Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
  520. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  521. Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  522. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  523. xlApp = CType(CreateObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application)
  524. xlBook = xlApp.Workbooks.Add
  525. xlApp.DisplayAlerts = True
  526. xlBook.Activate()
  527. xlSheet = NewMethod(xlBook)
  528. xlSheet.Activate()
  529. xlApp.Visible = True
  530. xlApp.Application.WindowState = xlMaximized
  531. xlSheet.Cells(2, 2) = "工巧明智能設備有限公司 機構組件-零件BOM表"
  532. xlSheet.Cells(3, 2) = "客戶名稱:"
  533. xlSheet.Cells(4, 2) = "機購編號:"
  534. xlSheet.Cells(5, 2) = "機構名稱:"
  535. xlSheet.Cells(6, 2) = "型號及備註:"
  536. xlSheet.Cells(3, 10) = "機構科目:"
  537. xlSheet.Cells(4, 10) = "機構類型:"
  538. xlSheet.Cells(5, 10) = "技術開發課確認者:"
  539. xlSheet.Cells(6, 10) = "修改日期:"
  540. xlSheet.Cells(6, 11) = String.Format("{0:d}", Now)
  541. xlSheet.Cells(7, 2) = "項次" : xlSheet.Cells(7, 5) = "零件流水碼" : xlSheet.Cells(7, 6) = "品牌" : xlSheet.Cells(7, 7) = "科目" : xlSheet.Cells(7, 8) = "品名"
  542. xlSheet.Cells(7, 9) = "型號及備註" : xlSheet.Cells(7, 11) = "數量" : xlSheet.Cells(7, 14) = "說明"
  543. xlSheet.Cells(4, 5) = ComboBox1.Text : xlSheet.Cells(5, 5) = TextBox2.Text : xlSheet.Cells(6, 5) = TextBox5.Text
  544. xlSheet.Cells(3, 11) = ComboBox3.Text : xlSheet.Cells(4, 11) = ComboBox4.Text
  545. Dim i As Integer : Dim ii As Integer : Dim iii As Integer : Dim ni1 As Integer = -1 : Dim ni1s As Integer = 0
  546. For ni1 = ni1 + 1 To DataGridView1.Rows.Count - 1
  547. xlSheet.Cells(i + 8, 2) = ni1s + 1
  548. xlSheet.Cells(i + 8, 5) = DataGridView1.Rows(ni1).Cells("零件流水碼").Value
  549. xlSheet.Cells(i + 8, 6) = DataGridView1.Rows(ni1).Cells("品牌").Value
  550. xlSheet.Cells(i + 8, 7) = DataGridView1.Rows(ni1).Cells("科目").Value
  551. xlSheet.Cells(i + 8, 8) = DataGridView1.Rows(ni1).Cells("品名").Value
  552. xlSheet.Cells(i + 8, 9) = DataGridView1.Rows(ni1).Cells("型號及備註").Value
  553. xlSheet.Cells(i + 8, 11) = DataGridView1.Rows(ni1).Cells("數量").Value
  554. With xlApp.Selection
  555. .Font.Bold = True
  556. End With
  557. i = i + 1 : ni1s = ni1s + 1
  558. TextBox1.Text = DataGridView1.Rows(ni1).Cells("零件流水碼").Value
  559. If Strings.Left(TextBox1.Text, 2) = "MS" Or Strings.Left(TextBox1.Text, 2) = "MP" Then
  560. Dim ni2 As Integer = -1 : Dim ni2s As Integer = 0 : ii = i
  561. For ni2 = ni2 + 1 To DataGridView7.Rows.Count - 1
  562. xlSheet.Cells(ii + 8, 3) = ni1s & "_" & ni2s + 1
  563. xlSheet.Cells(ii + 8, 5) = DataGridView7.Rows(ni2).Cells("零件流水碼").Value
  564. xlSheet.Cells(ii + 8, 6) = DataGridView7.Rows(ni2).Cells("品牌").Value
  565. xlSheet.Cells(ii + 8, 7) = DataGridView7.Rows(ni2).Cells("科目").Value
  566. xlSheet.Cells(ii + 8, 8) = DataGridView7.Rows(ni2).Cells("品名").Value
  567. xlSheet.Cells(ii + 8, 9) = DataGridView7.Rows(ni2).Cells("型號及備註").Value
  568. xlSheet.Cells(ii + 8, 12) = DataGridView7.Rows(ni2).Cells("數量").Value
  569. With xlApp.Selection
  570. .Font.Bold = True
  571. End With
  572. ii = ii + 1 : ni2s = ni2s + 1
  573. TextBox7.Text = DataGridView7.Rows(ni2).Cells("零件流水碼").Value
  574. If Strings.Left(TextBox7.Text, 2) = "MS" Then
  575. Dim ni3 As Integer = -1 : Dim ni3s As Integer = 0 : iii = ii
  576. For ni3 = ni3 + 1 To DataGridView8.Rows.Count - 1
  577. xlSheet.Cells(iii + 8, 4) = ni1s & "_" & ni2s & "_" & ni3s + 1
  578. xlSheet.Cells(iii + 8, 5) = DataGridView8.Rows(ni3).Cells("零件流水碼").Value
  579. xlSheet.Cells(iii + 8, 6) = DataGridView8.Rows(ni3).Cells("品牌").Value
  580. xlSheet.Cells(iii + 8, 7) = DataGridView8.Rows(ni3).Cells("科目").Value
  581. xlSheet.Cells(iii + 8, 8) = DataGridView8.Rows(ni3).Cells("品名").Value
  582. xlSheet.Cells(iii + 8, 9) = DataGridView8.Rows(ni3).Cells("型號及備註").Value
  583. xlSheet.Cells(iii + 8, 13) = DataGridView8.Rows(ni3).Cells("數量").Value
  584. With xlApp.Selection
  585. .Font.Bold = True
  586. End With
  587. iii = iii + 1 : ni3s = ni3s + 1
  588. Next ni3
  589. ii = iii + 1
  590. End If
  591. Next ni2
  592. i = ii + 1
  593. End If
  594. KE = i
  595. Next ni1
  596. AA(xlApp, xlSheet)
  597. xlSheet.PageSetup.PrintArea = ""
  598. xlApp.Cells.Select()
  599. xlSheet.Range("B1").Select()
  600. xlApp.Application.WindowState = xlMinimized
  601. MsgBox("列印完成")
  602. End Sub
  603. Private Shared Function NewMethod(xlBook As Microsoft.Office.Interop.Excel.Workbook) As Microsoft.Office.Interop.Excel.Worksheet
  604. Return CType(xlBook.Worksheets.Add, Microsoft.Office.Interop.Excel.Worksheet)
  605. End Function
  606. Private Sub AA(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet)
  607. Dim 位置 As String
  608. xlSheet.Columns("A:A").ColumnWidth = 1
  609. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 3
  610. xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 6
  611. xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 8
  612. xlSheet.Columns("E:G").Select : myExcel.Selection.ColumnWidth = 12
  613. xlSheet.Columns("H:H").Select : myExcel.Selection.ColumnWidth = 40
  614. xlSheet.Columns("I:J").Select : myExcel.Selection.ColumnWidth = 20
  615. xlSheet.Columns("K:M").Select : myExcel.Selection.ColumnWidth = 4
  616. xlSheet.Columns("N:N").Select : myExcel.Selection.ColumnWidth = 40
  617. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 5
  618. xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 30
  619. xlSheet.Rows("3:6").Select : myExcel.Selection.RowHeight = 15
  620. xlSheet.Rows("7:7").Select : myExcel.Selection.RowHeight = 25
  621. xlSheet.Range("B2:N2,B3:D3,B4:D4,B5:D5,B6:D6,B7:D7,E3:I3,E4:I4,E5:I5,E6:I6,K3:N3,K4:N4,K5:N5,K6:N6,K7:M7").Select()
  622. xlSheet.Range("K7").Activate()
  623. With myExcel.Selection
  624. .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  625. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  626. End With
  627. myExcel.Selection.Merge
  628. xlSheet.Range("B3:N6").Select()
  629. With myExcel.Selection
  630. .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  631. .ShrinkToFit = False : .ReadingOrder = xlContext : xlSheet.Cells.Select()
  632. End With
  633. With myExcel.Selection.Font
  634. .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  635. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  636. End With
  637. xlSheet.Range("B2:N2").Select()
  638. With myExcel.Selection.Font
  639. .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  640. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  641. End With
  642. 位置 = "B2:N" & KE + 8
  643. xlSheet.Range(位置).Select()
  644. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  645. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  646. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  647. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  648. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  649. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  650. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  651. xlSheet.Range("B2:N6").Select()
  652. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  653. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  654. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  655. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  656. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  657. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  658. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  659. xlSheet.Rows("7:7").Select
  660. myExcel.Selection.AutoFilter : myExcel.ActiveWindow.DisplayGridlines = False
  661. xlSheet.Range("B2:N2").Select()
  662. xlSheet.Rows("8:8").Select : myExcel.ActiveWindow.FreezePanes = True
  663. 位置 = "I8:J" & KE + 8
  664. xlSheet.Range(位置).Select()
  665. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  666. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  667. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  668. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  669. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  670. myExcel.Selection.Borders(xlInsideVertical).LineStyle = xlNone
  671. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  672. xlSheet.Range("B7:N7").Select()
  673. With myExcel.Selection.Interior
  674. .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent5 : .TintAndShade = 0.399975585192419 : .PatternTintAndShade = 0
  675. End With
  676. xlSheet.Range("B7:N7").Select()
  677. With myExcel.Selection
  678. .HorizontalAlignment = xlCenter : .VerticalAlignment = xlTop : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  679. .ShrinkToFit = False : .ReadingOrder = xlContext
  680. End With
  681. xlSheet.Cells.Select()
  682. With myExcel.Selection : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  683. xlSheet.Range("B1").Select()
  684. End Sub
  685. Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
  686. If My.Application.OpenForms.Item("機構組件零件成本建檔") IsNot Nothing Then
  687. 機構組件零件成本建檔.BringToFront()
  688. Else
  689. 機構組件零件成本建檔.Show()
  690. End If
  691. End Sub
  692. Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
  693. 條件 = InputBox("請輸入要查詢的零組件編號或類別、科目")
  694. 零組件清單()
  695. End Sub
  696. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.Click
  697. CheckBox1.Checked = True : CheckBox2.Checked = False : CheckBox3.Checked = False
  698. End Sub
  699. Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.Click
  700. CheckBox2.Checked = True : CheckBox1.Checked = False : CheckBox3.Checked = False
  701. End Sub
  702. Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox3.Click
  703. CheckBox2.Checked = False : CheckBox1.Checked = False : CheckBox3.Checked = True
  704. End Sub
  705. Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
  706. DataGridView7.DataSource = Nothing : ds6.Clear()
  707. DataGridView7.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  708. DataGridView7.ColumnHeadersHeight = 25
  709. DataGridView7.AllowUserToAddRows = False
  710. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  711. SQL1 = "SELECT 機構件零件BOM表.機構碼, 機構件零件BOM表.零件流水碼, 零組件成本紀錄表.科目, 零組件成本紀錄表.品名, 機構件零件BOM表.數量, 零組件成本紀錄表.型號及備註," &
  712. "ROUND(Convert(float, 機構件零件BOM表.數量) * Convert(float, 零組件成本紀錄表.進貨單價),2) AS 成本, 零組件成本紀錄表.幣別, 零組件成本紀錄表.品牌 FROM 機構件零件BOM表 INNER JOIN 零組件成本紀錄表 " &
  713. "ON 機構件零件BOM表.零件流水碼 = 零組件成本紀錄表.流水碼 WHERE 機構件零件BOM表.機構碼 = '" & TextBox1.Text & "' ORDER BY 零組件成本紀錄表.科目"
  714. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da6.SelectCommand = cmd1 : da6.Fill(ds6) : DataGridView7.DataSource = ds6.Tables(0) : conn1.Close() : dr1.Close()
  715. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  716. SQL1 = "SELECT 機構件零件BOM表.機構碼, 機構件零件BOM表.零件流水碼, 零件成本紀錄表.科目, 零件成本紀錄表.品名, 機構件零件BOM表.數量, 零件成本紀錄表.型號及備註," &
  717. "ROUND(Convert(float, 機構件零件BOM表.數量) * Convert(float, 零件成本紀錄表.進貨單價),2) AS 成本, 零件成本紀錄表.幣別, 零件成本紀錄表.品牌 FROM 機構件零件BOM表 INNER JOIN 零件成本紀錄表 " &
  718. "ON 機構件零件BOM表.零件流水碼 = 零件成本紀錄表.流水碼 WHERE 機構件零件BOM表.機構碼 = '" & TextBox1.Text & "' ORDER BY 零件成本紀錄表.科目"
  719. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da6.SelectCommand = cmd1 : da6.Fill(ds6) : DataGridView7.DataSource = ds6.Tables(0) : conn1.Close() : dr1.Close()
  720. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  721. SQL1 = "SELECT 零組件零件BOM表.機構碼, 零組件零件BOM表.零件流水碼, 零件成本紀錄表.科目, 零件成本紀錄表.品名, 零組件零件BOM表.數量, 零件成本紀錄表.型號及備註," &
  722. "ROUND(Convert(float, 零組件零件BOM表.數量) * Convert(float, 零件成本紀錄表.進貨單價),2) AS 成本, 零件成本紀錄表.幣別, 零件成本紀錄表.品牌 FROM 零組件零件BOM表 INNER JOIN 零件成本紀錄表 " &
  723. "ON 零組件零件BOM表.零件流水碼 = 零件成本紀錄表.流水碼 WHERE 零組件零件BOM表.機構碼 = '" & TextBox1.Text & "' ORDER BY 零件成本紀錄表.科目"
  724. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da6.SelectCommand = cmd1 : da6.Fill(ds6) : DataGridView7.DataSource = ds6.Tables(0) : conn1.Close() : dr1.Close()
  725. Set_grid7()
  726. End Sub
  727. Private Sub TextBox7_TextChanged(sender As Object, e As EventArgs) Handles TextBox7.TextChanged
  728. DataGridView8.DataSource = Nothing : ds7.Clear()
  729. DataGridView8.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  730. DataGridView8.ColumnHeadersHeight = 25
  731. DataGridView8.AllowUserToAddRows = False
  732. If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If
  733. SQL1 = "SELECT 零組件零件BOM表.機構碼, 零組件零件BOM表.零件流水碼, 零件成本紀錄表.科目, 零件成本紀錄表.品名, 零組件零件BOM表.數量, 零件成本紀錄表.型號及備註," &
  734. "ROUND(Convert(float, 零組件零件BOM表.數量) * Convert(float, 零件成本紀錄表.進貨單價),2) AS 成本, 零件成本紀錄表.幣別, 零件成本紀錄表.品牌 FROM 零組件零件BOM表 INNER JOIN 零件成本紀錄表 " &
  735. "ON 零組件零件BOM表.零件流水碼 = 零件成本紀錄表.流水碼 WHERE 零組件零件BOM表.機構碼 = '" & TextBox7.Text & "' ORDER BY 零件成本紀錄表.科目"
  736. cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da7.SelectCommand = cmd1 : da7.Fill(ds7) : DataGridView8.DataSource = ds7.Tables(0) : conn1.Close() : dr1.Close()
  737. Set_grid8()
  738. End Sub
  739. End Class