Ingen beskrivning
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 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. Option Strict Off
  2. Imports System.Data.SqlClient
  3. Imports System.Net
  4. Public Class 驗貨報告圖片導入資料庫
  5. Public Property Credentials As ICredentials
  6. ReadOnly conn As New SqlConnection
  7. ReadOnly da As New SqlDataAdapter
  8. ReadOnly cmd As New SqlCommand
  9. ReadOnly ds As New DataSet
  10. Dim dr As SqlDataReader
  11. Dim DTP As String
  12. Private Sub Set_DGV1載入前設定()
  13. DataGridView1.DataSource = Nothing : ds.Clear()
  14. DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  15. DataGridView1.ColumnHeadersHeight = 25
  16. DataGridView1.AllowUserToAddRows = False
  17. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  18. End Sub
  19. Private Sub Set_DGV1載入後設定()
  20. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close()
  21. End Sub
  22. Private Sub Set_清單1()
  23. Set_DGV1載入前設定()
  24. SQL1 = "SELECT 訂單控制表.訂單流水號, 訂單控制表.年份季度, 訂單控制表.客戶訂單號,
  25. 訂單控制表.GOODBOX AS 型體名稱, 訂單控制表.型體號碼, 訂單控制表.APMA確認 AS 顏色,
  26. 訂單控制表.訂單數量, 訂單控制表.CFMSPEC AS 訂單屬性, 訂單控制表.工廠回復交期 AS 工廠交期,
  27. METOO選擇按鈕.選擇, 訂單控制表.資料流水號
  28. FROM 訂單控制表 LEFT OUTER JOIN
  29. METOO選擇按鈕 ON 訂單控制表.訂單流水號 = METOO選擇按鈕.對應
  30. WHERE (訂單控制表.CXL = 0 OR
  31. 訂單控制表.CXL IS NULL) AND (訂單控制表.訂單數量 - 訂單控制表.出貨數量 <> 0) AND (訂單控制表.驗貨報告圖片 LIKE '')
  32. ORDER BY 訂單控制表.訂單流水號, 訂單控制表.客戶訂單號, 型體名稱"
  33. Set_DGV1載入後設定()
  34. End Sub
  35. Private Sub Set_grid1()
  36. DataGridView1.Columns(0).FillWeight = 120 : DataGridView1.Columns(1).FillWeight = 70 : DataGridView1.Columns(2).FillWeight = 100 : DataGridView1.Columns(3).FillWeight = 120
  37. DataGridView1.Columns(4).FillWeight = 80 : DataGridView1.Columns(5).FillWeight = 80 : DataGridView1.Columns(6).FillWeight = 80 : DataGridView1.Columns(7).FillWeight = 80
  38. DataGridView1.Columns(8).FillWeight = 80 : DataGridView1.Columns(9).FillWeight = 50 : DataGridView1.Columns(10).Visible = False
  39. DataGridView1.Columns(6).DefaultCellStyle.Format = "#,##0"
  40. DataGridView1.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  41. DataGridView1.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  42. For I As Integer = 0 To DataGridView1.Rows.Count - 1
  43. DataGridView1("選擇", I).Value = False
  44. Next
  45. End Sub
  46. Private Sub 驗貨報告圖片導入資料庫_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  47. Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  48. Target1 = Target & AA(13) & "/"
  49. Set_清單1() : Set_grid1()
  50. TextBox1.Enabled = False : TextBox2.Enabled = False : TextBox5.Enabled = False : TextBox6.Enabled = False
  51. TextBox3.Visible = False : TextBox7.Visible = False
  52. WebBrowser1.Url = New Uri(Target1)
  53. If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then
  54. WebBrowser2.Navigate(FolderBrowserDialog1.SelectedPath)
  55. End If
  56. End Sub
  57. Private Sub DataGridView1_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
  58. Dim linePen As New Pen(Color.Blue, 2)
  59. If e.RowIndex = DataGridView1.Rows.Count - 1 Then
  60. Exit Sub
  61. Else
  62. If DataGridView1(0, e.RowIndex).Value.ToString <> DataGridView1(0, e.RowIndex + 1).Value.ToString Then
  63. Dim startX As Integer = IIf(DataGridView1.RowHeadersVisible, DataGridView1.RowHeadersWidth, 0)
  64. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  65. Dim endX As Integer = startX + DataGridView1.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - DataGridView1.HorizontalScrollingOffset
  66. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  67. Exit Sub
  68. End If
  69. End If
  70. End Sub
  71. Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
  72. If e.RowIndex = -1 Then : Else
  73. TextBox1.Text = DataGridView1("客戶訂單號", e.RowIndex).Value.ToString : TextBox2.Text = DataGridView1("型體名稱", e.RowIndex).Value.ToString
  74. TextBox6.Text = DataGridView1("型體號碼", e.RowIndex).Value.ToString : TextBox5.Text = DataGridView1("顏色", e.RowIndex).Value.ToString
  75. If DataGridView1("選擇", e.RowIndex).Value = True Then : DataGridView1("選擇", e.RowIndex).Value = False : Else : DataGridView1("選擇", e.RowIndex).Value = True : End If
  76. End If
  77. End Sub
  78. Private Sub Button31_Click(sender As Object, e As EventArgs) Handles Button31.Click
  79. PA = InputBox("請輸入要查詢的資料")
  80. Set_DGV1載入前設定()
  81. SQL1 = "SELECT 訂單控制表.訂單流水號, 訂單控制表.年份季度, 訂單控制表.客戶訂單號,
  82. 訂單控制表.GOODBOX AS 型體名稱, 訂單控制表.型體號碼, 訂單控制表.APMA確認 AS 顏色,
  83. 訂單控制表.訂單數量, 訂單控制表.CFMSPEC AS 訂單屬性, 訂單控制表.工廠回復交期 AS 工廠交期,
  84. METOO選擇按鈕.選擇, 訂單控制表.資料流水號
  85. FROM 訂單控制表 LEFT OUTER JOIN
  86. METOO選擇按鈕 ON 訂單控制表.訂單流水號 = METOO選擇按鈕.對應
  87. WHERE (訂單控制表.CXL = 0 OR
  88. 訂單控制表.CXL IS NULL) AND (訂單控制表.訂單數量 - 訂單控制表.出貨數量 <> 0) AND
  89. (訂單控制表.驗貨報告圖片 LIKE '') AND (訂單流水號 LIKE '%" & PA & "%' OR 訂單控制表.年份季度 LIKE '%" & PA & "%' OR
  90. 訂單控制表.客戶訂單號 LIKE '%" & PA & "%' OR 訂單控制表.型體號碼 LIKE '%" & PA & "%' OR 訂單控制表.生產工廠 LIKE '%" & PA & "%' OR
  91. 訂單控制表.GOODBOX LIKE '%" & PA & "%' OR 訂單控制表.APMA確認 LIKE '%" & PA & "%')
  92. ORDER BY 訂單控制表.訂單流水號, 訂單控制表.客戶訂單號, 型體名稱"
  93. Set_DGV1載入後設定() : Set_grid1()
  94. PA = ""
  95. End Sub
  96. Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
  97. If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox4.Text = "" Then
  98. MsgBox("檔案名稱或資料不可空白")
  99. Else
  100. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  101. SQL1 = "SELECT 客戶訂單號 FROM 驗貨報告圖庫 WHERE 客戶訂單號 LIKE '" & TextBox1.Text & "' AND 型體名稱 LIKE '" & TextBox2.Text & "'"
  102. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  103. If dr.Read() Then
  104. MsgBox("資料重複,請從新輸入或檢查")
  105. conn.Close() : dr.Close()
  106. Else
  107. conn.Close()
  108. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  109. SQL1 = "SELECT TOP (1) 驗貨報告編號 FROM 驗貨報告圖庫 ORDER BY 驗貨報告編號 DESC"
  110. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  111. If dr.Read() Then : TextBox3.Text = dr("驗貨報告編號").ToString : Else : TextBox3.Text = "0" : End If
  112. conn.Close()
  113. Dim NUM1 As Integer
  114. NUM1 = Double.Parse(Strings.Right(TextBox3.Text, 8)) + 1
  115. If NUM1 < 10 Then : TextBox3.Text = "IR" & "0000000" & NUM1
  116. ElseIf NUM1 > 9 And NUM1 < 100 Then : TextBox3.Text = "IR" & "000000" & NUM1
  117. ElseIf NUM1 > 99 And NUM1 < 1000 Then : TextBox3.Text = "IR" & "00000" & NUM1
  118. ElseIf NUM1 > 999 And NUM1 < 10000 Then : TextBox3.Text = "IR" & "0000" & NUM1
  119. ElseIf NUM1 > 9999 And NUM1 < 100000 Then : TextBox3.Text = "IR" & "000" & NUM1
  120. ElseIf NUM1 > 99999 And NUM1 < 100000 Then : TextBox3.Text = "IR" & "00" & NUM1
  121. ElseIf NUM1 > 999999 And NUM1 < 1000000 Then : TextBox3.Text = "IR" & "0" & NUM1
  122. ElseIf NUM1 > 9999999 Then : TextBox3.Text = "IR" & NUM1
  123. End If
  124. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  125. SQL1 = "INSERT INTO 驗貨報告圖庫 (客戶訂單號, 型體名稱, 驗貨報告編號, 操作人, 驗貨報告) SELECT '" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & gUserName & "', " &
  126. "BULKCOLUMN FROM OPENROWSET ( BULK '" & FTP實體位置 & AA(13) & "\" & TextBox4.Text & "', SINGLE_BLOB) AS EMPLOYEEPICTURE"
  127. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  128. DTP = Format(DateTimePicker1.Value, "yyyy/MM/dd")
  129. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  130. SQL1 = "UPDATE 訂單控制表 SET 驗貨時間 = '" & DTP & "', 驗貨報告圖片 = '" & TextBox3.Text & "' WHERE (客戶訂單號 = '" & TextBox1.Text & "' AND GOODBOX = '" & TextBox2.Text & "')"
  131. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  132. '---FTP方式刪除檔案----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  133. Dim frq As FtpWebRequest, frp As FtpWebResponse, fcr As NetworkCredential
  134. frq = CType(WebRequest.Create(New Uri(Target1 & TextBox4.Text)), FtpWebRequest)
  135. fcr = New NetworkCredential(FTP帳號, FTP密碼)
  136. frq.Credentials = fcr
  137. frq.Method = WebRequestMethods.Ftp.DeleteFile
  138. frq.UseBinary = True
  139. frp = CType(frq.GetResponse, FtpWebResponse)
  140. frp.Close()
  141. WebBrowser1.Refresh()
  142. '----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  143. TextBox1.Text = "" : TextBox2.Text = "" : TextBox4.Text = ""
  144. Set_清單1() : Set_grid1()
  145. MsgBox("新增完成")
  146. End If
  147. End If
  148. End Sub
  149. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  150. If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox4.Text = "" Then
  151. MsgBox("檔案名稱或資料不可空白")
  152. Else
  153. conn.Close()
  154. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  155. SQL1 = "SELECT TOP (1) 驗貨報告編號 FROM 驗貨報告圖庫 ORDER BY 驗貨報告編號 DESC"
  156. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  157. If dr.Read() Then : TextBox3.Text = dr("驗貨報告編號").ToString : Else : TextBox3.Text = "0" : End If
  158. conn.Close()
  159. Dim NUM1 As Integer
  160. NUM1 = Double.Parse(Strings.Right(TextBox3.Text, 8)) + 1
  161. If NUM1 < 10 Then : TextBox3.Text = "IR" & "0000000" & NUM1
  162. ElseIf NUM1 > 9 And NUM1 < 100 Then : TextBox3.Text = "IR" & "000000" & NUM1
  163. ElseIf NUM1 > 99 And NUM1 < 1000 Then : TextBox3.Text = "IR" & "00000" & NUM1
  164. ElseIf NUM1 > 999 And NUM1 < 10000 Then : TextBox3.Text = "IR" & "0000" & NUM1
  165. ElseIf NUM1 > 9999 And NUM1 < 100000 Then : TextBox3.Text = "IR" & "000" & NUM1
  166. ElseIf NUM1 > 99999 And NUM1 < 100000 Then : TextBox3.Text = "IR" & "00" & NUM1
  167. ElseIf NUM1 > 999999 And NUM1 < 1000000 Then : TextBox3.Text = "IR" & "0" & NUM1
  168. ElseIf NUM1 > 9999999 Then : TextBox3.Text = "IR" & NUM1
  169. End If
  170. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  171. SQL1 = "INSERT INTO 驗貨報告圖庫 (客戶訂單號, 型體名稱, 驗貨報告編號, 操作人, 驗貨報告) SELECT '" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & gUserName & "', " &
  172. "BULKCOLUMN FROM OPENROWSET ( BULK '" & FTP實體位置 & AA(13) & "\" & TextBox4.Text & "', SINGLE_BLOB) AS EMPLOYEEPICTURE"
  173. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  174. DTP = Format(DateTimePicker1.Value, "yyyy/MM/dd")
  175. For I As Integer = 0 To DataGridView1.Rows.Count - 1
  176. If DataGridView1("選擇", I).Value = True Then
  177. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  178. SQL1 = "UPDATE 訂單控制表 SET 驗貨時間 = '" & DTP & "', 驗貨報告圖片 = '" & TextBox3.Text & "' WHERE (資料流水號 = '" & DataGridView1("資料流水號", I).Value & "')"
  179. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  180. End If
  181. Next
  182. '---FTP方式刪除檔案----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  183. Dim frq As FtpWebRequest, frp As FtpWebResponse, fcr As NetworkCredential
  184. frq = CType(WebRequest.Create(New Uri(Target1 & TextBox4.Text)), FtpWebRequest)
  185. fcr = New NetworkCredential(FTP帳號, FTP密碼)
  186. frq.Credentials = fcr
  187. frq.Method = WebRequestMethods.Ftp.DeleteFile
  188. frq.UseBinary = True
  189. frp = CType(frq.GetResponse, FtpWebResponse)
  190. frp.Close()
  191. WebBrowser1.Refresh()
  192. '----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  193. TextBox1.Text = "" : TextBox2.Text = "" : TextBox4.Text = ""
  194. Set_清單1() : Set_grid1()
  195. MsgBox("新增完成")
  196. End If
  197. End Sub
  198. Private Sub TextBox4_DragEnter(sender As Object, e As DragEventArgs) Handles TextBox4.DragEnter
  199. If e.Data.GetDataPresent(DataFormats.FileDrop) Then
  200. Dim files As String()
  201. Try
  202. files = CType(e.Data.GetData(DataFormats.FileDrop), String())
  203. TextBox4.Text = files(files.Length - 1)
  204. Catch ex As Exception
  205. MessageBox.Show(ex.Message)
  206. Return
  207. End Try
  208. End If
  209. Dim STR2 As Integer = 0
  210. TextBox7.Text = TextBox4.Text
  211. If TextBox4.Text = "" Then
  212. Else
  213. For i As Integer = 0 To 9999
  214. Dim STR1 As Integer = Strings.Len(TextBox7.Text)
  215. If Strings.Right((TextBox7.Text), 1) <> "\" Then
  216. STR1 -= 1 : STR2 += 1
  217. If STR1 = 0 Then
  218. TextBox7.Text = ""
  219. TextBox4.Text = ""
  220. i = 9999
  221. Else
  222. TextBox7.Text = Strings.Left((TextBox7.Text), STR1)
  223. End If
  224. Else
  225. TextBox7.Text = Strings.Right((TextBox4.Text), STR2)
  226. TextBox4.Text = TextBox7.Text
  227. i = 9999
  228. End If
  229. Next
  230. End If
  231. End Sub
  232. Private Sub TextBox4_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles TextBox4.DragDrop
  233. Dim files As Array = e.Data.GetData(DataFormats.FileDrop)
  234. For Each file As String In files
  235. TextBox4.AppendText(file + Environment.NewLine)
  236. Next
  237. End Sub
  238. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  239. If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then
  240. WebBrowser2.Navigate(FolderBrowserDialog1.SelectedPath)
  241. End If
  242. End Sub
  243. End Class