Option Strict Off Imports System.IO Imports System.Net Public Class 驗貨報告資料庫 Public Property Credentials As ICredentials Private ReadOnly ds As New DataSet Dim TT As String Private m_Leftx As Integer = 152 Private m_Lefty As Integer = 0 Dim m_MousePosX, m_MousePosY, m_DeltaX, m_DeltaY As Integer Private Sub Set_工程圖片資料庫狀態() Dim ds9 As New DataSet : 圖片資料庫管理_dgv.DataSource = Nothing : ds9.Clear() 圖片資料庫管理_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 圖片資料庫管理_dgv.ColumnHeadersHeight = 25 圖片資料庫管理_dgv.AllowUserToAddRows = False SQL_圖片資料庫管理查詢() da.Fill(ds9) : 圖片資料庫管理_dgv.DataSource = ds9.Tables(0) : conn.Close() 圖片資料庫管理_dgv.Columns(0).FillWeight = 100 : 圖片資料庫管理_dgv.Columns(1).Visible = False End Sub Private Sub Set_DGV1載入前設定() 主表單_dgv.DataSource = Nothing : ds.Clear() 主表單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 主表單_dgv.ColumnHeadersHeight = 25 主表單_dgv.AllowUserToAddRows = False End Sub Private Sub Set_DGV1載入後設定() da.Fill(ds) : 主表單_dgv.DataSource = ds.Tables(0) : conn.Close() End Sub Private Sub Set_圖片清單() Set_DGV1載入前設定() : SQL_驗貨報告圖庫表單() : Set_DGV1載入後設定() End Sub Private Sub Set_grid() 主表單_dgv.Columns(0).Width = 140 : 主表單_dgv.Columns(1).Width = 80 : 主表單_dgv.Columns(2).Width = 100 主表單_dgv.Columns(3).Width = 100 : 主表單_dgv.Columns(4).Width = 70 : 主表單_dgv.Columns(5).Width = 100 End Sub Private Sub 驗貨報告資料庫_Load(sender As Object, e As EventArgs) Handles MyBase.Load WINPROFIT_ERP_SYS.WindowState = 2 : Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 驗貨報告編號_tb.Enabled = False : 年份季度_tb.Enabled = False : 客戶訂單號_tb.Enabled = False : 型體名稱_tb.Enabled = False 文件夾_tb.Visible = False : 伺服器FTP文件夾_tb.Visible = False : 圖片修改存檔_bt.Enabled = True Set_工程圖片資料庫狀態() If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then : WebBrowser2.Navigate(FolderBrowserDialog1.SelectedPath) : End If End Sub Private Sub 圖片資料庫管理_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 圖片資料庫管理_dgv.CellClick If e.RowIndex = -1 Then : Else : PA20 = 圖片資料庫管理_dgv(0, e.RowIndex).Value.ToString : Set_圖片清單() : Set_grid() : Panel1.Visible = False : End If End Sub Private Sub 主表單_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 主表單_dgv.CellClick If e.RowIndex = -1 Then : Else 驗貨報告編號_tb.Text = 主表單_dgv(5, e.RowIndex).Value.ToString : 年份季度_tb.Text = 主表單_dgv(1, e.RowIndex).Value.ToString 客戶訂單號_tb.Text = 主表單_dgv(2, e.RowIndex).Value.ToString : 型體名稱_tb.Text = 主表單_dgv(3, e.RowIndex).Value.ToString SQL_資料庫選擇() : If dr.Read() Then : PA1 = dr("圖片資料庫").ToString : PA20 = PA1 : End If : SQL_驗貨報告圖庫3() : PictureBox1.Image = Nothing While dr.Read() = True Dim unused As Byte() = New Byte(-1) {} Dim bytes As Byte() = DirectCast(dr.Item("驗貨報告"), Byte()) Dim oStream As New MemoryStream(bytes) PictureBox1.Image = Bitmap.FromStream(oStream) End While : conn.Close() : PictureBox1.SizeMode = 4 End If End Sub Private Sub 主表單_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 主表單_dgv.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) If e.RowIndex = 主表單_dgv.Rows.Count - 1 Then : Exit Sub : Else If 主表單_dgv(2, e.RowIndex).Value.ToString <> 主表單_dgv(2, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(主表單_dgv.RowHeadersVisible, 主表單_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 主表單_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 主表單_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) : Exit Sub End If End If End Sub Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click PA = InputBox("請輸入關鍵字") : Set_DGV1載入前設定() : SQL_驗貨報告圖庫查詢() : Set_DGV1載入後設定() : Set_grid() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 下載圖片_bt.Click If 驗貨報告編號_tb.Text = "" Then : MsgBox("選擇要下載的圖片") : Else SQL_資料庫選擇() : If dr.Read() Then : PA1 = dr("圖片資料庫").ToString : PA20 = PA1 : End If With SaveFileDialog1 : .Filter = "所有文件(*.*)|*.*" : End With : TT = "驗貨報告" SaveFileDialog1.FileName = TT & "-" & 年份季度_tb.Text & "-" & 客戶訂單號_tb.Text & "-" & 型體名稱_tb.Text & ".jpg" SaveFileDialog1.ShowDialog() : 文件夾_tb.Text = SaveFileDialog1.FileName SQL_驗貨報告圖庫1() : da.Fill(ds) : conn.Close() If ds.Tables(0).Rows.Count > 0 Then Dim imgData() As Byte imgData = ds.Tables(0).Rows(0).Item("驗貨報告") Dim fs As FileStream fs = File.Create(文件夾_tb.Text, imgData.Length - 1) fs.Write(imgData, 0, imgData.Length - 1) fs.Close() End If : 文件夾_tb.Text = "" : MsgBox("下載完成") End If End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles 順時鐘90度旋轉_bt.Click PictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipNone) : PictureBox1.Refresh() : PictureBox1.SizeMode = 4 End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles 逆時鐘90度旋轉_bt.Click PictureBox1.Image.RotateFlip(RotateFlipType.Rotate270FlipNone) : PictureBox1.Refresh() : PictureBox1.SizeMode = 4 End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 水平翻轉_bt.Click PictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipY) : PictureBox1.Refresh() : PictureBox1.SizeMode = 4 End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles 垂直翻轉_bt.Click PictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipX) : PictureBox1.Refresh() : PictureBox1.SizeMode = 4 End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 放大_bt.Click Dim image = PictureBox1.Image Dim g As Graphics = PictureBox1.CreateGraphics g.DrawImage(image, New Rectangle(0, 0, image.Width * 1.01, image.Height * 1.01)) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 復原_bt.Click PictureBox1.Refresh() End Sub '@#处理鼠标按键抬起的事件,根据鼠标按下时保存的鼠标位置,和当前鼠标的位置, '计算鼠标移动偏移量,借此调用移动图片的函数,移动图片 Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox1.MouseUp m_DeltaX = m_MousePosX - e.X m_DeltaY = m_MousePosY - e.Y m_Leftx -= m_DeltaX m_Lefty -= m_DeltaY Picturemove(sender, e) Me.Cursor = Cursors.Arrow End Sub '@#当鼠标按下时,将鼠标变成手形,并且记录下当前鼠标的位置 Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox1.MouseDown Me.Cursor = Cursors.Hand m_MousePosX = e.X m_MousePosY = e.Y End Sub '@#根据偏移量计算出的图片位置,重画图片 Private Sub Picturemove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Dim myBit As New Bitmap(PictureBox1.Image) Dim myPicGrh As Graphics = Me.PictureBox1.CreateGraphics myPicGrh.Clear(Me.PictureBox1.BackColor) myPicGrh.DrawImageUnscaled(myBit, m_Leftx - 152, m_Lefty) myBit.Dispose() myPicGrh.Dispose() End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles 讀取料夾路徑_bt.Click If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then WebBrowser2.Navigate(FolderBrowserDialog1.SelectedPath) End If End Sub Private Sub TextBox6_DragEnter(sender As Object, e As DragEventArgs) Handles 檔案名稱_tb.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then : Dim files As String() Try : files = CType(e.Data.GetData(DataFormats.FileDrop), String()) : 檔案名稱_tb.Text = files(files.Length - 1) Catch ex As Exception : MessageBox.Show(ex.Message) : Return : End Try End If Dim STR2 As Integer = 0 : 伺服器FTP文件夾_tb.Text = 檔案名稱_tb.Text If 檔案名稱_tb.Text = "" Then : Else For i As Integer = 0 To 9999 : Dim STR1 As Integer = Strings.Len(伺服器FTP文件夾_tb.Text) If Strings.Right((伺服器FTP文件夾_tb.Text), 1) <> "\" Then : STR1 -= 1 : STR2 += 1 If STR1 = 0 Then : 伺服器FTP文件夾_tb.Text = "" : 檔案名稱_tb.Text = "" : i = 9999 Else : 伺服器FTP文件夾_tb.Text = Strings.Left((伺服器FTP文件夾_tb.Text), STR1) : End If Else 伺服器FTP文件夾_tb.Text = Strings.Right((檔案名稱_tb.Text), STR2) 檔案名稱_tb.Text = 伺服器FTP文件夾_tb.Text : i = 9999 End If Next Dim files As String() : files = CType(e.Data.GetData(DataFormats.FileDrop), String()) 伺服器FTP文件夾_tb.Text = files(files.Length - 1) End If End Sub Private Sub TextBox6_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles 檔案名稱_tb.DragDrop Dim files As Array = e.Data.GetData(DataFormats.FileDrop) For Each file As String In files 檔案名稱_tb.AppendText(file + Environment.NewLine) Next End Sub Private Sub Button24_Click(sender As Object, e As EventArgs) Handles 圖片修改存檔_bt.Click conn.Close() If 驗貨報告編號_tb.Text = "" Then : MsgBox("請先選擇需要修改的圖片") : Else If 檔案名稱_tb.Text = "" Then : MsgBox("請確認圖片已準備完畢") : Else SQL_資料庫選擇() : If dr.Read() Then : PA1 = dr("圖片資料庫").ToString : PA20 = PA1 : End If Dim 驗證 As String = "" : Dim 取變數 As String : 取變數 = Strings.StrReverse(檔案名稱_tb.Text) For i As Integer = 1 To 10 If i = 1 Then : 驗證 = Strings.Left(取變數, i) : Else If Strings.Mid(取變數, i, 1) = "." Then : 驗證 = Strings.StrReverse(驗證) : Exit For : Else : 驗證 &= Strings.Mid(取變數, i, 1) : End If End If Next If 驗證 = "PNG" Or 驗證 = "png" Or 驗證 = "GIF" Or 驗證 = "gif" Or 驗證 = "BMP" Or 驗證 = "bmp" Or 驗證 = "JPG" Or 驗證 = "jpg" Or 驗證 = "JPEG" Or 驗證 = "jpeg" Then PA49 = 伺服器FTP文件夾_tb.Text : SQL_修改驗貨報告圖庫() : conn.Close() : MsgBox("修改完成") : 檔案名稱_tb.Text = "" Else : 檔案名稱_tb.Text = "" : MsgBox("上傳文件並非常用圖片格式,文件已自動刪除,請專換成常用圖片檔案再行操作。") : End If : Set_圖片清單() : Set_grid() End If End If End Sub End Class