Option Strict Off Imports System.IO Imports System.Net Public Class 人員入職資料表 Public Property Credentials As ICredentials Private ReadOnly ds, ds1 As New DataSet Private Sub Set_使用者清單() 未建檔_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).Visible = False : 未建檔_dgv.Columns(1).FillWeight = 150 : 未建檔_dgv.Columns(2).Visible = False : 未建檔_dgv.Columns(3).Visible = False End Sub Private Sub Set_人員清單() 在職人員_dgv.DataSource = Nothing : ds1.Clear() 在職人員_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 在職人員_dgv.ColumnHeadersHeight = 25 在職人員_dgv.AllowUserToAddRows = False SQL_在職人員() da.Fill(ds1) : 在職人員_dgv.DataSource = ds1.Tables(0) : conn.Close() 在職人員_dgv.Columns(0).Visible = False : 在職人員_dgv.Columns(1).FillWeight = 150 : 在職人員_dgv.Columns(2).Visible = False : 在職人員_dgv.Columns(3).Visible = False 在職人員_dgv.Columns(4).Visible = False End Sub Private Sub 讀取圖片() 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) 相片框_pic.Image = Bitmap.FromStream(oStream) End While conn.Close() 相片框_pic.SizeMode = 4 End Sub Private Sub 人員入職資料表_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True Set_使用者清單() : Set_人員清單() 員工編號_tb.Enabled = False : 登入姓名_tb.Enabled = False : TextBox7.Visible = False : GroupBox1.Visible = False If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then WebBrowser2.Navigate(FolderBrowserDialog1.SelectedPath) End If 未建檔_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) 在職人員_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) End Sub Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 未建檔_dgv.CellClick If e.RowIndex = -1 Then : Else 登入姓名_tb.Text = 未建檔_dgv(1, e.RowIndex).Value.ToString 員工編號_tb.Text = "" : 姓名_tb.Text = "" 相片框_pic.Image = Nothing End If End Sub Private Sub DataGridView2_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 在職人員_dgv.CellClick If e.RowIndex = -1 Then : Else 員工編號_tb.Text = 在職人員_dgv(0, e.RowIndex).Value.ToString : 登入姓名_tb.Text = 在職人員_dgv(1, e.RowIndex).Value.ToString : 姓名_tb.Text = 在職人員_dgv(2, e.RowIndex).Value.ToString 入職日期_dtp.Value = 在職人員_dgv(3, e.RowIndex).Value.ToString : 離職日期_dtp.Text = 在職人員_dgv(4, e.RowIndex).Value.ToString Dim TSFM As Integer = DateDiff("d", 入職日期_dtp.Value, Today()) 在職天數_tb.Text = TSFM 讀取圖片() End If End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then WebBrowser2.Navigate(FolderBrowserDialog1.SelectedPath) End If End Sub Private Sub TextBox4_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 : TextBox7.Text = 檔案名稱_tb.Text If 檔案名稱_tb.Text = "" Then : Else For i As Integer = 0 To 9999 : Dim STR1 As Integer = Strings.Len(TextBox7.Text) If Strings.Right((TextBox7.Text), 1) <> "\" Then : STR1 -= 1 : STR2 += 1 If STR1 = 0 Then : TextBox7.Text = "" : 檔案名稱_tb.Text = "" : i = 9999 Else : TextBox7.Text = Strings.Left((TextBox7.Text), STR1) : End If Else TextBox7.Text = Strings.Right((檔案名稱_tb.Text), STR2) 檔案名稱_tb.Text = TextBox7.Text : i = 9999 End If Next Dim files As String() : files = CType(e.Data.GetData(DataFormats.FileDrop), String()) TextBox7.Text = files(files.Length - 1) End If End Sub Private Sub TextBox4_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 Set_日期格式轉換() DTP = Format(入職日期_dtp.Value, "yyyy/MM/dd") DTP1 = Format(DateTimePicker2.Value, "yyyy/MM/dd") End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 人事資料建檔_bt.Click Dim frq As FtpWebRequest, frp As FtpWebResponse, fcr As NetworkCredential If 檔案名稱_tb.Text = "" Or 登入姓名_tb.Text = "" Or 姓名_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 SQL_查最後一筆員工編號() If dr.Read() Then : 員工編號_tb.Text = dr("員工編號").ToString : Else : 員工編號_tb.Text = "EN00000000" : End If conn.Close() Dim NUM1 As Integer NUM1 = Double.Parse(Strings.Right(員工編號_tb.Text, 8)) + 1 If NUM1 < 10 Then : 員工編號_tb.Text = "EN" & "0000000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 員工編號_tb.Text = "EN" & "000000" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 員工編號_tb.Text = "EN" & "00000" & NUM1 ElseIf NUM1 > 999 And NUM1 < 10000 Then : 員工編號_tb.Text = "EN" & "0000" & NUM1 ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 員工編號_tb.Text = "EN" & "000" & NUM1 ElseIf NUM1 > 99999 And NUM1 < 100000 Then : 員工編號_tb.Text = "EN" & "00" & NUM1 ElseIf NUM1 > 999999 And NUM1 < 1000000 Then : 員工編號_tb.Text = "EN" & "0" & NUM1 ElseIf NUM1 > 9999999 Then : 員工編號_tb.Text = "EN" & NUM1 End If Set_日期格式轉換() : PA49 = TextBox7.Text : SQL_新增人事資料表() : conn.Close() : dr.Close() MsgBox("新增完成") '--------------------------------------------------------------------------------------------------------------------------------- SQL_更改使用者權限管理表() : conn.Close() : dr.Close() Set_使用者清單() : Set_人員清單() : 讀取圖片() 檔案名稱_tb.Text = "" Else 檔案名稱_tb.Text = "" MsgBox("上傳文件並非常用圖片格式,文件已自動刪除,請專換成常用圖片檔案再行操作。") End If End If End If End Sub Private Sub Button24_Click(sender As Object, e As EventArgs) Handles 人事資料圖片修改存檔_bt.Click If 員工編號_tb.Text = "" Or 檔案名稱_tb.Text = "" Or 登入姓名_tb.Text = "" Or 姓名_tb.Text = "" Then MsgBox("請確定人事資料表的圖片檔已準備完成,並且所有人事清單資料、人員中文姓名等資料正確") Else Dim 驗證 As String = "" : Dim 取變數 As String Dim frq As FtpWebRequest, frp As FtpWebResponse, fcr As NetworkCredential 取變數 = 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 = TextBox7.Text : SQL_修改人事資料表() conn.Close() : dr.Close() : MsgBox("修改完成") : 讀取圖片() : 檔案名稱_tb.Text = "" Else : 檔案名稱_tb.Text = "" : MsgBox("上傳文件並非常用圖片格式,文件已自動刪除,請專換成常用圖片檔案再行操作。") : End If End If End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 人員離職_bt.Click If 員工編號_tb.Text = "" Or 登入姓名_tb.Text = "" Or 姓名_tb.Text = "" Then : MsgBox("請確定選中離職人員的人事資料表") : Else : GroupBox1.Visible = True : End If End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 日期確定_bt.Click Set_日期格式轉換() SQL_修改人事資料表1() : conn.Close() GroupBox1.Visible = False Set_使用者清單() : Set_人員清單() End Sub End Class