暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

人員薪資_實際.vb 151KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361
  1. Option Explicit On
  2. Imports System.IO
  3. Public Class 人員薪資_實際
  4. Dim 對話框(17) As String
  5. Dim 間隔1, 時長, 總時, VBN, CBN, GN1, 之前選擇 As Integer
  6. Dim 時段(6), 計算(6), X1, AUTO時, AUTO舊1, AUTO舊2 As String
  7. Dim 本周周一 As Date
  8. Dim xlApp As Application
  9. Private Function IsVerticalScrollBarVisible(dgv As DataGridView) As Boolean
  10. Return dgv.FirstDisplayedScrollingRowIndex > 0 OrElse dgv.DisplayedRowCount(False) < dgv.Rows.Count
  11. End Function
  12. Private Sub 語言轉換讀取()
  13. If 系統語言 = "繁體中文" Then : 語言 = "CH" : ElseIf 系統語言 = "English" Then : 語言 = "EN" : ElseIf 系統語言 = "Indonesian" Then : 語言 = "IN" : End If
  14. 對話框(16) = 系統語言字典("H609-141-" & 語言) : 對話框(17) = 系統語言字典("H609-142-" & 語言) : 表頭(0) = 系統語言字典("H601-103-" & 語言)
  15. 表頭(1) = 系統語言字典("H602-104-" & 語言) : 表頭(2) = 系統語言字典("H609-107-" & 語言) : 表頭(3) = 系統語言字典("H609-108-" & 語言)
  16. 表頭(4) = 系統語言字典("H609-109-" & 語言) : 表頭(5) = 系統語言字典("H609-110-" & 語言) : 表頭(6) = 系統語言字典("H609-111-" & 語言)
  17. 表頭(7) = 系統語言字典("H609-112-" & 語言) : 表頭(8) = 系統語言字典("H609-113-" & 語言) : 表頭(9) = 系統語言字典("H609-114-" & 語言)
  18. 表頭(10) = 系統語言字典("H609-115-" & 語言) : 表頭(11) = 系統語言字典("H609-116-" & 語言) : 表頭(12) = 系統語言字典("H609-117-" & 語言)
  19. 表頭(13) = 系統語言字典("H609-118-" & 語言) : 表頭(14) = 系統語言字典("H609-119-" & 語言) : 表頭(15) = 系統語言字典("H609-120-" & 語言)
  20. 表頭(16) = 系統語言字典("H609-123-" & 語言) : 表頭(17) = 系統語言字典("H609-124-" & 語言) : 表頭(18) = 系統語言字典("H609-128-" & 語言)
  21. 表頭(19) = 系統語言字典("H601-108-" & 語言) : 表頭(20) = 系統語言字典("H609-129-" & 語言) : 表頭(21) = 系統語言字典("H609-125-" & 語言)
  22. 表頭(22) = 系統語言字典("H607-103-" & 語言) : 表頭(23) = 系統語言字典("H609-130-" & 語言) : 表頭(24) = 系統語言字典("H609-131-" & 語言)
  23. 表頭(25) = 系統語言字典("H609-132-" & 語言) : 表頭(26) = 系統語言字典("H611-105-" & 語言) : 表頭(27) = 系統語言字典("H611-106-" & 語言)
  24. 表頭(28) = 系統語言字典("H611-107-" & 語言) : 表頭(29) = 系統語言字典("H611-108-" & 語言) : 工人_ch.Text = 系統語言字典("G000-159-" & 語言)
  25. 對話框(0) = 系統語言字典("H611-100-" & 語言) : 對話框(1) = 系統語言字典("H611-101-" & 語言) : 對話框(2) = 系統語言字典("H611-102-" & 語言)
  26. 對話框(3) = 系統語言字典("H611-103-" & 語言) : 對話框(4) = 系統語言字典("H611-104-" & 語言) : 表頭(30) = 系統語言字典("H611-109-" & 語言)
  27. DA1_bt.Text = 系統語言字典("H611-111-" & 語言) : DA2_bt.Text = 系統語言字典("H611-112-" & 語言) : DA3_bt.Text = 系統語言字典("H611-113-" & 語言)
  28. 群組輸入_ch.Text = 系統語言字典("H611-114-" & 語言) : 群組選擇_ch.Text = 系統語言字典("H611-115-" & 語言) : 考勤表_bt.Text = 系統語言字典("H611-116-" & 語言)
  29. 薪資表_bt.Text = 系統語言字典("H611-117-" & 語言) : Label11.Text = 系統語言字典("H611-118-" & 語言) : Label1.Text = 系統語言字典("H611-119-" & 語言)
  30. Label7.Text = 系統語言字典("H609-124-" & 語言) : Label1.Text = 系統語言字典("H611-120-" & 語言)
  31. 表頭(64) = 系統語言字典("H611-122-" & 語言) : 表頭(31) = 系統語言字典("H611-123-" & 語言) : 表頭(32) = 系統語言字典("H611-124-" & 語言)
  32. 表頭(33) = 系統語言字典("H611-125-" & 語言) : 表頭(34) = 系統語言字典("H611-126-" & 語言) : 表頭(35) = 系統語言字典("H611-127-" & 語言)
  33. 表頭(36) = 系統語言字典("H611-128-" & 語言) : 表頭(37) = 系統語言字典("H611-129-" & 語言) : 表頭(38) = 系統語言字典("H611-130-" & 語言)
  34. 表頭(39) = 系統語言字典("H611-131-" & 語言) : 表頭(40) = 系統語言字典("H611-132-" & 語言) : 表頭(41) = 系統語言字典("H611-133-" & 語言)
  35. 表頭(42) = 系統語言字典("H611-134-" & 語言) : 表頭(43) = 系統語言字典("H611-135-" & 語言) : 表頭(44) = 系統語言字典("H611-136-" & 語言)
  36. 表頭(45) = 系統語言字典("H611-137-" & 語言) : 表頭(46) = 系統語言字典("H611-138-" & 語言) : 表頭(47) = 系統語言字典("H611-139-" & 語言)
  37. 表頭(48) = 系統語言字典("H611-140-" & 語言) : 表頭(49) = 系統語言字典("H611-141-" & 語言) : 表頭(50) = 系統語言字典("H611-142-" & 語言)
  38. 表頭(51) = 系統語言字典("H611-143-" & 語言) : 表頭(52) = 系統語言字典("H611-144-" & 語言) : 表頭(53) = 系統語言字典("H611-145-" & 語言)
  39. 表頭(54) = 系統語言字典("H611-146-" & 語言) : 表頭(55) = 系統語言字典("H611-147-" & 語言) : 表頭(56) = 系統語言字典("H611-148-" & 語言)
  40. 表頭(57) = 系統語言字典("H611-149-" & 語言) : 表頭(58) = 系統語言字典("H611-150-" & 語言) : 表頭(59) = 系統語言字典("H611-151-" & 語言)
  41. 表頭(60) = 系統語言字典("H611-152-" & 語言) : 表頭(61) = 系統語言字典("H611-153-" & 語言) : 表頭(62) = 系統語言字典("H611-154-" & 語言)
  42. 表頭(63) = 系統語言字典("H611-155-" & 語言)
  43. End Sub
  44. Private Sub Set_使用者清單()
  45. Set_總清單() : Set_虛擬表() : Dim ds1, ds2 As New DataSet
  46. 清單1_dgv.DataSource = Nothing : ds1.Clear()
  47. 清單1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  48. 清單1_dgv.ColumnHeadersHeight = 45 : 清單1_dgv.AllowUserToAddRows = False : 清單1_dgv.RowTemplate.Height = 35
  49. 合計_dgv.DataSource = Nothing : ds2.Clear()
  50. 合計_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  51. 合計_dgv.ColumnHeadersHeight = 45 : 合計_dgv.AllowUserToAddRows = False : 合計_dgv.RowTemplate.Height = 35
  52. 合計_dgv.ColumnHeadersVisible = False
  53. If 群組1_cb.Text = "HARIAN GROUP" Then
  54. SQL5 = ""
  55. SQL4 = "[HX-PGS-MSN].dbo.人員資料表.員工代碼"
  56. Else
  57. SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 NOT LIKE 'HARIAN GROUP'"
  58. SQL4 = "[HX-PGS-MSN].dbo.人員資料表.部門名稱,使用者權限管理表.姓名"
  59. End If
  60. PA25 = 地區_cb.SelectedIndex : SQL3 = "" : PA14 = 級別_cb.Text : PA19 = 群組_cb.Text
  61. SQL_人員薪資表1() : da.Fill(ds1) : 清單1_dgv.DataSource = ds1.Tables(0) : conn.Close()
  62. SQL_人員薪資表2() : da.Fill(ds2) : 合計_dgv.DataSource = ds2.Tables(0) : conn.Close() : PA25 = ""
  63. 清單1_dgv.Columns("Save.").FillWeight = 40 : 清單1_dgv.Columns(12).Visible = True : 清單1_dgv.Columns(50).Visible = False : 清單1_dgv.Columns(0).FillWeight = 120
  64. 清單1_dgv.Columns(4).FillWeight = 25
  65. 合計_dgv.Columns("Save.").FillWeight = 40 : 合計_dgv.Columns(12).Visible = True : 合計_dgv.Columns(50).Visible = False : 合計_dgv.Columns(0).FillWeight = 120
  66. 合計_dgv.Columns(4).FillWeight = 25
  67. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  68. If 清單1_dgv.Rows(i).Cells(12).Value.ToString = "" Then : 清單1_dgv.Rows(i).Cells(12).Value = 0 : End If
  69. Next
  70. 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
  71. 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
  72. 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
  73. For i As Integer = 1 To 50 : 清單1_dgv.Columns(i).ReadOnly = True : Next
  74. If 群組選擇_ch.Checked = True Then : 清單1_dgv.Columns(0).ReadOnly = True : Else : 清單1_dgv.Columns(0).ReadOnly = False : End If
  75. 清單1_dgv.Columns(12).ReadOnly = False
  76. For i As Integer = 2 To 14 : 合計_dgv.Columns(i).Visible = False : Next : For i As Integer = 29 To 48 : 合計_dgv.Columns(i).Visible = False : Next
  77. For i As Integer = 15 To 28 : 合計_dgv.Columns(i).FillWeight = 60 : Next : For i As Integer = 29 To 34 : 合計_dgv.Columns(i).FillWeight = 60 : Next
  78. For i As Integer = 35 To 48 : 合計_dgv.Columns(i).FillWeight = 40 : Next : 合計_dgv.Columns(12).Visible = True : 合計_dgv.Columns(4).Visible = True
  79. For i As Integer = 1 To 50 : 合計_dgv.Columns(i).ReadOnly = True : Next
  80. If 群組選擇_ch.Checked = True Then : 合計_dgv.Columns(0).ReadOnly = True : Else : 合計_dgv.Columns(0).ReadOnly = False : End If
  81. 合計_dgv.Columns(12).ReadOnly = False
  82. 清單1_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 清單1_dgv.Columns(13).DefaultCellStyle.Format = "#,##0"
  83. For i As Integer = 4 To 11
  84. 清單1_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  85. 清單1_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  86. Next
  87. For i As Integer = 12 To 48
  88. 清單1_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  89. 清單1_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  90. Next
  91. If 深色風格 = False Then
  92. 清單1_dgv.Columns(15).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(16).DefaultCellStyle.ForeColor = Color.Red
  93. 清單1_dgv.Columns(17).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(18).DefaultCellStyle.ForeColor = Color.Blue
  94. 清單1_dgv.Columns(19).DefaultCellStyle.ForeColor = Color.Green : 清單1_dgv.Columns(20).DefaultCellStyle.ForeColor = Color.Green
  95. 清單1_dgv.Columns(21).DefaultCellStyle.ForeColor = Color.Coral : 清單1_dgv.Columns(22).DefaultCellStyle.ForeColor = Color.Coral
  96. 清單1_dgv.Columns(23).DefaultCellStyle.ForeColor = Color.Cyan : 清單1_dgv.Columns(24).DefaultCellStyle.ForeColor = Color.Cyan
  97. 清單1_dgv.Columns(25).DefaultCellStyle.ForeColor = Color.Salmon : 清單1_dgv.Columns(26).DefaultCellStyle.ForeColor = Color.Salmon
  98. 清單1_dgv.Columns(27).DefaultCellStyle.ForeColor = Color.SlateGray : 清單1_dgv.Columns(28).DefaultCellStyle.ForeColor = Color.SlateGray
  99. 清單1_dgv.Columns(29).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(30).DefaultCellStyle.ForeColor = Color.Red
  100. 清單1_dgv.Columns(31).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(32).DefaultCellStyle.ForeColor = Color.Blue
  101. 清單1_dgv.Columns(33).DefaultCellStyle.ForeColor = Color.Green : 清單1_dgv.Columns(34).DefaultCellStyle.ForeColor = Color.Green
  102. 清單1_dgv.Columns(35).DefaultCellStyle.ForeColor = Color.Coral : 清單1_dgv.Columns(36).DefaultCellStyle.ForeColor = Color.Coral
  103. 清單1_dgv.Columns(37).DefaultCellStyle.ForeColor = Color.Cyan : 清單1_dgv.Columns(38).DefaultCellStyle.ForeColor = Color.Cyan
  104. 清單1_dgv.Columns(39).DefaultCellStyle.ForeColor = Color.Salmon : 清單1_dgv.Columns(40).DefaultCellStyle.ForeColor = Color.Salmon
  105. 清單1_dgv.Columns(41).DefaultCellStyle.ForeColor = Color.SlateGray : 清單1_dgv.Columns(42).DefaultCellStyle.ForeColor = Color.SlateGray
  106. 清單1_dgv.Columns(43).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(44).DefaultCellStyle.ForeColor = Color.Red
  107. 清單1_dgv.Columns(45).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(46).DefaultCellStyle.ForeColor = Color.Blue
  108. 清單1_dgv.Columns(47).DefaultCellStyle.ForeColor = Color.Green : 清單1_dgv.Columns(48).DefaultCellStyle.ForeColor = Color.Green
  109. Else
  110. 清單1_dgv.Columns(15).DefaultCellStyle.ForeColor = Color.LightPink : 清單1_dgv.Columns(16).DefaultCellStyle.ForeColor = Color.LightPink
  111. 清單1_dgv.Columns(17).DefaultCellStyle.ForeColor = Color.LightBlue : 清單1_dgv.Columns(18).DefaultCellStyle.ForeColor = Color.LightBlue
  112. 清單1_dgv.Columns(19).DefaultCellStyle.ForeColor = Color.LightGreen : 清單1_dgv.Columns(20).DefaultCellStyle.ForeColor = Color.LightGreen
  113. 清單1_dgv.Columns(21).DefaultCellStyle.ForeColor = Color.LightCoral : 清單1_dgv.Columns(22).DefaultCellStyle.ForeColor = Color.LightCoral
  114. 清單1_dgv.Columns(23).DefaultCellStyle.ForeColor = Color.LightCyan : 清單1_dgv.Columns(24).DefaultCellStyle.ForeColor = Color.LightCyan
  115. 清單1_dgv.Columns(25).DefaultCellStyle.ForeColor = Color.LightSalmon : 清單1_dgv.Columns(26).DefaultCellStyle.ForeColor = Color.LightSalmon
  116. 清單1_dgv.Columns(27).DefaultCellStyle.ForeColor = Color.LightSlateGray : 清單1_dgv.Columns(28).DefaultCellStyle.ForeColor = Color.LightSlateGray
  117. 清單1_dgv.Columns(29).DefaultCellStyle.ForeColor = Color.LightPink : 清單1_dgv.Columns(30).DefaultCellStyle.ForeColor = Color.LightPink
  118. 清單1_dgv.Columns(31).DefaultCellStyle.ForeColor = Color.LightBlue : 清單1_dgv.Columns(32).DefaultCellStyle.ForeColor = Color.LightBlue
  119. 清單1_dgv.Columns(33).DefaultCellStyle.ForeColor = Color.LightGreen : 清單1_dgv.Columns(34).DefaultCellStyle.ForeColor = Color.LightGreen
  120. 清單1_dgv.Columns(35).DefaultCellStyle.ForeColor = Color.LightCoral : 清單1_dgv.Columns(36).DefaultCellStyle.ForeColor = Color.LightCoral
  121. 清單1_dgv.Columns(37).DefaultCellStyle.ForeColor = Color.LightCyan : 清單1_dgv.Columns(38).DefaultCellStyle.ForeColor = Color.LightCyan
  122. 清單1_dgv.Columns(39).DefaultCellStyle.ForeColor = Color.LightSalmon : 清單1_dgv.Columns(40).DefaultCellStyle.ForeColor = Color.LightSalmon
  123. 清單1_dgv.Columns(41).DefaultCellStyle.ForeColor = Color.LightSlateGray : 清單1_dgv.Columns(42).DefaultCellStyle.ForeColor = Color.LightSlateGray
  124. 清單1_dgv.Columns(43).DefaultCellStyle.ForeColor = Color.LightPink : 清單1_dgv.Columns(44).DefaultCellStyle.ForeColor = Color.LightPink
  125. 清單1_dgv.Columns(45).DefaultCellStyle.ForeColor = Color.LightBlue : 清單1_dgv.Columns(46).DefaultCellStyle.ForeColor = Color.LightBlue
  126. 清單1_dgv.Columns(47).DefaultCellStyle.ForeColor = Color.LightGreen : 清單1_dgv.Columns(48).DefaultCellStyle.ForeColor = Color.LightGreen
  127. End If : 清單1_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  128. 合計_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 合計_dgv.Columns(13).DefaultCellStyle.Format = "#,##0"
  129. For i As Integer = 4 To 11
  130. 合計_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  131. 合計_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  132. Next
  133. For i As Integer = 12 To 48
  134. 合計_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  135. 合計_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  136. Next
  137. If 深色風格 = False Then
  138. 合計_dgv.Columns(15).DefaultCellStyle.ForeColor = Color.Red : 合計_dgv.Columns(16).DefaultCellStyle.ForeColor = Color.Red
  139. 合計_dgv.Columns(17).DefaultCellStyle.ForeColor = Color.Blue : 合計_dgv.Columns(18).DefaultCellStyle.ForeColor = Color.Blue
  140. 合計_dgv.Columns(19).DefaultCellStyle.ForeColor = Color.Green : 合計_dgv.Columns(20).DefaultCellStyle.ForeColor = Color.Green
  141. 合計_dgv.Columns(21).DefaultCellStyle.ForeColor = Color.Coral : 合計_dgv.Columns(22).DefaultCellStyle.ForeColor = Color.Coral
  142. 合計_dgv.Columns(23).DefaultCellStyle.ForeColor = Color.Cyan : 合計_dgv.Columns(24).DefaultCellStyle.ForeColor = Color.Cyan
  143. 合計_dgv.Columns(25).DefaultCellStyle.ForeColor = Color.Salmon : 合計_dgv.Columns(26).DefaultCellStyle.ForeColor = Color.Salmon
  144. 合計_dgv.Columns(27).DefaultCellStyle.ForeColor = Color.SlateGray : 合計_dgv.Columns(28).DefaultCellStyle.ForeColor = Color.SlateGray
  145. 合計_dgv.Columns(29).DefaultCellStyle.ForeColor = Color.Red : 合計_dgv.Columns(30).DefaultCellStyle.ForeColor = Color.Red
  146. 合計_dgv.Columns(31).DefaultCellStyle.ForeColor = Color.Blue : 合計_dgv.Columns(32).DefaultCellStyle.ForeColor = Color.Blue
  147. 合計_dgv.Columns(33).DefaultCellStyle.ForeColor = Color.Green : 合計_dgv.Columns(34).DefaultCellStyle.ForeColor = Color.Green
  148. 合計_dgv.Columns(35).DefaultCellStyle.ForeColor = Color.Coral : 合計_dgv.Columns(36).DefaultCellStyle.ForeColor = Color.Coral
  149. 合計_dgv.Columns(37).DefaultCellStyle.ForeColor = Color.Cyan : 合計_dgv.Columns(38).DefaultCellStyle.ForeColor = Color.Cyan
  150. 合計_dgv.Columns(39).DefaultCellStyle.ForeColor = Color.Salmon : 合計_dgv.Columns(40).DefaultCellStyle.ForeColor = Color.Salmon
  151. 合計_dgv.Columns(41).DefaultCellStyle.ForeColor = Color.SlateGray : 合計_dgv.Columns(42).DefaultCellStyle.ForeColor = Color.SlateGray
  152. 合計_dgv.Columns(43).DefaultCellStyle.ForeColor = Color.Red : 合計_dgv.Columns(44).DefaultCellStyle.ForeColor = Color.Red
  153. 合計_dgv.Columns(45).DefaultCellStyle.ForeColor = Color.Blue : 合計_dgv.Columns(46).DefaultCellStyle.ForeColor = Color.Blue
  154. 合計_dgv.Columns(47).DefaultCellStyle.ForeColor = Color.Green : 合計_dgv.Columns(48).DefaultCellStyle.ForeColor = Color.Green
  155. Else
  156. 合計_dgv.Columns(15).DefaultCellStyle.ForeColor = Color.LightPink : 合計_dgv.Columns(16).DefaultCellStyle.ForeColor = Color.LightPink
  157. 合計_dgv.Columns(17).DefaultCellStyle.ForeColor = Color.LightBlue : 合計_dgv.Columns(18).DefaultCellStyle.ForeColor = Color.LightBlue
  158. 合計_dgv.Columns(19).DefaultCellStyle.ForeColor = Color.LightGreen : 合計_dgv.Columns(20).DefaultCellStyle.ForeColor = Color.LightGreen
  159. 合計_dgv.Columns(21).DefaultCellStyle.ForeColor = Color.LightCoral : 合計_dgv.Columns(22).DefaultCellStyle.ForeColor = Color.LightCoral
  160. 合計_dgv.Columns(23).DefaultCellStyle.ForeColor = Color.LightCyan : 合計_dgv.Columns(24).DefaultCellStyle.ForeColor = Color.LightCyan
  161. 合計_dgv.Columns(25).DefaultCellStyle.ForeColor = Color.LightSalmon : 合計_dgv.Columns(26).DefaultCellStyle.ForeColor = Color.LightSalmon
  162. 合計_dgv.Columns(27).DefaultCellStyle.ForeColor = Color.LightSlateGray : 合計_dgv.Columns(28).DefaultCellStyle.ForeColor = Color.LightSlateGray
  163. 合計_dgv.Columns(29).DefaultCellStyle.ForeColor = Color.LightPink : 合計_dgv.Columns(30).DefaultCellStyle.ForeColor = Color.LightPink
  164. 合計_dgv.Columns(31).DefaultCellStyle.ForeColor = Color.LightBlue : 合計_dgv.Columns(32).DefaultCellStyle.ForeColor = Color.LightBlue
  165. 合計_dgv.Columns(33).DefaultCellStyle.ForeColor = Color.LightGreen : 合計_dgv.Columns(34).DefaultCellStyle.ForeColor = Color.LightGreen
  166. 合計_dgv.Columns(35).DefaultCellStyle.ForeColor = Color.LightCoral : 合計_dgv.Columns(36).DefaultCellStyle.ForeColor = Color.LightCoral
  167. 合計_dgv.Columns(37).DefaultCellStyle.ForeColor = Color.LightCyan : 合計_dgv.Columns(38).DefaultCellStyle.ForeColor = Color.LightCyan
  168. 合計_dgv.Columns(39).DefaultCellStyle.ForeColor = Color.LightSalmon : 合計_dgv.Columns(40).DefaultCellStyle.ForeColor = Color.LightSalmon
  169. 合計_dgv.Columns(41).DefaultCellStyle.ForeColor = Color.LightSlateGray : 合計_dgv.Columns(42).DefaultCellStyle.ForeColor = Color.LightSlateGray
  170. 合計_dgv.Columns(43).DefaultCellStyle.ForeColor = Color.LightPink : 合計_dgv.Columns(44).DefaultCellStyle.ForeColor = Color.LightPink
  171. 合計_dgv.Columns(45).DefaultCellStyle.ForeColor = Color.LightBlue : 合計_dgv.Columns(46).DefaultCellStyle.ForeColor = Color.LightBlue
  172. 合計_dgv.Columns(47).DefaultCellStyle.ForeColor = Color.LightGreen : 合計_dgv.Columns(48).DefaultCellStyle.ForeColor = Color.LightGreen
  173. End If : 合計_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  174. Dim mycol1 As DataGridViewImageColumn = 清單1_dgv.Columns("Save.") : mycol1.ImageLayout = DataGridViewImageCellLayout.Zoom
  175. For I As Integer = 0 To 清單1_dgv.Rows.Count - 1
  176. 清單1_dgv.Rows(I).Cells("Save.").Value = My.Resources.SAVER
  177. Next
  178. '-------------------------合計DGV變形----------------------------------------------------------------------------------------------------------------------
  179. If IsVerticalScrollBarVisible(清單1_dgv) Then : 合計_dgv.Size = New Size(清單1_dgv.Size.Width - 17, 合計_dgv.Size.Height)
  180. Else : 合計_dgv.Size = New Size(清單1_dgv.Size.Width, 合計_dgv.Size.Height) : End If
  181. 合計_dgv.Rows(0).Cells(0).Value = "" : 合計_dgv.Rows(0).Cells(1).Value = "" : 合計_dgv.Rows(0).Cells(4).Value = "" : 合計_dgv.Rows(0).Cells(12).Value = "0"
  182. 合計_dgv.Rows(0).Cells(13).Value = "0" : 合計_dgv.Rows(0).Cells(15).Value = "" : 合計_dgv.Rows(0).Cells(16).Value = "" : 合計_dgv.Rows(0).Cells(17).Value = ""
  183. 合計_dgv.Rows(0).Cells(18).Value = "" : 合計_dgv.Rows(0).Cells(19).Value = "" : 合計_dgv.Rows(0).Cells(20).Value = "" : 合計_dgv.Rows(0).Cells(21).Value = ""
  184. 合計_dgv.Rows(0).Cells(22).Value = "" : 合計_dgv.Rows(0).Cells(23).Value = "" : 合計_dgv.Rows(0).Cells(24).Value = "" : 合計_dgv.Rows(0).Cells(25).Value = ""
  185. 合計_dgv.Rows(0).Cells(26).Value = "" : 合計_dgv.Rows(0).Cells(27).Value = "" : 合計_dgv.Rows(0).Cells(28).Value = "" : 合計_dgv.Rows(0).Cells(29).Value = "0"
  186. 合計_dgv.Rows(0).Cells(30).Value = "0" : 合計_dgv.Rows(0).Cells(31).Value = "" : 合計_dgv.Rows(0).Cells(32).Value = "" : 合計_dgv.Rows(0).Cells(33).Value = "0"
  187. 合計_dgv.Rows(0).Cells(34).Value = "0" : 合計_dgv.Rows(0).Cells(35).Value = "0" : 合計_dgv.Rows(0).Cells(36).Value = "0" : 合計_dgv.Rows(0).Cells(37).Value = "0"
  188. 合計_dgv.Rows(0).Cells(38).Value = "0" : 合計_dgv.Rows(0).Cells(39).Value = "0" : 合計_dgv.Rows(0).Cells(40).Value = "0" : 合計_dgv.Rows(0).Cells(41).Value = "0"
  189. 合計_dgv.Rows(0).Cells(42).Value = "0" : 合計_dgv.Rows(0).Cells(43).Value = "0" : 合計_dgv.Rows(0).Cells(44).Value = "0" : 合計_dgv.Rows(0).Cells(45).Value = "0"
  190. 合計_dgv.Rows(0).Cells(46).Value = "0" : 合計_dgv.Rows(0).Cells(47).Value = "0" : 合計_dgv.Rows(0).Cells(48).Value = "0"
  191. 合計_dgv.Rows(0).Cells("Save.").Value = My.Resources.NULL1
  192. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  193. '-------------------------實際考勤--------------------------------------------------------------------------------------------------------------------
  194. 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
  195. 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
  196. '-------------------------清空資料取得預設值--------------------------------------------------------------------------------------------------------------------
  197. For FF As Integer = 15 To 48 : 清單1_dgv.Rows(i).Cells(FF).Value = "" : Next
  198. '-------------------------計算週考勤表--------------------------------------------------------------------------------------------------------------------
  199. For II As Integer = 0 To 總清單_dgv.Rows.Count - 1
  200. If 清單1_dgv.Rows(i).Cells("ID卡號").Value.ToString = 總清單_dgv.Rows(II).Cells("ID卡號").Value.ToString Then
  201. '-------------------------計算星期一--------------------------------------------------------------------------------------------------------------------
  202. If 月份2_cb.Text = Strings.Mid(星1_bt.Text, 6, 2) Then
  203. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星1_bt.Text Then
  204. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  205. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  206. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  207. 清單1_dgv.Rows(i).Cells(15).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  208. 清單1_dgv.Rows(i).Cells(16).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  209. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  210. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  211. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  212. 清單1_dgv.Rows(i).Cells(15).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  213. 清單1_dgv.Rows(i).Cells(16).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  214. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  215. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  216. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  217. 清單1_dgv.Rows(i).Cells(15).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  218. 清單1_dgv.Rows(i).Cells(16).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  219. End If
  220. End If
  221. End If
  222. '-------------------------計算星期二--------------------------------------------------------------------------------------------------------------------
  223. If 月份2_cb.Text = Strings.Mid(星2_bt.Text, 6, 2) Then
  224. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星2_bt.Text Then
  225. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  226. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  227. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  228. 清單1_dgv.Rows(i).Cells(17).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  229. 清單1_dgv.Rows(i).Cells(18).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  230. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  231. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  232. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  233. 清單1_dgv.Rows(i).Cells(17).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  234. 清單1_dgv.Rows(i).Cells(18).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  235. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  236. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  237. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  238. 清單1_dgv.Rows(i).Cells(17).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  239. 清單1_dgv.Rows(i).Cells(18).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  240. End If
  241. End If
  242. End If
  243. '-------------------------計算星期三--------------------------------------------------------------------------------------------------------------------
  244. If 月份2_cb.Text = Strings.Mid(星3_bt.Text, 6, 2) Then
  245. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星3_bt.Text Then
  246. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  247. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  248. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  249. 清單1_dgv.Rows(i).Cells(19).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  250. 清單1_dgv.Rows(i).Cells(20).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  251. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  252. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  253. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  254. 清單1_dgv.Rows(i).Cells(19).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  255. 清單1_dgv.Rows(i).Cells(20).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  256. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  257. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  258. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  259. 清單1_dgv.Rows(i).Cells(19).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  260. 清單1_dgv.Rows(i).Cells(20).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  261. End If
  262. End If
  263. End If
  264. '-------------------------計算星期四--------------------------------------------------------------------------------------------------------------------
  265. If 月份2_cb.Text = Strings.Mid(星4_bt.Text, 6, 2) Then
  266. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星4_bt.Text Then
  267. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  268. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  269. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  270. 清單1_dgv.Rows(i).Cells(21).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  271. 清單1_dgv.Rows(i).Cells(22).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  272. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  273. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  274. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  275. 清單1_dgv.Rows(i).Cells(21).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  276. 清單1_dgv.Rows(i).Cells(22).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  277. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  278. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  279. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  280. 清單1_dgv.Rows(i).Cells(21).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  281. 清單1_dgv.Rows(i).Cells(22).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  282. End If
  283. End If
  284. End If
  285. '-------------------------計算星期五--------------------------------------------------------------------------------------------------------------------
  286. If 月份2_cb.Text = Strings.Mid(星5_bt.Text, 6, 2) Then
  287. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星5_bt.Text Then
  288. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  289. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  290. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  291. 清單1_dgv.Rows(i).Cells(23).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  292. 清單1_dgv.Rows(i).Cells(24).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  293. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  294. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  295. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  296. 清單1_dgv.Rows(i).Cells(23).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  297. 清單1_dgv.Rows(i).Cells(24).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  298. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  299. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  300. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  301. 清單1_dgv.Rows(i).Cells(23).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  302. 清單1_dgv.Rows(i).Cells(24).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  303. End If
  304. End If
  305. End If
  306. '-------------------------計算星期六--------------------------------------------------------------------------------------------------------------------
  307. If 月份2_cb.Text = Strings.Mid(星6_bt.Text, 6, 2) Then
  308. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星6_bt.Text Then
  309. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  310. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  311. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  312. 清單1_dgv.Rows(i).Cells(25).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  313. 清單1_dgv.Rows(i).Cells(26).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  314. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  315. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  316. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  317. 清單1_dgv.Rows(i).Cells(25).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  318. 清單1_dgv.Rows(i).Cells(26).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  319. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  320. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  321. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  322. 清單1_dgv.Rows(i).Cells(25).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  323. 清單1_dgv.Rows(i).Cells(26).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  324. End If
  325. End If
  326. End If
  327. '-------------------------計算星期日--------------------------------------------------------------------------------------------------------------------
  328. If 月份2_cb.Text = Strings.Mid(星7_bt.Text, 6, 2) Then
  329. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星7_bt.Text Then
  330. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  331. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  332. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  333. 清單1_dgv.Rows(i).Cells(27).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  334. 清單1_dgv.Rows(i).Cells(28).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  335. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  336. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  337. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  338. 清單1_dgv.Rows(i).Cells(27).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  339. 清單1_dgv.Rows(i).Cells(28).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  340. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  341. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  342. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  343. 清單1_dgv.Rows(i).Cells(27).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  344. 清單1_dgv.Rows(i).Cells(28).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  345. End If
  346. End If
  347. End If
  348. End If
  349. Next
  350. '-------------------------虛擬考勤--------------------------------------------------------------------------------------------------------------------
  351. For ii As Integer = 0 To 虛擬表_dgv.Rows.Count - 1
  352. If 清單1_dgv.Rows(i).Cells(50).Value.ToString = 虛擬表_dgv.Rows(ii).Cells(0).Value.ToString Then
  353. If 月份2_cb.Text = Strings.Mid(星1_bt.Text, 6, 2) Then
  354. 清單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
  355. End If
  356. If 月份2_cb.Text = Strings.Mid(星2_bt.Text, 6, 2) Then
  357. 清單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
  358. End If
  359. If 月份2_cb.Text = Strings.Mid(星3_bt.Text, 6, 2) Then
  360. 清單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
  361. End If
  362. If 月份2_cb.Text = Strings.Mid(星4_bt.Text, 6, 2) Then
  363. 清單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
  364. End If
  365. If 月份2_cb.Text = Strings.Mid(星5_bt.Text, 6, 2) Then
  366. 清單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
  367. End If
  368. If 月份2_cb.Text = Strings.Mid(星6_bt.Text, 6, 2) Then
  369. 清單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
  370. End If
  371. If 月份2_cb.Text = Strings.Mid(星7_bt.Text, 6, 2) Then
  372. 清單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
  373. End If
  374. End If
  375. Next
  376. Next : AUTO時段() : 表頭變形1()
  377. If 群組1_cb.Text = "HARIAN GROUP" Or 群組1_cb.Text = "" Then
  378. PA25 = 年份2_cb.Text : PA26 = 月份2_cb.Text : PA27 = Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd")
  379. If 群組1_cb.Text = "HARIAN GROUP" Then : PA30 = "1" : Else : PA30 = "0" : End If
  380. PA28 = 合計_dgv.Rows(0).Cells(4).Value.ToString : PA29 = 合計_dgv.Rows(0).Cells(13).Value.ToString
  381. SQL_工人薪資彙總報表_查詢()
  382. If dr.Read Then : SQL_工人薪資彙總報表_修改() : Else : SQL_工人薪資彙總報表_新增() : End If
  383. End If : PA25 = "" : PA26 = "" : PA27 = "" : PA28 = "" : PA29 = "" : PA30 = ""
  384. If 群組1_cb.Text = "HARIAN GROUP" Or 群組1_cb.Text = "" Then
  385. PA25 = 年份2_cb.Text : PA26 = 月份2_cb.Text : PA27 = Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd")
  386. If 群組1_cb.Text = "HARIAN GROUP" Then : PA30 = "1" : Else : PA30 = "0" : End If
  387. PA28 = 合計_dgv.Rows(0).Cells(4).Value.ToString : PA29 = 合計_dgv.Rows(0).Cells(13).Value.ToString
  388. SQL_工人薪資彙總報表_查詢_T()
  389. If dr.Read Then : SQL_工人薪資彙總報表_修改_T() : Else : SQL_工人薪資彙總報表_新增_T() : End If
  390. End If : PA25 = "" : PA26 = "" : PA27 = "" : PA28 = "" : PA29 = "" : PA30 = ""
  391. End Sub
  392. Private Sub 表頭變形1()
  393. Dim NNS, 位置(50), X軸1 As Integer
  394. For Each column As DataGridViewColumn In 清單1_dgv.Columns
  395. If column.Index >= 0 Then
  396. Dim currentWidth As Integer = column.Width
  397. 位置(NNS) = currentWidth
  398. End If
  399. If NNS = 15 Or NNS = 16 Or NNS = 17 Or NNS = 18 Or NNS = 19 Or NNS = 20 Or NNS = 21 Or NNS = 22 Or NNS = 23 Or NNS = 24 Or NNS = 25 Or NNS = 26 Or NNS = 27 Or NNS = 28 Or
  400. NNS = 35 Or NNS = 36 Or NNS = 37 Or NNS = 38 Or NNS = 39 Or NNS = 40 Or NNS = 41 Or NNS = 42 Or NNS = 43 Or NNS = 44 Or NNS = 45 Or NNS = 46 Or NNS = 47 Or NNS = 48 Then
  401. column.HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter
  402. End If : NNS += 1
  403. Next
  404. X軸1 = 清單1_dgv.Location.X + 位置(0) + 位置(1) + 位置(4) + 位置(12) + 7
  405. 星1_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星1_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  406. X軸1 = X軸1 + 位置(15) + 位置(16) : 星2_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星2_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  407. X軸1 = X軸1 + 位置(17) + 位置(18) : 星3_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星3_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  408. X軸1 = X軸1 + 位置(19) + 位置(20) : 星4_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星4_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  409. X軸1 = X軸1 + 位置(21) + 位置(22) : 星5_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星5_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  410. X軸1 = X軸1 + 位置(23) + 位置(24) : 星6_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星6_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  411. X軸1 = X軸1 + 位置(25) + 位置(26) : 星7_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星7_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  412. End Sub
  413. Private Sub 表頭變形2()
  414. Dim NNS, 位置(50), X軸1 As Integer
  415. For Each column As DataGridViewColumn In 清單1_dgv.Columns
  416. If column.Index >= 0 Then
  417. Dim currentWidth As Integer = column.Width
  418. 位置(NNS) = currentWidth
  419. End If
  420. If NNS = 15 Or NNS = 16 Or NNS = 17 Or NNS = 18 Or NNS = 19 Or NNS = 20 Or NNS = 21 Or NNS = 22 Or NNS = 23 Or NNS = 24 Or NNS = 25 Or NNS = 26 Or NNS = 27 Or NNS = 28 Or
  421. NNS = 35 Or NNS = 36 Or NNS = 37 Or NNS = 38 Or NNS = 39 Or NNS = 40 Or NNS = 41 Or NNS = 42 Or NNS = 43 Or NNS = 44 Or NNS = 45 Or NNS = 46 Or NNS = 47 Or NNS = 48 Then
  422. column.HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter
  423. End If : NNS += 1
  424. Next
  425. X軸1 = 清單1_dgv.Location.X + 位置(0) + 位置(1) + 位置(4) + 位置(13) + 位置(29) + 位置(30) + 位置(31) + 位置(32) + 位置(33) + 位置(34) + 7
  426. 星1_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星1_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  427. X軸1 = X軸1 + 位置(35) + 位置(36) : 星2_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星2_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  428. X軸1 = X軸1 + 位置(37) + 位置(38) : 星3_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星3_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  429. X軸1 = X軸1 + 位置(39) + 位置(40) : 星4_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星4_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  430. X軸1 = X軸1 + 位置(41) + 位置(42) : 星5_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星5_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  431. X軸1 = X軸1 + 位置(43) + 位置(44) : 星6_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星6_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  432. X軸1 = X軸1 + 位置(45) + 位置(46) : 星7_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星7_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  433. End Sub
  434. Private Sub Set_虛擬表()
  435. Dim ds1 As New DataSet
  436. 虛擬表_dgv.DataSource = Nothing : ds1.Clear()
  437. 虛擬表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  438. 虛擬表_dgv.ColumnHeadersHeight = 25 : 虛擬表_dgv.AllowUserToAddRows = False : 虛擬表_dgv.RowTemplate.Height = 25
  439. PA25 = 星1_bt.Text : SQL_考勤虛擬表() : PA25 = ""
  440. da.Fill(ds1) : 虛擬表_dgv.DataSource = ds1.Tables(0) : conn.Close()
  441. End Sub
  442. Private Sub Set_總清單()
  443. Dim ds1 As New DataSet
  444. 總清單_dgv.DataSource = Nothing : ds1.Clear()
  445. 總清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  446. 總清單_dgv.ColumnHeadersHeight = 25 : 總清單_dgv.AllowUserToAddRows = False : 總清單_dgv.RowTemplate.Height = 25
  447. PA2 = 年份2_cb.Text : PA3 = 月份2_cb.Text : PA25 = 地區_cb.SelectedIndex : SQL_考勤總明細() : PA25 = ""
  448. da.Fill(ds1) : 總清單_dgv.DataSource = ds1.Tables(0) : conn.Close()
  449. 總清單_dgv.Columns(表頭(17)).FillWeight = 70 : 總清單_dgv.Columns(表頭(18)).FillWeight = 70
  450. 總清單_dgv.Columns("第一").Visible = False : 總清單_dgv.Columns("第二").Visible = False : 總清單_dgv.Columns("第三").Visible = False
  451. 總清單_dgv.Columns("第四").Visible = False : 總清單_dgv.Columns("第五").Visible = False : 總清單_dgv.Columns("第六").Visible = False
  452. For I As Integer = 4 To 9 : 總清單_dgv.Columns(表頭(I)).Visible = False : Next : 總時 = 0
  453. For i As Integer = 0 To 總清單_dgv.Rows.Count - 1
  454. '-------------基本資料準備------------------------------------
  455. If 工人_ch.Checked = True Then : 總清單_dgv.Rows(i).Cells(表頭(17)).Value = True
  456. Else : If IsDBNull(總清單_dgv.Rows(i).Cells(表頭(17)).Value) Then : 總清單_dgv.Rows(i).Cells(表頭(17)).Value = False : End If : End If
  457. If IsDBNull(總清單_dgv.Rows(i).Cells(表頭(18)).Value) Then : 總清單_dgv.Rows(i).Cells(表頭(18)).Value = False : End If
  458. If 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期一" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(0)
  459. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期二" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(1)
  460. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期三" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(2)
  461. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期四" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(3)
  462. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期五" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(4)
  463. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期六" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(5)
  464. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期日" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(6)
  465. End If
  466. Dim DFG(6) As String : Dim CV As Integer = 1 : For V As Integer = 0 To 6 : DFG(V) = "" : Next
  467. If 總清單_dgv.Rows(i).Cells("第一").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第一").Value.ToString : CV += 1 : End If
  468. If 總清單_dgv.Rows(i).Cells("第二").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第二").Value.ToString : CV += 1 : End If
  469. If 總清單_dgv.Rows(i).Cells("第三").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第三").Value.ToString : CV += 1 : End If
  470. If 總清單_dgv.Rows(i).Cells("第四").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第四").Value.ToString : CV += 1 : End If
  471. If 總清單_dgv.Rows(i).Cells("第五").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第五").Value.ToString : CV += 1 : End If
  472. If 總清單_dgv.Rows(i).Cells("第六").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第六").Value.ToString : CV += 1 : End If
  473. 時段(1) = DFG(1) : 時段(2) = DFG(2)
  474. 時段(3) = DFG(3) : 時段(4) = DFG(4)
  475. 時段(5) = DFG(5) : 時段(6) = DFG(6)
  476. For II As Integer = 4 To 16 : 總清單_dgv.Rows(i).Cells(表頭(II)).Value = "" : Next
  477. '-------------時間推移計算------------------------------------
  478. If 時段(1) = "" And 時段(2) = "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  479. ElseIf 時段(1) <> "" And 時段(2) = "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  480. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  481. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  482. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(2) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  483. If 間隔1 >= 665 Then
  484. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  485. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(2)
  486. 'X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  487. 'X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  488. 'X1 = 時段(3) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  489. 'X1 = 時段(4) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = X1
  490. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  491. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  492. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  493. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  494. ElseIf 間隔1 >= 325 And 間隔1 < 665 Then
  495. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  496. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(2)
  497. 'X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  498. 'X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  499. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  500. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  501. ElseIf 間隔1 < 325 Then
  502. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  503. X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  504. End If
  505. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  506. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(3) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  507. If 間隔1 >= 665 Then '---------大於十小時
  508. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(2) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  509. If 間隔1 <= 325 Then
  510. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  511. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  512. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(3)
  513. 'X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  514. 'X1 = 時段(3) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  515. 'X1 = 時段(4) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = X1
  516. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  517. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  518. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  519. ElseIf 間隔1 > 325 Then
  520. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  521. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(3)
  522. 'X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  523. 'X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  524. 'X1 = 時段(3) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  525. 'X1 = 時段(4) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = X1
  526. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  527. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  528. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  529. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  530. End If
  531. ElseIf 間隔1 > 325 And 間隔1 < 625 Then
  532. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  533. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(3)
  534. 'X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  535. 'X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  536. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  537. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  538. ElseIf 間隔1 >= 325 Then
  539. X1 = 時段(2) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(3) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  540. If 間隔1 >= 90 Then
  541. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  542. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  543. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(3)
  544. X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1
  545. Else
  546. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  547. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  548. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1
  549. End If
  550. Else
  551. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  552. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  553. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1
  554. End If
  555. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) = "" And 時段(6) = "" Then
  556. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(4) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  557. If 間隔1 >= 665 Then
  558. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  559. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  560. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  561. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(4)
  562. 'X1 = 時段(3) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  563. 'X1 = 時段(4) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = X1
  564. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  565. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  566. Else
  567. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  568. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  569. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  570. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  571. End If
  572. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) <> "" And 時段(6) = "" Then
  573. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(5) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  574. If 間隔1 >= 665 Then
  575. X1 = 時段(4) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(5) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  576. If 間隔1 >= 90 Then
  577. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  578. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  579. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  580. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  581. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(6)
  582. X1 = 時段(5) : Set_時段定點_減一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1
  583. Else
  584. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  585. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  586. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  587. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  588. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  589. End If
  590. Else
  591. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  592. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  593. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  594. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  595. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  596. End If
  597. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) <> "" And 時段(6) <> "" Then
  598. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  599. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  600. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  601. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  602. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  603. X1 = 時段(6) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(6)
  604. End If
  605. '-------------時間彙總計算------------------------------------
  606. 時長 = 0
  607. If 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  608. 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString = "" And 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString = "" And
  609. 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  610. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  611. If 時長 <= 8 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : End If
  612. ElseIf 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  613. 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  614. 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  615. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  616. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  617. If 時長 <= 8 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  618. If 總清單_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  619. 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  620. Else
  621. If 時長 < 10 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  622. Else : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  623. End If
  624. End If
  625. ElseIf 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  626. 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  627. 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString <> "" Then
  628. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  629. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  630. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  631. If 時長 <= 8 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  632. If 總清單_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  633. 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  634. Else
  635. If 時長 < 10 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  636. Else : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  637. End If
  638. End If
  639. End If
  640. Next : For I As Integer = 10 To 15 : 總清單_dgv.Columns(I).Visible = True : Next
  641. End Sub
  642. Private Sub Set_時段定點()
  643. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  644. 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"
  645. 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"
  646. 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"
  647. 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"
  648. 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"
  649. 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"
  650. 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"
  651. 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"
  652. 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"
  653. 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"
  654. 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"
  655. 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"
  656. End If
  657. End Sub
  658. Private Sub Set_時段定點_減一小時()
  659. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  660. If (時 = "23" And CInt(分) >= 30) Or (時 = "00" And CInt(分) < 30) Then : X1 = "23:00:00" : ElseIf (時 = "00" And CInt(分) >= 30) Or (時 = "01" And CInt(分) < 30) Then : X1 = "00:00:00"
  661. ElseIf (時 = "01" And CInt(分) >= 30) Or (時 = "02" And CInt(分) < 30) Then : X1 = "01:00:00" : ElseIf (時 = "02" And CInt(分) >= 30) Or (時 = "03" And CInt(分) < 30) Then : X1 = "02:00:00"
  662. ElseIf (時 = "03" And CInt(分) >= 30) Or (時 = "04" And CInt(分) < 30) Then : X1 = "03:00:00" : ElseIf (時 = "04" And CInt(分) >= 30) Or (時 = "05" And CInt(分) < 30) Then : X1 = "04:00:00"
  663. ElseIf (時 = "05" And CInt(分) >= 30) Or (時 = "06" And CInt(分) < 30) Then : X1 = "05:00:00" : ElseIf (時 = "06" And CInt(分) >= 30) Or (時 = "07" And CInt(分) < 30) Then : X1 = "06:00:00"
  664. ElseIf (時 = "07" And CInt(分) >= 30) Or (時 = "08" And CInt(分) < 30) Then : X1 = "07:00:00" : ElseIf (時 = "08" And CInt(分) >= 30) Or (時 = "09" And CInt(分) < 30) Then : X1 = "08:00:00"
  665. ElseIf (時 = "09" And CInt(分) >= 30) Or (時 = "10" And CInt(分) < 30) Then : X1 = "09:00:00" : ElseIf (時 = "10" And CInt(分) >= 30) Or (時 = "11" And CInt(分) < 30) Then : X1 = "10:00:00"
  666. ElseIf (時 = "11" And CInt(分) >= 30) Or (時 = "12" And CInt(分) < 30) Then : X1 = "11:00:00" : ElseIf (時 = "12" And CInt(分) >= 30) Or (時 = "13" And CInt(分) < 30) Then : X1 = "12:00:00"
  667. ElseIf (時 = "13" And CInt(分) >= 30) Or (時 = "14" And CInt(分) < 30) Then : X1 = "13:00:00" : ElseIf (時 = "14" And CInt(分) >= 30) Or (時 = "15" And CInt(分) < 30) Then : X1 = "14:00:00"
  668. ElseIf (時 = "15" And CInt(分) >= 30) Or (時 = "16" And CInt(分) < 30) Then : X1 = "15:00:00" : ElseIf (時 = "16" And CInt(分) >= 30) Or (時 = "17" And CInt(分) < 30) Then : X1 = "16:00:00"
  669. ElseIf (時 = "17" And CInt(分) >= 30) Or (時 = "18" And CInt(分) < 30) Then : X1 = "17:00:00" : ElseIf (時 = "18" And CInt(分) >= 30) Or (時 = "19" And CInt(分) < 30) Then : X1 = "18:00:00"
  670. ElseIf (時 = "19" And CInt(分) >= 30) Or (時 = "20" And CInt(分) < 30) Then : X1 = "19:00:00" : ElseIf (時 = "20" And CInt(分) >= 30) Or (時 = "21" And CInt(分) < 30) Then : X1 = "20:00:00"
  671. ElseIf (時 = "21" And CInt(分) >= 30) Or (時 = "22" And CInt(分) < 30) Then : X1 = "21:00:00" : ElseIf (時 = "22" And CInt(分) >= 30) Or (時 = "23" And CInt(分) < 30) Then : X1 = "22:00:00"
  672. End If
  673. End Sub
  674. Private Sub Set_時段定點_加一小時()
  675. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  676. If (時 = "23" And CInt(分) >= 30) Or (時 = "00" And CInt(分) < 30) Then : X1 = "01:00:00" : ElseIf (時 = "00" And CInt(分) >= 30) Or (時 = "01" And CInt(分) < 30) Then : X1 = "02:00:00"
  677. ElseIf (時 = "01" And CInt(分) >= 30) Or (時 = "02" And CInt(分) < 30) Then : X1 = "03:00:00" : ElseIf (時 = "02" And CInt(分) >= 30) Or (時 = "03" And CInt(分) < 30) Then : X1 = "04:00:00"
  678. ElseIf (時 = "03" And CInt(分) >= 30) Or (時 = "04" And CInt(分) < 30) Then : X1 = "05:00:00" : ElseIf (時 = "04" And CInt(分) >= 30) Or (時 = "05" And CInt(分) < 30) Then : X1 = "06:00:00"
  679. ElseIf (時 = "05" And CInt(分) >= 30) Or (時 = "06" And CInt(分) < 30) Then : X1 = "07:00:00" : ElseIf (時 = "06" And CInt(分) >= 30) Or (時 = "07" And CInt(分) < 30) Then : X1 = "08:00:00"
  680. ElseIf (時 = "07" And CInt(分) >= 30) Or (時 = "08" And CInt(分) < 30) Then : X1 = "09:00:00" : ElseIf (時 = "08" And CInt(分) >= 30) Or (時 = "09" And CInt(分) < 30) Then : X1 = "10:00:00"
  681. ElseIf (時 = "09" And CInt(分) >= 30) Or (時 = "10" And CInt(分) < 30) Then : X1 = "11:00:00" : ElseIf (時 = "10" And CInt(分) >= 30) Or (時 = "11" And CInt(分) < 30) Then : X1 = "12:00:00"
  682. ElseIf (時 = "11" And CInt(分) >= 30) Or (時 = "12" And CInt(分) < 30) Then : X1 = "13:00:00" : ElseIf (時 = "12" And CInt(分) >= 30) Or (時 = "13" And CInt(分) < 30) Then : X1 = "14:00:00"
  683. ElseIf (時 = "13" And CInt(分) >= 30) Or (時 = "14" And CInt(分) < 30) Then : X1 = "15:00:00" : ElseIf (時 = "14" And CInt(分) >= 30) Or (時 = "15" And CInt(分) < 30) Then : X1 = "16:00:00"
  684. ElseIf (時 = "15" And CInt(分) >= 30) Or (時 = "16" And CInt(分) < 30) Then : X1 = "17:00:00" : ElseIf (時 = "16" And CInt(分) >= 30) Or (時 = "17" And CInt(分) < 30) Then : X1 = "18:00:00"
  685. ElseIf (時 = "17" And CInt(分) >= 30) Or (時 = "18" And CInt(分) < 30) Then : X1 = "19:00:00" : ElseIf (時 = "18" And CInt(分) >= 30) Or (時 = "19" And CInt(分) < 30) Then : X1 = "20:00:00"
  686. ElseIf (時 = "19" And CInt(分) >= 30) Or (時 = "20" And CInt(分) < 30) Then : X1 = "21:00:00" : ElseIf (時 = "20" And CInt(分) >= 30) Or (時 = "21" And CInt(分) < 30) Then : X1 = "22:00:00"
  687. ElseIf (時 = "21" And CInt(分) >= 30) Or (時 = "22" And CInt(分) < 30) Then : X1 = "23:00:00" : ElseIf (時 = "22" And CInt(分) >= 30) Or (時 = "23" And CInt(分) < 30) Then : X1 = "24:00:00"
  688. End If
  689. End Sub
  690. Private Sub Set_時段定點_加四小時()
  691. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  692. If (時 = "23" And CInt(分) >= 30) Or (時 = "00" And CInt(分) < 30) Then : X1 = "04:00:00" : ElseIf (時 = "00" And CInt(分) >= 30) Or (時 = "01" And CInt(分) < 30) Then : X1 = "05:00:00"
  693. ElseIf (時 = "01" And CInt(分) >= 30) Or (時 = "02" And CInt(分) < 30) Then : X1 = "06:00:00" : ElseIf (時 = "02" And CInt(分) >= 30) Or (時 = "03" And CInt(分) < 30) Then : X1 = "07:00:00"
  694. ElseIf (時 = "03" And CInt(分) >= 30) Or (時 = "04" And CInt(分) < 30) Then : X1 = "08:00:00" : ElseIf (時 = "04" And CInt(分) >= 30) Or (時 = "05" And CInt(分) < 30) Then : X1 = "09:00:00"
  695. ElseIf (時 = "05" And CInt(分) >= 30) Or (時 = "06" And CInt(分) < 30) Then : X1 = "10:00:00" : ElseIf (時 = "06" And CInt(分) >= 30) Or (時 = "07" And CInt(分) < 30) Then : X1 = "11:00:00"
  696. ElseIf (時 = "07" And CInt(分) >= 30) Or (時 = "08" And CInt(分) < 30) Then : X1 = "12:00:00" : ElseIf (時 = "08" And CInt(分) >= 30) Or (時 = "09" And CInt(分) < 30) Then : X1 = "13:00:00"
  697. ElseIf (時 = "09" And CInt(分) >= 30) Or (時 = "10" And CInt(分) < 30) Then : X1 = "14:00:00" : ElseIf (時 = "10" And CInt(分) >= 30) Or (時 = "11" And CInt(分) < 30) Then : X1 = "15:00:00"
  698. ElseIf (時 = "11" And CInt(分) >= 30) Or (時 = "12" And CInt(分) < 30) Then : X1 = "16:00:00" : ElseIf (時 = "12" And CInt(分) >= 30) Or (時 = "13" And CInt(分) < 30) Then : X1 = "17:00:00"
  699. ElseIf (時 = "13" And CInt(分) >= 30) Or (時 = "14" And CInt(分) < 30) Then : X1 = "18:00:00" : ElseIf (時 = "14" And CInt(分) >= 30) Or (時 = "15" And CInt(分) < 30) Then : X1 = "19:00:00"
  700. ElseIf (時 = "15" And CInt(分) >= 30) Or (時 = "16" And CInt(分) < 30) Then : X1 = "20:00:00" : ElseIf (時 = "16" And CInt(分) >= 30) Or (時 = "17" And CInt(分) < 30) Then : X1 = "21:00:00"
  701. ElseIf (時 = "17" And CInt(分) >= 30) Or (時 = "18" And CInt(分) < 30) Then : X1 = "22:00:00" : ElseIf (時 = "18" And CInt(分) >= 30) Or (時 = "19" And CInt(分) < 30) Then : X1 = "23:00:00"
  702. ElseIf (時 = "19" And CInt(分) >= 30) Or (時 = "20" And CInt(分) < 30) Then : X1 = "00:00:00" : ElseIf (時 = "20" And CInt(分) >= 30) Or (時 = "21" And CInt(分) < 30) Then : X1 = "01:00:00"
  703. ElseIf (時 = "21" And CInt(分) >= 30) Or (時 = "22" And CInt(分) < 30) Then : X1 = "02:00:00" : ElseIf (時 = "22" And CInt(分) >= 30) Or (時 = "23" And CInt(分) < 30) Then : X1 = "03:00:00"
  704. End If
  705. End Sub
  706. Private Sub 時間比對()
  707. Dim dateA As Date = Date.ParseExact("[" & 計算(0) & "]", "[HH:mm:ss]", Nothing)
  708. Dim dateB As Date = Date.ParseExact("[" & 計算(1) & "]", "[HH:mm:ss]", Nothing)
  709. Dim hoursDiff As Integer = DateDiff(DateInterval.Minute, dateA, dateB)
  710. 間隔1 = Math.Abs(hoursDiff)
  711. End Sub
  712. Private Sub 級別清單()
  713. SQL_考勤級別讀取() : 級別_cb.Items.Clear() : 級別_cb.Items.Add("")
  714. While (dr.Read()) : 級別_cb.Items.Add(dr("級別")) : End While : conn.Close()
  715. End Sub
  716. Private Sub 地區清單()
  717. 地區_cb.Items.Clear() : 地區_cb.Items.Add("") : 地區_cb.Items.Add(對話框(16)) : 地區_cb.Items.Add(對話框(17))
  718. End Sub
  719. Private Sub 年分清單()
  720. SQL_年分清單() : 年份2_cb.Items.Clear()
  721. While (dr.Read()) : 年份2_cb.Items.Add(dr("日期")) : End While : conn.Close()
  722. End Sub
  723. Private Sub 群組清單()
  724. SQL_人員薪資表_群組() : 群組_cb.Items.Clear() : 群組1_cb.Items.Clear() : 群組_cb.Items.Add("") : 群組1_cb.Items.Add("")
  725. While (dr.Read()) : 群組_cb.Items.Add(dr("部門名稱")) : 群組1_cb.Items.Add(dr("部門名稱")) : End While : conn.Close()
  726. End Sub
  727. Private Sub 星期設定()
  728. 星1_bt.Text = Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") : 星2_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(1), "yyyy/MM/dd")
  729. 星3_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(2), "yyyy/MM/dd") : 星4_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(3), "yyyy/MM/dd")
  730. 星5_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(4), "yyyy/MM/dd") : 星6_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(5), "yyyy/MM/dd")
  731. 星7_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(6), "yyyy/MM/dd")
  732. End Sub
  733. Private Sub 人員薪資_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  734. Me.WindowState = 2 : Me.AutoScroll = True : 之前選擇 = -1
  735. 介面 = "H611" : 語言轉換讀取() : 首次開啟 = True
  736. 結束日期_dtp.Value = Today() : 開始日期_dtp.Value = 結束日期_dtp.Value
  737. Dim oldDate As Date : Dim oldWeekDay As Integer : oldDate = 結束日期_dtp.Value : oldWeekDay = Weekday(oldDate)
  738. If oldWeekDay = 7 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(1)
  739. ElseIf oldWeekDay = 6 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(2)
  740. ElseIf oldWeekDay = 5 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(3)
  741. ElseIf oldWeekDay = 4 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(4)
  742. ElseIf oldWeekDay = 3 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(5)
  743. ElseIf oldWeekDay = 2 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(6)
  744. End If : 開始日期_dtp.Value = 結束日期_dtp.Value.AddDays(-6) : 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(+6)
  745. 本周周一 = 開始日期_dtp.Value : 星期設定()
  746. If 登入人級別 = "00" Then
  747. 縮放2_bt.Visible = True
  748. Else
  749. 縮放2_bt.Visible = False
  750. End If
  751. 工人 = True : 在職 = True : 總清單_dgv.Visible = False : 視窗3_pl.Visible = False : 總清單_dgv.SendToBack() : Panel2.SendToBack()
  752. End Sub
  753. Private Sub 人員薪資_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  754. 年分清單() : 年份2_cb.Text = Year(Today) : 月份2_cb.SelectedIndex = Month(Today) - 1
  755. 群組清單() : If 群組_cb.Items.Count > 1 Then : 群組_cb.SelectedIndex = 0 : End If
  756. 級別清單() : 地區清單()
  757. Set_使用者清單() : 首次開啟 = False : 實際工資計算完成 = True : Me.Close()
  758. End Sub
  759. Private Sub 人員薪資_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
  760. 清單1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  761. End Sub
  762. Private Sub 語轉扭_bt_Click(sender As Object, e As EventArgs) Handles 語轉扭_bt.Click
  763. 介面 = "H611" : 語言轉換讀取() : 首次開啟 = False
  764. End Sub
  765. Private Sub 人員薪資_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
  766. End Sub
  767. Private Sub 清單1_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 清單1_dgv.MouseUp
  768. 'If 清單1_dgv.SelectedCells.Count = 1 Then : MsgBox(清單1_dgv.SelectedCells(0).ColumnIndex & " " & 清單1_dgv.SelectedCells(0).RowIndex) : End If
  769. If 清單1_dgv.SelectedCells.Count > 0 Then
  770. If 之前選擇 = -1 Then : Else
  771. If 深色風格 = False Then : 清單1_dgv.Rows(之前選擇).DefaultCellStyle.BackColor = Color.White
  772. Else : 清單1_dgv.Rows(之前選擇).DefaultCellStyle.BackColor = Color.Black : End If
  773. End If
  774. If 深色風格 = False Then
  775. 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).DefaultCellStyle.BackColor = Color.LightGreen : 之前選擇 = 清單1_dgv.SelectedCells(0).RowIndex
  776. Else
  777. 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).DefaultCellStyle.BackColor = Color.Green : 之前選擇 = 清單1_dgv.SelectedCells(0).RowIndex
  778. End If
  779. If 清單1_dgv.SelectedCells(0).ColumnIndex = 0 Then
  780. If 群組選擇_ch.Checked = True Then
  781. 群組_cb.Text = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(0).Value.ToString
  782. CB選擇清單(群組_cb, 群組_cb.Text)
  783. 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(0).Value = 群組_cb.Text
  784. End If
  785. ElseIf 清單1_dgv.SelectedCells(0).ColumnIndex = 11 Then
  786. Dim 原來的 As String = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(11).Value.ToString
  787. For I As Integer = 0 To 3000 : PPBB(I) = "" : Next
  788. For I As Integer = 0 To 4 : PPBB(I) = 對話框(I) : NN1 = I : Next
  789. 下拉清單_2.ShowDialog()
  790. If PPAA = "" Then : 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(11).Value = 原來的
  791. Else : 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(11).Value = PPAA : End If
  792. ElseIf 清單1_dgv.SelectedCells(0).ColumnIndex = 49 Then
  793. PA30 = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(0).Value
  794. PA31 = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(0).Value
  795. PA32 = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(12).Value
  796. PA33 = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(50).Value
  797. SQL_人員薪資表_修改() : 群組清單() : MsgBox(系統語言字典("H509-126-" & 語言))
  798. End If
  799. End If
  800. End Sub
  801. Private Sub 清單1_dgv_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles 清單1_dgv.CellEnter
  802. Dim TSSL As Long
  803. For XC As Integer = 0 To 清單1_dgv.Rows.Count - 1
  804. If IsDBNull(清單1_dgv.Rows(XC).Cells(12).Value) Then : Else
  805. If 清單1_dgv.Rows(XC).Cells(12).Value.ToString <> "" Then
  806. 清單1_dgv.Rows(XC).Cells(31).Value = Strings.Format(清單1_dgv.Rows(XC).Cells(12).Value / 8, "#,##0")
  807. 清單1_dgv.Rows(XC).Cells(32).Value = Strings.Format(清單1_dgv.Rows(XC).Cells(12).Value / 6, "#,##0")
  808. 清單1_dgv.Rows(XC).Cells(29).Value = Strings.Format((清單1_dgv.Rows(XC).Cells(12).Value / 8) * CLng(清單1_dgv.Rows(XC).Cells(33).Value.ToString), "#,##0")
  809. 清單1_dgv.Rows(XC).Cells(30).Value = Strings.Format((清單1_dgv.Rows(XC).Cells(12).Value / 6) * CLng(清單1_dgv.Rows(XC).Cells(34).Value.ToString), "#,##0")
  810. 清單1_dgv.Rows(XC).Cells(13).Value = CLng(清單1_dgv.Rows(XC).Cells(29).Value.ToString) + CLng(清單1_dgv.Rows(XC).Cells(30).Value.ToString)
  811. End If
  812. End If
  813. 清單1_dgv.Rows(XC).Cells(表頭(30)).Value = 清單1_dgv.Rows(XC).Cells(表頭(25)).Value
  814. If 清單1_dgv.Rows(XC).Cells(0).Value.ToString <> "" Then : 清單1_dgv.Rows(XC).Cells(0).Value = 清單1_dgv.Rows(XC).Cells(0).Value.ToString.ToUpper : End If
  815. If 清單1_dgv.Rows(XC).Cells(1).Value.ToString <> "" Then : 清單1_dgv.Rows(XC).Cells(1).Value = 清單1_dgv.Rows(XC).Cells(1).Value.ToString.ToUpper : End If
  816. Next
  817. End Sub
  818. Private Sub DA1_bt_Click(sender As Object, e As EventArgs) Handles DA1_bt.Click
  819. 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(-1) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(-7)
  820. 日期判斷() : 星期設定() : Set_使用者清單()
  821. End Sub
  822. Private Sub DA2_bt_Click(sender As Object, e As EventArgs) Handles DA2_bt.Click
  823. 結束日期_dtp.Value = Today() : 開始日期_dtp.Value = 結束日期_dtp.Value
  824. Dim oldDate As Date : Dim oldWeekDay As Integer : oldDate = 結束日期_dtp.Value : oldWeekDay = Weekday(oldDate)
  825. If oldWeekDay = 7 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(1) : ElseIf oldWeekDay = 6 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(2)
  826. ElseIf oldWeekDay = 5 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(3) : ElseIf oldWeekDay = 4 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(4)
  827. ElseIf oldWeekDay = 3 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(5) : ElseIf oldWeekDay = 2 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(6)
  828. End If : 開始日期_dtp.Value = 結束日期_dtp.Value.AddDays(-6) : 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(+6)
  829. 日期判斷() : 星期設定() : Set_使用者清單()
  830. End Sub
  831. Private Sub DA3_bt_Click(sender As Object, e As EventArgs) Handles DA3_bt.Click
  832. 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(+13) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(+7)
  833. 日期判斷() : 星期設定() : Set_使用者清單()
  834. End Sub
  835. Private Sub 重新讀取_bt_Click(sender As Object, e As EventArgs) Handles 重新讀取_bt.Click
  836. 日期判斷() : 星期設定() : Set_使用者清單()
  837. End Sub
  838. Private Sub 日期判斷()
  839. If Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) <> Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 4) Then
  840. PA17 = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) : PA18 = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 4)
  841. 年份2_cb.Text = Strings.Left(Strings.Format(Today(), "yyyy/MM/dd"), 4)
  842. Else
  843. 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
  844. End If
  845. If Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) <> Strings.Mid(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 6, 2) Then
  846. PA17 = Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) : PA18 = Strings.Mid(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 6, 2)
  847. 月份2_cb.Text = Strings.Mid(Strings.Format(Today(), "yyyy/MM/dd"), 6, 2)
  848. Else
  849. 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
  850. End If
  851. End Sub
  852. Private Sub 群組輸入_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 群組輸入_ch.Click
  853. 群組輸入_ch.Checked = True : 群組選擇_ch.Checked = False : 清單1_dgv.Columns(0).ReadOnly = False
  854. End Sub
  855. Private Sub 群組選擇_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 群組選擇_ch.Click
  856. 群組輸入_ch.Checked = False : 群組選擇_ch.Checked = True : 清單1_dgv.Columns(0).ReadOnly = True
  857. End Sub
  858. Private Sub 設定_bt_Click(sender As Object, e As EventArgs) Handles 設定_bt.Click
  859. 'If 清單1_dgv.Columns(11).Visible = False Then : 清單1_dgv.Columns(11).Visible = True : Else : 清單1_dgv.Columns(11).Visible = False : End If
  860. Dim XC As Integer = Me.Size.Width : Dim YC As Integer = Me.Size.Height : Dim XD As Integer = 視窗3_pl.Width : Dim YD As Integer = 視窗3_pl.Height : 首次開啟 = False
  861. If 視窗3_pl.Visible = False Then
  862. If 群組1_cb.Text <> "HARIAN GROUP" Then : MsgBox(系統語言字典("H611-110-" & 語言)) : Else
  863. 視窗3_pl.Location = New System.Drawing.Point((XC - XD) / 2, (YC - YD) / 2) : 視窗3_pl.Visible = True : 視窗3_pl.BringToFront()
  864. 極限設定()
  865. End If
  866. Else : 視窗3_pl.Visible = False : End If
  867. End Sub
  868. Private Sub 加班_nud_ValueChanged(sender As Object, e As EventArgs) Handles 加班_nud.ValueChanged
  869. 極限設定()
  870. End Sub
  871. Private Sub 沖帳金額_nud_ValueChanged(sender As Object, e As EventArgs) Handles 沖帳金額_nud.ValueChanged
  872. 休假比例_nud.Value = (沖帳金額_nud.Value / 總數_nud.Value * 100)
  873. 休假天數_nud.Value = 可沖天數_nud.Value - (沖帳金額_nud.Value / 平均每天_nud.Value)
  874. End Sub
  875. Private Sub 極限設定()
  876. If 首次開啟 = False Then
  877. 'Dim 總次數 As Integer = 0 : 總數_nud.Value = 0
  878. 'For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  879. ' If 清單1_dgv.Rows(i).Cells(12).Value.ToString <> "" Then
  880. ' 總數_nud.Value += (清單1_dgv.Rows(i).Cells(12).Value + ((清單1_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) * 7 : 總次數 += 7
  881. ' End If
  882. 'Next : 可沖天數_nud.Value = 總次數 : 平均每天_nud.Value = 總數_nud.Value / 可沖天數_nud.Value
  883. '沖帳金額_nud.Maximum = 總數_nud.Value : 沖帳金額_nud.Minimum = 可沖天數_nud.Value : 沖帳金額_nud.Value = 平均每天_nud.Value * 7
  884. '休假比例_nud.Value = 100 - (沖帳金額_nud.Value / 總數_nud.Value * 100)
  885. '休假天數_nud.Value = 可沖天數_nud.Value - (沖帳金額_nud.Value / 平均每天_nud.Value)
  886. End If
  887. End Sub
  888. Private Sub 縮放2_bt_Click(sender As Object, e As EventArgs) Handles 縮放2_bt.Click
  889. If 總清單_dgv.Visible = False Then : 總清單_dgv.Visible = True : 總清單_dgv.BringToFront() : Else : 總清單_dgv.Visible = False : 總清單_dgv.SendToBack() : End If
  890. End Sub
  891. Private Sub 考勤表_bt_Click(sender As Object, e As EventArgs) Handles 考勤表_bt.Click
  892. 合計_dgv.Columns(12).Visible = True : For i As Integer = 15 To 28 : 合計_dgv.Columns(i).Visible = True : Next
  893. 合計_dgv.Columns(13).Visible = False : For i As Integer = 29 To 48 : 合計_dgv.Columns(i).Visible = False : Next
  894. 清單1_dgv.Columns(12).Visible = True : For i As Integer = 15 To 28 : 清單1_dgv.Columns(i).Visible = True : Next
  895. 清單1_dgv.Columns(13).Visible = False : For i As Integer = 29 To 48 : 清單1_dgv.Columns(i).Visible = False : Next : 表頭變形1()
  896. End Sub
  897. Private Sub 薪資表_bt_Click(sender As Object, e As EventArgs) Handles 薪資表_bt.Click
  898. 合計_dgv.Columns(12).Visible = False : For i As Integer = 15 To 28 : 合計_dgv.Columns(i).Visible = False : Next
  899. 合計_dgv.Columns(13).Visible = True : For i As Integer = 29 To 48 : 合計_dgv.Columns(i).Visible = True : Next
  900. 清單1_dgv.Columns(12).Visible = False : For i As Integer = 15 To 28 : 清單1_dgv.Columns(i).Visible = False : Next
  901. 清單1_dgv.Columns(13).Visible = True : For i As Integer = 29 To 48 : 清單1_dgv.Columns(i).Visible = True : Next : 表頭變形2()
  902. End Sub
  903. Private Sub 級別_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 級別_cb.SelectedIndexChanged
  904. Set_使用者清單()
  905. End Sub
  906. Private Sub 地區_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 地區_cb.SelectedIndexChanged
  907. Set_使用者清單()
  908. End Sub
  909. Private Sub 群組_cb_Click(sender As Object, e As EventArgs) Handles 群組_cb.Click
  910. CB選擇清單_可選空白(群組_cb) : Set_使用者清單()
  911. End Sub
  912. Private Sub 群組1_cb_Click(sender As Object, e As EventArgs) Handles 群組1_cb.Click
  913. CB選擇清單_可選空白(群組1_cb) : 群組_cb.Text = 群組1_cb.Text : Set_使用者清單()
  914. End Sub
  915. Private Sub 年份2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 年份2_cb.SelectedIndexChanged
  916. If 首次開啟 = False Then : Set_使用者清單() : End If
  917. End Sub
  918. Private Sub 年份2_cb_Click(sender As Object, e As EventArgs) Handles 年份2_cb.Click
  919. CB選擇清單(年份2_cb, 年份2_cb.Text) : Set_使用者清單()
  920. End Sub
  921. Private Sub 月份2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 月份2_cb.SelectedIndexChanged
  922. If 首次開啟 = False Then : Set_使用者清單() : End If
  923. End Sub
  924. Private Sub 月份2_cb_Click(sender As Object, e As EventArgs) Handles 月份2_cb.Click
  925. CB選擇清單(月份2_cb, 月份2_cb.Text) : Set_使用者清單()
  926. End Sub
  927. Private Sub 工人_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 工人_ch.Click
  928. If 工人_ch.Checked = True Then : 工人 = True : Else : 工人 = False : End If : Set_使用者清單()
  929. End Sub
  930. Private Sub CanceL3_bt_Click(sender As Object, e As EventArgs) Handles CanceL3_bt.Click
  931. If 視窗3_pl.Visible = False Then : 視窗3_pl.Visible = True : 視窗3_pl.BringToFront() : Else : 視窗3_pl.Visible = False : End If
  932. End Sub
  933. Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click
  934. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  935. PA30 = 清單1_dgv.Rows(i).Cells(0).Value.ToString : PA31 = 清單1_dgv.Rows(i).Cells(0).Value.ToString
  936. PA32 = 清單1_dgv.Rows(i).Cells(12).Value.ToString : PA33 = 清單1_dgv.Rows(i).Cells(50).Value.ToString
  937. SQL_人員薪資表_修改()
  938. Next : 群組清單() : MsgBox(系統語言字典("H509-126-" & 語言))
  939. End Sub
  940. Private Sub 考勤調整_bt_Click(sender As Object, e As EventArgs) Handles 考勤調整_bt.Click
  941. 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()
  942. Dim random6 As New Random() : Dim random7 As New Random() : Dim hours As Integer
  943. If 群組1_cb.Text <> "HARIAN GROUP" Then : MsgBox(系統語言字典("H611-110-" & 語言)) : Else : 清除_bt.PerformClick()
  944. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  945. If 休假比例_nud.Value > 0 And 休假比例_nud.Value < 20 Then
  946. Dim 計數 As Integer
  947. Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  948. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  949. 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
  950. End If
  951. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  952. Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  953. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  954. 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
  955. End If
  956. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  957. Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  958. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  959. 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
  960. End If
  961. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  962. Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  963. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  964. 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
  965. End If
  966. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  967. Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  968. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  969. 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
  970. End If
  971. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  972. Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  973. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  974. 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
  975. End If
  976. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  977. ElseIf 休假比例_nud.Value >= 20 And 休假比例_nud.Value < 40 Then
  978. Dim 計數 As Integer
  979. Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  980. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  981. 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
  982. End If
  983. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  984. Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  985. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  986. 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
  987. End If
  988. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  989. Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  990. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  991. 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
  992. End If
  993. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  994. Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  995. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  996. 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
  997. End If
  998. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  999. Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  1000. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1001. 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
  1002. End If
  1003. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  1004. Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  1005. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1006. 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
  1007. End If
  1008. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  1009. ElseIf 休假比例_nud.Value >= 40 And 休假比例_nud.Value < 60 Then
  1010. Dim 計數 As Integer
  1011. Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1012. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1013. 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
  1014. End If
  1015. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1016. Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1017. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1018. 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
  1019. End If
  1020. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1021. Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1022. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1023. 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
  1024. End If
  1025. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1026. Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1027. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1028. 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
  1029. End If
  1030. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1031. Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1032. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1033. 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
  1034. End If
  1035. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1036. Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1037. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1038. 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
  1039. End If
  1040. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1041. ElseIf 休假比例_nud.Value >= 60 And 休假比例_nud.Value < 80 Then
  1042. Dim 計數 As Integer
  1043. Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1044. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1045. 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
  1046. End If
  1047. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1048. Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1049. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1050. 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
  1051. End If
  1052. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1053. Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1054. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1055. 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
  1056. End If
  1057. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1058. Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1059. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1060. 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
  1061. End If
  1062. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1063. Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1064. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1065. 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
  1066. End If
  1067. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1068. Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1069. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1070. 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
  1071. End If
  1072. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1073. Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 48 Then
  1074. If 清單1_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1075. 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
  1076. End If
  1077. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1078. ElseIf 休假比例_nud.Value >= 80 And 休假比例_nud.Value < 100 Then
  1079. Dim 計數 As Integer
  1080. Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1081. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1082. 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
  1083. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1084. Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1085. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1086. 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
  1087. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1088. Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1089. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1090. 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
  1091. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1092. Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1093. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1094. 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
  1095. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1096. Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1097. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1098. 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
  1099. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1100. Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1101. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1102. 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
  1103. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1104. Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 30 Then
  1105. If 清單1_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1106. 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
  1107. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1108. ElseIf 休假比例_nud.Value = 100 Then
  1109. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1110. If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1111. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1112. If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1113. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1114. If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1115. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1116. If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1117. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1118. If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1119. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1120. If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1121. If 清單1_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1122. If 清單1_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1123. End If
  1124. Next : AUTO時段()
  1125. End If
  1126. End Sub
  1127. Private Sub AUTO時段()
  1128. Dim TSSL As Integer : Dim 加總1, 加總2, 加總3, 加總4, 加總5, 加總6, 加總7, 加總8, 加總9, 加總10, 加總11, 加總12, 加總13, 加總14, 加總15, 加總16 As Long
  1129. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1130. '-------------------------計算星期一--------------------------------------------------------------------------------------------------------------------
  1131. If 清單1_dgv.Rows(i).Cells(15).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(16).Value.ToString <> "" Then
  1132. X1 = 清單1_dgv.Rows(i).Cells(15).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(16).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1133. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= -120 : End If
  1134. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1135. 清單1_dgv.Rows(i).Cells(35).Value = 時間 : 清單1_dgv.Rows(i).Cells(36).Value = 加班1
  1136. Else : 清單1_dgv.Rows(i).Cells(35).Value = "" : 清單1_dgv.Rows(i).Cells(36).Value = "" : End If
  1137. '-------------------------計算星期二--------------------------------------------------------------------------------------------------------------------
  1138. If 清單1_dgv.Rows(i).Cells(17).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(18).Value.ToString <> "" Then
  1139. X1 = 清單1_dgv.Rows(i).Cells(17).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(18).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1140. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1141. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1142. 清單1_dgv.Rows(i).Cells(37).Value = 時間 : 清單1_dgv.Rows(i).Cells(38).Value = 加班1
  1143. Else : 清單1_dgv.Rows(i).Cells(37).Value = "" : 清單1_dgv.Rows(i).Cells(38).Value = "" : End If
  1144. '-------------------------計算星期三--------------------------------------------------------------------------------------------------------------------
  1145. If 清單1_dgv.Rows(i).Cells(19).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(20).Value.ToString <> "" Then
  1146. X1 = 清單1_dgv.Rows(i).Cells(19).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(20).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1147. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1148. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1149. 清單1_dgv.Rows(i).Cells(39).Value = 時間 : 清單1_dgv.Rows(i).Cells(40).Value = 加班1
  1150. Else : 清單1_dgv.Rows(i).Cells(39).Value = "" : 清單1_dgv.Rows(i).Cells(40).Value = "" : End If
  1151. '-------------------------計算星期四--------------------------------------------------------------------------------------------------------------------
  1152. If 清單1_dgv.Rows(i).Cells(21).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(22).Value.ToString <> "" Then
  1153. X1 = 清單1_dgv.Rows(i).Cells(21).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(22).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1154. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1155. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1156. 清單1_dgv.Rows(i).Cells(41).Value = 時間 : 清單1_dgv.Rows(i).Cells(42).Value = 加班1
  1157. Else : 清單1_dgv.Rows(i).Cells(41).Value = "" : 清單1_dgv.Rows(i).Cells(42).Value = "" : End If
  1158. '-------------------------計算星期五--------------------------------------------------------------------------------------------------------------------
  1159. If 清單1_dgv.Rows(i).Cells(23).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(24).Value.ToString <> "" Then
  1160. X1 = 清單1_dgv.Rows(i).Cells(23).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(24).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1161. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1162. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1163. 清單1_dgv.Rows(i).Cells(43).Value = 時間 : 清單1_dgv.Rows(i).Cells(44).Value = 加班1
  1164. Else : 清單1_dgv.Rows(i).Cells(43).Value = "" : 清單1_dgv.Rows(i).Cells(44).Value = "" : End If
  1165. '-------------------------計算星期六--------------------------------------------------------------------------------------------------------------------
  1166. If 清單1_dgv.Rows(i).Cells(25).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(26).Value.ToString <> "" Then
  1167. X1 = 清單1_dgv.Rows(i).Cells(25).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(26).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1168. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1169. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1170. 清單1_dgv.Rows(i).Cells(45).Value = 時間 : 清單1_dgv.Rows(i).Cells(46).Value = 加班1
  1171. Else : 清單1_dgv.Rows(i).Cells(45).Value = "" : 清單1_dgv.Rows(i).Cells(46).Value = "" : End If
  1172. '-------------------------計算星期日--------------------------------------------------------------------------------------------------------------------
  1173. If 清單1_dgv.Rows(i).Cells(27).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(28).Value.ToString <> "" Then
  1174. X1 = 清單1_dgv.Rows(i).Cells(27).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(28).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1175. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1176. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1177. 清單1_dgv.Rows(i).Cells(47).Value = 時間 : 清單1_dgv.Rows(i).Cells(48).Value = 加班1
  1178. Else : 清單1_dgv.Rows(i).Cells(47).Value = "" : 清單1_dgv.Rows(i).Cells(48).Value = "" : End If
  1179. Dim 正常(6), 加班(6) As Integer
  1180. If 清單1_dgv.Rows(i).Cells(35).Value <> "" Then : 正常(0) = 清單1_dgv.Rows(i).Cells(35).Value.ToString : Else : 正常(0) = 0 : End If
  1181. If 清單1_dgv.Rows(i).Cells(37).Value <> "" Then : 正常(1) = 清單1_dgv.Rows(i).Cells(37).Value.ToString : Else : 正常(1) = 0 : End If
  1182. If 清單1_dgv.Rows(i).Cells(39).Value <> "" Then : 正常(2) = 清單1_dgv.Rows(i).Cells(39).Value.ToString : Else : 正常(2) = 0 : End If
  1183. If 清單1_dgv.Rows(i).Cells(41).Value <> "" Then : 正常(3) = 清單1_dgv.Rows(i).Cells(41).Value.ToString : Else : 正常(3) = 0 : End If
  1184. If 清單1_dgv.Rows(i).Cells(43).Value <> "" Then : 正常(4) = 清單1_dgv.Rows(i).Cells(43).Value.ToString : Else : 正常(4) = 0 : End If
  1185. If 清單1_dgv.Rows(i).Cells(45).Value <> "" Then : 正常(5) = 清單1_dgv.Rows(i).Cells(45).Value.ToString : Else : 正常(5) = 0 : End If
  1186. If 清單1_dgv.Rows(i).Cells(47).Value <> "" Then : 正常(6) = 清單1_dgv.Rows(i).Cells(47).Value.ToString : Else : 正常(6) = 0 : End If
  1187. If 清單1_dgv.Rows(i).Cells(36).Value <> "" Then : 加班(0) = 清單1_dgv.Rows(i).Cells(36).Value.ToString : Else : 加班(0) = 0 : End If
  1188. If 清單1_dgv.Rows(i).Cells(38).Value <> "" Then : 加班(1) = 清單1_dgv.Rows(i).Cells(38).Value.ToString : Else : 加班(1) = 0 : End If
  1189. If 清單1_dgv.Rows(i).Cells(40).Value <> "" Then : 加班(2) = 清單1_dgv.Rows(i).Cells(40).Value.ToString : Else : 加班(2) = 0 : End If
  1190. If 清單1_dgv.Rows(i).Cells(42).Value <> "" Then : 加班(3) = 清單1_dgv.Rows(i).Cells(42).Value.ToString : Else : 加班(3) = 0 : End If
  1191. If 清單1_dgv.Rows(i).Cells(44).Value <> "" Then : 加班(4) = 清單1_dgv.Rows(i).Cells(44).Value.ToString : Else : 加班(4) = 0 : End If
  1192. If 清單1_dgv.Rows(i).Cells(46).Value <> "" Then : 加班(5) = 清單1_dgv.Rows(i).Cells(46).Value.ToString : Else : 加班(5) = 0 : End If
  1193. If 清單1_dgv.Rows(i).Cells(48).Value <> "" Then : 加班(6) = 清單1_dgv.Rows(i).Cells(48).Value.ToString : Else : 加班(6) = 0 : End If
  1194. 清單1_dgv.Rows(i).Cells(33).Value = 正常(0) + 正常(1) + 正常(2) + 正常(3) + 正常(4) + 正常(5) + 正常(6)
  1195. 清單1_dgv.Rows(i).Cells(34).Value = 加班(0) + 加班(1) + 加班(2) + 加班(3) + 加班(4) + 加班(5) + 加班(6)
  1196. '-------------------------計算工資單價--------------------------------------------------------------------------------------------------------------------
  1197. If IsDBNull(清單1_dgv.Rows(i).Cells(12).Value) Then : Else
  1198. If 清單1_dgv.Rows(i).Cells(12).Value.ToString <> "" Then
  1199. 清單1_dgv.Rows(i).Cells(31).Value = Strings.Format(清單1_dgv.Rows(i).Cells(12).Value / 8, "#,##0")
  1200. 清單1_dgv.Rows(i).Cells(32).Value = Strings.Format(清單1_dgv.Rows(i).Cells(12).Value / 6, "#,##0")
  1201. 清單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")
  1202. 清單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")
  1203. 清單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)
  1204. End If
  1205. End If
  1206. '-------------------------計算工資單價--------------------------------------------------------------------------------------------------------------------
  1207. 清單1_dgv.Rows(i).Cells(4).Value = i + 1 : 合計_dgv.Rows(0).Cells(4).Value = i + 1 : 合計_dgv.Rows(0).Cells(13).Value += CLng(清單1_dgv.Rows(i).Cells(13).Value.ToString)
  1208. 合計_dgv.Rows(0).Cells(29).Value += CLng(清單1_dgv.Rows(i).Cells(29).Value.ToString) : 合計_dgv.Rows(0).Cells(30).Value += CLng(清單1_dgv.Rows(i).Cells(30).Value.ToString)
  1209. If 清單1_dgv.Rows(i).Cells(33).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(33).Value += CLng(清單1_dgv.Rows(i).Cells(33).Value.ToString) : End If
  1210. If 清單1_dgv.Rows(i).Cells(34).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(34).Value += CLng(清單1_dgv.Rows(i).Cells(34).Value.ToString) : End If
  1211. If 清單1_dgv.Rows(i).Cells(35).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(35).Value += CLng(清單1_dgv.Rows(i).Cells(35).Value.ToString) : End If
  1212. If 清單1_dgv.Rows(i).Cells(36).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(36).Value += CLng(清單1_dgv.Rows(i).Cells(36).Value.ToString) : End If
  1213. If 清單1_dgv.Rows(i).Cells(37).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(37).Value += CLng(清單1_dgv.Rows(i).Cells(37).Value.ToString) : End If
  1214. If 清單1_dgv.Rows(i).Cells(38).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(38).Value += CLng(清單1_dgv.Rows(i).Cells(38).Value.ToString) : End If
  1215. If 清單1_dgv.Rows(i).Cells(39).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(39).Value += CLng(清單1_dgv.Rows(i).Cells(39).Value.ToString) : End If
  1216. If 清單1_dgv.Rows(i).Cells(40).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(40).Value += CLng(清單1_dgv.Rows(i).Cells(40).Value.ToString) : End If
  1217. If 清單1_dgv.Rows(i).Cells(41).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(41).Value += CLng(清單1_dgv.Rows(i).Cells(41).Value.ToString) : End If
  1218. If 清單1_dgv.Rows(i).Cells(42).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(42).Value += CLng(清單1_dgv.Rows(i).Cells(42).Value.ToString) : End If
  1219. If 清單1_dgv.Rows(i).Cells(43).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(43).Value += CLng(清單1_dgv.Rows(i).Cells(43).Value.ToString) : End If
  1220. If 清單1_dgv.Rows(i).Cells(44).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(44).Value += CLng(清單1_dgv.Rows(i).Cells(44).Value.ToString) : End If
  1221. If 清單1_dgv.Rows(i).Cells(45).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(45).Value += CLng(清單1_dgv.Rows(i).Cells(45).Value.ToString) : End If
  1222. If 清單1_dgv.Rows(i).Cells(46).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(46).Value += CLng(清單1_dgv.Rows(i).Cells(46).Value.ToString) : End If
  1223. If 清單1_dgv.Rows(i).Cells(47).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(47).Value += CLng(清單1_dgv.Rows(i).Cells(47).Value.ToString) : End If
  1224. If 清單1_dgv.Rows(i).Cells(48).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(48).Value += CLng(清單1_dgv.Rows(i).Cells(48).Value.ToString) : End If
  1225. If 清單1_dgv.Rows(i).Cells(15).Value.ToString = "" Then : Else : 加總1 += 1 : End If
  1226. If 清單1_dgv.Rows(i).Cells(17).Value.ToString = "" Then : Else : 加總2 += 1 : End If
  1227. If 清單1_dgv.Rows(i).Cells(19).Value.ToString = "" Then : Else : 加總3 += 1 : End If
  1228. If 清單1_dgv.Rows(i).Cells(21).Value.ToString = "" Then : Else : 加總4 += 1 : End If
  1229. If 清單1_dgv.Rows(i).Cells(23).Value.ToString = "" Then : Else : 加總5 += 1 : End If
  1230. If 清單1_dgv.Rows(i).Cells(25).Value.ToString = "" Then : Else : 加總6 += 1 : End If
  1231. If 清單1_dgv.Rows(i).Cells(27).Value.ToString = "" Then : Else : 加總7 += 1 : End If
  1232. Next
  1233. 合計_dgv.Rows(0).Cells(15).Value = 加總1 : 合計_dgv.Rows(0).Cells(17).Value = 加總2 : 合計_dgv.Rows(0).Cells(19).Value = 加總3 : 合計_dgv.Rows(0).Cells(21).Value = 加總4
  1234. 合計_dgv.Rows(0).Cells(23).Value = 加總5 : 合計_dgv.Rows(0).Cells(25).Value = 加總6 : 合計_dgv.Rows(0).Cells(27).Value = 加總7
  1235. 合計_dgv.Rows(0).Cells(29).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(29).Value), "#,##0")
  1236. 合計_dgv.Rows(0).Cells(30).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(30).Value), "#,##0")
  1237. 合計_dgv.Rows(0).Cells(33).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(33).Value), "#,##0")
  1238. 合計_dgv.Rows(0).Cells(34).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(34).Value), "#,##0")
  1239. 合計_dgv.Rows(0).Cells(35).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(35).Value), "#,##0")
  1240. 合計_dgv.Rows(0).Cells(36).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(36).Value), "#,##0")
  1241. 合計_dgv.Rows(0).Cells(37).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(37).Value), "#,##0")
  1242. 合計_dgv.Rows(0).Cells(38).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(38).Value), "#,##0")
  1243. 合計_dgv.Rows(0).Cells(39).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(39).Value), "#,##0")
  1244. 合計_dgv.Rows(0).Cells(40).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(40).Value), "#,##0")
  1245. 合計_dgv.Rows(0).Cells(41).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(41).Value), "#,##0")
  1246. 合計_dgv.Rows(0).Cells(42).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(42).Value), "#,##0")
  1247. 合計_dgv.Rows(0).Cells(43).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(43).Value), "#,##0")
  1248. 合計_dgv.Rows(0).Cells(44).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(44).Value), "#,##0")
  1249. 合計_dgv.Rows(0).Cells(45).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(45).Value), "#,##0")
  1250. 合計_dgv.Rows(0).Cells(46).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(46).Value), "#,##0")
  1251. 合計_dgv.Rows(0).Cells(47).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(47).Value), "#,##0")
  1252. 合計_dgv.Rows(0).Cells(48).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(48).Value), "#,##0")
  1253. End Sub
  1254. Private Sub AUTO時段1()
  1255. Dim random As New Random()
  1256. For i As Integer = 1 To 1000
  1257. Randomize() : Dim hours As Integer = random.Next(6, 7) : Dim minutes As Integer
  1258. If hours = 6 Then : Randomize() : minutes = random.Next(45, 59) : Else : Randomize() : minutes = random.Next(0, 3) : End If
  1259. Randomize() : Dim seconds As Integer = random.Next(0, 60) : AUTO時 = $"{hours:00}:{minutes:00}:{seconds:00}"
  1260. If AUTO舊1 <> AUTO時 Then : Exit For : End If
  1261. Next
  1262. End Sub
  1263. Private Sub AUTO時段2()
  1264. Dim random As New Random()
  1265. For i As Integer = 1 To 1000
  1266. Dim hours As Integer
  1267. If 加班_nud.Value = 1 Then : Randomize() : hours = random.Next(16, 17)
  1268. ElseIf 加班_nud.Value = 2 Then : Randomize() : hours = random.Next(18, 19)
  1269. ElseIf 加班_nud.Value = 3 Then : Randomize() : hours = random.Next(19, 20) : End If
  1270. Dim minutes As Integer
  1271. If 加班_nud.Value = 1 Then : If hours = 16 Then : Randomize() : minutes = random.Next(55, 59) : Else : Randomize() : minutes = random.Next(0, 15) : End If
  1272. ElseIf 加班_nud.Value = 2 Then : If hours = 18 Then : Randomize() : minutes = random.Next(55, 59) : Else : Randomize() : minutes = random.Next(0, 15) : End If
  1273. 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
  1274. Randomize() : Dim seconds As Integer = random.Next(0, 60) : AUTO時 = $"{hours:00}:{minutes:00}:{seconds:00}"
  1275. If AUTO舊2 <> AUTO時 Then : Exit For : End If
  1276. Next
  1277. End Sub
  1278. Private Sub 清除_bt_Click(sender As Object, e As EventArgs) Handles 清除_bt.Click
  1279. If 群組1_cb.Text <> "HARIAN GROUP" Then : MsgBox(系統語言字典("H611-110-" & 語言)) : Else
  1280. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1281. 清單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 = ""
  1282. 清單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 = ""
  1283. 清單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 = ""
  1284. 清單1_dgv.Rows(i).Cells(27).Value = "" : 清單1_dgv.Rows(i).Cells(28).Value = ""
  1285. Next : AUTO時段()
  1286. End If
  1287. End Sub
  1288. Private Sub 虛擬存檔_bt_Click(sender As Object, e As EventArgs) Handles 虛擬存檔_bt.Click
  1289. If 群組1_cb.Text <> "HARIAN GROUP" Then : MsgBox(系統語言字典("H611-110-" & 語言)) : Else
  1290. Dim 可以存檔 As Boolean = False
  1291. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1292. 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
  1293. 清單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
  1294. 清單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
  1295. 清單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
  1296. 清單1_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : 可以存檔 = True : End If
  1297. Next
  1298. If 可以存檔 = True Then
  1299. Dim AAS As String : PA45 = 星1_bt.Text : SQL_虛擬考勤明細表刪除()
  1300. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1301. 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
  1302. 清單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
  1303. 清單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
  1304. 清單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
  1305. 清單1_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else
  1306. 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 & "',
  1307. 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 & "',
  1308. 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 & "',
  1309. 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 & "',
  1310. 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 & "',
  1311. N'" & 星1_bt.Text & "')"
  1312. End If : If i = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If
  1313. Next
  1314. SQL_虛擬考勤明細表新增() : Set_使用者清單() : MsgBox(系統語言字典("H509-126-" & 語言))
  1315. Else : MsgBox(系統語言字典("H611-121-" & 語言)) : End If
  1316. End If
  1317. End Sub
  1318. '----------------------自創視窗滑鼠拖曳功能---------------------------------------------------------------------------------------------------------
  1319. Dim OldX, OldY As Long : Dim drag As Boolean
  1320. Private Sub 視窗3_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseDown
  1321. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  1322. End Sub
  1323. Private Sub 視窗3_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseMove
  1324. If drag Then : 視窗3_pl.Left = 視窗3_pl.Left + e.X - OldX : 視窗3_pl.Top = 視窗3_pl.Top + e.Y - OldY : End If
  1325. End Sub
  1326. Private Sub 視窗3_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseUp
  1327. drag = False
  1328. End Sub
  1329. Private Sub Label11_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label11.MouseDown
  1330. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  1331. End Sub
  1332. Private Sub Label11_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label11.MouseMove
  1333. If drag Then : 視窗3_pl.Left = 視窗3_pl.Left + e.X - OldX : 視窗3_pl.Top = 視窗3_pl.Top + e.Y - OldY : End If
  1334. End Sub
  1335. Private Sub Label11_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label11.MouseUp
  1336. drag = False
  1337. End Sub
  1338. End Class