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

試穿、訂料授權書.vb 29KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. Option Strict Off
  2. Imports System.Data.SqlClient
  3. Imports System.IO
  4. Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
  5. Imports Microsoft.Office.Interop.Excel.Constants
  6. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  7. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  8. Imports Microsoft.Office.Interop.Excel.XlBorderWeight
  9. Imports Microsoft.Office.Interop.Excel.XlThemeFont
  10. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  11. Imports Microsoft.Office.Interop.Excel.XlWindowState
  12. Imports Microsoft.Office.Interop.Excel
  13. Public Class 試穿_訂料授權書
  14. Dim conn As New SqlConnection
  15. Dim da As New SqlDataAdapter
  16. Dim cmd As New SqlCommand
  17. Dim ds As New DataSet : Dim ds1 As New DataSet : Dim ds2 As New DataSet
  18. Dim dr As SqlDataReader
  19. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  20. Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  21. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  22. Dim N1 As Integer : Dim 位置1 As String
  23. Private Sub Set_DGV1載入前設定()
  24. DataGridView1.DataSource = Nothing : ds.Clear()
  25. DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  26. DataGridView1.ColumnHeadersHeight = 25
  27. DataGridView1.AllowUserToAddRows = False
  28. DataGridView1.RowTemplate.Height = 50
  29. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  30. End Sub
  31. Private Sub Set_DGV1載入後設定()
  32. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close() : Set_grid()
  33. End Sub
  34. Private Sub Set_清單()
  35. Set_DGV1載入前設定()
  36. If PA = "" Then
  37. SQL1 = "SELECT PAO, SO, 季節, 客戶, BUYER, 工廠, 型體號碼, 型體名稱, 總數量, ETD, ISSUE_DATE, FOB, ConstructionName, PS, 制單人, 制單時間, 版次 FROM 預告訂單控制表 ORDER BY PAO DESC, 版次 DESC"
  38. Else
  39. SQL1 = "SELECT PAO, SO, 季節, 客戶, BUYER, 工廠, 型體號碼, 型體名稱, 總數量, ETD, ISSUE_DATE, FOB, ConstructionName, PS, 制單人, 制單時間, 版次 FROM 預告訂單控制表 " &
  40. "WHERE (SO LIKE N'%" & PA & "%') OR (季節 LIKE N'%" & PA & "%') OR (客戶 LIKE N'%" & PA & "%') OR (型體號碼 LIKE N'%" & PA & "%') OR (型體名稱 LIKE N'%" & PA & "%') " &
  41. "OR (ISSUE_DATE LIKE N'%" & PA & "%') OR (ETD LIKE N'%" & PA & "%') OR (FOB LIKE N'%" & PA & "%') OR (ConstructionName LIKE N'%" & PA & "%') OR (PS LIKE N'%" & PA & "%') " &
  42. "OR (制單人 LIKE N'%" & PA & "%') ORDER BY PAO DESC, 版次 DESC"
  43. End If
  44. Set_DGV1載入後設定()
  45. End Sub
  46. Private Sub Set_grid()
  47. If CheckBox1.Checked = False Then
  48. DataGridView1.Size = New Size(475, 944)
  49. DataGridView1.Columns(0).Width = 85 : DataGridView1.Columns(1).Width = 55 : DataGridView1.Columns(2).Width = 65 : DataGridView1.Columns(3).Width = 100 : DataGridView1.Columns(6).Width = 100
  50. DataGridView1.Columns(7).Visible = False
  51. Else
  52. DataGridView1.Size = New Size(745, 944)
  53. DataGridView1.Columns(0).Width = 85 : DataGridView1.Columns(1).Width = 55 : DataGridView1.Columns(2).Width = 65 : DataGridView1.Columns(3).Width = 170 : DataGridView1.Columns(6).Width = 150
  54. DataGridView1.Columns(7).Visible = True : DataGridView1.Columns(7).Width = 150
  55. End If
  56. DataGridView1.Columns(4).Visible = False : DataGridView1.Columns(5).Visible = False : DataGridView1.Columns(8).Visible = False
  57. DataGridView1.Columns(9).Visible = False : DataGridView1.Columns(10).Visible = False : DataGridView1.Columns(11).Visible = False : DataGridView1.Columns(12).Visible = False
  58. DataGridView1.Columns(13).Visible = False : DataGridView1.Columns(14).Visible = False : DataGridView1.Columns(15).Visible = False : DataGridView1.Columns(16).Width = 45
  59. End Sub
  60. Private Sub Set_DGV2載入前設定()
  61. DataGridView2.DataSource = Nothing : ds1.Clear()
  62. DataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  63. DataGridView2.ColumnHeadersHeight = 40
  64. DataGridView2.AllowUserToAddRows = False
  65. DataGridView2.RowTemplate.Height = 150
  66. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  67. End Sub
  68. Private Sub Set_DGV2載入後設定()
  69. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds1) : DataGridView2.DataSource = ds1.Tables(0) : conn.Close() : Set_grid1()
  70. End Sub
  71. Private Sub Set_清單1()
  72. Set_DGV2載入前設定()
  73. SQL1 = "SELECT 預告訂單控制表.PAO, 預告訂單控制表.版次, 預告訂單控制表.季節, 預告訂單控制表.客戶,
  74. 預告訂單控制表.型體名稱 AS STYLE_NAME, 預告訂單清單.顏色 AS COLOR,
  75. 預告訂單清單.顏色 AS MATERIAL_DESCRIPTION, 預告訂單控制表.ETD AS XF,
  76. 預告訂單控制表.SO AS [REFERENCE SAMPL], 預告訂單清單.FITTING_COMMENTS AS [FITTING COMMENTS],
  77. 預告訂單清單.MATERAIL_COMMENTS AS [MATERAL COMMENTS], 預告訂單清單.FITTING回簽確認, 預告訂單清單.FITTING回簽日期,
  78. 預告訂單清單.MATERAIL回簽確認 AS MATERAL回簽確認, 預告訂單清單.MATERAIL回簽日期 AS MATERAL回簽日期, 預告訂單清單.流水號, 預告訂單控制表.型體號碼
  79. FROM 預告訂單控制表 INNER JOIN
  80. 預告訂單清單 ON 預告訂單控制表.PAO = 預告訂單清單.PAO AND 預告訂單控制表.版次 = 預告訂單清單.版次
  81. WHERE (預告訂單控制表.PAO LIKE '" & TextBox1.Text & "') AND (預告訂單控制表.版次 LIKE '" & TextBox2.Text & "')
  82. GROUP BY 預告訂單控制表.PAO, 預告訂單控制表.版次, 預告訂單控制表.SO, 預告訂單控制表.季節, 預告訂單控制表.客戶,
  83. 預告訂單清單.顏色, 預告訂單控制表.ETD, 預告訂單控制表.型體名稱, 預告訂單清單.FITTING_COMMENTS,
  84. 預告訂單清單.MATERAIL_COMMENTS, 預告訂單清單.FITTING回簽確認, 預告訂單清單.FITTING回簽日期,
  85. 預告訂單清單.MATERAIL回簽確認, 預告訂單清單.MATERAIL回簽日期, 預告訂單清單.流水號, 預告訂單控制表.型體號碼"
  86. Set_DGV2載入後設定()
  87. End Sub
  88. Private Sub Set_grid1()
  89. DataGridView2.Columns(0).Visible = False : DataGridView2.Columns(1).Visible = False : DataGridView2.Columns(2).Visible = False : DataGridView2.Columns(3).Width = 100
  90. DataGridView2.Columns(4).Width = 100 : DataGridView2.Columns(5).Width = 100 : DataGridView2.Columns(6).Width = 275 : DataGridView2.Columns(7).Width = 80 : DataGridView2.Columns(8).Width = 80
  91. DataGridView2.Columns(9).Width = 125 : DataGridView2.Columns(10).Width = 125 : DataGridView2.Columns(11).Width = 100 : DataGridView2.Columns(12).Width = 100 : DataGridView2.Columns(13).Width = 100
  92. DataGridView2.Columns(14).Width = 100 : DataGridView2.Columns(15).Visible = False : DataGridView2.Columns(16).Visible = False
  93. DataGridView2.EditMode = DataGridViewEditMode.EditOnEnter
  94. For i As Integer = 0 To DataGridView2.Rows.Count - 1
  95. 資料數 = DataGridView2.Rows.Count : MyModule1.進度條()
  96. DataGridView2.Rows(i).Cells("MATERIAL_DESCRIPTION").Value = ""
  97. Dim aa As Integer = 1
  98. For ii As Integer = 0 To DataGridView3.Rows.Count - 1
  99. If DataGridView2.Rows(i).Cells("流水號").Value = DataGridView3.Rows(ii).Cells("流水號").Value Then
  100. If aa = 1 Then
  101. DataGridView2.Rows(i).Cells("MATERIAL_DESCRIPTION").Value = aa & "、" & DataGridView3.Rows(ii).Cells("材料名稱").Value & "-" & DataGridView3.Rows(ii).Cells("材料說明").Value
  102. aa += 1
  103. Else
  104. DataGridView2.Rows(i).Cells("MATERIAL_DESCRIPTION").Value = DataGridView2.Rows(i).Cells("MATERIAL_DESCRIPTION").Value & "
  105. " & aa & "、" & DataGridView3.Rows(ii).Cells("材料名稱").Value & "-" & DataGridView3.Rows(ii).Cells("材料說明").Value
  106. aa += 1
  107. End If
  108. End If
  109. Next
  110. Next : WINPROFIT_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
  111. End Sub
  112. Private Sub Set_DGV3載入前設定()
  113. DataGridView3.DataSource = Nothing : ds2.Clear()
  114. DataGridView3.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  115. DataGridView3.ColumnHeadersHeight = 25
  116. DataGridView3.AllowUserToAddRows = False
  117. DataGridView3.RowTemplate.Height = 50
  118. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  119. End Sub
  120. Private Sub Set_DGV3載入後設定()
  121. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds2) : DataGridView3.DataSource = ds2.Tables(0) : conn.Close()
  122. End Sub
  123. Private Sub Set_清單2()
  124. Set_DGV3載入前設定()
  125. SQL1 = "SELECT 預告訂單清單.PAO, 預告訂單部件表.部件, 預告訂單部件表.材料名稱, 預告訂單部件表.材料說明,
  126. 預告訂單部件表.備註, 預告訂單部件表.流水號
  127. FROM 預告訂單清單 INNER JOIN
  128. 預告訂單部件表 ON 預告訂單清單.PAO = 預告訂單部件表.PAO AND
  129. 預告訂單清單.版次 = 預告訂單部件表.版次
  130. WHERE (預告訂單清單.PAO LIKE '" & TextBox1.Text & "') AND (預告訂單清單.版次 LIKE '" & TextBox2.Text & "') AND (預告訂單部件表.部件 LIKE 'A%')
  131. GROUP BY 預告訂單清單.PAO, 預告訂單部件表.部件, 預告訂單部件表.材料名稱, 預告訂單部件表.材料說明,
  132. 預告訂單部件表.備註, 預告訂單部件表.流水號"
  133. Set_DGV3載入後設定()
  134. End Sub
  135. Private Sub 試穿_定料授權書_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  136. Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  137. DataGridView3.Visible = False
  138. Set_清單()
  139. End Sub
  140. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  141. If Label62.Visible = True Then : Label62.Visible = False : Else : Label62.Visible = True : End If
  142. End Sub
  143. Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
  144. If e.RowIndex = -1 Then : Else
  145. TextBox1.Text = DataGridView1.Rows(e.RowIndex).Cells("PAO").Value : TextBox2.Text = DataGridView1.Rows(e.RowIndex).Cells("版次").Value : Set_清單2() : Set_清單1()
  146. TextBox3.Text = DataGridView1.Rows(e.RowIndex).Cells("客戶").Value : Timer1.Enabled = False
  147. PictureBox2.Image = Nothing : conn.Close()
  148. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  149. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 " &
  150. "WHERE 客戶 LIKE N'" & DataGridView1.Rows(e.RowIndex).Cells("客戶").Value & "' AND 形體號 LIKE N'" & DataGridView1.Rows(e.RowIndex).Cells("型體號碼").Value & "'"
  151. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  152. While dr.Read() = True
  153. Dim bytes As Byte() = New Byte(-1) {} : bytes = DirectCast(dr.Item("圖片"), Byte()) : Dim oStream As New MemoryStream(bytes) : PictureBox2.Image = Bitmap.FromStream(oStream)
  154. End While
  155. conn.Close() : PictureBox2.SizeMode = 4 : PictureBox1.Image = Nothing
  156. End If
  157. End Sub
  158. Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView2.CellClick
  159. If e.RowIndex = -1 Then : Else
  160. Timer1.Enabled = True
  161. PictureBox1.Image = Nothing : conn.Close()
  162. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  163. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 " &
  164. "WHERE 客戶 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("客戶").Value & "' AND 形體號 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("型體號碼").Value &
  165. "' AND 形體名 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("STYLE_NAME").Value & "' AND 顏色 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("COLOR").Value & "'"
  166. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  167. If dr.Read() Then
  168. PictureBox1.Image = Nothing : conn.Close()
  169. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  170. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 " &
  171. "WHERE 客戶 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("客戶").Value & "' AND 形體號 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("型體號碼").Value &
  172. "' AND 形體名 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("STYLE_NAME").Value & "' AND 顏色 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("COLOR").Value & "'"
  173. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  174. While dr.Read() = True
  175. Dim bytes As Byte() = New Byte(-1) {} : bytes = DirectCast(dr.Item("圖片"), Byte()) : Dim oStream As New MemoryStream(bytes) : PictureBox1.Image = Bitmap.FromStream(oStream)
  176. End While
  177. conn.Close()
  178. Else
  179. PictureBox1.Image = Nothing : conn.Close()
  180. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  181. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 " &
  182. "WHERE 客戶 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("客戶").Value & "' AND 形體號 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("型體號碼").Value & "'"
  183. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  184. If dr.Read() Then
  185. PictureBox1.Image = Nothing : conn.Close()
  186. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  187. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 " &
  188. "WHERE 客戶 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("客戶").Value & "' AND 形體號 LIKE N'" & DataGridView2.Rows(e.RowIndex).Cells("型體號碼").Value & "'"
  189. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  190. While dr.Read() = True
  191. Dim bytes As Byte() = New Byte(-1) {} : bytes = DirectCast(dr.Item("圖片"), Byte()) : Dim oStream As New MemoryStream(bytes) : PictureBox1.Image = Bitmap.FromStream(oStream)
  192. End While
  193. conn.Close()
  194. Else
  195. PictureBox1.Image = Nothing : conn.Close()
  196. End If
  197. conn.Close()
  198. End If : PictureBox1.SizeMode = 4
  199. End If
  200. End Sub
  201. Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
  202. PA = InputBox("請輸入要查詢的關鍵字") : Set_清單() : PA = ""
  203. End Sub
  204. Private Sub Button32_Click(sender As Object, e As EventArgs) Handles Button32.Click
  205. PA = "" : Set_清單()
  206. End Sub
  207. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.Click
  208. Set_grid()
  209. End Sub
  210. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  211. For i As Integer = 0 To DataGridView2.Rows.Count - 1
  212. 資料數 = DataGridView2.Rows.Count : MyModule1.進度條()
  213. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  214. SQL1 = "UPDATE 預告訂單清單 SET FITTING_COMMENTS = N'" & DataGridView2.Rows(i).Cells("FITTING COMMENTS").Value &
  215. "',MATERAIL_COMMENTS = N'" & DataGridView2.Rows(i).Cells("MATERAL COMMENTS").Value &
  216. "', FITTING回簽確認 = N'" & DataGridView2.Rows(i).Cells("FITTING回簽確認").Value &
  217. "', FITTING回簽日期 = N'" & DataGridView2.Rows(i).Cells("FITTING回簽日期").Value &
  218. "', MATERAIL回簽確認 = N'" & DataGridView2.Rows(i).Cells("MATERAIL回簽確認").Value &
  219. "', MATERAIL回簽日期 = N'" & DataGridView2.Rows(i).Cells("MATERAIL回簽日期").Value &
  220. "' WHERE 流水號 LIKE N'" & DataGridView2.Rows(i).Cells("流水號").Value & "'"
  221. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  222. Next : WINPROFIT_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
  223. Timer1.Enabled = False : Set_清單1() : MsgBox("存檔完成。")
  224. End Sub
  225. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  226. xlApp = CType(CreateObject("Excel.Application"), Application)
  227. xlBook = xlApp.Workbooks.Add
  228. xlApp.DisplayAlerts = True
  229. xlBook.Activate()
  230. xlSheet = NewMethod(xlBook)
  231. xlSheet.Activate()
  232. xlApp.Visible = True
  233. xlApp.Application.WindowState = xlMaximized
  234. xlSheet.Cells(1, 1) = "FIT MATERIAL AUTHORIZATION FORM" : xlSheet.Cells(2, 1) = TextBox3.Text : xlSheet.Cells(3, 1) = "DATE : " & Strings.Format(Today(), "yyyy/MM/dd")
  235. xlSheet.Cells(4, 1) = "PHOTO" : xlSheet.Cells(4, 2) = "BUYER" : xlSheet.Cells(4, 3) = "STYLE
  236. NAME"
  237. xlSheet.Cells(4, 4) = "COLOR" : xlSheet.Cells(4, 5) = " MATERIAL
  238. DESCRIPTION"
  239. xlSheet.Cells(4, 6) = "XF" : xlSheet.Cells(4, 7) = "REFERENCE
  240. SAMPLE"
  241. xlSheet.Cells(4, 8) = "FITTING
  242. COMMENTS"
  243. xlSheet.Cells(4, 9) = "MATERAL
  244. COMMENTS"
  245. N1 = 0
  246. For i As Integer = 0 To DataGridView2.Rows.Count - 1
  247. xlSheet.Cells(i + 5, 2) = DataGridView2.Rows(i).Cells("客戶").Value
  248. xlSheet.Cells(i + 5, 3) = DataGridView2.Rows(i).Cells("STYLE_NAME").Value
  249. xlSheet.Cells(i + 5, 4) = DataGridView2.Rows(i).Cells("COLOR").Value
  250. xlSheet.Cells(i + 5, 5) = DataGridView2.Rows(i).Cells("MATERIAL_DESCRIPTION").Value
  251. xlSheet.Cells(i + 5, 6) = DataGridView2.Rows(i).Cells("XF").Value
  252. xlSheet.Cells(i + 5, 7) = DataGridView2.Rows(i).Cells("REFERENCE SAMPL").Value
  253. xlSheet.Cells(i + 5, 8) = DataGridView2.Rows(i).Cells("FITTING COMMENTS").Value
  254. xlSheet.Cells(i + 5, 9) = DataGridView2.Rows(i).Cells("MATERAL COMMENTS").Value
  255. N1 = i + 5
  256. PictureBox1.Image = Nothing : conn.Close()
  257. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  258. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 " &
  259. "WHERE 客戶 LIKE N'" & DataGridView2.Rows(i).Cells("客戶").Value & "' AND 形體號 LIKE N'" & DataGridView2.Rows(i).Cells("型體號碼").Value &
  260. "' AND 形體名 LIKE N'" & DataGridView2.Rows(i).Cells("STYLE_NAME").Value & "' AND 顏色 LIKE N'" & DataGridView2.Rows(i).Cells("COLOR").Value & "'"
  261. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  262. If dr.Read() Then
  263. PictureBox1.Image = Nothing : conn.Close()
  264. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  265. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 " &
  266. "WHERE 客戶 LIKE N'" & DataGridView2.Rows(i).Cells("客戶").Value & "' AND 形體號 LIKE N'" & DataGridView2.Rows(i).Cells("型體號碼").Value &
  267. "' AND 形體名 LIKE N'" & DataGridView2.Rows(i).Cells("STYLE_NAME").Value & "' AND 顏色 LIKE N'" & DataGridView2.Rows(i).Cells("COLOR").Value & "'"
  268. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  269. While dr.Read() = True
  270. Dim bytes As Byte() = New Byte(-1) {} : bytes = DirectCast(dr.Item("圖片"), Byte()) : Dim oStream As New MemoryStream(bytes) : PictureBox1.Image = Bitmap.FromStream(oStream)
  271. End While
  272. conn.Close() : GG(xlApp, xlSheet)
  273. Else
  274. PictureBox1.Image = Nothing : conn.Close()
  275. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  276. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 " &
  277. "WHERE 客戶 LIKE N'" & DataGridView2.Rows(i).Cells("客戶").Value & "' AND 形體號 LIKE N'" & DataGridView2.Rows(i).Cells("型體號碼").Value & "'"
  278. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  279. If dr.Read() Then
  280. PictureBox1.Image = Nothing : conn.Close()
  281. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  282. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 " &
  283. "WHERE 客戶 LIKE N'" & DataGridView2.Rows(i).Cells("客戶").Value & "' AND 形體號 LIKE N'" & DataGridView2.Rows(i).Cells("型體號碼").Value & "'"
  284. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  285. While dr.Read() = True
  286. Dim bytes As Byte() = New Byte(-1) {} : bytes = DirectCast(dr.Item("圖片"), Byte()) : Dim oStream As New MemoryStream(bytes) : PictureBox1.Image = Bitmap.FromStream(oStream)
  287. End While
  288. conn.Close() : GG(xlApp, xlSheet)
  289. Else
  290. xlSheet.Cells(i + 5, 1) = "系統中無圖片"
  291. conn.Close()
  292. End If
  293. End If : PictureBox1.SizeMode = 4
  294. Next i
  295. BB(xlApp, xlSheet)
  296. xlSheet.PageSetup.PrintArea = ""
  297. xlApp.Cells.Select()
  298. xlSheet.Range("B1").Select()
  299. xlApp.Application.WindowState = xlMinimized
  300. MsgBox("列印完成")
  301. End Sub
  302. Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
  303. Return CType(xlBook.Worksheets.Add, Worksheet)
  304. End Function
  305. Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  306. xlSheet.Cells.Select()
  307. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  308. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  309. xlSheet.Rows("1:1").Select
  310. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 28 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  311. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  312. xlSheet.Rows("2:2").Select
  313. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 16 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  314. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  315. xlSheet.Rows("3:3").Select
  316. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 16 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  317. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  318. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 12 : xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 15
  319. xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 12 : xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 15
  320. xlSheet.Columns("E:E").Select : myExcel.Selection.ColumnWidth = 60 : xlSheet.Columns("F:F").Select : myExcel.Selection.ColumnWidth = 12
  321. xlSheet.Columns("G:G").Select : myExcel.Selection.ColumnWidth = 15 : xlSheet.Columns("H:H").Select : myExcel.Selection.ColumnWidth = 20
  322. xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 20 : xlSheet.Rows("4:4").Select : myExcel.Selection.RowHeight = 40 : myExcel.Selection.Font.Bold = True
  323. For i As Integer = 5 To N1
  324. 'xlSheet.Rows(i & ":" & i).Select : myExcel.Rows(i & ":" & i).EntireRow.AutoFit
  325. xlSheet.Rows(i & ":" & i).Select : myExcel.Selection.RowHeight = 80
  326. Next
  327. xlSheet.Columns("F:F").Select
  328. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  329. .ReadingOrder = xlContext : .MergeCells = False : End With
  330. 位置1 = "A4:I" & N1 : xlSheet.Range(位置1).Select()
  331. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  332. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  333. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  334. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  335. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  336. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  337. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  338. xlSheet.Rows("5:5").Select : myExcel.ActiveWindow.FreezePanes = True : myExcel.ActiveWindow.DisplayGridlines = False
  339. xlSheet.Range("F1").Select()
  340. myExcel.Application.PrintCommunication = False
  341. With myExcel.ActiveSheet.PageSetup
  342. .PrintTitleRows = ""
  343. .PrintTitleColumns = ""
  344. End With
  345. myExcel.Application.PrintCommunication = True
  346. myExcel.ActiveSheet.PageSetup.PrintArea = ""
  347. myExcel.Application.PrintCommunication = False
  348. With myExcel.ActiveSheet.PageSetup
  349. .LeftHeader = ""
  350. .CenterHeader = ""
  351. .RightHeader = ""
  352. .LeftFooter = ""
  353. .CenterFooter = ""
  354. .RightFooter = ""
  355. .LeftMargin = myExcel.Application.InchesToPoints(0.25)
  356. .RightMargin = myExcel.Application.InchesToPoints(0.25)
  357. .TopMargin = myExcel.Application.InchesToPoints(0.75)
  358. .BottomMargin = myExcel.Application.InchesToPoints(0.75)
  359. .HeaderMargin = myExcel.Application.InchesToPoints(0.3)
  360. .FooterMargin = myExcel.Application.InchesToPoints(0.3)
  361. .PrintHeadings = False
  362. .PrintGridlines = False
  363. .PrintQuality = 600
  364. .CenterHorizontally = False
  365. .CenterVertically = False
  366. .Draft = False
  367. .FirstPageNumber = xlAutomatic
  368. .BlackAndWhite = False
  369. .Zoom = False
  370. .FitToPagesWide = 1
  371. .FitToPagesTall = 1
  372. .OddAndEvenPagesHeaderFooter = False
  373. .DifferentFirstPageHeaderFooter = False
  374. .ScaleWithDocHeaderFooter = True
  375. .AlignMarginsHeaderFooter = True
  376. .EvenPage.LeftHeader.Text = ""
  377. .EvenPage.CenterHeader.Text = ""
  378. .EvenPage.RightHeader.Text = ""
  379. .EvenPage.LeftFooter.Text = ""
  380. .EvenPage.CenterFooter.Text = ""
  381. .EvenPage.RightFooter.Text = ""
  382. .FirstPage.LeftHeader.Text = ""
  383. .FirstPage.CenterHeader.Text = ""
  384. .FirstPage.RightHeader.Text = ""
  385. .FirstPage.LeftFooter.Text = ""
  386. .FirstPage.CenterFooter.Text = ""
  387. .FirstPage.RightFooter.Text = ""
  388. End With
  389. myExcel.Application.PrintCommunication = True
  390. End Sub
  391. Private Sub GG(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet)
  392. Dim 位置1 As String
  393. Clipboard.SetDataObject(PictureBox1.Image)
  394. 位置1 = "A" & N1 : xlSheet.Range(位置1).Select()
  395. myExcel.ActiveSheet.Pictures.Paste.Select
  396. myExcel.Selection.ShapeRange.Width = 70
  397. myExcel.Selection.ShapeRange.IncrementLeft(3)
  398. myExcel.Selection.ShapeRange.IncrementTop(3)
  399. End Sub
  400. End Class