Imports System.Windows.Forms
Public Class 人事資料表
    ReadOnly ds1 As New DataSet
    Dim 資料新增判斷 As Boolean : Dim 第一次開啟判斷 As Boolean = False : Dim EDR As Integer = 0 : Dim ESTR As String : Dim EDR1 As Integer = 0
    Dim ESTR1 As String : Dim 首次開啟 As Boolean = False
    Private Sub Set_清單()
        人事_dgv.DataSource = Nothing : ds1.Clear() : 人事_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        人事_dgv.ColumnHeadersHeight = 25
        人事_dgv.AllowUserToAddRows = False
        人事_dgv.RowTemplate.Height = 30
        SQL_人事資料表_清單()
        da.Fill(ds1) : 人事_dgv.DataSource = ds1.Tables(0) : conn.Close()
        人事_dgv.Columns(0).Visible = False : 人事_dgv.Columns(1).FillWeight = 35 : 人事_dgv.Columns(2).FillWeight = 50 : 人事_dgv.Columns(3).FillWeight = 50
        人事_dgv.Columns(4).FillWeight = 30 : 人事_dgv.Columns(5).FillWeight = 60 : 人事_dgv.Columns(6).FillWeight = 150 : 人事_dgv.Columns(7).FillWeight = 60
        人事_dgv.Columns(8).FillWeight = 80 : 人事_dgv.Columns(9).FillWeight = 40 : 人事_dgv.Columns(10).FillWeight = 280 : 人事_dgv.Columns(11).FillWeight = 90
    End Sub
    Private Sub 職務_cb_下拉表單資料載入()
        SQL_職稱清單_下拉清單() : 職務_cb.Items.Clear() : While (dr.Read()) : 職務_cb.Items.Add(dr("職稱")) : End While : conn.Close()
    End Sub
    Private Sub 人事資料表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.MdiParent = YD_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
        流水號_tb.Visible = False : 編號_tb.Enabled = False : 第一次開啟判斷 = True '--------------------控件隱藏、操作許可設定與其他基本顯示設定
        狀態_lb.Text = "預覽
狀態"
        If Val(登入人級別) <= 2 Then '--------------------刪除資料權限
            刪除ToolStripMenuItem.Enabled = True : 刪除_bt.Enabled = True
        Else
            刪除ToolStripMenuItem.Enabled = False : 刪除_bt.Enabled = False
        End If
        首次開啟 = False : Set_清單() : 職務_cb_下拉表單資料載入() : 首次開啟 = True '--------------------資料讀取

        If YD_ERP_SYS.Size.Width > 1440 And YD_ERP_SYS.Size.Height > 900 Then
            字體_NUD.Value = 9
        ElseIf YD_ERP_SYS.Size.Width <= 1440 And YD_ERP_SYS.Size.Height <= 900 Then
            字體_NUD.Value = 8
        End If
    End Sub
    Private Sub 人事資料表_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
        If 第一次開啟判斷 = True Then
            Set_清單()
        End If
        If YD_ERP_SYS.Size.Width > 1440 And YD_ERP_SYS.Size.Height > 900 Then
            字體_NUD.Value = 9
        ElseIf YD_ERP_SYS.Size.Width <= 1440 And YD_ERP_SYS.Size.Height <= 900 Then
            字體_NUD.Value = 8
        End If
    End Sub
    Private Sub 人事資料表_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
        If 資料新增判斷 = True Then '--------------------如果再關閉介面時，資料新增判斷是開啟的，就無條件刪除控件上的那筆資料
            SQL_人事資料表_刪除() '--------------------資料刪除
        End If
        第一次開啟判斷 = False
    End Sub
    Private Sub 人事_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 人事_dgv.CellClick
        If 首次開啟 = True Then
            If e.RowIndex = -1 Then : Else
                流水號_tb.Text = 人事_dgv(0, e.RowIndex).Value.ToString : 編號_tb.Text = 人事_dgv(1, e.RowIndex).Value.ToString
                到職日_dtp.Value = 人事_dgv(2, e.RowIndex).Value : 姓名_tb.Text = 人事_dgv(3, e.RowIndex).Value.ToString
                性別_cb.Text = 人事_dgv(4, e.RowIndex).Value.ToString : 身分證_tb.Text = 人事_dgv(5, e.RowIndex).Value.ToString
                住址_tb.Text = 人事_dgv(6, e.RowIndex).Value.ToString : 電話_tb.Text = 人事_dgv(7, e.RowIndex).Value.ToString
                手機_tb.Text = 人事_dgv(8, e.RowIndex).Value.ToString : 職務_cb.Text = 人事_dgv(9, e.RowIndex).Value.ToString
                薪資帳號_tb.Text = 人事_dgv(11, e.RowIndex).Value.ToString : 備註_tb.Text = 人事_dgv(10, e.RowIndex).Value.ToString
            End If
        End If
    End Sub
    Private Sub Set_日期格式轉換()
        DTP = Format(到職日_dtp.Value, "yyyy/MM/dd")
    End Sub
    Private Sub 新增準備_bt_Click(sender As Object, e As EventArgs) Handles 新增準備_bt.Click
        流水號_tb.Text = "" : 編號_tb.Text = "" : 到職日_dtp.Value = Today() : 姓名_tb.Text = "" : 性別_cb.Text = "" : 身分證_tb.Text = "" '--------------------控件清空
        住址_tb.Text = "" : 電話_tb.Text = "" : 手機_tb.Text = "" : 職務_cb_下拉表單資料載入() : 薪資帳號_tb.Text = "" : 備註_tb.Text = ""

        資料新增判斷 = True '--------------------目前的編輯狀態
        狀態_lb.Text = "編輯
