Option Explicit On
Imports System.IO
Public Class 簽名檔管理
    Dim Str As String = Application.StartupPath
    Dim EDR As Integer = 0 : Dim ESTR As String
    Private Sub Set_清單()
        Dim ds As New DataSet
        簽名_DGV.DataSource = Nothing : ds.Clear()
        簽名_DGV.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        簽名_DGV.ColumnHeadersHeight = 25 : 簽名_DGV.AllowUserToAddRows = False
        SQL_簽名檔清單()
        da.Fill(ds) : 簽名_DGV.DataSource = ds.Tables(0) : conn.Close()
        簽名_DGV.Columns(0).FillWeight = 221 : 簽名_DGV.Columns(1).FillWeight = 220
    End Sub
    Private Sub ComboBox1下拉表單資料載入()
        SQL_姓名清單() : 簽名檔持有人_cb.Items.Clear() : While (dr.Read()) : 簽名檔持有人_cb.Items.Add(dr("姓名")) : End While : conn.Close()
    End Sub
    Private Sub 讀取料夾路徑_bt_MouseEnter(sender As Object, e As EventArgs) Handles 讀取料夾路徑_bt.MouseEnter
        ToolTip1.SetToolTip(Me.讀取料夾路徑_bt, "讀取料夾路徑")
    End Sub
    Private Sub 生成圖檔編號_bt_MouseEnter(sender As Object, e As EventArgs) Handles 生成圖檔編號_bt.MouseEnter
        ToolTip1.SetToolTip(Me.生成圖檔編號_bt, "生成圖檔編號")
    End Sub
    Private Sub 圖檔入系統_bt_MouseEnter(sender As Object, e As EventArgs) Handles 簽名檔入系統_bt.MouseEnter
        ToolTip1.SetToolTip(Me.簽名檔入系統_bt, "簽名檔入系統")
    End Sub
    Private Sub 刪除簽名檔_bt_MouseEnter(sender As Object, e As EventArgs) Handles 刪除簽名檔_bt.MouseEnter
        ToolTip1.SetToolTip(Me.刪除簽名檔_bt, "刪除簽名檔")
    End Sub
    Private Sub 簽名檔管理_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.MdiParent = FH_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
        檔案讀取_tb.Visible = False : Panel1.SendToBack()
    End Sub
    Private Sub 簽名檔管理_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
        Set_清單() : ComboBox1下拉表單資料載入()
        If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then : Web2.Navigate(FolderBrowserDialog1.SelectedPath) : End If
    End Sub
    Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
        timeNow = 0 : FH_ERP_SYS.Timer1.Enabled = False : FH_ERP_SYS.Timer1.Enabled = True
    End Sub
    Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
        timeNow = 0 : FH_ERP_SYS.Timer1.Enabled = False : FH_ERP_SYS.Timer1.Enabled = True
    End Sub
    Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 簽名_DGV.CellClick
        If e.RowIndex = -1 Then : Else
            圖檔編號_tb.Text = 簽名_DGV(0, e.RowIndex).Value.ToString : 簽名檔持有人_cb.Text = 簽名_DGV(1, e.RowIndex).Value.ToString
            PA20 = 圖檔編號_tb.Text : SQL_簽名檔圖片讀取()
            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)
                簽名_PB.Image = Bitmap.FromStream(oStream)
            End While : conn.Close() : 簽名_PB.SizeMode = 4
        End If
    End Sub
    Private Sub 簽名檔入系統_bt_Click(sender As Object, e As EventArgs) Handles 簽名檔入系統_bt.Click
        If 圖檔編號_tb.Text = "" Then : MsgBox("請先將簽名檔編號準備好!!") : Else
            If 檔案名稱_tb.Text = "" Then : MsgBox("請先確定圖片資料已準備完畢!!") : Else
                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 = 位置_tb.Text : PA20 = 圖檔編號_tb.Text : PA21 = 簽名檔持有人_cb.Text : SQL_簽名檔新增()
                    檔案名稱_tb.Text = "" : SQL_簽名檔圖片讀取()
                    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)
                        簽名_PB.Image = Bitmap.FromStream(oStream)
                    End While : conn.Close() : 簽名_PB.SizeMode = 4 : Set_清單() : 圖檔編號_tb.Text = ""
                End If
            End If
        End If
    End Sub
    Private Sub 生成圖檔編號_bt_Click(sender As Object, e As EventArgs) Handles 生成圖檔編號_bt.Click
        SQL_簽名檔最末編號讀取()
        If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("圖片流水號").ToString, 8)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1
        If EDR < 10 Then : ESTR = "PG" & "0000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "PG" & "000000" & EDR
        ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "PG" & "00000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "PG" & "0000" & EDR
        ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "PG" & "000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "PG" & "00" & EDR
        ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "PG" & "0" & EDR : ElseIf EDR > 9999999 Then : ESTR = "PG" & EDR : End If : 圖檔編號_tb.Text = ESTR
    End Sub
    Private Sub 檔案名稱_tb_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 驗證 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
            簽名_PB.Image = Image.FromFile(檔案名稱_tb.Text) : 簽名_PB.SizeMode = 4
        End If

        Dim STR2 As Integer = 0 : 檔案讀取_tb.Text = 檔案名稱_tb.Text : 位置_tb.Text = 檔案名稱_tb.Text
        If 檔案名稱_tb.Text = "" Then : Else
            For i As Integer = 0 To 9999
                Dim STR1 As Integer = Strings.Len(檔案讀取_tb.Text)
                If Strings.Right((檔案讀取_tb.Text), 1) <> "\" Then : STR1 -= 1 : STR2 += 1
                    If STR1 = 0 Then : 檔案讀取_tb.Text = "" : 檔案名稱_tb.Text = "" : i = 9999
                    Else : 檔案讀取_tb.Text = Strings.Left((檔案讀取_tb.Text), STR1) : End If
                Else : 檔案讀取_tb.Text = Strings.Right((檔案名稱_tb.Text), STR2) : 檔案名稱_tb.Text = 檔案讀取_tb.Text : i = 9999 : End If
            Next
        End If
    End Sub
    Private Sub 檔案名稱_tb_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 刪除簽名檔_bt_Click(sender As Object, e As EventArgs) Handles 刪除簽名檔_bt.Click
        Dim result As DialogResult = MessageBox.Show("確定要刪除該筆資料?", "請選擇", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If result = DialogResult.Yes Then : PA20 = 圖檔編號_tb.Text : SQL_簽名檔刪除() : Set_清單() : 圖檔編號_tb.Text = "" : End If
    End Sub
    Private Sub 讀取料夾路徑_bt_Click(sender As Object, e As EventArgs) Handles 讀取料夾路徑_bt.Click
        If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then : Web2.Navigate(FolderBrowserDialog1.SelectedPath) : End If
    End Sub
End Class