Keine Beschreibung
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

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

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