Option Explicit On Imports System.Net Imports System.IO Imports System.Data.SqlClient Public Class 簽名檔管理 Public Property Credentials As ICredentials ReadOnly conn As New SqlConnection ReadOnly da As New SqlDataAdapter ReadOnly cmd As New SqlCommand ReadOnly ds8 As New DataSet Dim dr As SqlDataReader Dim EDR As Integer = 0 : Dim ESTR As String Private Sub Set_清單() Dim ds As New DataSet DataGridView1.DataSource = Nothing : ds.Clear() DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing DataGridView1.ColumnHeadersHeight = 25 DataGridView1.AllowUserToAddRows = False If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL1 = "SELECT 圖片流水號 AS [" & 表頭(87) & "], 簽名檔人名 AS [" & 表頭(162) & "] FROM HX主管簽名檔管理 ORDER BY 圖片流水號" cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close() DataGridView1.Columns(0).FillWeight = 221 : DataGridView1.Columns(1).FillWeight = 220 End Sub Private Sub ComboBox1下拉表單資料載入() conn.Close() If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL1 = "SELECT 姓名 FROM 使用者權限管理表 ORDER BY 職稱" cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader 簽名檔持有人_cb.Items.Clear() While (dr.Read()) : 簽名檔持有人_cb.Items.Add(dr("姓名")) : End While conn.Close() End Sub Private Sub Set_語言() 語言_dgv.DataSource = Nothing : ds8.Clear() 語言_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 語言_dgv.ColumnHeadersHeight = 25 語言_dgv.AllowUserToAddRows = False If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL1 = "SELECT 控件, 內容 FROM 系統介面語言 WHERE (編碼 LIKE N'" & 介面 & "') AND (語言 LIKE N'" & 系統語言 & "') ORDER BY 控件" cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd da.Fill(ds8) : 語言_dgv.DataSource = ds8.Tables(0) : conn.Close() End Sub Private Sub 語言轉換讀取() Set_語言() : conn.Close() For i As Integer = 0 To 語言_dgv.Rows.Count - 1 If 語言_dgv("控件", i).Value.ToString = "簽名檔管理" Then : Me.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "我的電腦_lb" Then : 我的電腦_lb.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "讀取料夾路徑_bt" Then : 讀取料夾路徑_bt.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "文字_lb" Then : 文字_lb.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "圖檔編號_lb" Then : 圖檔編號_lb.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "簽名檔持有人_lb" Then : 簽名檔持有人_lb.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "生成圖檔編號_bt" Then : 生成圖檔編號_bt.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "簽名檔入系統_bt" Then : 簽名檔入系統_bt.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "刪除簽名檔_bt" Then : 刪除簽名檔_bt.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "檔案名稱_lb" Then : 檔案名稱_lb.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "伺服器FTP文件夾_lb" Then : 伺服器FTP文件夾_lb.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "文字1_lb" Then : 文字1_lb.Text = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "清單_dgv_圖檔編碼" Then : 表頭(87) = 語言_dgv("內容", i).Value.ToString : End If If 語言_dgv("控件", i).Value.ToString = "清單_dgv_簽名檔人名" Then : 表頭(162) = 語言_dgv("內容", i).Value.ToString : End If Next End Sub Private Sub 簽名檔管理_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = HX_PGS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True H(711) = True : 介面 = "H711" : 語言轉換讀取() Set_清單() : TextBox3.Visible = False ComboBox1下拉表單資料載入() If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then WebBrowser2.Navigate(FolderBrowserDialog1.SelectedPath) End If Target1 = Target & AA(4) & "/" WebBrowser1.Url = New Uri(Target1) End Sub Private Sub 簽名檔管理_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed H(711) = False : MyModule1.虛擬桌面開啟() End Sub Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True End Sub Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True End Sub Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick If e.RowIndex = -1 Then : Else 圖檔編號_tb.Text = DataGridView1(0, e.RowIndex).Value.ToString : 簽名檔持有人_cb.Text = DataGridView1(1, e.RowIndex).Value.ToString If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL1 = "SELECT 簽名檔圖片 FROM HX主管簽名檔管理 WHERE 圖片流水號 LIKE N'" & 圖檔編號_tb.Text & "'" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader 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 Button2_Click(sender As Object, e As EventArgs) Handles 簽名檔入系統_bt.Click If 圖檔編號_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先將要入庫的編號準備好!!") : Else : MsgBox("Harap siapkan nomor untuk disimpan terlebih dahulu!!") : End If Else If TextBox4.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先確定圖片資料已準備完畢!!") : Else : MsgBox("Pastikan data gambar sudah siap!!") : End If Else If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL1 = "INSERT INTO HX主管簽名檔管理 (圖片流水號, 簽名檔人名, 簽名檔圖片) SELECT '" & 圖檔編號_tb.Text & "', '" & 簽名檔持有人_cb.Text & "', " & "BULKCOLUMN FROM OPENROWSET ( BULK '" & FTP物理位置 & AA(4) & "\" & TextBox4.Text & "', SINGLE_BLOB) AS EMPLOYEEPICTURE" cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close() '---FTP方式刪除檔案---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Dim frq As FtpWebRequest, frp As FtpWebResponse, fcr As NetworkCredential frq = CType(WebRequest.Create(New Uri(Target1 & TextBox4.Text)), FtpWebRequest) fcr = New NetworkCredential(FTP帳號, FTP密碼) frq.Credentials = fcr frq.Method = WebRequestMethods.Ftp.DeleteFile frq.UseBinary = True frp = CType(frq.GetResponse, FtpWebResponse) frp.Close() WebBrowser1.Refresh() '---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- TextBox4.Text = "" If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL1 = "SELECT 簽名檔圖片 FROM HX主管簽名檔管理 WHERE 圖片流水號 LIKE N'" & 圖檔編號_tb.Text & "'" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader 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 Set_清單() : 圖檔編號_tb.Text = "" End If End If End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 生成圖檔編號_bt.Click If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL1 = "SELECT TOP (1) 圖片流水號 FROM HX主管簽名檔管理 ORDER BY 圖片流水號 DESC" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader 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 TextBox4_DragEnter(sender As Object, e As DragEventArgs) Handles TextBox4.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then Dim files As String() Try files = CType(e.Data.GetData(DataFormats.FileDrop), String()) TextBox4.Text = files(files.Length - 1) Catch ex As Exception MessageBox.Show(ex.Message) Return End Try End If Dim STR2 As Integer = 0 TextBox3.Text = TextBox4.Text If TextBox4.Text = "" Then Else For i As Integer = 0 To 9999 Dim STR1 As Integer = Strings.Len(TextBox3.Text) If Strings.Right((TextBox3.Text), 1) <> "\" Then STR1 -= 1 : STR2 += 1 If STR1 = 0 Then TextBox3.Text = "" TextBox4.Text = "" i = 9999 Else TextBox3.Text = Strings.Left((TextBox3.Text), STR1) End If Else TextBox3.Text = Strings.Right((TextBox4.Text), STR2) TextBox4.Text = TextBox3.Text i = 9999 End If Next End If End Sub Private Sub TextBox4_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles TextBox4.DragDrop Dim files As Array = e.Data.GetData(DataFormats.FileDrop) For Each file As String In files TextBox4.AppendText(file + Environment.NewLine) Next End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 刪除簽名檔_bt.Click SQL1 = "DELETE FROM HX主管簽名檔管理 WHERE (圖片流水號 = N'" & 圖檔編號_tb.Text & "')" cmd.CommandText = SQL1 : cmd.Connection = conn If conn.State = ConnectionState.Closed Then : conn.Open() : End If Dim SS As String If 系統語言 = "繁體中文" Then : SS = "確定要刪除該筆資料?" : Else : SS = "Anda yakin ingin menghapus data ini?" : End If Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then cmd.ExecuteNonQuery() Set_清單() : 圖檔編號_tb.Text = "" End If End Sub Private Sub Button14_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 語轉扭_bt_Click(sender As Object, e As EventArgs) Handles 語轉扭_bt.Click 介面 = "H711" : 語言轉換讀取() : Set_清單() End Sub End Class