狀態"
        人事_dgv.Enabled = False '--------------------關閉DGV控件的點選控制功能

        SQL_人事資料表_流水號_最後一筆資料() '--------------------自動取得新流水號
        If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If
        conn.Close() : EDR += 1
        If EDR < 10 Then : ESTR = "PE" & "00000000" & EDR
        ElseIf EDR > 9 And EDR < 100 Then : ESTR = "PE" & "0000000" & EDR
        ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "PE" & "000000" & EDR
        ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "PE" & "00000" & EDR
        ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "PE" & "0000" & EDR
        ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "PE" & "000" & EDR
        ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "PE" & "00" & EDR
        ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "PE" & "0" & EDR
        ElseIf EDR > 99999999 Then : ESTR = "PE" & EDR
        End If : 流水號_tb.Text = ESTR

        SQL_人事資料表_編號_最後一筆資料()  '--------------------自動取得新編號
        If dr.Read() Then : EDR1 = Val(dr("舊編")) : Else : EDR1 = 0 : End If
        conn.Close() : EDR1 += 1
        If EDR1 < 10 Then : ESTR1 = "0" & EDR1
        ElseIf EDR1 > 9 And EDR1 < 100 Then : ESTR1 = EDR1
        End If : 編號_tb.Text = ESTR1

        Set_日期格式轉換() '--------------------到職日期格式傳換
        SQL_人事資料表_新增() '--------------------人事資料表中寫入一筆資料
    End Sub
    Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click
        If 流水號_tb.Text = "" Then '--------------------設定條件讓流水號控件不為空
            MsgBox("沒有選擇要存檔的資料")
        Else
            If 性別_cb.Text = "" Then '--------------------設定條件讓性別控件不為空
                MsgBox("是人類就一定要有性別")
            Else
                If 姓名_tb.Text = "" Then '--------------------設定條件讓性別控件不為空
                    MsgBox("員工不是阿飄，請填上他的名子")
                Else
                    If 手機_tb.Text = "" Then '--------------------設定條件讓性別控件不為空
                        MsgBox("這個時代要找人手機很重要，請留下吧。")
                    Else
                        If 職務_cb.Text = "" Then '--------------------設定條件讓職務控件不為空
                            MsgBox("職務沒有選擇")
                        Else
                            資料新增判斷 = False '--------------------目前的編輯狀態
                            狀態_lb.Text = "預覽
狀態"
                            人事_dgv.Enabled = True '--------------------開啟DGV控件的點選控制功能
                            Set_日期格式轉換() '--------------------到職日期格式傳換
                            SQL_人事資料表_修改() '--------------------資料修改
                            Set_清單() '--------------------資料修改後重新讀取清單
                        End If
                    End If
                End If
            End If
        End If
    End Sub
    Private Sub 刪除_bt_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click
        If 流水號_tb.Text = "" Then '--------------------設定條件讓流水號控件不為空
            MsgBox("沒有選擇要刪除的資料")
        Else
            Dim aa1 As MsgBoxResult = MsgBox("確定要執行刪除指令嗎?", MsgBoxStyle.OkCancel)
            If aa1 = MsgBoxResult.Ok Then
                SQL_人事資料表_刪除() '--------------------資料刪除
                Set_清單() '--------------------資料修改後重新讀取清單
            End If
        End If
    End Sub
    '-------------------滑鼠右鍵-------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Private Sub 重新整理ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新整理ToolStripMenuItem.Click
        Set_清單() : 職務_cb_下拉表單資料載入()
    End Sub
    Private Sub 新增準備ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 新增準備ToolStripMenuItem.Click
        新增準備_bt.PerformClick()
    End Sub
    Private Sub 存檔ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 存檔ToolStripMenuItem.Click
        存檔_bt.PerformClick()
    End Sub
    Private Sub 刪除ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 刪除ToolStripMenuItem.Click
        刪除_bt.PerformClick()
    End Sub
    Private Sub 字體_NUD_ValueChanged(sender As Object, e As EventArgs) Handles 字體_NUD.ValueChanged
        人事_dgv.RowsDefaultCellStyle.Font = New Font("微軟正黑體", 字體_NUD.Value)
    End Sub
End Class