Imports System.Globalization Public Class 每月零用金設定 Dim 間隔1, Hours, Hours舊, Xours, Xours舊, Qours, Qours舊, HMD As Integer Dim 計算(6), X1, AUTO時, AUTO舊1, AUTO舊2 As String : Private ReadOnly 對話框(7) As String Private Sub 語言轉換讀取() If 系統語言 = "繁體中文" Then : 語言 = "CH" : ElseIf 系統語言 = "English" Then : 語言 = "EN" : ElseIf 系統語言 = "Indonesian" Then : 語言 = "IN" : End If Me.Text = 系統語言字典("G000-238-" & 語言) Label11.Text = 系統語言字典("G000-239-" & 語言) : Label20.Text = 系統語言字典("G000-239-" & 語言) : Label23.Text = 系統語言字典("G000-239-" & 語言) 薪資計算_ch.Text = 系統語言字典("G000-240-" & 語言) : 採購計算_ch.Text = 系統語言字典("G000-241-" & 語言) : 物料採購_g.Text = 系統語言字典("G000-242-" & 語言) GroupBox3.Text = 系統語言字典("G000-242-" & 語言) : GroupBox2.Text = 系統語言字典("G000-243-" & 語言) : GroupBox1.Text = 系統語言字典("G000-243-" & 語言) DA1_bt.Text = 系統語言字典("H611-111-" & 語言) : DA2_bt.Text = 系統語言字典("H611-112-" & 語言) : DA3_bt.Text = 系統語言字典("H611-113-" & 語言) 考勤表_bt.Text = 系統語言字典("H611-116-" & 語言) : 薪資表_bt.Text = 系統語言字典("H611-117-" & 語言) : Label22.Text = 系統語言字典("H609-145-" & 語言) Label1.Text = 系統語言字典("H611-119-" & 語言) : Label12.Text = 系統語言字典("H611-119-" & 語言) : Label19.Text = 系統語言字典("H611-120-" & 語言) Label7.Text = 系統語言字典("H609-124-" & 語言) : Label17.Text = 系統語言字典("H609-144-" & 語言) : Label8.Text = 系統語言字典("H611-120-" & 語言) 設定_g.Text = 系統語言字典("G000-244-" & 語言) : Label9.Text = 系統語言字典("G000-245-" & 語言) : Label10.Text = 系統語言字典("G000-246-" & 語言) Label3.Text = 系統語言字典("G000-247-" & 語言) : Label6.Text = 系統語言字典("G000-248-" & 語言) : Label15.Text = 系統語言字典("G000-249-" & 語言) Label16.Text = 系統語言字典("G000-250-" & 語言) : 對話框(0) = 系統語言字典("G000-251-" & 語言) : 對話框(1) = 系統語言字典("G000-252-" & 語言) 對話框(2) = 系統語言字典("G000-253-" & 語言) : 對話框(3) = 系統語言字典("H204-133-" & 語言) 表頭(0) = 系統語言字典("H601-103-" & 語言) : 表頭(1) = 系統語言字典("H602-104-" & 語言) : 表頭(2) = 系統語言字典("H609-107-" & 語言) : 表頭(3) = 系統語言字典("H609-108-" & 語言) 表頭(4) = 系統語言字典("H609-109-" & 語言) : 表頭(5) = 系統語言字典("H609-110-" & 語言) : 表頭(6) = 系統語言字典("H609-111-" & 語言) : 表頭(7) = 系統語言字典("H609-112-" & 語言) 表頭(8) = 系統語言字典("H609-113-" & 語言) : 表頭(9) = 系統語言字典("H609-114-" & 語言) : 表頭(10) = 系統語言字典("H609-115-" & 語言) : 表頭(11) = 系統語言字典("H609-116-" & 語言) 表頭(12) = 系統語言字典("H609-117-" & 語言) : 表頭(13) = 系統語言字典("H609-118-" & 語言) : 表頭(14) = 系統語言字典("H609-119-" & 語言) : 表頭(15) = 系統語言字典("H609-120-" & 語言) 表頭(16) = 系統語言字典("H609-123-" & 語言) : 表頭(17) = 系統語言字典("H609-124-" & 語言) : 表頭(18) = 系統語言字典("H609-128-" & 語言) : 表頭(19) = 系統語言字典("H601-108-" & 語言) 表頭(20) = 系統語言字典("H609-129-" & 語言) : 表頭(21) = 系統語言字典("H609-125-" & 語言) : 表頭(22) = 系統語言字典("H607-103-" & 語言) : 表頭(23) = 系統語言字典("H609-130-" & 語言) 表頭(24) = 系統語言字典("H609-131-" & 語言) : 表頭(25) = 系統語言字典("H609-132-" & 語言) : 表頭(26) = 系統語言字典("H611-105-" & 語言) : 表頭(27) = 系統語言字典("H611-106-" & 語言) 表頭(28) = 系統語言字典("H611-107-" & 語言) : 表頭(29) = 系統語言字典("H611-108-" & 語言) : 表頭(30) = 系統語言字典("H611-109-" & 語言) : 表頭(64) = 系統語言字典("H611-122-" & 語言) 表頭(31) = 系統語言字典("H611-123-" & 語言) : 表頭(32) = 系統語言字典("H611-124-" & 語言) : 表頭(33) = 系統語言字典("H611-125-" & 語言) : 表頭(34) = 系統語言字典("H611-126-" & 語言) 表頭(35) = 系統語言字典("H611-127-" & 語言) : 表頭(36) = 系統語言字典("H611-128-" & 語言) : 表頭(37) = 系統語言字典("H611-129-" & 語言) : 表頭(38) = 系統語言字典("H611-130-" & 語言) 表頭(39) = 系統語言字典("H611-131-" & 語言) : 表頭(40) = 系統語言字典("H611-132-" & 語言) : 表頭(41) = 系統語言字典("H611-133-" & 語言) : 表頭(42) = 系統語言字典("H611-134-" & 語言) 表頭(43) = 系統語言字典("H611-135-" & 語言) : 表頭(44) = 系統語言字典("H611-136-" & 語言) : 表頭(45) = 系統語言字典("H611-137-" & 語言) : 表頭(46) = 系統語言字典("H611-138-" & 語言) 表頭(47) = 系統語言字典("H611-139-" & 語言) : 表頭(48) = 系統語言字典("H611-140-" & 語言) : 表頭(49) = 系統語言字典("H611-141-" & 語言) : 表頭(50) = 系統語言字典("H611-142-" & 語言) 表頭(51) = 系統語言字典("H611-143-" & 語言) : 表頭(52) = 系統語言字典("H611-144-" & 語言) : 表頭(53) = 系統語言字典("H611-145-" & 語言) : 表頭(54) = 系統語言字典("H611-146-" & 語言) 表頭(55) = 系統語言字典("H611-147-" & 語言) : 表頭(56) = 系統語言字典("H611-148-" & 語言) : 表頭(57) = 系統語言字典("H611-149-" & 語言) : 表頭(58) = 系統語言字典("H611-150-" & 語言) 表頭(59) = 系統語言字典("H611-151-" & 語言) : 表頭(60) = 系統語言字典("H611-152-" & 語言) : 表頭(61) = 系統語言字典("H611-153-" & 語言) : 表頭(62) = 系統語言字典("H611-154-" & 語言) 表頭(63) = 系統語言字典("H611-155-" & 語言) End Sub Private Sub Set_虛擬表() Dim ds1 As New DataSet 虛擬表_dgv.DataSource = Nothing : ds1.Clear() 虛擬表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 虛擬表_dgv.ColumnHeadersHeight = 25 : 虛擬表_dgv.AllowUserToAddRows = False : 虛擬表_dgv.RowTemplate.Height = 25 SQL_考勤虛擬表() : PA25 = "" da.Fill(ds1) : 虛擬表_dgv.DataSource = ds1.Tables(0) : conn.Close() End Sub Private Sub Set_供應商() Dim ds1 As New DataSet 供應商_dgv.DataSource = Nothing : ds1.Clear() 供應商_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 供應商_dgv.ColumnHeadersHeight = 25 : 供應商_dgv.AllowUserToAddRows = False : 供應商_dgv.RowTemplate.Height = 25 SQL_特殊供應商() da.Fill(ds1) : 供應商_dgv.DataSource = ds1.Tables(0) : conn.Close() End Sub Private Sub Set_使用地點() Dim ds1 As New DataSet 使用地點_dgv.DataSource = Nothing : ds1.Clear() 使用地點_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 使用地點_dgv.ColumnHeadersHeight = 25 : 使用地點_dgv.AllowUserToAddRows = False : 使用地點_dgv.RowTemplate.Height = 25 SQL_使用地點() da.Fill(ds1) : 使用地點_dgv.DataSource = ds1.Tables(0) : conn.Close() End Sub Private Sub Set_詢價人員() Dim ds1 As New DataSet 核對與詢價_dgv.DataSource = Nothing : ds1.Clear() 核對與詢價_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 核對與詢價_dgv.ColumnHeadersHeight = 25 : 核對與詢價_dgv.AllowUserToAddRows = False : 核對與詢價_dgv.RowTemplate.Height = 25 SQL_詢價人員() da.Fill(ds1) : 核對與詢價_dgv.DataSource = ds1.Tables(0) : conn.Close() End Sub Private Sub Set_可用物料() Dim ds1 As New DataSet 可用物料_dgv.DataSource = Nothing : ds1.Clear() 可用物料_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 可用物料_dgv.ColumnHeadersHeight = 25 : 可用物料_dgv.AllowUserToAddRows = False : 可用物料_dgv.RowTemplate.Height = 25 SQL_可用物料() da.Fill(ds1) : 可用物料_dgv.DataSource = ds1.Tables(0) : conn.Close() End Sub Private Sub Set_申請人() Dim ds1 As New DataSet 申請人_dgv.DataSource = Nothing : ds1.Clear() 申請人_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 申請人_dgv.ColumnHeadersHeight = 25 : 申請人_dgv.AllowUserToAddRows = False : 申請人_dgv.RowTemplate.Height = 25 SQL_申請人() da.Fill(ds1) : 申請人_dgv.DataSource = ds1.Tables(0) : conn.Close() End Sub Private Sub Set_採購單號() Dim ds1 As New DataSet 該月單號_dgv.DataSource = Nothing : ds1.Clear() 該月單號_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 該月單號_dgv.ColumnHeadersHeight = 25 : 該月單號_dgv.AllowUserToAddRows = False : 該月單號_dgv.RowTemplate.Height = 25 SQL_該月單號() da.Fill(ds1) : 該月單號_dgv.DataSource = ds1.Tables(0) : conn.Close() End Sub Private Sub Set_合約號() Dim ds1 As New DataSet 合約號_dgv.DataSource = Nothing : ds1.Clear() 合約號_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 合約號_dgv.ColumnHeadersHeight = 25 : 合約號_dgv.AllowUserToAddRows = False : 合約號_dgv.RowTemplate.Height = 25 SQL_合約號() da.Fill(ds1) : 合約號_dgv.DataSource = ds1.Tables(0) : conn.Close() End Sub Private Sub Set_使用者清單() Set_使用者清單1() : Set_使用者清單2() : Set_使用者清單3() : Set_使用者清單4() : Set_使用者清單5() : Set_使用者清單6() : 極限設定() End Sub Private Sub Set_使用者清單1() PA25 = 星1_bt.Text : Set_虛擬表() : Dim ds1, ds2 As New DataSet 清單1_dgv.DataSource = Nothing : ds1.Clear() 清單1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單1_dgv.ColumnHeadersHeight = 45 : 清單1_dgv.AllowUserToAddRows = False : 清單1_dgv.RowTemplate.Height = 35 If 群組1_cb.Text = "HARIAN GROUP" Then SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.員工代碼" Else SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 NOT LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.部門名稱,使用者權限管理表.姓名" End If PA25 = "" : SQL3 = "" : PA14 = "" : PA19 = "" : 工人 = True : 在職 = True SQL_人員薪資表1() : da.Fill(ds1) : 清單1_dgv.DataSource = ds1.Tables(0) : conn.Close() 清單1_dgv.Columns("Save.").FillWeight = 40 : 清單1_dgv.Columns(12).Visible = True : 清單1_dgv.Columns(50).Visible = False : 清單1_dgv.Columns(0).FillWeight = 120 清單1_dgv.Columns(4).FillWeight = 25 For i As Integer = 2 To 14 : 清單1_dgv.Columns(i).Visible = False : Next : For i As Integer = 29 To 48 : 清單1_dgv.Columns(i).Visible = False : Next For i As Integer = 15 To 28 : 清單1_dgv.Columns(i).FillWeight = 60 : Next : For i As Integer = 29 To 34 : 清單1_dgv.Columns(i).FillWeight = 60 : Next For i As Integer = 35 To 48 : 清單1_dgv.Columns(i).FillWeight = 40 : Next : 清單1_dgv.Columns(12).Visible = True : 清單1_dgv.Columns(4).Visible = True For i As Integer = 1 To 50 : 清單1_dgv.Columns(i).ReadOnly = True : Next 清單1_dgv.Columns(12).ReadOnly = False 清單1_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 清單1_dgv.Columns(13).DefaultCellStyle.Format = "#,##0" For i As Integer = 4 To 11 清單1_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 12 To 48 清單1_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 '-------------------------實際考勤-------------------------------------------------------------------------------------------------------------------- If 清單1_dgv.Rows(i).Cells(0).Value.ToString <> "" Then : 清單1_dgv.Rows(i).Cells(0).Value = 清單1_dgv.Rows(i).Cells(0).Value.ToString.ToUpper : End If If 清單1_dgv.Rows(i).Cells(1).Value.ToString <> "" Then : 清單1_dgv.Rows(i).Cells(1).Value = 清單1_dgv.Rows(i).Cells(1).Value.ToString.ToUpper : End If '-------------------------清空資料取得預設值-------------------------------------------------------------------------------------------------------------------- For FF As Integer = 15 To 48 : 清單1_dgv.Rows(i).Cells(FF).Value = "" : Next '-------------------------虛擬考勤-------------------------------------------------------------------------------------------------------------------- For ii As Integer = 0 To 虛擬表_dgv.Rows.Count - 1 If 清單1_dgv.Rows(i).Cells(50).Value.ToString = 虛擬表_dgv.Rows(ii).Cells(0).Value.ToString Then If 月份2_cb.Text = Strings.Mid(星1_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(15).Value = 虛擬表_dgv.Rows(ii).Cells(1).Value.ToString : 清單1_dgv.Rows(i).Cells(16).Value = 虛擬表_dgv.Rows(ii).Cells(2).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星2_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(17).Value = 虛擬表_dgv.Rows(ii).Cells(3).Value.ToString : 清單1_dgv.Rows(i).Cells(18).Value = 虛擬表_dgv.Rows(ii).Cells(4).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星3_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(19).Value = 虛擬表_dgv.Rows(ii).Cells(5).Value.ToString : 清單1_dgv.Rows(i).Cells(20).Value = 虛擬表_dgv.Rows(ii).Cells(6).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星4_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(21).Value = 虛擬表_dgv.Rows(ii).Cells(7).Value.ToString : 清單1_dgv.Rows(i).Cells(22).Value = 虛擬表_dgv.Rows(ii).Cells(8).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星5_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(23).Value = 虛擬表_dgv.Rows(ii).Cells(9).Value.ToString : 清單1_dgv.Rows(i).Cells(24).Value = 虛擬表_dgv.Rows(ii).Cells(10).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星6_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(25).Value = 虛擬表_dgv.Rows(ii).Cells(11).Value.ToString : 清單1_dgv.Rows(i).Cells(26).Value = 虛擬表_dgv.Rows(ii).Cells(12).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星7_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(27).Value = 虛擬表_dgv.Rows(ii).Cells(13).Value.ToString : 清單1_dgv.Rows(i).Cells(28).Value = 虛擬表_dgv.Rows(ii).Cells(14).Value.ToString End If End If Next Next : AUTO第1周() End Sub Private Sub AUTO第1周() For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 '-------------------------計算星期一-------------------------------------------------------------------------------------------------------------------- If 清單1_dgv.Rows(i).Cells(15).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(16).Value.ToString <> "" Then X1 = 清單1_dgv.Rows(i).Cells(15).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(16).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= -120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單1_dgv.Rows(i).Cells(35).Value = 時間 : 清單1_dgv.Rows(i).Cells(36).Value = 加班1 Else : 清單1_dgv.Rows(i).Cells(35).Value = "" : 清單1_dgv.Rows(i).Cells(36).Value = "" : End If '-------------------------計算星期二-------------------------------------------------------------------------------------------------------------------- If 清單1_dgv.Rows(i).Cells(17).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(18).Value.ToString <> "" Then X1 = 清單1_dgv.Rows(i).Cells(17).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(18).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單1_dgv.Rows(i).Cells(37).Value = 時間 : 清單1_dgv.Rows(i).Cells(38).Value = 加班1 Else : 清單1_dgv.Rows(i).Cells(37).Value = "" : 清單1_dgv.Rows(i).Cells(38).Value = "" : End If '-------------------------計算星期三-------------------------------------------------------------------------------------------------------------------- If 清單1_dgv.Rows(i).Cells(19).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(20).Value.ToString <> "" Then X1 = 清單1_dgv.Rows(i).Cells(19).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(20).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單1_dgv.Rows(i).Cells(39).Value = 時間 : 清單1_dgv.Rows(i).Cells(40).Value = 加班1 Else : 清單1_dgv.Rows(i).Cells(39).Value = "" : 清單1_dgv.Rows(i).Cells(40).Value = "" : End If '-------------------------計算星期四-------------------------------------------------------------------------------------------------------------------- If 清單1_dgv.Rows(i).Cells(21).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(22).Value.ToString <> "" Then X1 = 清單1_dgv.Rows(i).Cells(21).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(22).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單1_dgv.Rows(i).Cells(41).Value = 時間 : 清單1_dgv.Rows(i).Cells(42).Value = 加班1 Else : 清單1_dgv.Rows(i).Cells(41).Value = "" : 清單1_dgv.Rows(i).Cells(42).Value = "" : End If '-------------------------計算星期五-------------------------------------------------------------------------------------------------------------------- If 清單1_dgv.Rows(i).Cells(23).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(24).Value.ToString <> "" Then X1 = 清單1_dgv.Rows(i).Cells(23).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(24).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單1_dgv.Rows(i).Cells(43).Value = 時間 : 清單1_dgv.Rows(i).Cells(44).Value = 加班1 Else : 清單1_dgv.Rows(i).Cells(43).Value = "" : 清單1_dgv.Rows(i).Cells(44).Value = "" : End If '-------------------------計算星期六-------------------------------------------------------------------------------------------------------------------- If 清單1_dgv.Rows(i).Cells(25).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(26).Value.ToString <> "" Then X1 = 清單1_dgv.Rows(i).Cells(25).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(26).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單1_dgv.Rows(i).Cells(45).Value = 時間 : 清單1_dgv.Rows(i).Cells(46).Value = 加班1 Else : 清單1_dgv.Rows(i).Cells(45).Value = "" : 清單1_dgv.Rows(i).Cells(46).Value = "" : End If '-------------------------計算星期日-------------------------------------------------------------------------------------------------------------------- If 清單1_dgv.Rows(i).Cells(27).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(28).Value.ToString <> "" Then X1 = 清單1_dgv.Rows(i).Cells(27).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(28).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單1_dgv.Rows(i).Cells(47).Value = 時間 : 清單1_dgv.Rows(i).Cells(48).Value = 加班1 Else : 清單1_dgv.Rows(i).Cells(47).Value = "" : 清單1_dgv.Rows(i).Cells(48).Value = "" : End If Dim 正常(6), 加班(6) As Integer If 清單1_dgv.Rows(i).Cells(35).Value <> "" Then : 正常(0) = 清單1_dgv.Rows(i).Cells(35).Value.ToString : Else : 正常(0) = 0 : End If If 清單1_dgv.Rows(i).Cells(37).Value <> "" Then : 正常(1) = 清單1_dgv.Rows(i).Cells(37).Value.ToString : Else : 正常(1) = 0 : End If If 清單1_dgv.Rows(i).Cells(39).Value <> "" Then : 正常(2) = 清單1_dgv.Rows(i).Cells(39).Value.ToString : Else : 正常(2) = 0 : End If If 清單1_dgv.Rows(i).Cells(41).Value <> "" Then : 正常(3) = 清單1_dgv.Rows(i).Cells(41).Value.ToString : Else : 正常(3) = 0 : End If If 清單1_dgv.Rows(i).Cells(43).Value <> "" Then : 正常(4) = 清單1_dgv.Rows(i).Cells(43).Value.ToString : Else : 正常(4) = 0 : End If If 清單1_dgv.Rows(i).Cells(45).Value <> "" Then : 正常(5) = 清單1_dgv.Rows(i).Cells(45).Value.ToString : Else : 正常(5) = 0 : End If If 清單1_dgv.Rows(i).Cells(47).Value <> "" Then : 正常(6) = 清單1_dgv.Rows(i).Cells(47).Value.ToString : Else : 正常(6) = 0 : End If If 清單1_dgv.Rows(i).Cells(36).Value <> "" Then : 加班(0) = 清單1_dgv.Rows(i).Cells(36).Value.ToString : Else : 加班(0) = 0 : End If If 清單1_dgv.Rows(i).Cells(38).Value <> "" Then : 加班(1) = 清單1_dgv.Rows(i).Cells(38).Value.ToString : Else : 加班(1) = 0 : End If If 清單1_dgv.Rows(i).Cells(40).Value <> "" Then : 加班(2) = 清單1_dgv.Rows(i).Cells(40).Value.ToString : Else : 加班(2) = 0 : End If If 清單1_dgv.Rows(i).Cells(42).Value <> "" Then : 加班(3) = 清單1_dgv.Rows(i).Cells(42).Value.ToString : Else : 加班(3) = 0 : End If If 清單1_dgv.Rows(i).Cells(44).Value <> "" Then : 加班(4) = 清單1_dgv.Rows(i).Cells(44).Value.ToString : Else : 加班(4) = 0 : End If If 清單1_dgv.Rows(i).Cells(46).Value <> "" Then : 加班(5) = 清單1_dgv.Rows(i).Cells(46).Value.ToString : Else : 加班(5) = 0 : End If If 清單1_dgv.Rows(i).Cells(48).Value <> "" Then : 加班(6) = 清單1_dgv.Rows(i).Cells(48).Value.ToString : Else : 加班(6) = 0 : End If 清單1_dgv.Rows(i).Cells(33).Value = 正常(0) + 正常(1) + 正常(2) + 正常(3) + 正常(4) + 正常(5) + 正常(6) 清單1_dgv.Rows(i).Cells(34).Value = 加班(0) + 加班(1) + 加班(2) + 加班(3) + 加班(4) + 加班(5) + 加班(6) '-------------------------計算工資單價-------------------------------------------------------------------------------------------------------------------- If IsDBNull(清單1_dgv.Rows(i).Cells(12).Value) Then : Else If 清單1_dgv.Rows(i).Cells(12).Value.ToString <> "" Then 清單1_dgv.Rows(i).Cells(31).Value = Strings.Format(清單1_dgv.Rows(i).Cells(12).Value / 8, "#,##0") 清單1_dgv.Rows(i).Cells(32).Value = Strings.Format(清單1_dgv.Rows(i).Cells(12).Value / 6, "#,##0") 清單1_dgv.Rows(i).Cells(29).Value = Strings.Format((清單1_dgv.Rows(i).Cells(12).Value / 8) * CLng(清單1_dgv.Rows(i).Cells(33).Value.ToString), "#,##0") 清單1_dgv.Rows(i).Cells(30).Value = Strings.Format((清單1_dgv.Rows(i).Cells(12).Value / 6) * CLng(清單1_dgv.Rows(i).Cells(34).Value.ToString), "#,##0") 清單1_dgv.Rows(i).Cells(13).Value = CLng(清單1_dgv.Rows(i).Cells(29).Value.ToString) + CLng(清單1_dgv.Rows(i).Cells(30).Value.ToString) End If End If 清單1_dgv.Rows(i).Cells(4).Value = i + 1 Next End Sub Private Sub Set_使用者清單2() PA25 = 星8_bt.Text : Set_虛擬表() : Dim ds1, ds2 As New DataSet 清單2_dgv.DataSource = Nothing : ds1.Clear() 清單2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單2_dgv.ColumnHeadersHeight = 45 : 清單2_dgv.AllowUserToAddRows = False : 清單2_dgv.RowTemplate.Height = 35 If 群組1_cb.Text = "HARIAN GROUP" Then SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.員工代碼" Else SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 NOT LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.部門名稱,使用者權限管理表.姓名" End If PA25 = "" : SQL3 = "" : PA14 = "" : PA19 = "" : 工人 = True : 在職 = True SQL_人員薪資表1() : da.Fill(ds1) : 清單2_dgv.DataSource = ds1.Tables(0) : conn.Close() 清單2_dgv.Columns("Save.").FillWeight = 40 : 清單2_dgv.Columns(12).Visible = True : 清單2_dgv.Columns(50).Visible = False : 清單2_dgv.Columns(0).FillWeight = 120 清單2_dgv.Columns(4).FillWeight = 25 For i As Integer = 2 To 14 : 清單2_dgv.Columns(i).Visible = False : Next : For i As Integer = 29 To 48 : 清單2_dgv.Columns(i).Visible = False : Next For i As Integer = 15 To 28 : 清單2_dgv.Columns(i).FillWeight = 60 : Next : For i As Integer = 29 To 34 : 清單2_dgv.Columns(i).FillWeight = 60 : Next For i As Integer = 35 To 48 : 清單2_dgv.Columns(i).FillWeight = 40 : Next : 清單2_dgv.Columns(12).Visible = True : 清單2_dgv.Columns(4).Visible = True For i As Integer = 1 To 50 : 清單2_dgv.Columns(i).ReadOnly = True : Next 清單2_dgv.Columns(12).ReadOnly = False 清單2_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 清單2_dgv.Columns(13).DefaultCellStyle.Format = "#,##0" For i As Integer = 4 To 11 清單2_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 12 To 48 清單2_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 '-------------------------實際考勤-------------------------------------------------------------------------------------------------------------------- If 清單2_dgv.Rows(i).Cells(0).Value.ToString <> "" Then : 清單2_dgv.Rows(i).Cells(0).Value = 清單2_dgv.Rows(i).Cells(0).Value.ToString.ToUpper : End If If 清單2_dgv.Rows(i).Cells(1).Value.ToString <> "" Then : 清單2_dgv.Rows(i).Cells(1).Value = 清單2_dgv.Rows(i).Cells(1).Value.ToString.ToUpper : End If '-------------------------清空資料取得預設值-------------------------------------------------------------------------------------------------------------------- For FF As Integer = 15 To 48 : 清單2_dgv.Rows(i).Cells(FF).Value = "" : Next '-------------------------虛擬考勤-------------------------------------------------------------------------------------------------------------------- For ii As Integer = 0 To 虛擬表_dgv.Rows.Count - 1 If 清單2_dgv.Rows(i).Cells(50).Value.ToString = 虛擬表_dgv.Rows(ii).Cells(0).Value.ToString Then If 月份2_cb.Text = Strings.Mid(星8_bt.Text, 6, 2) Then 清單2_dgv.Rows(i).Cells(15).Value = 虛擬表_dgv.Rows(ii).Cells(1).Value.ToString : 清單2_dgv.Rows(i).Cells(16).Value = 虛擬表_dgv.Rows(ii).Cells(2).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星9_bt.Text, 6, 2) Then 清單2_dgv.Rows(i).Cells(17).Value = 虛擬表_dgv.Rows(ii).Cells(3).Value.ToString : 清單2_dgv.Rows(i).Cells(18).Value = 虛擬表_dgv.Rows(ii).Cells(4).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星10_bt.Text, 6, 2) Then 清單2_dgv.Rows(i).Cells(19).Value = 虛擬表_dgv.Rows(ii).Cells(5).Value.ToString : 清單2_dgv.Rows(i).Cells(20).Value = 虛擬表_dgv.Rows(ii).Cells(6).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星11_bt.Text, 6, 2) Then 清單2_dgv.Rows(i).Cells(21).Value = 虛擬表_dgv.Rows(ii).Cells(7).Value.ToString : 清單2_dgv.Rows(i).Cells(22).Value = 虛擬表_dgv.Rows(ii).Cells(8).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星12_bt.Text, 6, 2) Then 清單2_dgv.Rows(i).Cells(23).Value = 虛擬表_dgv.Rows(ii).Cells(9).Value.ToString : 清單2_dgv.Rows(i).Cells(24).Value = 虛擬表_dgv.Rows(ii).Cells(10).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星13_bt.Text, 6, 2) Then 清單2_dgv.Rows(i).Cells(25).Value = 虛擬表_dgv.Rows(ii).Cells(11).Value.ToString : 清單2_dgv.Rows(i).Cells(26).Value = 虛擬表_dgv.Rows(ii).Cells(12).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星14_bt.Text, 6, 2) Then 清單2_dgv.Rows(i).Cells(27).Value = 虛擬表_dgv.Rows(ii).Cells(13).Value.ToString : 清單2_dgv.Rows(i).Cells(28).Value = 虛擬表_dgv.Rows(ii).Cells(14).Value.ToString End If End If Next Next : AUTO第2周() End Sub Private Sub AUTO第2周() For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 '-------------------------計算星期一-------------------------------------------------------------------------------------------------------------------- If 清單2_dgv.Rows(i).Cells(15).Value.ToString <> "" And 清單2_dgv.Rows(i).Cells(16).Value.ToString <> "" Then X1 = 清單2_dgv.Rows(i).Cells(15).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單2_dgv.Rows(i).Cells(16).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= -120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單2_dgv.Rows(i).Cells(35).Value = 時間 : 清單2_dgv.Rows(i).Cells(36).Value = 加班1 Else : 清單2_dgv.Rows(i).Cells(35).Value = "" : 清單2_dgv.Rows(i).Cells(36).Value = "" : End If '-------------------------計算星期二-------------------------------------------------------------------------------------------------------------------- If 清單2_dgv.Rows(i).Cells(17).Value.ToString <> "" And 清單2_dgv.Rows(i).Cells(18).Value.ToString <> "" Then X1 = 清單2_dgv.Rows(i).Cells(17).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單2_dgv.Rows(i).Cells(18).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單2_dgv.Rows(i).Cells(37).Value = 時間 : 清單2_dgv.Rows(i).Cells(38).Value = 加班1 Else : 清單2_dgv.Rows(i).Cells(37).Value = "" : 清單2_dgv.Rows(i).Cells(38).Value = "" : End If '-------------------------計算星期三-------------------------------------------------------------------------------------------------------------------- If 清單2_dgv.Rows(i).Cells(19).Value.ToString <> "" And 清單2_dgv.Rows(i).Cells(20).Value.ToString <> "" Then X1 = 清單2_dgv.Rows(i).Cells(19).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單2_dgv.Rows(i).Cells(20).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單2_dgv.Rows(i).Cells(39).Value = 時間 : 清單2_dgv.Rows(i).Cells(40).Value = 加班1 Else : 清單2_dgv.Rows(i).Cells(39).Value = "" : 清單2_dgv.Rows(i).Cells(40).Value = "" : End If '-------------------------計算星期四-------------------------------------------------------------------------------------------------------------------- If 清單2_dgv.Rows(i).Cells(21).Value.ToString <> "" And 清單2_dgv.Rows(i).Cells(22).Value.ToString <> "" Then X1 = 清單2_dgv.Rows(i).Cells(21).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單2_dgv.Rows(i).Cells(22).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單2_dgv.Rows(i).Cells(41).Value = 時間 : 清單2_dgv.Rows(i).Cells(42).Value = 加班1 Else : 清單2_dgv.Rows(i).Cells(41).Value = "" : 清單2_dgv.Rows(i).Cells(42).Value = "" : End If '-------------------------計算星期五-------------------------------------------------------------------------------------------------------------------- If 清單2_dgv.Rows(i).Cells(23).Value.ToString <> "" And 清單2_dgv.Rows(i).Cells(24).Value.ToString <> "" Then X1 = 清單2_dgv.Rows(i).Cells(23).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單2_dgv.Rows(i).Cells(24).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單2_dgv.Rows(i).Cells(43).Value = 時間 : 清單2_dgv.Rows(i).Cells(44).Value = 加班1 Else : 清單2_dgv.Rows(i).Cells(43).Value = "" : 清單2_dgv.Rows(i).Cells(44).Value = "" : End If '-------------------------計算星期六-------------------------------------------------------------------------------------------------------------------- If 清單2_dgv.Rows(i).Cells(25).Value.ToString <> "" And 清單2_dgv.Rows(i).Cells(26).Value.ToString <> "" Then X1 = 清單2_dgv.Rows(i).Cells(25).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單2_dgv.Rows(i).Cells(26).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單2_dgv.Rows(i).Cells(45).Value = 時間 : 清單2_dgv.Rows(i).Cells(46).Value = 加班1 Else : 清單2_dgv.Rows(i).Cells(45).Value = "" : 清單2_dgv.Rows(i).Cells(46).Value = "" : End If '-------------------------計算星期日-------------------------------------------------------------------------------------------------------------------- If 清單2_dgv.Rows(i).Cells(27).Value.ToString <> "" And 清單2_dgv.Rows(i).Cells(28).Value.ToString <> "" Then X1 = 清單2_dgv.Rows(i).Cells(27).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單2_dgv.Rows(i).Cells(28).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單2_dgv.Rows(i).Cells(47).Value = 時間 : 清單2_dgv.Rows(i).Cells(48).Value = 加班1 Else : 清單2_dgv.Rows(i).Cells(47).Value = "" : 清單2_dgv.Rows(i).Cells(48).Value = "" : End If Dim 正常(6), 加班(6) As Integer If 清單2_dgv.Rows(i).Cells(35).Value <> "" Then : 正常(0) = 清單2_dgv.Rows(i).Cells(35).Value.ToString : Else : 正常(0) = 0 : End If If 清單2_dgv.Rows(i).Cells(37).Value <> "" Then : 正常(1) = 清單2_dgv.Rows(i).Cells(37).Value.ToString : Else : 正常(1) = 0 : End If If 清單2_dgv.Rows(i).Cells(39).Value <> "" Then : 正常(2) = 清單2_dgv.Rows(i).Cells(39).Value.ToString : Else : 正常(2) = 0 : End If If 清單2_dgv.Rows(i).Cells(41).Value <> "" Then : 正常(3) = 清單2_dgv.Rows(i).Cells(41).Value.ToString : Else : 正常(3) = 0 : End If If 清單2_dgv.Rows(i).Cells(43).Value <> "" Then : 正常(4) = 清單2_dgv.Rows(i).Cells(43).Value.ToString : Else : 正常(4) = 0 : End If If 清單2_dgv.Rows(i).Cells(45).Value <> "" Then : 正常(5) = 清單2_dgv.Rows(i).Cells(45).Value.ToString : Else : 正常(5) = 0 : End If If 清單2_dgv.Rows(i).Cells(47).Value <> "" Then : 正常(6) = 清單2_dgv.Rows(i).Cells(47).Value.ToString : Else : 正常(6) = 0 : End If If 清單2_dgv.Rows(i).Cells(36).Value <> "" Then : 加班(0) = 清單2_dgv.Rows(i).Cells(36).Value.ToString : Else : 加班(0) = 0 : End If If 清單2_dgv.Rows(i).Cells(38).Value <> "" Then : 加班(1) = 清單2_dgv.Rows(i).Cells(38).Value.ToString : Else : 加班(1) = 0 : End If If 清單2_dgv.Rows(i).Cells(40).Value <> "" Then : 加班(2) = 清單2_dgv.Rows(i).Cells(40).Value.ToString : Else : 加班(2) = 0 : End If If 清單2_dgv.Rows(i).Cells(42).Value <> "" Then : 加班(3) = 清單2_dgv.Rows(i).Cells(42).Value.ToString : Else : 加班(3) = 0 : End If If 清單2_dgv.Rows(i).Cells(44).Value <> "" Then : 加班(4) = 清單2_dgv.Rows(i).Cells(44).Value.ToString : Else : 加班(4) = 0 : End If If 清單2_dgv.Rows(i).Cells(46).Value <> "" Then : 加班(5) = 清單2_dgv.Rows(i).Cells(46).Value.ToString : Else : 加班(5) = 0 : End If If 清單2_dgv.Rows(i).Cells(48).Value <> "" Then : 加班(6) = 清單2_dgv.Rows(i).Cells(48).Value.ToString : Else : 加班(6) = 0 : End If 清單2_dgv.Rows(i).Cells(33).Value = 正常(0) + 正常(1) + 正常(2) + 正常(3) + 正常(4) + 正常(5) + 正常(6) 清單2_dgv.Rows(i).Cells(34).Value = 加班(0) + 加班(1) + 加班(2) + 加班(3) + 加班(4) + 加班(5) + 加班(6) '-------------------------計算工資單價-------------------------------------------------------------------------------------------------------------------- If IsDBNull(清單2_dgv.Rows(i).Cells(12).Value) Then : Else If 清單2_dgv.Rows(i).Cells(12).Value.ToString <> "" Then 清單2_dgv.Rows(i).Cells(31).Value = Strings.Format(清單2_dgv.Rows(i).Cells(12).Value / 8, "#,##0") 清單2_dgv.Rows(i).Cells(32).Value = Strings.Format(清單2_dgv.Rows(i).Cells(12).Value / 6, "#,##0") 清單2_dgv.Rows(i).Cells(29).Value = Strings.Format((清單2_dgv.Rows(i).Cells(12).Value / 8) * CLng(清單2_dgv.Rows(i).Cells(33).Value.ToString), "#,##0") 清單2_dgv.Rows(i).Cells(30).Value = Strings.Format((清單2_dgv.Rows(i).Cells(12).Value / 6) * CLng(清單2_dgv.Rows(i).Cells(34).Value.ToString), "#,##0") 清單2_dgv.Rows(i).Cells(13).Value = CLng(清單2_dgv.Rows(i).Cells(29).Value.ToString) + CLng(清單2_dgv.Rows(i).Cells(30).Value.ToString) End If End If 清單2_dgv.Rows(i).Cells(4).Value = i + 1 Next End Sub Private Sub Set_使用者清單3() PA25 = 星15_bt.Text : Set_虛擬表() : Dim ds1, ds2 As New DataSet 清單3_dgv.DataSource = Nothing : ds1.Clear() 清單3_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單3_dgv.ColumnHeadersHeight = 45 : 清單3_dgv.AllowUserToAddRows = False : 清單3_dgv.RowTemplate.Height = 35 If 群組1_cb.Text = "HARIAN GROUP" Then SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.員工代碼" Else SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 NOT LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.部門名稱,使用者權限管理表.姓名" End If PA25 = "" : SQL3 = "" : PA14 = "" : PA19 = "" : 工人 = True : 在職 = True SQL_人員薪資表1() : da.Fill(ds1) : 清單3_dgv.DataSource = ds1.Tables(0) : conn.Close() 清單3_dgv.Columns("Save.").FillWeight = 40 : 清單3_dgv.Columns(12).Visible = True : 清單3_dgv.Columns(50).Visible = False : 清單3_dgv.Columns(0).FillWeight = 120 清單3_dgv.Columns(4).FillWeight = 25 For i As Integer = 2 To 14 : 清單3_dgv.Columns(i).Visible = False : Next : For i As Integer = 29 To 48 : 清單3_dgv.Columns(i).Visible = False : Next For i As Integer = 15 To 28 : 清單3_dgv.Columns(i).FillWeight = 60 : Next : For i As Integer = 29 To 34 : 清單3_dgv.Columns(i).FillWeight = 60 : Next For i As Integer = 35 To 48 : 清單3_dgv.Columns(i).FillWeight = 40 : Next : 清單3_dgv.Columns(12).Visible = True : 清單3_dgv.Columns(4).Visible = True For i As Integer = 1 To 50 : 清單3_dgv.Columns(i).ReadOnly = True : Next 清單3_dgv.Columns(12).ReadOnly = False 清單3_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 清單3_dgv.Columns(13).DefaultCellStyle.Format = "#,##0" For i As Integer = 4 To 11 清單3_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單3_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 12 To 48 清單3_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單3_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 0 To 清單3_dgv.Rows.Count - 1 '-------------------------實際考勤-------------------------------------------------------------------------------------------------------------------- If 清單3_dgv.Rows(i).Cells(0).Value.ToString <> "" Then : 清單3_dgv.Rows(i).Cells(0).Value = 清單3_dgv.Rows(i).Cells(0).Value.ToString.ToUpper : End If If 清單3_dgv.Rows(i).Cells(1).Value.ToString <> "" Then : 清單3_dgv.Rows(i).Cells(1).Value = 清單3_dgv.Rows(i).Cells(1).Value.ToString.ToUpper : End If '-------------------------清空資料取得預設值-------------------------------------------------------------------------------------------------------------------- For FF As Integer = 15 To 48 : 清單3_dgv.Rows(i).Cells(FF).Value = "" : Next '-------------------------虛擬考勤-------------------------------------------------------------------------------------------------------------------- For ii As Integer = 0 To 虛擬表_dgv.Rows.Count - 1 If 清單3_dgv.Rows(i).Cells(50).Value.ToString = 虛擬表_dgv.Rows(ii).Cells(0).Value.ToString Then If 月份2_cb.Text = Strings.Mid(星15_bt.Text, 6, 2) Then 清單3_dgv.Rows(i).Cells(15).Value = 虛擬表_dgv.Rows(ii).Cells(1).Value.ToString : 清單3_dgv.Rows(i).Cells(16).Value = 虛擬表_dgv.Rows(ii).Cells(2).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星16_bt.Text, 6, 2) Then 清單3_dgv.Rows(i).Cells(17).Value = 虛擬表_dgv.Rows(ii).Cells(3).Value.ToString : 清單3_dgv.Rows(i).Cells(18).Value = 虛擬表_dgv.Rows(ii).Cells(4).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星17_bt.Text, 6, 2) Then 清單3_dgv.Rows(i).Cells(19).Value = 虛擬表_dgv.Rows(ii).Cells(5).Value.ToString : 清單3_dgv.Rows(i).Cells(20).Value = 虛擬表_dgv.Rows(ii).Cells(6).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星18_bt.Text, 6, 2) Then 清單3_dgv.Rows(i).Cells(21).Value = 虛擬表_dgv.Rows(ii).Cells(7).Value.ToString : 清單3_dgv.Rows(i).Cells(22).Value = 虛擬表_dgv.Rows(ii).Cells(8).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星19_bt.Text, 6, 2) Then 清單3_dgv.Rows(i).Cells(23).Value = 虛擬表_dgv.Rows(ii).Cells(9).Value.ToString : 清單3_dgv.Rows(i).Cells(24).Value = 虛擬表_dgv.Rows(ii).Cells(10).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星20_bt.Text, 6, 2) Then 清單3_dgv.Rows(i).Cells(25).Value = 虛擬表_dgv.Rows(ii).Cells(11).Value.ToString : 清單3_dgv.Rows(i).Cells(26).Value = 虛擬表_dgv.Rows(ii).Cells(12).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星21_bt.Text, 6, 2) Then 清單3_dgv.Rows(i).Cells(27).Value = 虛擬表_dgv.Rows(ii).Cells(13).Value.ToString : 清單3_dgv.Rows(i).Cells(28).Value = 虛擬表_dgv.Rows(ii).Cells(14).Value.ToString End If End If Next Next : AUTO第3周() End Sub Private Sub AUTO第3周() For i As Integer = 0 To 清單3_dgv.Rows.Count - 1 '-------------------------計算星期一-------------------------------------------------------------------------------------------------------------------- If 清單3_dgv.Rows(i).Cells(15).Value.ToString <> "" And 清單3_dgv.Rows(i).Cells(16).Value.ToString <> "" Then X1 = 清單3_dgv.Rows(i).Cells(15).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單3_dgv.Rows(i).Cells(16).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= -120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單3_dgv.Rows(i).Cells(35).Value = 時間 : 清單3_dgv.Rows(i).Cells(36).Value = 加班1 Else : 清單3_dgv.Rows(i).Cells(35).Value = "" : 清單3_dgv.Rows(i).Cells(36).Value = "" : End If '-------------------------計算星期二-------------------------------------------------------------------------------------------------------------------- If 清單3_dgv.Rows(i).Cells(17).Value.ToString <> "" And 清單3_dgv.Rows(i).Cells(18).Value.ToString <> "" Then X1 = 清單3_dgv.Rows(i).Cells(17).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單3_dgv.Rows(i).Cells(18).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單3_dgv.Rows(i).Cells(37).Value = 時間 : 清單3_dgv.Rows(i).Cells(38).Value = 加班1 Else : 清單3_dgv.Rows(i).Cells(37).Value = "" : 清單3_dgv.Rows(i).Cells(38).Value = "" : End If '-------------------------計算星期三-------------------------------------------------------------------------------------------------------------------- If 清單3_dgv.Rows(i).Cells(19).Value.ToString <> "" And 清單3_dgv.Rows(i).Cells(20).Value.ToString <> "" Then X1 = 清單3_dgv.Rows(i).Cells(19).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單3_dgv.Rows(i).Cells(20).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單3_dgv.Rows(i).Cells(39).Value = 時間 : 清單3_dgv.Rows(i).Cells(40).Value = 加班1 Else : 清單3_dgv.Rows(i).Cells(39).Value = "" : 清單3_dgv.Rows(i).Cells(40).Value = "" : End If '-------------------------計算星期四-------------------------------------------------------------------------------------------------------------------- If 清單3_dgv.Rows(i).Cells(21).Value.ToString <> "" And 清單3_dgv.Rows(i).Cells(22).Value.ToString <> "" Then X1 = 清單3_dgv.Rows(i).Cells(21).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單3_dgv.Rows(i).Cells(22).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單3_dgv.Rows(i).Cells(41).Value = 時間 : 清單3_dgv.Rows(i).Cells(42).Value = 加班1 Else : 清單3_dgv.Rows(i).Cells(41).Value = "" : 清單3_dgv.Rows(i).Cells(42).Value = "" : End If '-------------------------計算星期五-------------------------------------------------------------------------------------------------------------------- If 清單3_dgv.Rows(i).Cells(23).Value.ToString <> "" And 清單3_dgv.Rows(i).Cells(24).Value.ToString <> "" Then X1 = 清單3_dgv.Rows(i).Cells(23).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單3_dgv.Rows(i).Cells(24).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單3_dgv.Rows(i).Cells(43).Value = 時間 : 清單3_dgv.Rows(i).Cells(44).Value = 加班1 Else : 清單3_dgv.Rows(i).Cells(43).Value = "" : 清單3_dgv.Rows(i).Cells(44).Value = "" : End If '-------------------------計算星期六-------------------------------------------------------------------------------------------------------------------- If 清單3_dgv.Rows(i).Cells(25).Value.ToString <> "" And 清單3_dgv.Rows(i).Cells(26).Value.ToString <> "" Then X1 = 清單3_dgv.Rows(i).Cells(25).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單3_dgv.Rows(i).Cells(26).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單3_dgv.Rows(i).Cells(45).Value = 時間 : 清單3_dgv.Rows(i).Cells(46).Value = 加班1 Else : 清單3_dgv.Rows(i).Cells(45).Value = "" : 清單3_dgv.Rows(i).Cells(46).Value = "" : End If '-------------------------計算星期日-------------------------------------------------------------------------------------------------------------------- If 清單3_dgv.Rows(i).Cells(27).Value.ToString <> "" And 清單3_dgv.Rows(i).Cells(28).Value.ToString <> "" Then X1 = 清單3_dgv.Rows(i).Cells(27).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單3_dgv.Rows(i).Cells(28).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單3_dgv.Rows(i).Cells(47).Value = 時間 : 清單3_dgv.Rows(i).Cells(48).Value = 加班1 Else : 清單3_dgv.Rows(i).Cells(47).Value = "" : 清單3_dgv.Rows(i).Cells(48).Value = "" : End If Dim 正常(6), 加班(6) As Integer If 清單3_dgv.Rows(i).Cells(35).Value <> "" Then : 正常(0) = 清單3_dgv.Rows(i).Cells(35).Value.ToString : Else : 正常(0) = 0 : End If If 清單3_dgv.Rows(i).Cells(37).Value <> "" Then : 正常(1) = 清單3_dgv.Rows(i).Cells(37).Value.ToString : Else : 正常(1) = 0 : End If If 清單3_dgv.Rows(i).Cells(39).Value <> "" Then : 正常(2) = 清單3_dgv.Rows(i).Cells(39).Value.ToString : Else : 正常(2) = 0 : End If If 清單3_dgv.Rows(i).Cells(41).Value <> "" Then : 正常(3) = 清單3_dgv.Rows(i).Cells(41).Value.ToString : Else : 正常(3) = 0 : End If If 清單3_dgv.Rows(i).Cells(43).Value <> "" Then : 正常(4) = 清單3_dgv.Rows(i).Cells(43).Value.ToString : Else : 正常(4) = 0 : End If If 清單3_dgv.Rows(i).Cells(45).Value <> "" Then : 正常(5) = 清單3_dgv.Rows(i).Cells(45).Value.ToString : Else : 正常(5) = 0 : End If If 清單3_dgv.Rows(i).Cells(47).Value <> "" Then : 正常(6) = 清單3_dgv.Rows(i).Cells(47).Value.ToString : Else : 正常(6) = 0 : End If If 清單3_dgv.Rows(i).Cells(36).Value <> "" Then : 加班(0) = 清單3_dgv.Rows(i).Cells(36).Value.ToString : Else : 加班(0) = 0 : End If If 清單3_dgv.Rows(i).Cells(38).Value <> "" Then : 加班(1) = 清單3_dgv.Rows(i).Cells(38).Value.ToString : Else : 加班(1) = 0 : End If If 清單3_dgv.Rows(i).Cells(40).Value <> "" Then : 加班(2) = 清單3_dgv.Rows(i).Cells(40).Value.ToString : Else : 加班(2) = 0 : End If If 清單3_dgv.Rows(i).Cells(42).Value <> "" Then : 加班(3) = 清單3_dgv.Rows(i).Cells(42).Value.ToString : Else : 加班(3) = 0 : End If If 清單3_dgv.Rows(i).Cells(44).Value <> "" Then : 加班(4) = 清單3_dgv.Rows(i).Cells(44).Value.ToString : Else : 加班(4) = 0 : End If If 清單3_dgv.Rows(i).Cells(46).Value <> "" Then : 加班(5) = 清單3_dgv.Rows(i).Cells(46).Value.ToString : Else : 加班(5) = 0 : End If If 清單3_dgv.Rows(i).Cells(48).Value <> "" Then : 加班(6) = 清單3_dgv.Rows(i).Cells(48).Value.ToString : Else : 加班(6) = 0 : End If 清單3_dgv.Rows(i).Cells(33).Value = 正常(0) + 正常(1) + 正常(2) + 正常(3) + 正常(4) + 正常(5) + 正常(6) 清單3_dgv.Rows(i).Cells(34).Value = 加班(0) + 加班(1) + 加班(2) + 加班(3) + 加班(4) + 加班(5) + 加班(6) '-------------------------計算工資單價-------------------------------------------------------------------------------------------------------------------- If IsDBNull(清單3_dgv.Rows(i).Cells(12).Value) Then : Else If 清單3_dgv.Rows(i).Cells(12).Value.ToString <> "" Then 清單3_dgv.Rows(i).Cells(31).Value = Strings.Format(清單3_dgv.Rows(i).Cells(12).Value / 8, "#,##0") 清單3_dgv.Rows(i).Cells(32).Value = Strings.Format(清單3_dgv.Rows(i).Cells(12).Value / 6, "#,##0") 清單3_dgv.Rows(i).Cells(29).Value = Strings.Format((清單3_dgv.Rows(i).Cells(12).Value / 8) * CLng(清單3_dgv.Rows(i).Cells(33).Value.ToString), "#,##0") 清單3_dgv.Rows(i).Cells(30).Value = Strings.Format((清單3_dgv.Rows(i).Cells(12).Value / 6) * CLng(清單3_dgv.Rows(i).Cells(34).Value.ToString), "#,##0") 清單3_dgv.Rows(i).Cells(13).Value = CLng(清單3_dgv.Rows(i).Cells(29).Value.ToString) + CLng(清單3_dgv.Rows(i).Cells(30).Value.ToString) End If End If 清單3_dgv.Rows(i).Cells(4).Value = i + 1 Next End Sub Private Sub Set_使用者清單4() PA25 = 星22_bt.Text : Set_虛擬表() : Dim ds1, ds2 As New DataSet 清單4_dgv.DataSource = Nothing : ds1.Clear() 清單4_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單4_dgv.ColumnHeadersHeight = 45 : 清單4_dgv.AllowUserToAddRows = False : 清單4_dgv.RowTemplate.Height = 35 If 群組1_cb.Text = "HARIAN GROUP" Then SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.員工代碼" Else SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 NOT LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.部門名稱,使用者權限管理表.姓名" End If PA25 = "" : SQL3 = "" : PA14 = "" : PA19 = "" : 工人 = True : 在職 = True SQL_人員薪資表1() : da.Fill(ds1) : 清單4_dgv.DataSource = ds1.Tables(0) : conn.Close() 清單4_dgv.Columns("Save.").FillWeight = 40 : 清單4_dgv.Columns(12).Visible = True : 清單4_dgv.Columns(50).Visible = False : 清單4_dgv.Columns(0).FillWeight = 120 清單4_dgv.Columns(4).FillWeight = 25 For i As Integer = 2 To 14 : 清單4_dgv.Columns(i).Visible = False : Next : For i As Integer = 29 To 48 : 清單4_dgv.Columns(i).Visible = False : Next For i As Integer = 15 To 28 : 清單4_dgv.Columns(i).FillWeight = 60 : Next : For i As Integer = 29 To 34 : 清單4_dgv.Columns(i).FillWeight = 60 : Next For i As Integer = 35 To 48 : 清單4_dgv.Columns(i).FillWeight = 40 : Next : 清單4_dgv.Columns(12).Visible = True : 清單4_dgv.Columns(4).Visible = True For i As Integer = 1 To 50 : 清單4_dgv.Columns(i).ReadOnly = True : Next 清單4_dgv.Columns(12).ReadOnly = False 清單4_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 清單4_dgv.Columns(13).DefaultCellStyle.Format = "#,##0" For i As Integer = 4 To 11 清單4_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單4_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 12 To 48 清單4_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單4_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 0 To 清單4_dgv.Rows.Count - 1 '-------------------------實際考勤-------------------------------------------------------------------------------------------------------------------- If 清單4_dgv.Rows(i).Cells(0).Value.ToString <> "" Then : 清單4_dgv.Rows(i).Cells(0).Value = 清單4_dgv.Rows(i).Cells(0).Value.ToString.ToUpper : End If If 清單4_dgv.Rows(i).Cells(1).Value.ToString <> "" Then : 清單4_dgv.Rows(i).Cells(1).Value = 清單4_dgv.Rows(i).Cells(1).Value.ToString.ToUpper : End If '-------------------------清空資料取得預設值-------------------------------------------------------------------------------------------------------------------- For FF As Integer = 15 To 48 : 清單4_dgv.Rows(i).Cells(FF).Value = "" : Next '-------------------------虛擬考勤-------------------------------------------------------------------------------------------------------------------- For ii As Integer = 0 To 虛擬表_dgv.Rows.Count - 1 If 清單4_dgv.Rows(i).Cells(50).Value.ToString = 虛擬表_dgv.Rows(ii).Cells(0).Value.ToString Then If 月份2_cb.Text = Strings.Mid(星22_bt.Text, 6, 2) Then 清單4_dgv.Rows(i).Cells(15).Value = 虛擬表_dgv.Rows(ii).Cells(1).Value.ToString : 清單4_dgv.Rows(i).Cells(16).Value = 虛擬表_dgv.Rows(ii).Cells(2).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星23_bt.Text, 6, 2) Then 清單4_dgv.Rows(i).Cells(17).Value = 虛擬表_dgv.Rows(ii).Cells(3).Value.ToString : 清單4_dgv.Rows(i).Cells(18).Value = 虛擬表_dgv.Rows(ii).Cells(4).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星24_bt.Text, 6, 2) Then 清單4_dgv.Rows(i).Cells(19).Value = 虛擬表_dgv.Rows(ii).Cells(5).Value.ToString : 清單4_dgv.Rows(i).Cells(20).Value = 虛擬表_dgv.Rows(ii).Cells(6).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星25_bt.Text, 6, 2) Then 清單4_dgv.Rows(i).Cells(21).Value = 虛擬表_dgv.Rows(ii).Cells(7).Value.ToString : 清單4_dgv.Rows(i).Cells(22).Value = 虛擬表_dgv.Rows(ii).Cells(8).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星26_bt.Text, 6, 2) Then 清單4_dgv.Rows(i).Cells(23).Value = 虛擬表_dgv.Rows(ii).Cells(9).Value.ToString : 清單4_dgv.Rows(i).Cells(24).Value = 虛擬表_dgv.Rows(ii).Cells(10).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星27_bt.Text, 6, 2) Then 清單4_dgv.Rows(i).Cells(25).Value = 虛擬表_dgv.Rows(ii).Cells(11).Value.ToString : 清單4_dgv.Rows(i).Cells(26).Value = 虛擬表_dgv.Rows(ii).Cells(12).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星28_bt.Text, 6, 2) Then 清單4_dgv.Rows(i).Cells(27).Value = 虛擬表_dgv.Rows(ii).Cells(13).Value.ToString : 清單4_dgv.Rows(i).Cells(28).Value = 虛擬表_dgv.Rows(ii).Cells(14).Value.ToString End If End If Next Next : AUTO第4周() End Sub Private Sub AUTO第4周() For i As Integer = 0 To 清單4_dgv.Rows.Count - 1 '-------------------------計算星期一-------------------------------------------------------------------------------------------------------------------- If 清單4_dgv.Rows(i).Cells(15).Value.ToString <> "" And 清單4_dgv.Rows(i).Cells(16).Value.ToString <> "" Then X1 = 清單4_dgv.Rows(i).Cells(15).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單4_dgv.Rows(i).Cells(16).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= -120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單4_dgv.Rows(i).Cells(35).Value = 時間 : 清單4_dgv.Rows(i).Cells(36).Value = 加班1 Else : 清單4_dgv.Rows(i).Cells(35).Value = "" : 清單4_dgv.Rows(i).Cells(36).Value = "" : End If '-------------------------計算星期二-------------------------------------------------------------------------------------------------------------------- If 清單4_dgv.Rows(i).Cells(17).Value.ToString <> "" And 清單4_dgv.Rows(i).Cells(18).Value.ToString <> "" Then X1 = 清單4_dgv.Rows(i).Cells(17).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單4_dgv.Rows(i).Cells(18).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單4_dgv.Rows(i).Cells(37).Value = 時間 : 清單4_dgv.Rows(i).Cells(38).Value = 加班1 Else : 清單4_dgv.Rows(i).Cells(37).Value = "" : 清單4_dgv.Rows(i).Cells(38).Value = "" : End If '-------------------------計算星期三-------------------------------------------------------------------------------------------------------------------- If 清單4_dgv.Rows(i).Cells(19).Value.ToString <> "" And 清單4_dgv.Rows(i).Cells(20).Value.ToString <> "" Then X1 = 清單4_dgv.Rows(i).Cells(19).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單4_dgv.Rows(i).Cells(20).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單4_dgv.Rows(i).Cells(39).Value = 時間 : 清單4_dgv.Rows(i).Cells(40).Value = 加班1 Else : 清單4_dgv.Rows(i).Cells(39).Value = "" : 清單4_dgv.Rows(i).Cells(40).Value = "" : End If '-------------------------計算星期四-------------------------------------------------------------------------------------------------------------------- If 清單4_dgv.Rows(i).Cells(21).Value.ToString <> "" And 清單4_dgv.Rows(i).Cells(22).Value.ToString <> "" Then X1 = 清單4_dgv.Rows(i).Cells(21).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單4_dgv.Rows(i).Cells(22).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單4_dgv.Rows(i).Cells(41).Value = 時間 : 清單4_dgv.Rows(i).Cells(42).Value = 加班1 Else : 清單4_dgv.Rows(i).Cells(41).Value = "" : 清單4_dgv.Rows(i).Cells(42).Value = "" : End If '-------------------------計算星期五-------------------------------------------------------------------------------------------------------------------- If 清單4_dgv.Rows(i).Cells(23).Value.ToString <> "" And 清單4_dgv.Rows(i).Cells(24).Value.ToString <> "" Then X1 = 清單4_dgv.Rows(i).Cells(23).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單4_dgv.Rows(i).Cells(24).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單4_dgv.Rows(i).Cells(43).Value = 時間 : 清單4_dgv.Rows(i).Cells(44).Value = 加班1 Else : 清單4_dgv.Rows(i).Cells(43).Value = "" : 清單4_dgv.Rows(i).Cells(44).Value = "" : End If '-------------------------計算星期六-------------------------------------------------------------------------------------------------------------------- If 清單4_dgv.Rows(i).Cells(25).Value.ToString <> "" And 清單4_dgv.Rows(i).Cells(26).Value.ToString <> "" Then X1 = 清單4_dgv.Rows(i).Cells(25).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單4_dgv.Rows(i).Cells(26).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單4_dgv.Rows(i).Cells(45).Value = 時間 : 清單4_dgv.Rows(i).Cells(46).Value = 加班1 Else : 清單4_dgv.Rows(i).Cells(45).Value = "" : 清單4_dgv.Rows(i).Cells(46).Value = "" : End If '-------------------------計算星期日-------------------------------------------------------------------------------------------------------------------- If 清單4_dgv.Rows(i).Cells(27).Value.ToString <> "" And 清單4_dgv.Rows(i).Cells(28).Value.ToString <> "" Then X1 = 清單4_dgv.Rows(i).Cells(27).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單4_dgv.Rows(i).Cells(28).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單4_dgv.Rows(i).Cells(47).Value = 時間 : 清單4_dgv.Rows(i).Cells(48).Value = 加班1 Else : 清單4_dgv.Rows(i).Cells(47).Value = "" : 清單4_dgv.Rows(i).Cells(48).Value = "" : End If Dim 正常(6), 加班(6) As Integer If 清單4_dgv.Rows(i).Cells(35).Value <> "" Then : 正常(0) = 清單4_dgv.Rows(i).Cells(35).Value.ToString : Else : 正常(0) = 0 : End If If 清單4_dgv.Rows(i).Cells(37).Value <> "" Then : 正常(1) = 清單4_dgv.Rows(i).Cells(37).Value.ToString : Else : 正常(1) = 0 : End If If 清單4_dgv.Rows(i).Cells(39).Value <> "" Then : 正常(2) = 清單4_dgv.Rows(i).Cells(39).Value.ToString : Else : 正常(2) = 0 : End If If 清單4_dgv.Rows(i).Cells(41).Value <> "" Then : 正常(3) = 清單4_dgv.Rows(i).Cells(41).Value.ToString : Else : 正常(3) = 0 : End If If 清單4_dgv.Rows(i).Cells(43).Value <> "" Then : 正常(4) = 清單4_dgv.Rows(i).Cells(43).Value.ToString : Else : 正常(4) = 0 : End If If 清單4_dgv.Rows(i).Cells(45).Value <> "" Then : 正常(5) = 清單4_dgv.Rows(i).Cells(45).Value.ToString : Else : 正常(5) = 0 : End If If 清單4_dgv.Rows(i).Cells(47).Value <> "" Then : 正常(6) = 清單4_dgv.Rows(i).Cells(47).Value.ToString : Else : 正常(6) = 0 : End If If 清單4_dgv.Rows(i).Cells(36).Value <> "" Then : 加班(0) = 清單4_dgv.Rows(i).Cells(36).Value.ToString : Else : 加班(0) = 0 : End If If 清單4_dgv.Rows(i).Cells(38).Value <> "" Then : 加班(1) = 清單4_dgv.Rows(i).Cells(38).Value.ToString : Else : 加班(1) = 0 : End If If 清單4_dgv.Rows(i).Cells(40).Value <> "" Then : 加班(2) = 清單4_dgv.Rows(i).Cells(40).Value.ToString : Else : 加班(2) = 0 : End If If 清單4_dgv.Rows(i).Cells(42).Value <> "" Then : 加班(3) = 清單4_dgv.Rows(i).Cells(42).Value.ToString : Else : 加班(3) = 0 : End If If 清單4_dgv.Rows(i).Cells(44).Value <> "" Then : 加班(4) = 清單4_dgv.Rows(i).Cells(44).Value.ToString : Else : 加班(4) = 0 : End If If 清單4_dgv.Rows(i).Cells(46).Value <> "" Then : 加班(5) = 清單4_dgv.Rows(i).Cells(46).Value.ToString : Else : 加班(5) = 0 : End If If 清單4_dgv.Rows(i).Cells(48).Value <> "" Then : 加班(6) = 清單4_dgv.Rows(i).Cells(48).Value.ToString : Else : 加班(6) = 0 : End If 清單4_dgv.Rows(i).Cells(33).Value = 正常(0) + 正常(1) + 正常(2) + 正常(3) + 正常(4) + 正常(5) + 正常(6) 清單4_dgv.Rows(i).Cells(34).Value = 加班(0) + 加班(1) + 加班(2) + 加班(3) + 加班(4) + 加班(5) + 加班(6) '-------------------------計算工資單價-------------------------------------------------------------------------------------------------------------------- If IsDBNull(清單4_dgv.Rows(i).Cells(12).Value) Then : Else If 清單4_dgv.Rows(i).Cells(12).Value.ToString <> "" Then 清單4_dgv.Rows(i).Cells(31).Value = Strings.Format(清單4_dgv.Rows(i).Cells(12).Value / 8, "#,##0") 清單4_dgv.Rows(i).Cells(32).Value = Strings.Format(清單4_dgv.Rows(i).Cells(12).Value / 6, "#,##0") 清單4_dgv.Rows(i).Cells(29).Value = Strings.Format((清單4_dgv.Rows(i).Cells(12).Value / 8) * CLng(清單4_dgv.Rows(i).Cells(33).Value.ToString), "#,##0") 清單4_dgv.Rows(i).Cells(30).Value = Strings.Format((清單4_dgv.Rows(i).Cells(12).Value / 6) * CLng(清單4_dgv.Rows(i).Cells(34).Value.ToString), "#,##0") 清單4_dgv.Rows(i).Cells(13).Value = CLng(清單4_dgv.Rows(i).Cells(29).Value.ToString) + CLng(清單4_dgv.Rows(i).Cells(30).Value.ToString) End If End If 清單4_dgv.Rows(i).Cells(4).Value = i + 1 Next End Sub Private Sub Set_使用者清單5() PA25 = 星29_bt.Text : Set_虛擬表() : Dim ds1, ds2 As New DataSet 清單5_dgv.DataSource = Nothing : ds1.Clear() 清單5_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單5_dgv.ColumnHeadersHeight = 45 : 清單5_dgv.AllowUserToAddRows = False : 清單5_dgv.RowTemplate.Height = 35 If 群組1_cb.Text = "HARIAN GROUP" Then SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.員工代碼" Else SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 NOT LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.部門名稱,使用者權限管理表.姓名" End If PA25 = "" : SQL3 = "" : PA14 = "" : PA19 = "" : 工人 = True : 在職 = True SQL_人員薪資表1() : da.Fill(ds1) : 清單5_dgv.DataSource = ds1.Tables(0) : conn.Close() 清單5_dgv.Columns("Save.").FillWeight = 40 : 清單5_dgv.Columns(12).Visible = True : 清單5_dgv.Columns(50).Visible = False : 清單5_dgv.Columns(0).FillWeight = 120 清單5_dgv.Columns(4).FillWeight = 25 For i As Integer = 2 To 14 : 清單5_dgv.Columns(i).Visible = False : Next : For i As Integer = 29 To 48 : 清單5_dgv.Columns(i).Visible = False : Next For i As Integer = 15 To 28 : 清單5_dgv.Columns(i).FillWeight = 60 : Next : For i As Integer = 29 To 34 : 清單5_dgv.Columns(i).FillWeight = 60 : Next For i As Integer = 35 To 48 : 清單5_dgv.Columns(i).FillWeight = 40 : Next : 清單5_dgv.Columns(12).Visible = True : 清單5_dgv.Columns(4).Visible = True For i As Integer = 1 To 50 : 清單5_dgv.Columns(i).ReadOnly = True : Next 清單5_dgv.Columns(12).ReadOnly = False 清單5_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 清單5_dgv.Columns(13).DefaultCellStyle.Format = "#,##0" For i As Integer = 4 To 11 清單5_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單5_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 12 To 48 清單5_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單5_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 0 To 清單5_dgv.Rows.Count - 1 '-------------------------實際考勤-------------------------------------------------------------------------------------------------------------------- If 清單5_dgv.Rows(i).Cells(0).Value.ToString <> "" Then : 清單5_dgv.Rows(i).Cells(0).Value = 清單5_dgv.Rows(i).Cells(0).Value.ToString.ToUpper : End If If 清單5_dgv.Rows(i).Cells(1).Value.ToString <> "" Then : 清單5_dgv.Rows(i).Cells(1).Value = 清單5_dgv.Rows(i).Cells(1).Value.ToString.ToUpper : End If '-------------------------清空資料取得預設值-------------------------------------------------------------------------------------------------------------------- For FF As Integer = 15 To 48 : 清單5_dgv.Rows(i).Cells(FF).Value = "" : Next '-------------------------虛擬考勤-------------------------------------------------------------------------------------------------------------------- For ii As Integer = 0 To 虛擬表_dgv.Rows.Count - 1 If 清單5_dgv.Rows(i).Cells(50).Value.ToString = 虛擬表_dgv.Rows(ii).Cells(0).Value.ToString Then If 月份2_cb.Text = Strings.Mid(星29_bt.Text, 6, 2) Then 清單5_dgv.Rows(i).Cells(15).Value = 虛擬表_dgv.Rows(ii).Cells(1).Value.ToString : 清單5_dgv.Rows(i).Cells(16).Value = 虛擬表_dgv.Rows(ii).Cells(2).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星30_bt.Text, 6, 2) Then 清單5_dgv.Rows(i).Cells(17).Value = 虛擬表_dgv.Rows(ii).Cells(3).Value.ToString : 清單5_dgv.Rows(i).Cells(18).Value = 虛擬表_dgv.Rows(ii).Cells(4).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星31_bt.Text, 6, 2) Then 清單5_dgv.Rows(i).Cells(19).Value = 虛擬表_dgv.Rows(ii).Cells(5).Value.ToString : 清單5_dgv.Rows(i).Cells(20).Value = 虛擬表_dgv.Rows(ii).Cells(6).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星32_bt.Text, 6, 2) Then 清單5_dgv.Rows(i).Cells(21).Value = 虛擬表_dgv.Rows(ii).Cells(7).Value.ToString : 清單5_dgv.Rows(i).Cells(22).Value = 虛擬表_dgv.Rows(ii).Cells(8).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星33_bt.Text, 6, 2) Then 清單5_dgv.Rows(i).Cells(23).Value = 虛擬表_dgv.Rows(ii).Cells(9).Value.ToString : 清單5_dgv.Rows(i).Cells(24).Value = 虛擬表_dgv.Rows(ii).Cells(10).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星34_bt.Text, 6, 2) Then 清單5_dgv.Rows(i).Cells(25).Value = 虛擬表_dgv.Rows(ii).Cells(11).Value.ToString : 清單5_dgv.Rows(i).Cells(26).Value = 虛擬表_dgv.Rows(ii).Cells(12).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星35_bt.Text, 6, 2) Then 清單5_dgv.Rows(i).Cells(27).Value = 虛擬表_dgv.Rows(ii).Cells(13).Value.ToString : 清單5_dgv.Rows(i).Cells(28).Value = 虛擬表_dgv.Rows(ii).Cells(14).Value.ToString End If End If Next Next : AUTO第5周() End Sub Private Sub AUTO第5周() For i As Integer = 0 To 清單5_dgv.Rows.Count - 1 '-------------------------計算星期一-------------------------------------------------------------------------------------------------------------------- If 清單5_dgv.Rows(i).Cells(15).Value.ToString <> "" And 清單5_dgv.Rows(i).Cells(16).Value.ToString <> "" Then X1 = 清單5_dgv.Rows(i).Cells(15).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單5_dgv.Rows(i).Cells(16).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= -120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單5_dgv.Rows(i).Cells(35).Value = 時間 : 清單5_dgv.Rows(i).Cells(36).Value = 加班1 Else : 清單5_dgv.Rows(i).Cells(35).Value = "" : 清單5_dgv.Rows(i).Cells(36).Value = "" : End If '-------------------------計算星期二-------------------------------------------------------------------------------------------------------------------- If 清單5_dgv.Rows(i).Cells(17).Value.ToString <> "" And 清單5_dgv.Rows(i).Cells(18).Value.ToString <> "" Then X1 = 清單5_dgv.Rows(i).Cells(17).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單5_dgv.Rows(i).Cells(18).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單5_dgv.Rows(i).Cells(37).Value = 時間 : 清單5_dgv.Rows(i).Cells(38).Value = 加班1 Else : 清單5_dgv.Rows(i).Cells(37).Value = "" : 清單5_dgv.Rows(i).Cells(38).Value = "" : End If '-------------------------計算星期三-------------------------------------------------------------------------------------------------------------------- If 清單5_dgv.Rows(i).Cells(19).Value.ToString <> "" And 清單5_dgv.Rows(i).Cells(20).Value.ToString <> "" Then X1 = 清單5_dgv.Rows(i).Cells(19).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單5_dgv.Rows(i).Cells(20).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單5_dgv.Rows(i).Cells(39).Value = 時間 : 清單5_dgv.Rows(i).Cells(40).Value = 加班1 Else : 清單5_dgv.Rows(i).Cells(39).Value = "" : 清單5_dgv.Rows(i).Cells(40).Value = "" : End If '-------------------------計算星期四-------------------------------------------------------------------------------------------------------------------- If 清單5_dgv.Rows(i).Cells(21).Value.ToString <> "" And 清單5_dgv.Rows(i).Cells(22).Value.ToString <> "" Then X1 = 清單5_dgv.Rows(i).Cells(21).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單5_dgv.Rows(i).Cells(22).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單5_dgv.Rows(i).Cells(41).Value = 時間 : 清單5_dgv.Rows(i).Cells(42).Value = 加班1 Else : 清單5_dgv.Rows(i).Cells(41).Value = "" : 清單5_dgv.Rows(i).Cells(42).Value = "" : End If '-------------------------計算星期五-------------------------------------------------------------------------------------------------------------------- If 清單5_dgv.Rows(i).Cells(23).Value.ToString <> "" And 清單5_dgv.Rows(i).Cells(24).Value.ToString <> "" Then X1 = 清單5_dgv.Rows(i).Cells(23).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單5_dgv.Rows(i).Cells(24).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單5_dgv.Rows(i).Cells(43).Value = 時間 : 清單5_dgv.Rows(i).Cells(44).Value = 加班1 Else : 清單5_dgv.Rows(i).Cells(43).Value = "" : 清單5_dgv.Rows(i).Cells(44).Value = "" : End If '-------------------------計算星期六-------------------------------------------------------------------------------------------------------------------- If 清單5_dgv.Rows(i).Cells(25).Value.ToString <> "" And 清單5_dgv.Rows(i).Cells(26).Value.ToString <> "" Then X1 = 清單5_dgv.Rows(i).Cells(25).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單5_dgv.Rows(i).Cells(26).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單5_dgv.Rows(i).Cells(45).Value = 時間 : 清單5_dgv.Rows(i).Cells(46).Value = 加班1 Else : 清單5_dgv.Rows(i).Cells(45).Value = "" : 清單5_dgv.Rows(i).Cells(46).Value = "" : End If '-------------------------計算星期日-------------------------------------------------------------------------------------------------------------------- If 清單5_dgv.Rows(i).Cells(27).Value.ToString <> "" And 清單5_dgv.Rows(i).Cells(28).Value.ToString <> "" Then X1 = 清單5_dgv.Rows(i).Cells(27).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單5_dgv.Rows(i).Cells(28).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單5_dgv.Rows(i).Cells(47).Value = 時間 : 清單5_dgv.Rows(i).Cells(48).Value = 加班1 Else : 清單5_dgv.Rows(i).Cells(47).Value = "" : 清單5_dgv.Rows(i).Cells(48).Value = "" : End If Dim 正常(6), 加班(6) As Integer If 清單5_dgv.Rows(i).Cells(35).Value <> "" Then : 正常(0) = 清單5_dgv.Rows(i).Cells(35).Value.ToString : Else : 正常(0) = 0 : End If If 清單5_dgv.Rows(i).Cells(37).Value <> "" Then : 正常(1) = 清單5_dgv.Rows(i).Cells(37).Value.ToString : Else : 正常(1) = 0 : End If If 清單5_dgv.Rows(i).Cells(39).Value <> "" Then : 正常(2) = 清單5_dgv.Rows(i).Cells(39).Value.ToString : Else : 正常(2) = 0 : End If If 清單5_dgv.Rows(i).Cells(41).Value <> "" Then : 正常(3) = 清單5_dgv.Rows(i).Cells(41).Value.ToString : Else : 正常(3) = 0 : End If If 清單5_dgv.Rows(i).Cells(43).Value <> "" Then : 正常(4) = 清單5_dgv.Rows(i).Cells(43).Value.ToString : Else : 正常(4) = 0 : End If If 清單5_dgv.Rows(i).Cells(45).Value <> "" Then : 正常(5) = 清單5_dgv.Rows(i).Cells(45).Value.ToString : Else : 正常(5) = 0 : End If If 清單5_dgv.Rows(i).Cells(47).Value <> "" Then : 正常(6) = 清單5_dgv.Rows(i).Cells(47).Value.ToString : Else : 正常(6) = 0 : End If If 清單5_dgv.Rows(i).Cells(36).Value <> "" Then : 加班(0) = 清單5_dgv.Rows(i).Cells(36).Value.ToString : Else : 加班(0) = 0 : End If If 清單5_dgv.Rows(i).Cells(38).Value <> "" Then : 加班(1) = 清單5_dgv.Rows(i).Cells(38).Value.ToString : Else : 加班(1) = 0 : End If If 清單5_dgv.Rows(i).Cells(40).Value <> "" Then : 加班(2) = 清單5_dgv.Rows(i).Cells(40).Value.ToString : Else : 加班(2) = 0 : End If If 清單5_dgv.Rows(i).Cells(42).Value <> "" Then : 加班(3) = 清單5_dgv.Rows(i).Cells(42).Value.ToString : Else : 加班(3) = 0 : End If If 清單5_dgv.Rows(i).Cells(44).Value <> "" Then : 加班(4) = 清單5_dgv.Rows(i).Cells(44).Value.ToString : Else : 加班(4) = 0 : End If If 清單5_dgv.Rows(i).Cells(46).Value <> "" Then : 加班(5) = 清單5_dgv.Rows(i).Cells(46).Value.ToString : Else : 加班(5) = 0 : End If If 清單5_dgv.Rows(i).Cells(48).Value <> "" Then : 加班(6) = 清單5_dgv.Rows(i).Cells(48).Value.ToString : Else : 加班(6) = 0 : End If 清單5_dgv.Rows(i).Cells(33).Value = 正常(0) + 正常(1) + 正常(2) + 正常(3) + 正常(4) + 正常(5) + 正常(6) 清單5_dgv.Rows(i).Cells(34).Value = 加班(0) + 加班(1) + 加班(2) + 加班(3) + 加班(4) + 加班(5) + 加班(6) '-------------------------計算工資單價-------------------------------------------------------------------------------------------------------------------- If IsDBNull(清單5_dgv.Rows(i).Cells(12).Value) Then : Else If 清單5_dgv.Rows(i).Cells(12).Value.ToString <> "" Then 清單5_dgv.Rows(i).Cells(31).Value = Strings.Format(清單5_dgv.Rows(i).Cells(12).Value / 8, "#,##0") 清單5_dgv.Rows(i).Cells(32).Value = Strings.Format(清單5_dgv.Rows(i).Cells(12).Value / 6, "#,##0") 清單5_dgv.Rows(i).Cells(29).Value = Strings.Format((清單5_dgv.Rows(i).Cells(12).Value / 8) * CLng(清單5_dgv.Rows(i).Cells(33).Value.ToString), "#,##0") 清單5_dgv.Rows(i).Cells(30).Value = Strings.Format((清單5_dgv.Rows(i).Cells(12).Value / 6) * CLng(清單5_dgv.Rows(i).Cells(34).Value.ToString), "#,##0") 清單5_dgv.Rows(i).Cells(13).Value = CLng(清單5_dgv.Rows(i).Cells(29).Value.ToString) + CLng(清單5_dgv.Rows(i).Cells(30).Value.ToString) End If End If 清單5_dgv.Rows(i).Cells(4).Value = i + 1 Next End Sub Private Sub Set_使用者清單6() PA25 = 星36_bt.Text : Set_虛擬表() : Dim ds1, ds2 As New DataSet 清單6_dgv.DataSource = Nothing : ds1.Clear() 清單6_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單6_dgv.ColumnHeadersHeight = 45 : 清單6_dgv.AllowUserToAddRows = False : 清單6_dgv.RowTemplate.Height = 35 If 群組1_cb.Text = "HARIAN GROUP" Then SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.員工代碼" Else SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 NOT LIKE 'HARIAN GROUP'" SQL4 = "[HX-PGS-MSN].dbo.人員資料表.部門名稱,使用者權限管理表.姓名" End If PA25 = "" : SQL3 = "" : PA14 = "" : PA19 = "" : 工人 = True : 在職 = True SQL_人員薪資表1() : da.Fill(ds1) : 清單6_dgv.DataSource = ds1.Tables(0) : conn.Close() 清單6_dgv.Columns("Save.").FillWeight = 40 : 清單6_dgv.Columns(12).Visible = True : 清單6_dgv.Columns(50).Visible = False : 清單6_dgv.Columns(0).FillWeight = 120 清單6_dgv.Columns(4).FillWeight = 25 For i As Integer = 2 To 14 : 清單6_dgv.Columns(i).Visible = False : Next : For i As Integer = 29 To 48 : 清單6_dgv.Columns(i).Visible = False : Next For i As Integer = 15 To 28 : 清單6_dgv.Columns(i).FillWeight = 60 : Next : For i As Integer = 29 To 34 : 清單6_dgv.Columns(i).FillWeight = 60 : Next For i As Integer = 35 To 48 : 清單6_dgv.Columns(i).FillWeight = 40 : Next : 清單6_dgv.Columns(12).Visible = True : 清單6_dgv.Columns(4).Visible = True For i As Integer = 1 To 50 : 清單6_dgv.Columns(i).ReadOnly = True : Next 清單6_dgv.Columns(12).ReadOnly = False 清單6_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 清單6_dgv.Columns(13).DefaultCellStyle.Format = "#,##0" For i As Integer = 4 To 11 清單6_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單6_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 12 To 48 清單6_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 清單6_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 0 To 清單6_dgv.Rows.Count - 1 '-------------------------實際考勤-------------------------------------------------------------------------------------------------------------------- If 清單6_dgv.Rows(i).Cells(0).Value.ToString <> "" Then : 清單6_dgv.Rows(i).Cells(0).Value = 清單6_dgv.Rows(i).Cells(0).Value.ToString.ToUpper : End If If 清單6_dgv.Rows(i).Cells(1).Value.ToString <> "" Then : 清單6_dgv.Rows(i).Cells(1).Value = 清單6_dgv.Rows(i).Cells(1).Value.ToString.ToUpper : End If '-------------------------清空資料取得預設值-------------------------------------------------------------------------------------------------------------------- For FF As Integer = 15 To 48 : 清單6_dgv.Rows(i).Cells(FF).Value = "" : Next '-------------------------虛擬考勤-------------------------------------------------------------------------------------------------------------------- For ii As Integer = 0 To 虛擬表_dgv.Rows.Count - 1 If 清單6_dgv.Rows(i).Cells(50).Value.ToString = 虛擬表_dgv.Rows(ii).Cells(0).Value.ToString Then If 月份2_cb.Text = Strings.Mid(星36_bt.Text, 6, 2) Then 清單6_dgv.Rows(i).Cells(15).Value = 虛擬表_dgv.Rows(ii).Cells(1).Value.ToString : 清單6_dgv.Rows(i).Cells(16).Value = 虛擬表_dgv.Rows(ii).Cells(2).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星37_bt.Text, 6, 2) Then 清單6_dgv.Rows(i).Cells(17).Value = 虛擬表_dgv.Rows(ii).Cells(3).Value.ToString : 清單6_dgv.Rows(i).Cells(18).Value = 虛擬表_dgv.Rows(ii).Cells(4).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星38_bt.Text, 6, 2) Then 清單6_dgv.Rows(i).Cells(19).Value = 虛擬表_dgv.Rows(ii).Cells(5).Value.ToString : 清單6_dgv.Rows(i).Cells(20).Value = 虛擬表_dgv.Rows(ii).Cells(6).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星39_bt.Text, 6, 2) Then 清單6_dgv.Rows(i).Cells(21).Value = 虛擬表_dgv.Rows(ii).Cells(7).Value.ToString : 清單6_dgv.Rows(i).Cells(22).Value = 虛擬表_dgv.Rows(ii).Cells(8).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星40_bt.Text, 6, 2) Then 清單6_dgv.Rows(i).Cells(23).Value = 虛擬表_dgv.Rows(ii).Cells(9).Value.ToString : 清單6_dgv.Rows(i).Cells(24).Value = 虛擬表_dgv.Rows(ii).Cells(10).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星41_bt.Text, 6, 2) Then 清單6_dgv.Rows(i).Cells(25).Value = 虛擬表_dgv.Rows(ii).Cells(11).Value.ToString : 清單6_dgv.Rows(i).Cells(26).Value = 虛擬表_dgv.Rows(ii).Cells(12).Value.ToString End If If 月份2_cb.Text = Strings.Mid(星42_bt.Text, 6, 2) Then 清單6_dgv.Rows(i).Cells(27).Value = 虛擬表_dgv.Rows(ii).Cells(13).Value.ToString : 清單6_dgv.Rows(i).Cells(28).Value = 虛擬表_dgv.Rows(ii).Cells(14).Value.ToString End If End If Next Next : AUTO第6周() End Sub Private Sub AUTO第6周() For i As Integer = 0 To 清單6_dgv.Rows.Count - 1 '-------------------------計算星期一-------------------------------------------------------------------------------------------------------------------- If 清單6_dgv.Rows(i).Cells(15).Value.ToString <> "" And 清單6_dgv.Rows(i).Cells(16).Value.ToString <> "" Then X1 = 清單6_dgv.Rows(i).Cells(15).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單6_dgv.Rows(i).Cells(16).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= -120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單6_dgv.Rows(i).Cells(35).Value = 時間 : 清單6_dgv.Rows(i).Cells(36).Value = 加班1 Else : 清單6_dgv.Rows(i).Cells(35).Value = "" : 清單6_dgv.Rows(i).Cells(36).Value = "" : End If '-------------------------計算星期二-------------------------------------------------------------------------------------------------------------------- If 清單6_dgv.Rows(i).Cells(17).Value.ToString <> "" And 清單6_dgv.Rows(i).Cells(18).Value.ToString <> "" Then X1 = 清單6_dgv.Rows(i).Cells(17).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單6_dgv.Rows(i).Cells(18).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單6_dgv.Rows(i).Cells(37).Value = 時間 : 清單6_dgv.Rows(i).Cells(38).Value = 加班1 Else : 清單6_dgv.Rows(i).Cells(37).Value = "" : 清單6_dgv.Rows(i).Cells(38).Value = "" : End If '-------------------------計算星期三-------------------------------------------------------------------------------------------------------------------- If 清單6_dgv.Rows(i).Cells(19).Value.ToString <> "" And 清單6_dgv.Rows(i).Cells(20).Value.ToString <> "" Then X1 = 清單6_dgv.Rows(i).Cells(19).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單6_dgv.Rows(i).Cells(20).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單6_dgv.Rows(i).Cells(39).Value = 時間 : 清單6_dgv.Rows(i).Cells(40).Value = 加班1 Else : 清單6_dgv.Rows(i).Cells(39).Value = "" : 清單6_dgv.Rows(i).Cells(40).Value = "" : End If '-------------------------計算星期四-------------------------------------------------------------------------------------------------------------------- If 清單6_dgv.Rows(i).Cells(21).Value.ToString <> "" And 清單6_dgv.Rows(i).Cells(22).Value.ToString <> "" Then X1 = 清單6_dgv.Rows(i).Cells(21).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單6_dgv.Rows(i).Cells(22).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單6_dgv.Rows(i).Cells(41).Value = 時間 : 清單6_dgv.Rows(i).Cells(42).Value = 加班1 Else : 清單6_dgv.Rows(i).Cells(41).Value = "" : 清單6_dgv.Rows(i).Cells(42).Value = "" : End If '-------------------------計算星期五-------------------------------------------------------------------------------------------------------------------- If 清單6_dgv.Rows(i).Cells(23).Value.ToString <> "" And 清單6_dgv.Rows(i).Cells(24).Value.ToString <> "" Then X1 = 清單6_dgv.Rows(i).Cells(23).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單6_dgv.Rows(i).Cells(24).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單6_dgv.Rows(i).Cells(43).Value = 時間 : 清單6_dgv.Rows(i).Cells(44).Value = 加班1 Else : 清單6_dgv.Rows(i).Cells(43).Value = "" : 清單6_dgv.Rows(i).Cells(44).Value = "" : End If '-------------------------計算星期六-------------------------------------------------------------------------------------------------------------------- If 清單6_dgv.Rows(i).Cells(25).Value.ToString <> "" And 清單6_dgv.Rows(i).Cells(26).Value.ToString <> "" Then X1 = 清單6_dgv.Rows(i).Cells(25).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單6_dgv.Rows(i).Cells(26).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單6_dgv.Rows(i).Cells(45).Value = 時間 : 清單6_dgv.Rows(i).Cells(46).Value = 加班1 Else : 清單6_dgv.Rows(i).Cells(45).Value = "" : 清單6_dgv.Rows(i).Cells(46).Value = "" : End If '-------------------------計算星期日-------------------------------------------------------------------------------------------------------------------- If 清單6_dgv.Rows(i).Cells(27).Value.ToString <> "" And 清單6_dgv.Rows(i).Cells(28).Value.ToString <> "" Then X1 = 清單6_dgv.Rows(i).Cells(27).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單6_dgv.Rows(i).Cells(28).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對() If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If 清單6_dgv.Rows(i).Cells(47).Value = 時間 : 清單6_dgv.Rows(i).Cells(48).Value = 加班1 Else : 清單6_dgv.Rows(i).Cells(47).Value = "" : 清單6_dgv.Rows(i).Cells(48).Value = "" : End If Dim 正常(6), 加班(6) As Integer If 清單6_dgv.Rows(i).Cells(35).Value <> "" Then : 正常(0) = 清單6_dgv.Rows(i).Cells(35).Value.ToString : Else : 正常(0) = 0 : End If If 清單6_dgv.Rows(i).Cells(37).Value <> "" Then : 正常(1) = 清單6_dgv.Rows(i).Cells(37).Value.ToString : Else : 正常(1) = 0 : End If If 清單6_dgv.Rows(i).Cells(39).Value <> "" Then : 正常(2) = 清單6_dgv.Rows(i).Cells(39).Value.ToString : Else : 正常(2) = 0 : End If If 清單6_dgv.Rows(i).Cells(41).Value <> "" Then : 正常(3) = 清單6_dgv.Rows(i).Cells(41).Value.ToString : Else : 正常(3) = 0 : End If If 清單6_dgv.Rows(i).Cells(43).Value <> "" Then : 正常(4) = 清單6_dgv.Rows(i).Cells(43).Value.ToString : Else : 正常(4) = 0 : End If If 清單6_dgv.Rows(i).Cells(45).Value <> "" Then : 正常(5) = 清單6_dgv.Rows(i).Cells(45).Value.ToString : Else : 正常(5) = 0 : End If If 清單6_dgv.Rows(i).Cells(47).Value <> "" Then : 正常(6) = 清單6_dgv.Rows(i).Cells(47).Value.ToString : Else : 正常(6) = 0 : End If If 清單6_dgv.Rows(i).Cells(36).Value <> "" Then : 加班(0) = 清單6_dgv.Rows(i).Cells(36).Value.ToString : Else : 加班(0) = 0 : End If If 清單6_dgv.Rows(i).Cells(38).Value <> "" Then : 加班(1) = 清單6_dgv.Rows(i).Cells(38).Value.ToString : Else : 加班(1) = 0 : End If If 清單6_dgv.Rows(i).Cells(40).Value <> "" Then : 加班(2) = 清單6_dgv.Rows(i).Cells(40).Value.ToString : Else : 加班(2) = 0 : End If If 清單6_dgv.Rows(i).Cells(42).Value <> "" Then : 加班(3) = 清單6_dgv.Rows(i).Cells(42).Value.ToString : Else : 加班(3) = 0 : End If If 清單6_dgv.Rows(i).Cells(44).Value <> "" Then : 加班(4) = 清單6_dgv.Rows(i).Cells(44).Value.ToString : Else : 加班(4) = 0 : End If If 清單6_dgv.Rows(i).Cells(46).Value <> "" Then : 加班(5) = 清單6_dgv.Rows(i).Cells(46).Value.ToString : Else : 加班(5) = 0 : End If If 清單6_dgv.Rows(i).Cells(48).Value <> "" Then : 加班(6) = 清單6_dgv.Rows(i).Cells(48).Value.ToString : Else : 加班(6) = 0 : End If 清單6_dgv.Rows(i).Cells(33).Value = 正常(0) + 正常(1) + 正常(2) + 正常(3) + 正常(4) + 正常(5) + 正常(6) 清單6_dgv.Rows(i).Cells(34).Value = 加班(0) + 加班(1) + 加班(2) + 加班(3) + 加班(4) + 加班(5) + 加班(6) '-------------------------計算工資單價-------------------------------------------------------------------------------------------------------------------- If IsDBNull(清單6_dgv.Rows(i).Cells(12).Value) Then : Else If 清單6_dgv.Rows(i).Cells(12).Value.ToString <> "" Then 清單6_dgv.Rows(i).Cells(31).Value = Strings.Format(清單6_dgv.Rows(i).Cells(12).Value / 8, "#,##0") 清單6_dgv.Rows(i).Cells(32).Value = Strings.Format(清單6_dgv.Rows(i).Cells(12).Value / 6, "#,##0") 清單6_dgv.Rows(i).Cells(29).Value = Strings.Format((清單6_dgv.Rows(i).Cells(12).Value / 8) * CLng(清單6_dgv.Rows(i).Cells(33).Value.ToString), "#,##0") 清單6_dgv.Rows(i).Cells(30).Value = Strings.Format((清單6_dgv.Rows(i).Cells(12).Value / 6) * CLng(清單6_dgv.Rows(i).Cells(34).Value.ToString), "#,##0") 清單6_dgv.Rows(i).Cells(13).Value = CLng(清單6_dgv.Rows(i).Cells(29).Value.ToString) + CLng(清單6_dgv.Rows(i).Cells(30).Value.ToString) End If End If 清單6_dgv.Rows(i).Cells(4).Value = i + 1 Next End Sub Private Sub Set_時段定點() Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2) If (時 = "23" And CInt(分) >= 30) Or (時 = "00" And CInt(分) < 0) Then : X1 = "23:59:59" : ElseIf (時 = "00" And CInt(分) >= 30) Or (時 = "01" And CInt(分) < 30) Then : X1 = "01:00:00" ElseIf (時 = "01" And CInt(分) >= 30) Or (時 = "02" And CInt(分) < 30) Then : X1 = "02:00:00" : ElseIf (時 = "02" And CInt(分) >= 30) Or (時 = "03" And CInt(分) < 30) Then : X1 = "03:00:00" ElseIf (時 = "03" And CInt(分) >= 30) Or (時 = "04" And CInt(分) < 30) Then : X1 = "04:00:00" : ElseIf (時 = "04" And CInt(分) >= 30) Or (時 = "05" And CInt(分) < 30) Then : X1 = "05:00:00" ElseIf (時 = "05" And CInt(分) >= 30) Or (時 = "06" And CInt(分) < 30) Then : X1 = "06:00:00" : ElseIf (時 = "06" And CInt(分) >= 30) Or (時 = "07" And CInt(分) < 30) Then : X1 = "07:00:00" ElseIf (時 = "07" And CInt(分) >= 30) Or (時 = "08" And CInt(分) < 30) Then : X1 = "08:00:00" : ElseIf (時 = "08" And CInt(分) >= 30) Or (時 = "09" And CInt(分) < 30) Then : X1 = "09:00:00" ElseIf (時 = "09" And CInt(分) >= 30) Or (時 = "10" And CInt(分) < 30) Then : X1 = "10:00:00" : ElseIf (時 = "10" And CInt(分) >= 30) Or (時 = "11" And CInt(分) < 30) Then : X1 = "11:00:00" ElseIf (時 = "11" And CInt(分) >= 30) Or (時 = "12" And CInt(分) < 30) Then : X1 = "12:00:00" : ElseIf (時 = "12" And CInt(分) >= 30) Or (時 = "13" And CInt(分) < 30) Then : X1 = "13:00:00" ElseIf (時 = "13" And CInt(分) >= 30) Or (時 = "14" And CInt(分) < 30) Then : X1 = "14:00:00" : ElseIf (時 = "14" And CInt(分) >= 30) Or (時 = "15" And CInt(分) < 30) Then : X1 = "15:00:00" ElseIf (時 = "15" And CInt(分) >= 30) Or (時 = "16" And CInt(分) < 30) Then : X1 = "16:00:00" : ElseIf (時 = "16" And CInt(分) >= 30) Or (時 = "17" And CInt(分) < 30) Then : X1 = "17:00:00" ElseIf (時 = "17" And CInt(分) >= 30) Or (時 = "18" And CInt(分) < 30) Then : X1 = "18:00:00" : ElseIf (時 = "18" And CInt(分) >= 30) Or (時 = "19" And CInt(分) < 30) Then : X1 = "19:00:00" ElseIf (時 = "19" And CInt(分) >= 30) Or (時 = "20" And CInt(分) < 30) Then : X1 = "20:00:00" : ElseIf (時 = "20" And CInt(分) >= 30) Or (時 = "21" And CInt(分) < 30) Then : X1 = "21:00:00" ElseIf (時 = "21" And CInt(分) >= 30) Or (時 = "22" And CInt(分) < 30) Then : X1 = "22:00:00" : ElseIf (時 = "22" And CInt(分) >= 30) Or (時 = "23" And CInt(分) < 30) Then : X1 = "23:00:00" End If End Sub Private Sub 星期設定() 星1_bt.Text = Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") : 星2_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(1), "yyyy/MM/dd") 星3_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(2), "yyyy/MM/dd") : 星4_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(3), "yyyy/MM/dd") 星5_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(4), "yyyy/MM/dd") : 星6_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(5), "yyyy/MM/dd") 星7_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(6), "yyyy/MM/dd") : 星8_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(7), "yyyy/MM/dd") 星9_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(8), "yyyy/MM/dd") : 星10_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(9), "yyyy/MM/dd") 星11_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(10), "yyyy/MM/dd") : 星12_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(11), "yyyy/MM/dd") 星13_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(12), "yyyy/MM/dd") : 星14_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(13), "yyyy/MM/dd") 星15_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(14), "yyyy/MM/dd") : 星16_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(15), "yyyy/MM/dd") 星17_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(16), "yyyy/MM/dd") : 星18_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(17), "yyyy/MM/dd") 星19_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(18), "yyyy/MM/dd") : 星20_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(19), "yyyy/MM/dd") 星21_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(20), "yyyy/MM/dd") : 星22_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(21), "yyyy/MM/dd") 星23_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(22), "yyyy/MM/dd") : 星24_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(23), "yyyy/MM/dd") 星25_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(24), "yyyy/MM/dd") : 星26_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(25), "yyyy/MM/dd") 星27_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(26), "yyyy/MM/dd") : 星28_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(27), "yyyy/MM/dd") 星29_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(28), "yyyy/MM/dd") : 星30_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(29), "yyyy/MM/dd") 星31_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(30), "yyyy/MM/dd") : 星32_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(31), "yyyy/MM/dd") 星33_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(32), "yyyy/MM/dd") : 星34_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(33), "yyyy/MM/dd") 星35_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(34), "yyyy/MM/dd") : 星36_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(35), "yyyy/MM/dd") 星37_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(36), "yyyy/MM/dd") : 星38_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(37), "yyyy/MM/dd") 星39_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(38), "yyyy/MM/dd") : 星40_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(39), "yyyy/MM/dd") 星41_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(40), "yyyy/MM/dd") : 星42_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(41), "yyyy/MM/dd") End Sub Private Sub 時間比對() Dim dateA As Date = Date.ParseExact("[" & 計算(0) & "]", "[HH:mm:ss]", Nothing) Dim dateB As Date = Date.ParseExact("[" & 計算(1) & "]", "[HH:mm:ss]", Nothing) Dim hoursDiff As Integer = DateDiff(DateInterval.Minute, dateA, dateB) 間隔1 = Math.Abs(hoursDiff) End Sub Private Sub 年分清單() SQL_年分清單() : 年份2_cb.Items.Clear() While (dr.Read()) : 年份2_cb.Items.Add(dr("日期")) : End While : conn.Close() End Sub Private Sub 極限設定() Dim 總次數 As Integer = 0 : 總數_nud.Value = 0 For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 If 清單1_dgv.Rows(i).Cells(12).Value.ToString <> "" Then If Strings.Mid(星1_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單1_dgv.Rows(i).Cells(12).Value + ((清單1_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星2_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單1_dgv.Rows(i).Cells(12).Value + ((清單1_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星3_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單1_dgv.Rows(i).Cells(12).Value + ((清單1_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星4_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單1_dgv.Rows(i).Cells(12).Value + ((清單1_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星5_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單1_dgv.Rows(i).Cells(12).Value + ((清單1_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星6_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單1_dgv.Rows(i).Cells(12).Value + ((清單1_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星7_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單1_dgv.Rows(i).Cells(12).Value + ((清單1_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If End If Next For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 If 清單2_dgv.Rows(i).Cells(12).Value.ToString <> "" Then If Strings.Mid(星8_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單2_dgv.Rows(i).Cells(12).Value + ((清單2_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星9_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單2_dgv.Rows(i).Cells(12).Value + ((清單2_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星10_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單2_dgv.Rows(i).Cells(12).Value + ((清單2_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星11_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單2_dgv.Rows(i).Cells(12).Value + ((清單2_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星12_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單2_dgv.Rows(i).Cells(12).Value + ((清單2_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星13_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單2_dgv.Rows(i).Cells(12).Value + ((清單2_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星14_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單2_dgv.Rows(i).Cells(12).Value + ((清單2_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If End If Next For i As Integer = 0 To 清單3_dgv.Rows.Count - 1 If 清單3_dgv.Rows(i).Cells(12).Value.ToString <> "" Then If Strings.Mid(星15_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單3_dgv.Rows(i).Cells(12).Value + ((清單3_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星16_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單3_dgv.Rows(i).Cells(12).Value + ((清單3_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星17_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單3_dgv.Rows(i).Cells(12).Value + ((清單3_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星18_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單3_dgv.Rows(i).Cells(12).Value + ((清單3_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星19_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單3_dgv.Rows(i).Cells(12).Value + ((清單3_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星20_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單3_dgv.Rows(i).Cells(12).Value + ((清單3_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星21_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單3_dgv.Rows(i).Cells(12).Value + ((清單3_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If End If Next For i As Integer = 0 To 清單4_dgv.Rows.Count - 1 If 清單4_dgv.Rows(i).Cells(12).Value.ToString <> "" Then If Strings.Mid(星22_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單4_dgv.Rows(i).Cells(12).Value + ((清單4_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星23_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單4_dgv.Rows(i).Cells(12).Value + ((清單4_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星24_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單4_dgv.Rows(i).Cells(12).Value + ((清單4_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星25_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單4_dgv.Rows(i).Cells(12).Value + ((清單4_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星26_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單4_dgv.Rows(i).Cells(12).Value + ((清單4_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星27_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單4_dgv.Rows(i).Cells(12).Value + ((清單4_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星28_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單4_dgv.Rows(i).Cells(12).Value + ((清單4_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If End If Next For i As Integer = 0 To 清單5_dgv.Rows.Count - 1 If 清單5_dgv.Rows(i).Cells(12).Value.ToString <> "" Then If Strings.Mid(星29_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單5_dgv.Rows(i).Cells(12).Value + ((清單5_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星30_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單5_dgv.Rows(i).Cells(12).Value + ((清單5_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星31_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單5_dgv.Rows(i).Cells(12).Value + ((清單5_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星32_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單5_dgv.Rows(i).Cells(12).Value + ((清單5_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星33_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單5_dgv.Rows(i).Cells(12).Value + ((清單5_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星34_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單5_dgv.Rows(i).Cells(12).Value + ((清單5_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星35_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單5_dgv.Rows(i).Cells(12).Value + ((清單5_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If End If Next For i As Integer = 0 To 清單6_dgv.Rows.Count - 1 If 清單6_dgv.Rows(i).Cells(12).Value.ToString <> "" Then If Strings.Mid(星36_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單6_dgv.Rows(i).Cells(12).Value + ((清單6_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星37_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單6_dgv.Rows(i).Cells(12).Value + ((清單6_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星38_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單6_dgv.Rows(i).Cells(12).Value + ((清單6_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星39_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單6_dgv.Rows(i).Cells(12).Value + ((清單6_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星40_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單6_dgv.Rows(i).Cells(12).Value + ((清單6_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星41_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單6_dgv.Rows(i).Cells(12).Value + ((清單6_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If If Strings.Mid(星42_bt.Text, 6, 2) = 月份2_cb.Text Then 總數_nud.Value += (清單6_dgv.Rows(i).Cells(12).Value + ((清單6_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) : 總次數 += 1 : End If End If Next If 總次數 = 0 Then : Else : 可沖天數_nud.Value = 總次數 : End If If 可沖天數_nud.Value = 0 Then : Else 平均每天_nud.Value = 總數_nud.Value / 可沖天數_nud.Value 沖帳金額_nud.Maximum = 總數_nud.Value : 沖帳金額_nud.Minimum = 0 : 沖帳金額_nud.Value = 平均每天_nud.Value * 7 If 總數_nud.Value = 0 Then : Else 休假比例_nud.Value = 100 - (沖帳金額_nud.Value / 總數_nud.Value * 100) End If If 總數_nud.Value = 0 Then : Else 休假天數_nud.Value = 可沖天數_nud.Value - (沖帳金額_nud.Value / 平均每天_nud.Value) End If End If End Sub Private Sub 採購單極限數量() 總數1_nud.Value = (上班日_nud.Value * 每日單量_nud.Value * 每單最高_nud.Value) / 100 * 折數_nud.Value 可開單數_nud.Value = 總數1_nud.Value / 每單最高_nud.Value If 沖帳金額1_nud.Value > 0 Then 開單數_nud.Value = 沖帳金額1_nud.Value / 每單最高_nud.Value End If End Sub Private Sub 加總1() 取得總數_nud.Value = 0 For I As Integer = 0 To 清單1_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單1_dgv.Rows(I).Cells(13).Value.ToString) : Next For I As Integer = 0 To 清單2_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單2_dgv.Rows(I).Cells(13).Value.ToString) : Next For I As Integer = 0 To 清單3_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單3_dgv.Rows(I).Cells(13).Value.ToString) : Next For I As Integer = 0 To 清單4_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單4_dgv.Rows(I).Cells(13).Value.ToString) : Next For I As Integer = 0 To 清單5_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單5_dgv.Rows(I).Cells(13).Value.ToString) : Next For I As Integer = 0 To 清單6_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單6_dgv.Rows(I).Cells(13).Value.ToString) : Next If 取得總數_nud.Value > 0 Then : 沖帳金額_nud.Value = 取得總數_nud.Value : End If 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 存檔_tb_MouseEnter(sender As Object, e As EventArgs) Handles 存檔_tb.MouseEnter ToolTip1.SetToolTip(Me.存檔_tb, "基本設定與參數存檔") End Sub Private Sub 每月零用金設定_Load(sender As Object, e As EventArgs) Handles MyBase.Load If 登入人級別 = "00" Then Me.MdiParent = HX_PGS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 年份2_cb.DropDownStyle = ComboBoxStyle.DropDown : 月份2_cb.DropDownStyle = ComboBoxStyle.DropDown 結束日期_dtp.Enabled = True Else : Me.WindowState = 0 : Me.AutoScroll = False : Me.Size = New System.Drawing.Point(665, 274) 縮放1_bt.Visible = False : 縮放2_bt.Visible = False End If H(612) = True : 介面 = "H612" : 語言轉換讀取() : 首次開啟 = True Panel2.BringToFront() : Panel3.BringToFront() : 取得總數_nud.Value = 0 SQL_零用金基本設定() If dr.Read Then : 加班_nud.Value = dr("內帳加班") : 折數_nud.Value = dr("內帳折數") : 每日單量_nud.Value = dr("內帳單量") : 每單最高_nud.Value = dr("內帳採購最高") : End If 結束日期_dtp.Value = Today() : 開始日期_dtp.Value = 結束日期_dtp.Value Dim oldDate As Date : Dim oldWeekDay As Integer : oldDate = 結束日期_dtp.Value : oldWeekDay = Weekday(oldDate) If oldWeekDay = 7 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(1) ElseIf oldWeekDay = 6 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(2) ElseIf oldWeekDay = 5 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(3) ElseIf oldWeekDay = 4 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(4) ElseIf oldWeekDay = 3 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(5) ElseIf oldWeekDay = 2 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(6) End If : 開始日期_dtp.Value = 結束日期_dtp.Value.AddDays(-6) : 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(+6) 星期設定() For i As Integer = 1 To 7 If Strings.Right(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 2) = "01" Then : Exit For : End If If Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 7) = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 7) Then 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(-1) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(-7) : 星期設定() Else : Exit For : End If Next Dim selectedDate As Date = MonthCalendar1.SelectionStart Dim daysInMonth As Integer = DateTime.DaysInMonth(selectedDate.Year, selectedDate.Month) Dim x1 As Integer = 0 : Dim x2 As Integer = 0 ' 週一到週五的天數 週六和週日的天數 For day As Integer = 1 To daysInMonth Dim currentDate As New Date(selectedDate.Year, selectedDate.Month, day) : Dim dayOfWeek As DayOfWeek = currentDate.DayOfWeek If dayOfWeek >= DayOfWeek.Monday AndAlso dayOfWeek <= DayOfWeek.Friday Then : x1 += 1 ElseIf dayOfWeek = DayOfWeek.Saturday OrElse dayOfWeek = DayOfWeek.Sunday Then : x2 += 1 : End If Next : 上班日_nud.Value = x1 : 放假日_nud.Value = x2 : 採購單極限數量() End Sub Private Sub 每月零用金設定_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown If 登入人級別 = "00" Then : Else Dim screenRectangle As Rectangle = Screen.PrimaryScreen.WorkingArea : Dim formSize As Size = Me.Size Me.Location = New Point((screenRectangle.Width - formSize.Width) \ 2, (screenRectangle.Height - formSize.Height) \ 2) End If 年分清單() : 年份2_cb.Text = Year(Today) : 月份2_cb.SelectedIndex = Month(Today) - 1 群組1_cb.Text = "HARIAN GROUP" : Set_使用者清單() : Set_供應商() : Set_使用地點() Set_詢價人員() : Set_可用物料() : Set_申請人() : Set_採購單號() : Set_合約號() : 採購當案牘取() 加總1() : 沖帳金額1_nud.Value = 每單最高_nud.Value * 3 : 首次開啟 = False End Sub Private Sub 人員薪資_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged MyMod.清單字體大小調整() 清單1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value) 清單2_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value) 清單3_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value) 清單4_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value) 清單5_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value) 清單6_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value) End Sub Private Sub 語轉扭_bt_Click(sender As Object, e As EventArgs) Handles 語轉扭_bt.Click H(611) = True : 介面 = "H611" : 語言轉換讀取() : 首次開啟 = False End Sub Private Sub 人員薪資_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed HX_PGS_ERP_SYS.WindowState = 0 : HX_PGS_ERP_SYS.MaximizeBox = True : HX_PGS_ERP_SYS.MinimizeBox = True H(611) = False : MyMod.虛擬桌面開啟() 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 加班_nud_ValueChanged(sender As Object, e As EventArgs) Handles 加班_nud.ValueChanged If 首次開啟 = False Then : 極限設定() : End If End Sub Private Sub 沖帳金額_nud_ValueChanged(sender As Object, e As EventArgs) Handles 沖帳金額_nud.ValueChanged If 總數_nud.Value = 0 Then : Else 休假比例_nud.Value = (沖帳金額_nud.Value / 總數_nud.Value * 100) : 沖帳金額2_nud.Value = 沖帳金額1_nud.Value + 沖帳金額_nud.Value 休假天數_nud.Value = 可沖天數_nud.Value - (沖帳金額_nud.Value / 平均每天_nud.Value) End If End Sub Private Sub 每單最高_nud_ValueChanged(sender As Object, e As EventArgs) Handles 每單最高_nud.ValueChanged If 首次開啟 = False Then : 採購單極限數量() : End If End Sub Private Sub 每日單量_nud_ValueChanged(sender As Object, e As EventArgs) Handles 每日單量_nud.ValueChanged If 首次開啟 = False Then : 採購單極限數量() : End If End Sub Private Sub 折數_nud_ValueChanged(sender As Object, e As EventArgs) Handles 折數_nud.ValueChanged If 首次開啟 = False Then : 採購單極限數量() : End If End Sub Private Sub 沖帳金額1_nud_ValueChanged(sender As Object, e As EventArgs) Handles 沖帳金額1_nud.ValueChanged If 首次開啟 = False Then : 採購單極限數量() : End If : 沖帳金額2_nud.Value = 沖帳金額1_nud.Value + 沖帳金額_nud.Value End Sub Private Sub 取得總數_nud_ValueChanged(sender As Object, e As EventArgs) Handles 取得總數_nud.ValueChanged 取得總數2_nud.Value = 取得總數_nud.Value + 取得總數1_nud.Value End Sub Private Sub 取得總數1_nud_ValueChanged(sender As Object, e As EventArgs) Handles 取得總數1_nud.ValueChanged 取得總數2_nud.Value = 取得總數_nud.Value + 取得總數1_nud.Value End Sub Private Sub 縮放1_bt_Click(sender As Object, e As EventArgs) Handles 縮放1_bt.Click Panel2.BringToFront() : Panel3.BringToFront() End Sub Private Sub 縮放2_bt_Click(sender As Object, e As EventArgs) Handles 縮放2_bt.Click Panel4.BringToFront() : Panel3.BringToFront() End Sub Private Sub ChangeMonth() MonthCalendar1.SetDate(New Date(Today.Year, 月份2_cb.Text, 1)) End Sub Private Sub 採購當案牘取() Dim ds1 As New DataSet : 取得總數1_nud.Value = 0 控制表_dgv.DataSource = Nothing : ds1.Clear() 控制表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 控制表_dgv.ColumnHeadersHeight = 25 : 控制表_dgv.AllowUserToAddRows = False : 控制表_dgv.RowTemplate.Height = 25 SQL_採購控制表1() da.Fill(ds1) : 控制表_dgv.DataSource = ds1.Tables(0) : conn.Close() SQL2 = "" For I As Integer = 0 To 控制表_dgv.Rows.Count - 1 If I = 0 Then : SQL2 = "WHERE (採購單號 LIKE '" & 控制表_dgv.Rows(I).Cells(0).Value.ToString & "')" Else : SQL2 &= " OR (採購單號 LIKE '" & 控制表_dgv.Rows(I).Cells(0).Value.ToString & "')" : End If Next 明細表_dgv.DataSource = Nothing If 控制表_dgv.Rows.Count > 0 Then Dim ds2 As New DataSet : ds2.Clear() 明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 明細表_dgv.ColumnHeadersHeight = 25 : 明細表_dgv.AllowUserToAddRows = False : 明細表_dgv.RowTemplate.Height = 25 SQL_採購明細表1() da.Fill(ds2) : 明細表_dgv.DataSource = ds2.Tables(0) : conn.Close() End If For I As Integer = 0 To 明細表_dgv.Rows.Count - 1 取得總數1_nud.Value += (明細表_dgv.Rows(I).Cells(6).Value * 明細表_dgv.Rows(I).Cells(4).Value) Next End Sub Private Sub DA1_bt_Click(sender As Object, e As EventArgs) Handles DA1_bt.Click 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(-1) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(-7) For i As Integer = 1 To 7 If Strings.Right(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 2) = "01" Then : Exit For : End If If Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 7) = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 7) Then 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(-1) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(-7) 星期設定() Else : Exit For : End If Next : 日期判斷() : 星期設定() : Set_使用者清單() : 加總1() : Set_採購單號() : ChangeMonth() : 採購當案牘取() End Sub Private Sub DA2_bt_Click(sender As Object, e As EventArgs) Handles DA2_bt.Click 結束日期_dtp.Value = Today() : 開始日期_dtp.Value = 結束日期_dtp.Value Dim oldDate As Date : Dim oldWeekDay As Integer : oldDate = 結束日期_dtp.Value : oldWeekDay = Weekday(oldDate) If oldWeekDay = 7 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(1) : ElseIf oldWeekDay = 6 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(2) ElseIf oldWeekDay = 5 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(3) : ElseIf oldWeekDay = 4 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(4) ElseIf oldWeekDay = 3 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(5) : ElseIf oldWeekDay = 2 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(6) End If : 開始日期_dtp.Value = 結束日期_dtp.Value.AddDays(-6) : 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(+6) For i As Integer = 1 To 7 If Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 7) = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 7) Then 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(-1) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(-7) : 星期設定() Else : Exit For : End If Next : 日期判斷() : 星期設定() : Set_使用者清單() : 加總1() : Set_採購單號() : ChangeMonth() : 採購當案牘取() End Sub Private Sub DA3_bt_Click(sender As Object, e As EventArgs) Handles DA3_bt.Click 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(+13) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(+7) For i As Integer = 1 To 7 If Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 7) = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 7) Then 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(-1) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(-7) : 星期設定() Else : Exit For : End If Next : 日期判斷() : 星期設定() : Set_使用者清單() : 加總1() : Set_採購單號() : ChangeMonth() : 採購當案牘取() End Sub Private Sub 重新讀取_bt_Click(sender As Object, e As EventArgs) Handles 重新讀取_bt.Click 日期判斷() : 星期設定() : Set_使用者清單() : 加總1() End Sub Private Sub 日期判斷() If Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) <> Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 4) Then PA17 = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) : PA18 = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 4) 選擇考勤月份.ShowDialog() : 年份2_cb.Text = PA19 Else If Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) <> 年份2_cb.Text Then : 年份2_cb.Text = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) : End If End If If Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) <> Strings.Mid(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 6, 2) Then PA17 = Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) : PA18 = Strings.Mid(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 6, 2) 選擇考勤月份.ShowDialog() : 月份2_cb.Text = PA19 Else If Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) <> 月份2_cb.Text Then : 月份2_cb.Text = Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) : End If End If End Sub Private Sub 考勤調整_bt_Click(sender As Object, e As EventArgs) Handles 考勤調整_bt.Click If 薪資計算_ch.Checked = False And 採購計算_ch.Checked = False Then : MGB(對話框(0), 1) : 首次開啟 = False : Exit Sub : End If If 薪資計算_ch.Checked = True Then '------------------------------薪資---------------------------------------------------------------------------------------------------------------------------------------------------- Dim 設定1 As Integer = 8 : Dim 設定2 As Integer = 10 : Dim 設定3 As Integer = 12 : Dim 設定4 As Integer = 10 : Dim 設定5 As Integer = 5 Dim random1 As New Random() : Dim random2 As New Random() : Dim random3 As New Random() : Dim random4 As New Random() : Dim random5 As New Random() Dim random6 As New Random() : Dim random7 As New Random() : Dim hours As Integer : 取得總數_nud.Value = 0 If 群組1_cb.Text <> "HARIAN GROUP" Then : MGB(系統語言字典("H611-110-" & 語言), 1) : 首次開啟 = False : Else For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 清單1_dgv.Rows(i).Cells(15).Value = "" : 清單1_dgv.Rows(i).Cells(16).Value = "" : 清單1_dgv.Rows(i).Cells(17).Value = "" : 清單1_dgv.Rows(i).Cells(18).Value = "" 清單1_dgv.Rows(i).Cells(19).Value = "" : 清單1_dgv.Rows(i).Cells(20).Value = "" : 清單1_dgv.Rows(i).Cells(21).Value = "" : 清單1_dgv.Rows(i).Cells(22).Value = "" 清單1_dgv.Rows(i).Cells(23).Value = "" : 清單1_dgv.Rows(i).Cells(24).Value = "" : 清單1_dgv.Rows(i).Cells(25).Value = "" : 清單1_dgv.Rows(i).Cells(26).Value = "" 清單1_dgv.Rows(i).Cells(27).Value = "" : 清單1_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第1周() For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 清單2_dgv.Rows(i).Cells(15).Value = "" : 清單2_dgv.Rows(i).Cells(16).Value = "" : 清單2_dgv.Rows(i).Cells(17).Value = "" : 清單2_dgv.Rows(i).Cells(18).Value = "" 清單2_dgv.Rows(i).Cells(19).Value = "" : 清單2_dgv.Rows(i).Cells(20).Value = "" : 清單2_dgv.Rows(i).Cells(21).Value = "" : 清單2_dgv.Rows(i).Cells(22).Value = "" 清單2_dgv.Rows(i).Cells(23).Value = "" : 清單2_dgv.Rows(i).Cells(24).Value = "" : 清單2_dgv.Rows(i).Cells(25).Value = "" : 清單2_dgv.Rows(i).Cells(26).Value = "" 清單2_dgv.Rows(i).Cells(27).Value = "" : 清單2_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第2周() For i As Integer = 0 To 清單3_dgv.Rows.Count - 1 清單3_dgv.Rows(i).Cells(15).Value = "" : 清單3_dgv.Rows(i).Cells(16).Value = "" : 清單3_dgv.Rows(i).Cells(17).Value = "" : 清單3_dgv.Rows(i).Cells(18).Value = "" 清單3_dgv.Rows(i).Cells(19).Value = "" : 清單3_dgv.Rows(i).Cells(20).Value = "" : 清單3_dgv.Rows(i).Cells(21).Value = "" : 清單3_dgv.Rows(i).Cells(22).Value = "" 清單3_dgv.Rows(i).Cells(23).Value = "" : 清單3_dgv.Rows(i).Cells(24).Value = "" : 清單3_dgv.Rows(i).Cells(25).Value = "" : 清單3_dgv.Rows(i).Cells(26).Value = "" 清單3_dgv.Rows(i).Cells(27).Value = "" : 清單3_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第3周() For i As Integer = 0 To 清單4_dgv.Rows.Count - 1 清單4_dgv.Rows(i).Cells(15).Value = "" : 清單4_dgv.Rows(i).Cells(16).Value = "" : 清單4_dgv.Rows(i).Cells(17).Value = "" : 清單4_dgv.Rows(i).Cells(18).Value = "" 清單4_dgv.Rows(i).Cells(19).Value = "" : 清單4_dgv.Rows(i).Cells(20).Value = "" : 清單4_dgv.Rows(i).Cells(21).Value = "" : 清單4_dgv.Rows(i).Cells(22).Value = "" 清單4_dgv.Rows(i).Cells(23).Value = "" : 清單4_dgv.Rows(i).Cells(24).Value = "" : 清單4_dgv.Rows(i).Cells(25).Value = "" : 清單4_dgv.Rows(i).Cells(26).Value = "" 清單4_dgv.Rows(i).Cells(27).Value = "" : 清單4_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第4周() For i As Integer = 0 To 清單5_dgv.Rows.Count - 1 清單5_dgv.Rows(i).Cells(15).Value = "" : 清單5_dgv.Rows(i).Cells(16).Value = "" : 清單5_dgv.Rows(i).Cells(17).Value = "" : 清單5_dgv.Rows(i).Cells(18).Value = "" 清單5_dgv.Rows(i).Cells(19).Value = "" : 清單5_dgv.Rows(i).Cells(20).Value = "" : 清單5_dgv.Rows(i).Cells(21).Value = "" : 清單5_dgv.Rows(i).Cells(22).Value = "" 清單5_dgv.Rows(i).Cells(23).Value = "" : 清單5_dgv.Rows(i).Cells(24).Value = "" : 清單5_dgv.Rows(i).Cells(25).Value = "" : 清單5_dgv.Rows(i).Cells(26).Value = "" 清單5_dgv.Rows(i).Cells(27).Value = "" : 清單5_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第5周() For i As Integer = 0 To 清單6_dgv.Rows.Count - 1 清單6_dgv.Rows(i).Cells(15).Value = "" : 清單6_dgv.Rows(i).Cells(16).Value = "" : 清單6_dgv.Rows(i).Cells(17).Value = "" : 清單6_dgv.Rows(i).Cells(18).Value = "" 清單6_dgv.Rows(i).Cells(19).Value = "" : 清單6_dgv.Rows(i).Cells(20).Value = "" : 清單6_dgv.Rows(i).Cells(21).Value = "" : 清單6_dgv.Rows(i).Cells(22).Value = "" 清單6_dgv.Rows(i).Cells(23).Value = "" : 清單6_dgv.Rows(i).Cells(24).Value = "" : 清單6_dgv.Rows(i).Cells(25).Value = "" : 清單6_dgv.Rows(i).Cells(26).Value = "" 清單6_dgv.Rows(i).Cells(27).Value = "" : 清單6_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第6周() : 取得總數_nud.Value = 0 '---------------第1周-------------------------------------------------------------------------------------------------------------------------------------------------------------- For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 If 休假比例_nud.Value > 0 And 休假比例_nud.Value < 20 Then Dim 計數 As Integer If Strings.Mid(星1_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星2_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星3_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星4_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星5_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星6_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 20 And 休假比例_nud.Value < 40 Then Dim 計數 As Integer If Strings.Mid(星1_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星2_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星3_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星4_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星5_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星6_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 40 And 休假比例_nud.Value < 60 Then Dim 計數 As Integer If Strings.Mid(星1_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星2_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星3_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星4_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星5_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星6_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 60 And 休假比例_nud.Value < 80 Then Dim 計數 As Integer If Strings.Mid(星1_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星2_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星3_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星4_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星5_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星6_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星7_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 48 Then If 清單1_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 80 And 休假比例_nud.Value < 100 Then Dim 計數 As Integer If Strings.Mid(星1_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星2_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星3_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星4_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星5_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星6_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星7_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 30 Then If 清單1_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If ElseIf 休假比例_nud.Value = 100 Then If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單1_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If End If Next : AUTO第1周() '---------------第2周-------------------------------------------------------------------------------------------------------------------------------------------------------------- For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 If 休假比例_nud.Value > 0 And 休假比例_nud.Value < 20 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單2_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單2_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單2_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單2_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單2_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單2_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 20 And 休假比例_nud.Value < 40 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單2_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單2_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單2_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單2_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單2_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單2_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 40 And 休假比例_nud.Value < 60 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單2_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單2_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單2_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單2_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單2_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單2_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 60 And 休假比例_nud.Value < 80 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單2_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單2_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單2_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單2_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單2_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單2_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 48 Then If 清單2_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 80 And 休假比例_nud.Value < 100 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單2_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單2_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單2_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單2_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單2_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單2_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 30 Then If 清單2_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If ElseIf 休假比例_nud.Value = 100 Then If 清單2_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單2_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單2_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單2_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If End If Next : AUTO第2周() '---------------第3周-------------------------------------------------------------------------------------------------------------------------------------------------------------- For i As Integer = 0 To 清單3_dgv.Rows.Count - 1 If 休假比例_nud.Value > 0 And 休假比例_nud.Value < 20 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單3_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單3_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單3_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單3_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單3_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單3_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 20 And 休假比例_nud.Value < 40 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單3_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單3_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單3_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單3_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單3_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單3_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 40 And 休假比例_nud.Value < 60 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單3_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單3_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單3_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單3_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單3_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單3_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 60 And 休假比例_nud.Value < 80 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單3_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單3_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單3_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單3_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單3_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單3_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 48 Then If 清單3_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 80 And 休假比例_nud.Value < 100 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單3_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單3_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單3_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單3_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單3_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單3_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 30 Then If 清單3_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If ElseIf 休假比例_nud.Value = 100 Then If 清單3_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單3_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單3_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單3_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If End If Next : AUTO第3周() '---------------第4周-------------------------------------------------------------------------------------------------------------------------------------------------------------- For i As Integer = 0 To 清單4_dgv.Rows.Count - 1 If 休假比例_nud.Value > 0 And 休假比例_nud.Value < 20 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單4_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單4_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單4_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單4_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單4_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單4_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 20 And 休假比例_nud.Value < 40 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單4_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單4_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單4_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單4_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單4_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單4_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 40 And 休假比例_nud.Value < 60 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單4_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單4_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單4_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單4_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單4_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單4_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 60 And 休假比例_nud.Value < 80 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單4_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單4_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單4_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單4_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單4_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單4_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 48 Then If 清單4_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 80 And 休假比例_nud.Value < 100 Then Dim 計數 As Integer Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單4_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單4_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單4_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單4_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單4_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單4_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 30 Then If 清單4_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If ElseIf 休假比例_nud.Value = 100 Then If 清單4_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單4_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單4_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單4_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If End If Next : AUTO第4周() '---------------第5周-------------------------------------------------------------------------------------------------------------------------------------------------------------- For i As Integer = 0 To 清單5_dgv.Rows.Count - 1 If 休假比例_nud.Value > 0 And 休假比例_nud.Value < 20 Then Dim 計數 As Integer If Strings.Mid(星29_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單5_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星30_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單5_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星31_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單5_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星32_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單5_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星33_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單5_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星34_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單5_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 20 And 休假比例_nud.Value < 40 Then Dim 計數 As Integer If Strings.Mid(星29_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單5_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星30_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單5_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星31_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單5_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星32_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單5_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星33_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單5_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星34_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單5_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 40 And 休假比例_nud.Value < 60 Then Dim 計數 As Integer If Strings.Mid(星29_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單5_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星30_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單5_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星31_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單5_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星32_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單5_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星33_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單5_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星34_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單5_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 60 And 休假比例_nud.Value < 80 Then Dim 計數 As Integer If Strings.Mid(星29_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單5_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星30_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單5_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星31_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單5_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星32_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單5_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星33_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單5_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星34_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單5_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星35_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 48 Then If 清單5_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 80 And 休假比例_nud.Value < 100 Then Dim 計數 As Integer If Strings.Mid(星29_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單5_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星30_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單5_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星31_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單5_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星32_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單5_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星33_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單5_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星34_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單5_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星35_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 30 Then If 清單5_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If ElseIf 休假比例_nud.Value = 100 Then If 清單5_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單5_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單5_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單5_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If End If Next : AUTO第5周() '---------------第6周-------------------------------------------------------------------------------------------------------------------------------------------------------------- For i As Integer = 0 To 清單6_dgv.Rows.Count - 1 If 休假比例_nud.Value > 0 And 休假比例_nud.Value < 20 Then Dim 計數 As Integer If Strings.Mid(星36_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單6_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星37_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單6_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星38_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單6_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星39_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單6_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星40_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單6_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If If Strings.Mid(星41_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定1 Then If 清單6_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 20 And 休假比例_nud.Value < 40 Then Dim 計數 As Integer If Strings.Mid(星36_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單6_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星37_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單6_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星38_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單6_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星39_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單6_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星40_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單6_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If If Strings.Mid(星41_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定2 Then If 清單6_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 40 And 休假比例_nud.Value < 60 Then Dim 計數 As Integer If Strings.Mid(星36_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單6_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星37_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單6_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星38_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單6_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星39_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單6_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星40_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單6_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If If Strings.Mid(星41_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定3 Then If 清單6_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 60 And 休假比例_nud.Value < 80 Then Dim 計數 As Integer If Strings.Mid(星36_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單6_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星37_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單6_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星38_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單6_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星39_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單6_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星40_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單6_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星41_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定4 Then If 清單6_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If If Strings.Mid(星42_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 48 Then If 清單6_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If ElseIf 休假比例_nud.Value >= 80 And 休假比例_nud.Value < 100 Then Dim 計數 As Integer If Strings.Mid(星36_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單6_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星37_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單6_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星38_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單6_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星39_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單6_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星40_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單6_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星41_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 設定5 Then If 清單6_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If If Strings.Mid(星42_bt.Text, 6, 2) = 月份2_cb.Text Then Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 30 Then If 清單6_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1 End If End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If ElseIf 休假比例_nud.Value = 100 Then If 清單6_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單6_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If If 清單6_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單6_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If End If Next : AUTO第6周() For I As Integer = 0 To 清單1_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單1_dgv.Rows(I).Cells(13).Value.ToString) : Next For I As Integer = 0 To 清單2_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單2_dgv.Rows(I).Cells(13).Value.ToString) : Next For I As Integer = 0 To 清單3_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單3_dgv.Rows(I).Cells(13).Value.ToString) : Next For I As Integer = 0 To 清單4_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單4_dgv.Rows(I).Cells(13).Value.ToString) : Next For I As Integer = 0 To 清單5_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單5_dgv.Rows(I).Cells(13).Value.ToString) : Next For I As Integer = 0 To 清單6_dgv.Rows.Count - 1 : 取得總數_nud.Value += CLng(清單6_dgv.Rows(I).Cells(13).Value.ToString) : Next End If End If If 採購計算_ch.Checked = True Then If 控制表_dgv.Rows.Count > 0 Then : MGB(對話框(1), 2) : If 訊息回應 = "YES" Then : Else : Exit Sub : End If : End If 取得總數1_nud.Value = 0 '------------------------------採購---------------------------------------------------------------------------------------------------------------------------------------------------- Dim ds1 As New DataSet 控制表_dgv.DataSource = Nothing : ds1.Clear() 控制表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 控制表_dgv.ColumnHeadersHeight = 25 : 控制表_dgv.AllowUserToAddRows = False : 控制表_dgv.RowTemplate.Height = 25 SQL_採購控制表() da.Fill(ds1) : 控制表_dgv.DataSource = ds1.Tables(0) : conn.Close() For I As Integer = 0 To 控制表_dgv.Rows.Count - 1 控制表_dgv.Rows(I).Cells(0).Value = "" : 控制表_dgv.Rows(I).Cells(1).Value = "" : 控制表_dgv.Rows(I).Cells(2).Value = "" : 控制表_dgv.Rows(I).Cells(3).Value = "" 控制表_dgv.Rows(I).Cells(4).Value = "" : 控制表_dgv.Rows(I).Cells(5).Value = "" : 控制表_dgv.Rows(I).Cells(6).Value = "" : 控制表_dgv.Rows(I).Cells(7).Value = "" 控制表_dgv.Rows(I).Cells(8).Value = "" : 控制表_dgv.Rows(I).Cells(9).Value = "" : 控制表_dgv.Rows(I).Cells(10).Value = "" : 控制表_dgv.Rows(I).Cells(11).Value = "" 控制表_dgv.Rows(I).Cells(12).Value = "" : 控制表_dgv.Rows(I).Cells(13).Value = "0" : 控制表_dgv.Rows(I).Cells(14).Value = False : 控制表_dgv.Rows(I).Cells(15).Value = "0" 控制表_dgv.Rows(I).Cells(16).Value = "" : 控制表_dgv.Rows(I).Cells(17).Value = "" : 控制表_dgv.Rows(I).Cells(18).Value = False : 控制表_dgv.Rows(I).Cells(19).Value = False 控制表_dgv.Rows(I).Cells(20).Value = False : 控制表_dgv.Rows(I).Cells(21).Value = False : 控制表_dgv.Rows(I).Cells(22).Value = False : 控制表_dgv.Rows(I).Cells(23).Value = "" 控制表_dgv.Rows(I).Cells(24).Value = "" : 控制表_dgv.Rows(I).Cells(25).Value = "" : 控制表_dgv.Rows(I).Cells(26).Value = "" Next Dim ds2 As New DataSet 明細表_dgv.DataSource = Nothing : ds2.Clear() 明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 明細表_dgv.ColumnHeadersHeight = 25 : 明細表_dgv.AllowUserToAddRows = False : 明細表_dgv.RowTemplate.Height = 25 SQL_採購明細表() da.Fill(ds2) : 明細表_dgv.DataSource = ds2.Tables(0) : conn.Close() For I As Integer = 0 To 明細表_dgv.Rows.Count - 1 明細表_dgv.Rows(I).Cells(0).Value = "" : 明細表_dgv.Rows(I).Cells(1).Value = "" : 明細表_dgv.Rows(I).Cells(2).Value = "" : 明細表_dgv.Rows(I).Cells(3).Value = "" 明細表_dgv.Rows(I).Cells(4).Value = "0" : 明細表_dgv.Rows(I).Cells(5).Value = "" : 明細表_dgv.Rows(I).Cells(6).Value = "0" : 明細表_dgv.Rows(I).Cells(7).Value = "" 明細表_dgv.Rows(I).Cells(8).Value = False : 明細表_dgv.Rows(I).Cells(9).Value = "" : 明細表_dgv.Rows(I).Cells(10).Value = "" : 明細表_dgv.Rows(I).Cells(11).Value = "" 明細表_dgv.Rows(I).Cells(12).Value = False : 明細表_dgv.Rows(I).Cells(13).Value = False : 明細表_dgv.Rows(I).Cells(14).Value = "" : 明細表_dgv.Rows(I).Cells(15).Value = "" 明細表_dgv.Rows(I).Cells(16).Value = "" : 明細表_dgv.Rows(I).Cells(17).Value = "0" Next Dim random As New Random() Dim dgv As DataGridView = 控制表_dgv Dim startDate As New Date(年份2_cb.Text, 月份2_cb.Text, 1) Dim endDate As New Date(年份2_cb.Text, 月份2_cb.Text, DateTime.DaysInMonth(年份2_cb.Text, 月份2_cb.Text)) Dim 上班日(31), 上班日1(31) As String : Dim NS As Integer For dayOfMonth As Integer = 1 To DateTime.DaysInMonth(年份2_cb.Text, 月份2_cb.Text) Dim currentDate As New Date(年份2_cb.Text, 月份2_cb.Text, dayOfMonth) If currentDate.DayOfWeek >= DayOfWeek.Monday AndAlso currentDate.DayOfWeek <= DayOfWeek.Friday Then 上班日1(NS) = Strings.Format(currentDate, "yyyyMMdd") 上班日(NS) = Strings.Format(currentDate, "yyyy/MM/dd") : NS += 1 End If Next Dim ND As Integer = 0 : Dim NUM1, 明細第幾個, 物料第幾個, 物料O, 物料數量, 物料數O, 驗證, 合約第幾個 As Integer For i As Integer = 0 To NS : 資料數 = NS : MyMod.進度條() 日期數量() : Hours舊 = Hours For ii As Integer = 0 To Hours '--------------計算出採購單號-------------------------------------------------------------------------------------------------------------------------------------- DTP1 = 上班日1(i) For j As Integer = 1 To 999 : NUM1 = 0 + j If NUM1 < 10 Then : 控制表_dgv.Rows(ND).Cells(0).Value = "HXI-C-" & DTP1 & "-00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 控制表_dgv.Rows(ND).Cells(0).Value = "HXI-C-" & DTP1 & "-0" & NUM1 ElseIf NUM1 > 99 Then : 控制表_dgv.Rows(ND).Cells(0).Value = "HXI-C-" & DTP1 & "-" & NUM1 : End If Dim found As Boolean = False : PA1 = 控制表_dgv.Rows(ND).Cells(0).Value ' 是否找到相同資料的標誌 For Each row As DataGridViewRow In 該月單號_dgv.Rows Dim cellValue As String = row.Cells(0).Value.ToString() If cellValue = PA1 Then : found = True : Exit For : End If ' 找到相同資料就跳出迴圈 Next If found Then : Else : j = 999 : conn.Close() : End If : conn.Close() Next If ND = 0 Then : Else If Strings.Mid(控制表_dgv.Rows(ND - 1).Cells(0).Value.ToString, 7, 8) = Strings.Mid(控制表_dgv.Rows(ND).Cells(0).Value.ToString, 7, 8) Then If 控制表_dgv.Rows(ND - 1).Cells(0).Value.ToString = 控制表_dgv.Rows(ND).Cells(0).Value.ToString Then NUM1 = Strings.Right(控制表_dgv.Rows(ND).Cells(0).Value.ToString, 3) : NUM1 += 1 If NUM1 < 10 Then : 控制表_dgv.Rows(ND).Cells(0).Value = "HXI-C-" & DTP1 & "-00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 控制表_dgv.Rows(ND).Cells(0).Value = "HXI-C-" & DTP1 & "-0" & NUM1 ElseIf NUM1 > 99 Then : 控制表_dgv.Rows(ND).Cells(0).Value = "HXI-C-" & DTP1 & "-" & NUM1 : End If ElseIf CInt(Strings.Right(控制表_dgv.Rows(ND - 1).Cells(0).Value.ToString, 3)) > CInt(Strings.Right(控制表_dgv.Rows(ND).Cells(0).Value.ToString, 3)) Then NUM1 = Strings.Right(控制表_dgv.Rows(ND - 1).Cells(0).Value.ToString, 3) : NUM1 += 1 If NUM1 < 10 Then : 控制表_dgv.Rows(ND).Cells(0).Value = "HXI-C-" & DTP1 & "-00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 控制表_dgv.Rows(ND).Cells(0).Value = "HXI-C-" & DTP1 & "-0" & NUM1 ElseIf NUM1 > 99 Then : 控制表_dgv.Rows(ND).Cells(0).Value = "HXI-C-" & DTP1 & "-" & NUM1 : End If End If End If End If '--------------完成採購控制表資料亂數生成-------------------------------------------------------------------------------------------------------------------------------------- 供應商亂數() : Xours舊 = Xours : 控制表_dgv.Rows(ND).Cells(1).Value = 供應商_dgv.Rows(Xours).Cells(0).Value.ToString 使用地區亂數() : 控制表_dgv.Rows(ND).Cells(3).Value = 使用地點_dgv.Rows(Qours).Cells(0).Value.ToString 人員亂數() : 控制表_dgv.Rows(ND).Cells(4).Value = 核對與詢價_dgv.Rows(Qours舊).Cells(0).Value.ToString Dim originalDate As Date = Date.ParseExact(上班日(i), "yyyy/MM/dd", System.Globalization.CultureInfo.InvariantCulture) 日期亂數() : 控制表_dgv.Rows(ND).Cells(5).Value = Strings.Format(originalDate.AddDays(HMD), "yyyy/MM/dd") 控制表_dgv.Rows(ND).Cells(7).Value = Strings.Format(originalDate.AddDays(HMD + 1), "yyyy/MM/dd") 人員亂數() : 控制表_dgv.Rows(ND).Cells(6).Value = 核對與詢價_dgv.Rows(Qours舊).Cells(0).Value.ToString 控制表_dgv.Rows(ND).Cells(2).Value = 上班日(i) '--------------使用供應商計算對應物料位置-------------------------------------------------------------------------------------------------------------------------------------- Dim XC1 As Integer = -1 : Dim XC2 As Integer = -1 : Dim XP1 As Integer = 合約號_dgv.Rows.Count For k As Integer = 0 To 可用物料_dgv.Rows.Count - 1 If 可用物料_dgv.Rows(k).Cells(0).Value.ToString() = 控制表_dgv.Rows(ND).Cells(1).Value Then : If XC1 = -1 Then : XC1 = k : End If : XC2 = k : End If Next 驗證 = 0 : 人員亂數1() : Randomize() : 合約第幾個 = random.Next(0, 合約號_dgv.Rows.Count - 1) For g As Integer = 0 To 99 If g < 10 Then : 明細表_dgv.Rows(明細第幾個).Cells(7).Value = "0" & g + 1 : Else : 明細表_dgv.Rows(明細第幾個).Cells(7).Value = g + 1 : End If 明細表_dgv.Rows(明細第幾個).Cells(7).Value = True : 明細表_dgv.Rows(明細第幾個).Cells(12).Value = True : 明細表_dgv.Rows(明細第幾個).Cells(13).Value = True 明細表_dgv.Rows(明細第幾個).Cells(15).Value = 合約號_dgv.Rows(合約第幾個).Cells(0).Value.ToString 明細表_dgv.Rows(明細第幾個).Cells(16).Value = 申請人_dgv.Rows(Qours舊).Cells(0).Value.ToString For m As Integer = 1 To 1000 : Randomize() : 物料第幾個 = random.Next(XC1, XC2) : If 物料第幾個 <> 物料O Then : Exit For : End If : Next 物料O = 物料第幾個 明細表_dgv.Rows(明細第幾個).Cells(0).Value = 控制表_dgv.Rows(ND).Cells(0).Value.ToString 明細表_dgv.Rows(明細第幾個).Cells(1).Value = 可用物料_dgv.Rows(物料第幾個).Cells(3).Value.ToString 明細表_dgv.Rows(明細第幾個).Cells(5).Value = 可用物料_dgv.Rows(物料第幾個).Cells("單位").Value.ToString 明細表_dgv.Rows(明細第幾個).Cells(6).Value = 可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString 明細表_dgv.Rows(明細第幾個).Cells(9).Value = 可用物料_dgv.Rows(物料第幾個).Cells("群組碼").Value.ToString 明細表_dgv.Rows(明細第幾個).Cells(10).Value = 可用物料_dgv.Rows(物料第幾個).Cells("料號原則").Value.ToString 明細表_dgv.Rows(明細第幾個).Cells(11).Value = 可用物料_dgv.Rows(物料第幾個).Cells("料號").Value.ToString Dim 規格 As String = "" If 可用物料_dgv.Rows(物料第幾個).Cells("A1").Value.ToString <> "" Then : 規格 &= 可用物料_dgv.Rows(物料第幾個).Cells("A1").Value.ToString ElseIf 可用物料_dgv.Rows(物料第幾個).Cells("A2").Value.ToString <> "" Then : 規格 &= "、" & 可用物料_dgv.Rows(物料第幾個).Cells("A2").Value.ToString ElseIf 可用物料_dgv.Rows(物料第幾個).Cells("A3").Value.ToString <> "" Then : 規格 &= "、" & 可用物料_dgv.Rows(物料第幾個).Cells("A3").Value.ToString ElseIf 可用物料_dgv.Rows(物料第幾個).Cells("A4").Value.ToString <> "" Then : 規格 &= "、" & 可用物料_dgv.Rows(物料第幾個).Cells("A4").Value.ToString ElseIf 可用物料_dgv.Rows(物料第幾個).Cells("A5").Value.ToString <> "" Then : 規格 &= "、" & 可用物料_dgv.Rows(物料第幾個).Cells("A5").Value.ToString ElseIf 可用物料_dgv.Rows(物料第幾個).Cells("A6").Value.ToString <> "" Then : 規格 &= "、" & 可用物料_dgv.Rows(物料第幾個).Cells("A6").Value.ToString ElseIf 可用物料_dgv.Rows(物料第幾個).Cells("A7").Value.ToString <> "" Then : 規格 &= "、" & 可用物料_dgv.Rows(物料第幾個).Cells("A7").Value.ToString ElseIf 可用物料_dgv.Rows(物料第幾個).Cells("A8").Value.ToString <> "" Then : 規格 &= "、" & 可用物料_dgv.Rows(物料第幾個).Cells("A8").Value.ToString : End If 明細表_dgv.Rows(明細第幾個).Cells(2).Value = 規格 If CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) < 10000 Then For m As Integer = 1 To 1000 : Randomize() : 物料數量 = random.Next(100, 500) : If 物料數量 <> 物料數O Then : Exit For : End If : Next 物料數O = 物料數量 : 明細表_dgv.Rows(明細第幾個).Cells(4).Value = 物料數量 ElseIf CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) >= 10000 And CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) < 50000 Then For m As Integer = 1 To 1000 : Randomize() : 物料數量 = random.Next(50, 100) : If 物料數量 <> 物料數O Then : Exit For : End If : Next 物料數O = 物料數量 : 明細表_dgv.Rows(明細第幾個).Cells(4).Value = 物料數量 ElseIf CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) >= 50000 And CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) < 100000 Then For m As Integer = 1 To 1000 : Randomize() : 物料數量 = random.Next(10, 50) : If 物料數量 <> 物料數O Then : Exit For : End If : Next 物料數O = 物料數量 : 明細表_dgv.Rows(明細第幾個).Cells(4).Value = 物料數量 ElseIf CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) >= 100000 And CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) < 500000 Then For m As Integer = 1 To 1000 : Randomize() : 物料數量 = random.Next(5, 10) : If 物料數量 <> 物料數O Then : Exit For : End If : Next 物料數O = 物料數量 : 明細表_dgv.Rows(明細第幾個).Cells(4).Value = 物料數量 ElseIf CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) >= 500000 And CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) < 1000000 Then For m As Integer = 1 To 1000 : Randomize() : 物料數量 = random.Next(1, 5) : If 物料數量 <> 物料數O Then : Exit For : End If : Next 物料數O = 物料數量 : 明細表_dgv.Rows(明細第幾個).Cells(4).Value = 物料數量 ElseIf CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) >= 1000000 And CInt(可用物料_dgv.Rows(物料第幾個).Cells(1).Value.ToString) < 10000000 Then 物料數O = 1 : 物料數量 = 1 : 明細表_dgv.Rows(明細第幾個).Cells(4).Value = 物料數量 Else 物料數O = 1 : 物料數量 = 1 : 明細表_dgv.Rows(明細第幾個).Cells(4).Value = 物料數量 End If 驗證 += (明細表_dgv.Rows(明細第幾個).Cells(6).Value * 明細表_dgv.Rows(明細第幾個).Cells(4).Value) : 明細第幾個 += 1 If 驗證 > 每單最高_nud.Value / 100 * 85 Then : 取得總數1_nud.Value += 驗證 : Exit For : End If Next ND += 1 If ND = CInt(開單數_nud.Value) Then Exit For End If Next If ND = CInt(開單數_nud.Value) Then Exit For End If Next : HX_PGS_ERP_SYS.ToolStripProgressBar1.Value = 0 End If End Sub Private Sub 存檔_tb_Click(sender As Object, e As EventArgs) Handles 存檔_tb.Click SQL_零用金基本設定存檔() : MGB(對話框(3), 1) : 首次開啟 = False End Sub Private Sub 日期數量() Dim random As New Random() For i As Integer = 1 To 1000 : Randomize() : Hours = random.Next(1, 每日單量_nud.Value) : If Hours舊 <> Hours Then : Exit For : End If : Next End Sub Private Sub 供應商亂數() Dim random As New Random() For i As Integer = 1 To 1000 Randomize() : Xours = random.Next(0, 12365478) For k As Integer = 0 To 100000000 Xours -= 供應商_dgv.Rows.Count : If Xours < 供應商_dgv.Rows.Count Then : Exit For : End If Next If Xours舊 <> Xours Then : Exit For : End If Next End Sub Private Sub 使用地區亂數() Dim random As New Random() : Randomize() : Qours = random.Next(0, 10000000) For i As Integer = 1 To 10000000 : Qours -= 使用地點_dgv.Rows.Count : If Qours <= 使用地點_dgv.Rows.Count - 1 Then : Exit For : End If : Next End Sub Private Sub 人員亂數() Dim random As New Random() : Randomize() : Qours舊 = random.Next(0, 10000000) For i As Integer = 1 To 10000000 : Qours舊 -= 核對與詢價_dgv.Rows.Count : If Qours舊 <= 核對與詢價_dgv.Rows.Count - 1 Then : Exit For : End If : Next End Sub Private Sub 人員亂數1() Dim random As New Random() : Randomize() : Qours舊 = random.Next(0, 10000000) For i As Integer = 1 To 10000000 : Qours舊 -= 申請人_dgv.Rows.Count : If Qours舊 <= 申請人_dgv.Rows.Count - 1 Then : Exit For : End If : Next End Sub Private Sub 日期亂數() Dim random As New Random() : Randomize() : HMD = random.Next(0, 10000000) For i As Integer = 1 To 10000000 : HMD -= 7 : If HMD <= 7 Then : Exit For : End If : Next End Sub Private Sub 年份2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 年份2_cb.SelectedIndexChanged If 首次開啟 = False Then 群組1_cb.Text = "HARIAN GROUP" : Set_使用者清單() : Set_供應商() : Set_使用地點() Set_詢價人員() : Set_可用物料() : Set_申請人() : Set_採購單號() : Set_合約號() : 採購當案牘取() 加總1() : 沖帳金額1_nud.Value = 每單最高_nud.Value * 3 End If End Sub Private Sub 月份2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 月份2_cb.SelectedIndexChanged If 首次開啟 = False Then 群組1_cb.Text = "HARIAN GROUP" : Set_使用者清單() : Set_供應商() : Set_使用地點() Set_詢價人員() : Set_可用物料() : Set_申請人() : Set_採購單號() : Set_合約號() : 採購當案牘取() 加總1() : 沖帳金額1_nud.Value = 每單最高_nud.Value * 3 End If End Sub Private Sub 結束日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 結束日期_dtp.ValueChanged If 首次開啟 = False Then 開始日期_dtp.Value = 結束日期_dtp.Value Dim oldDate As Date : Dim oldWeekDay As Integer : oldDate = 結束日期_dtp.Value : oldWeekDay = Weekday(oldDate) If oldWeekDay = 7 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(1) ElseIf oldWeekDay = 6 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(2) ElseIf oldWeekDay = 5 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(3) ElseIf oldWeekDay = 4 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(4) ElseIf oldWeekDay = 3 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(5) ElseIf oldWeekDay = 2 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(6) End If : 開始日期_dtp.Value = 結束日期_dtp.Value.AddDays(-6) : 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(+6) 星期設定() For i As Integer = 1 To 7 If Strings.Right(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 2) = "01" Then : Exit For : End If If Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 7) = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 7) Then 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(-1) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(-7) : 星期設定() Else : Exit For : End If Next Dim selectedDate As Date = MonthCalendar1.SelectionStart Dim daysInMonth As Integer = DateTime.DaysInMonth(selectedDate.Year, selectedDate.Month) Dim x1 As Integer = 0 : Dim x2 As Integer = 0 ' 週一到週五的天數 週六和週日的天數 For day As Integer = 1 To daysInMonth Dim currentDate As New Date(selectedDate.Year, selectedDate.Month, day) : Dim dayOfWeek As DayOfWeek = currentDate.DayOfWeek If dayOfWeek >= DayOfWeek.Monday AndAlso dayOfWeek <= DayOfWeek.Friday Then : x1 += 1 ElseIf dayOfWeek = DayOfWeek.Saturday OrElse dayOfWeek = DayOfWeek.Sunday Then : x2 += 1 : End If Next : 上班日_nud.Value = x1 : 放假日_nud.Value = x2 : 採購單極限數量() End If End Sub Private Sub AUTO時段1() Dim random As New Random() For i As Integer = 1 To 1000 Randomize() : Dim hours As Integer = random.Next(6, 7) : Dim minutes As Integer If hours = 6 Then : Randomize() : minutes = random.Next(45, 59) : Else : Randomize() : minutes = random.Next(0, 3) : End If Randomize() : Dim seconds As Integer = random.Next(0, 60) : AUTO時 = $"{hours:00}:{minutes:00}:{seconds:00}" If AUTO舊1 <> AUTO時 Then : Exit For : End If Next End Sub Private Sub AUTO時段2() Dim random As New Random() For i As Integer = 1 To 1000 Dim hours As Integer If 加班_nud.Value = 1 Then : Randomize() : hours = random.Next(16, 17) ElseIf 加班_nud.Value = 2 Then : Randomize() : hours = random.Next(18, 19) ElseIf 加班_nud.Value = 3 Then : Randomize() : hours = random.Next(19, 20) : End If Dim minutes As Integer If 加班_nud.Value = 1 Then : If hours = 16 Then : Randomize() : minutes = random.Next(55, 59) : Else : Randomize() : minutes = random.Next(0, 15) : End If ElseIf 加班_nud.Value = 2 Then : If hours = 18 Then : Randomize() : minutes = random.Next(55, 59) : Else : Randomize() : minutes = random.Next(0, 15) : End If ElseIf 加班_nud.Value = 3 Then : If hours = 19 Then : Randomize() : minutes = random.Next(55, 59) : Else : Randomize() : minutes = random.Next(0, 15) : End If : End If Randomize() : Dim seconds As Integer = random.Next(0, 60) : AUTO時 = $"{hours:00}:{minutes:00}:{seconds:00}" If AUTO舊2 <> AUTO時 Then : Exit For : End If Next End Sub Private verificationCode As String Private verificationStartTime As DateTime Dim currentTime As DateTime Dim elapsedTime As TimeSpan Private Sub 清除_bt_Click(sender As Object, e As EventArgs) Handles 清除_bt.Click Dim random As New Random() verificationCode = random.Next(10000000, 99999999).ToString() verificationStartTime = DateTime.Now LIN訊息通知("CC260", gUserName, verificationCode) INB(對話框(2)) If 訊息回應 = verificationCode Then currentTime = DateTime.Now elapsedTime = currentTime - verificationStartTime If elapsedTime.TotalMinutes <= 0.5 Then PA25 = 星1_bt.Text : Set_虛擬表() : Dim DDF As Integer '-------------------------虛擬考勤-------------------------------------------------------------------------------------------------------------------- For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 For ii As Integer = 0 To 虛擬表_dgv.Rows.Count - 1 If 清單1_dgv.Rows(i).Cells(50).Value.ToString = 虛擬表_dgv.Rows(ii).Cells(0).Value.ToString Then If 月份2_cb.Text <> Strings.Mid(星1_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(15).Value = 虛擬表_dgv.Rows(ii).Cells(1).Value.ToString : 清單1_dgv.Rows(i).Cells(16).Value = 虛擬表_dgv.Rows(ii).Cells(2).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星2_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(17).Value = 虛擬表_dgv.Rows(ii).Cells(3).Value.ToString : 清單1_dgv.Rows(i).Cells(18).Value = 虛擬表_dgv.Rows(ii).Cells(4).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星3_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(19).Value = 虛擬表_dgv.Rows(ii).Cells(5).Value.ToString : 清單1_dgv.Rows(i).Cells(20).Value = 虛擬表_dgv.Rows(ii).Cells(6).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星4_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(21).Value = 虛擬表_dgv.Rows(ii).Cells(7).Value.ToString : 清單1_dgv.Rows(i).Cells(22).Value = 虛擬表_dgv.Rows(ii).Cells(8).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星5_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(23).Value = 虛擬表_dgv.Rows(ii).Cells(9).Value.ToString : 清單1_dgv.Rows(i).Cells(24).Value = 虛擬表_dgv.Rows(ii).Cells(10).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星6_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(25).Value = 虛擬表_dgv.Rows(ii).Cells(11).Value.ToString : 清單1_dgv.Rows(i).Cells(26).Value = 虛擬表_dgv.Rows(ii).Cells(12).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星7_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(27).Value = 虛擬表_dgv.Rows(ii).Cells(13).Value.ToString : 清單1_dgv.Rows(i).Cells(28).Value = 虛擬表_dgv.Rows(ii).Cells(14).Value.ToString End If End If Next Next For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 If 月份2_cb.Text = Strings.Mid(星1_bt.Text, 6, 2) Then : 清單1_dgv.Rows(i).Cells(15).Value = "" : 清單1_dgv.Rows(i).Cells(16).Value = "" : End If If 月份2_cb.Text = Strings.Mid(星2_bt.Text, 6, 2) Then : 清單1_dgv.Rows(i).Cells(17).Value = "" : 清單1_dgv.Rows(i).Cells(18).Value = "" : End If If 月份2_cb.Text = Strings.Mid(星3_bt.Text, 6, 2) Then : 清單1_dgv.Rows(i).Cells(19).Value = "" : 清單1_dgv.Rows(i).Cells(20).Value = "" : End If If 月份2_cb.Text = Strings.Mid(星4_bt.Text, 6, 2) Then : 清單1_dgv.Rows(i).Cells(21).Value = "" : 清單1_dgv.Rows(i).Cells(22).Value = "" : End If If 月份2_cb.Text = Strings.Mid(星5_bt.Text, 6, 2) Then : 清單1_dgv.Rows(i).Cells(23).Value = "" : 清單1_dgv.Rows(i).Cells(24).Value = "" : End If If 月份2_cb.Text = Strings.Mid(星6_bt.Text, 6, 2) Then : 清單1_dgv.Rows(i).Cells(25).Value = "" : 清單1_dgv.Rows(i).Cells(26).Value = "" : End If If 月份2_cb.Text = Strings.Mid(星7_bt.Text, 6, 2) Then : 清單1_dgv.Rows(i).Cells(27).Value = "" : 清單1_dgv.Rows(i).Cells(28).Value = "" : End If Next : AUTO第1周() For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 清單2_dgv.Rows(i).Cells(15).Value = "" : 清單2_dgv.Rows(i).Cells(16).Value = "" : 清單2_dgv.Rows(i).Cells(17).Value = "" : 清單2_dgv.Rows(i).Cells(18).Value = "" 清單2_dgv.Rows(i).Cells(19).Value = "" : 清單2_dgv.Rows(i).Cells(20).Value = "" : 清單2_dgv.Rows(i).Cells(21).Value = "" : 清單2_dgv.Rows(i).Cells(22).Value = "" 清單2_dgv.Rows(i).Cells(23).Value = "" : 清單2_dgv.Rows(i).Cells(24).Value = "" : 清單2_dgv.Rows(i).Cells(25).Value = "" : 清單2_dgv.Rows(i).Cells(26).Value = "" 清單2_dgv.Rows(i).Cells(27).Value = "" : 清單2_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第2周() For i As Integer = 0 To 清單3_dgv.Rows.Count - 1 清單3_dgv.Rows(i).Cells(15).Value = "" : 清單3_dgv.Rows(i).Cells(16).Value = "" : 清單3_dgv.Rows(i).Cells(17).Value = "" : 清單3_dgv.Rows(i).Cells(18).Value = "" 清單3_dgv.Rows(i).Cells(19).Value = "" : 清單3_dgv.Rows(i).Cells(20).Value = "" : 清單3_dgv.Rows(i).Cells(21).Value = "" : 清單3_dgv.Rows(i).Cells(22).Value = "" 清單3_dgv.Rows(i).Cells(23).Value = "" : 清單3_dgv.Rows(i).Cells(24).Value = "" : 清單3_dgv.Rows(i).Cells(25).Value = "" : 清單3_dgv.Rows(i).Cells(26).Value = "" 清單3_dgv.Rows(i).Cells(27).Value = "" : 清單3_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第3周() For i As Integer = 0 To 清單4_dgv.Rows.Count - 1 清單4_dgv.Rows(i).Cells(15).Value = "" : 清單4_dgv.Rows(i).Cells(16).Value = "" : 清單4_dgv.Rows(i).Cells(17).Value = "" : 清單4_dgv.Rows(i).Cells(18).Value = "" 清單4_dgv.Rows(i).Cells(19).Value = "" : 清單4_dgv.Rows(i).Cells(20).Value = "" : 清單4_dgv.Rows(i).Cells(21).Value = "" : 清單4_dgv.Rows(i).Cells(22).Value = "" 清單4_dgv.Rows(i).Cells(23).Value = "" : 清單4_dgv.Rows(i).Cells(24).Value = "" : 清單4_dgv.Rows(i).Cells(25).Value = "" : 清單4_dgv.Rows(i).Cells(26).Value = "" 清單4_dgv.Rows(i).Cells(27).Value = "" : 清單4_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第4周() For i As Integer = 0 To 清單5_dgv.Rows.Count - 1 清單5_dgv.Rows(i).Cells(15).Value = "" : 清單5_dgv.Rows(i).Cells(16).Value = "" : 清單5_dgv.Rows(i).Cells(17).Value = "" : 清單5_dgv.Rows(i).Cells(18).Value = "" 清單5_dgv.Rows(i).Cells(19).Value = "" : 清單5_dgv.Rows(i).Cells(20).Value = "" : 清單5_dgv.Rows(i).Cells(21).Value = "" : 清單5_dgv.Rows(i).Cells(22).Value = "" 清單5_dgv.Rows(i).Cells(23).Value = "" : 清單5_dgv.Rows(i).Cells(24).Value = "" : 清單5_dgv.Rows(i).Cells(25).Value = "" : 清單5_dgv.Rows(i).Cells(26).Value = "" 清單5_dgv.Rows(i).Cells(27).Value = "" : 清單5_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第5周() For i As Integer = 0 To 清單6_dgv.Rows.Count - 1 清單6_dgv.Rows(i).Cells(15).Value = "" : 清單6_dgv.Rows(i).Cells(16).Value = "" : 清單6_dgv.Rows(i).Cells(17).Value = "" : 清單6_dgv.Rows(i).Cells(18).Value = "" 清單6_dgv.Rows(i).Cells(19).Value = "" : 清單6_dgv.Rows(i).Cells(20).Value = "" : 清單6_dgv.Rows(i).Cells(21).Value = "" : 清單6_dgv.Rows(i).Cells(22).Value = "" 清單6_dgv.Rows(i).Cells(23).Value = "" : 清單6_dgv.Rows(i).Cells(24).Value = "" : 清單6_dgv.Rows(i).Cells(25).Value = "" : 清單6_dgv.Rows(i).Cells(26).Value = "" 清單6_dgv.Rows(i).Cells(27).Value = "" : 清單6_dgv.Rows(i).Cells(28).Value = "" Next : AUTO第6周() : 取得總數_nud.Value = 0 Dim AAS As String = "" : PA45 = 星1_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 If 清單1_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單1_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星1_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next : SQL_虛擬考勤明細表新增() AAS = "" : PA45 = 星8_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 If 清單2_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單2_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星8_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next : SQL_虛擬考勤明細表新增() AAS = "" : PA45 = 星15_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單3_dgv.Rows.Count - 1 If 清單3_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單3_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星15_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next : SQL_虛擬考勤明細表新增() AAS = "" : PA45 = 星22_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單4_dgv.Rows.Count - 1 If 清單4_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單4_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星22_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next : SQL_虛擬考勤明細表新增() AAS = "" : PA45 = 星29_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單5_dgv.Rows.Count - 1 If 清單5_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單5_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星29_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next : SQL_虛擬考勤明細表新增() AAS = "" : PA45 = 星36_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單6_dgv.Rows.Count - 1 If 清單6_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單6_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星36_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next : SQL_虛擬考勤明細表新增() For i As Integer = 0 To 控制表_dgv.Rows.Count - 1 PA = 控制表_dgv.Rows(i).Cells(0).Value : SQL_採購單詢價_控制刪除() : SQL_採購單詢價_明細刪除() Next : PA = "" : 採購當案牘取() End If End If End Sub Private Sub 考勤表_bt_Click(sender As Object, e As EventArgs) Handles 考勤表_bt.Click 清單1_dgv.Columns(12).Visible = True : For i As Integer = 15 To 28 : 清單1_dgv.Columns(i).Visible = True : Next 清單1_dgv.Columns(13).Visible = False : For i As Integer = 29 To 48 : 清單1_dgv.Columns(i).Visible = False : Next 清單2_dgv.Columns(12).Visible = True : For i As Integer = 15 To 28 : 清單2_dgv.Columns(i).Visible = True : Next 清單2_dgv.Columns(13).Visible = False : For i As Integer = 29 To 48 : 清單2_dgv.Columns(i).Visible = False : Next 清單3_dgv.Columns(12).Visible = True : For i As Integer = 15 To 28 : 清單3_dgv.Columns(i).Visible = True : Next 清單3_dgv.Columns(13).Visible = False : For i As Integer = 29 To 48 : 清單3_dgv.Columns(i).Visible = False : Next 清單4_dgv.Columns(12).Visible = True : For i As Integer = 15 To 28 : 清單4_dgv.Columns(i).Visible = True : Next 清單4_dgv.Columns(13).Visible = False : For i As Integer = 29 To 48 : 清單4_dgv.Columns(i).Visible = False : Next 清單5_dgv.Columns(12).Visible = True : For i As Integer = 15 To 28 : 清單5_dgv.Columns(i).Visible = True : Next 清單5_dgv.Columns(13).Visible = False : For i As Integer = 29 To 48 : 清單5_dgv.Columns(i).Visible = False : Next 清單6_dgv.Columns(12).Visible = True : For i As Integer = 15 To 28 : 清單6_dgv.Columns(i).Visible = True : Next 清單6_dgv.Columns(13).Visible = False : For i As Integer = 29 To 48 : 清單6_dgv.Columns(i).Visible = False : Next End Sub Private Sub 薪資表_bt_Click(sender As Object, e As EventArgs) Handles 薪資表_bt.Click 清單1_dgv.Columns(12).Visible = False : For i As Integer = 15 To 28 : 清單1_dgv.Columns(i).Visible = False : Next 清單1_dgv.Columns(13).Visible = True : For i As Integer = 29 To 48 : 清單1_dgv.Columns(i).Visible = True : Next 清單2_dgv.Columns(12).Visible = False : For i As Integer = 15 To 28 : 清單2_dgv.Columns(i).Visible = False : Next 清單2_dgv.Columns(13).Visible = True : For i As Integer = 29 To 48 : 清單2_dgv.Columns(i).Visible = True : Next 清單3_dgv.Columns(12).Visible = False : For i As Integer = 15 To 28 : 清單3_dgv.Columns(i).Visible = False : Next 清單3_dgv.Columns(13).Visible = True : For i As Integer = 29 To 48 : 清單3_dgv.Columns(i).Visible = True : Next 清單4_dgv.Columns(12).Visible = False : For i As Integer = 15 To 28 : 清單4_dgv.Columns(i).Visible = False : Next 清單4_dgv.Columns(13).Visible = True : For i As Integer = 29 To 48 : 清單4_dgv.Columns(i).Visible = True : Next 清單5_dgv.Columns(12).Visible = False : For i As Integer = 15 To 28 : 清單5_dgv.Columns(i).Visible = False : Next 清單5_dgv.Columns(13).Visible = True : For i As Integer = 29 To 48 : 清單5_dgv.Columns(i).Visible = True : Next 清單6_dgv.Columns(12).Visible = False : For i As Integer = 15 To 28 : 清單6_dgv.Columns(i).Visible = False : Next 清單6_dgv.Columns(13).Visible = True : For i As Integer = 29 To 48 : 清單6_dgv.Columns(i).Visible = True : Next End Sub Private Sub 虛擬存檔_bt_Click(sender As Object, e As EventArgs) Handles 虛擬存檔_bt.Click If 薪資計算_ch.Checked = False And 採購計算_ch.Checked = False Then : MGB(對話框(0), 1) : 虛擬存檔() : 首次開啟 = False : Exit Sub : End If If 薪資計算_ch.Checked = True Then If 群組1_cb.Text <> "HARIAN GROUP" Then : MGB(系統語言字典("H611-110-" & 語言), 1) : 首次開啟 = False : Else PA25 = 星1_bt.Text : Set_虛擬表() : Dim DDF As Integer '-------------------------虛擬考勤-------------------------------------------------------------------------------------------------------------------- For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 For ii As Integer = 0 To 虛擬表_dgv.Rows.Count - 1 If 清單1_dgv.Rows(i).Cells(50).Value.ToString = 虛擬表_dgv.Rows(ii).Cells(0).Value.ToString Then If 月份2_cb.Text <> Strings.Mid(星1_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(15).Value = 虛擬表_dgv.Rows(ii).Cells(1).Value.ToString : 清單1_dgv.Rows(i).Cells(16).Value = 虛擬表_dgv.Rows(ii).Cells(2).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星2_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(17).Value = 虛擬表_dgv.Rows(ii).Cells(3).Value.ToString : 清單1_dgv.Rows(i).Cells(18).Value = 虛擬表_dgv.Rows(ii).Cells(4).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星3_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(19).Value = 虛擬表_dgv.Rows(ii).Cells(5).Value.ToString : 清單1_dgv.Rows(i).Cells(20).Value = 虛擬表_dgv.Rows(ii).Cells(6).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星4_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(21).Value = 虛擬表_dgv.Rows(ii).Cells(7).Value.ToString : 清單1_dgv.Rows(i).Cells(22).Value = 虛擬表_dgv.Rows(ii).Cells(8).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星5_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(23).Value = 虛擬表_dgv.Rows(ii).Cells(9).Value.ToString : 清單1_dgv.Rows(i).Cells(24).Value = 虛擬表_dgv.Rows(ii).Cells(10).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星6_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(25).Value = 虛擬表_dgv.Rows(ii).Cells(11).Value.ToString : 清單1_dgv.Rows(i).Cells(26).Value = 虛擬表_dgv.Rows(ii).Cells(12).Value.ToString End If If 月份2_cb.Text <> Strings.Mid(星7_bt.Text, 6, 2) Then 清單1_dgv.Rows(i).Cells(27).Value = 虛擬表_dgv.Rows(ii).Cells(13).Value.ToString : 清單1_dgv.Rows(i).Cells(28).Value = 虛擬表_dgv.Rows(ii).Cells(14).Value.ToString End If End If Next Next : AUTO第1周() Dim 可以存檔 As Boolean = False For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 If 清單1_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : 可以存檔 = True : End If Next If 可以存檔 = True Then Dim AAS As String = "" : PA45 = 星1_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 If 清單1_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單1_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星1_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next SQL_虛擬考勤明細表新增() End If : 可以存檔 = False For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 If 清單2_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : 可以存檔 = True : End If Next If 可以存檔 = True Then Dim AAS As String = "" : PA45 = 星8_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 If 清單2_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單2_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單2_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單2_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星8_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next SQL_虛擬考勤明細表新增() End If : 可以存檔 = False For i As Integer = 0 To 清單3_dgv.Rows.Count - 1 If 清單3_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : 可以存檔 = True : End If Next If 可以存檔 = True Then Dim AAS As String = "" : PA45 = 星15_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單3_dgv.Rows.Count - 1 If 清單3_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單3_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單3_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單3_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星15_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next SQL_虛擬考勤明細表新增() End If : 可以存檔 = False For i As Integer = 0 To 清單4_dgv.Rows.Count - 1 If 清單4_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : 可以存檔 = True : End If Next If 可以存檔 = True Then Dim AAS As String = "" : PA45 = 星22_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單4_dgv.Rows.Count - 1 If 清單4_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單4_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單4_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單4_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星22_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next SQL_虛擬考勤明細表新增() End If : 可以存檔 = False For i As Integer = 0 To 清單5_dgv.Rows.Count - 1 If 清單5_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : 可以存檔 = True : End If Next If 可以存檔 = True Then Dim AAS As String = "" : PA45 = 星29_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單5_dgv.Rows.Count - 1 If 清單5_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單5_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單5_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單5_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星29_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next SQL_虛擬考勤明細表新增() End If : 可以存檔 = False For i As Integer = 0 To 清單6_dgv.Rows.Count - 1 If 清單6_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : 可以存檔 = True : End If Next If 可以存檔 = True Then Dim AAS As String = "" : PA45 = 星36_bt.Text : SQL_虛擬考勤明細表刪除() : DDF = -1 For i As Integer = 0 To 清單6_dgv.Rows.Count - 1 If 清單6_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(25).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(26).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(27).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(28).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單6_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : DDF += 1 AAS = "(N'" & 清單6_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(25).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單6_dgv.Rows(i).Cells(28).Value.ToString & "', N'" & 星36_bt.Text & "')" End If : If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If Next SQL_虛擬考勤明細表新增() End If Dim HGF As Integer = 沖帳金額_nud.Value Set_使用者清單() : 沖帳金額_nud.Value = HGF End If End If If 採購計算_ch.Checked = True Then Dim AAS As String : Dim DDF As Integer : DDF = -1 For i As Integer = 0 To 控制表_dgv.Rows.Count - 1 If 控制表_dgv.Rows(i).Cells(0).Value.ToString <> "" Then : DDF += 1 AAS = "(N'" & 控制表_dgv.Rows(i).Cells(0).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(1).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(2).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(3).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(4).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(5).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(6).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(7).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(8).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(9).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(10).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(11).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(12).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(13).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(14).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(16).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(19).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(22).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 控制表_dgv.Rows(i).Cells(25).Value.ToString & "', N'True')" If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If End If Next : SQL_虛擬採購控制表新增() DDF = -1 For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 If 明細表_dgv.Rows(i).Cells(0).Value.ToString <> "" Then : DDF += 1 AAS = "(N'" & 明細表_dgv.Rows(i).Cells(0).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(1).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(2).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(3).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(4).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(5).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(6).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(7).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(8).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(9).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(10).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(11).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(12).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(13).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(14).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 明細表_dgv.Rows(i).Cells(16).Value.ToString & "')" If DDF = -1 Then : ElseIf DDF = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If End If Next : SQL_虛擬採購明細表新增() End If : 虛擬存檔() MGB(系統語言字典("H509-126-" & 語言), 1) : 首次開啟 = False End Sub Private Sub 虛擬存檔() PA = 年份2_cb.Text & 月份2_cb.Text : PA1 = 取得總數2_nud.Value : SQL_財務零用金紀錄_查詢() If dr.Read Then : SQL_財務零用金紀錄_修改() : Else : SQL_財務零用金紀錄_新增() : End If End Sub End Class