No Description
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 181KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767
  1. Option Explicit On
  2. Imports System.IO
  3. Imports Microsoft.Office.Interop.Excel.Constants
  4. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  5. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  6. Imports Microsoft.Office.Interop.Excel.XlBorderWeight
  7. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  8. Imports Microsoft.Office.Interop.Excel.XlWindowState
  9. Imports Microsoft.Office.Interop.Excel
  10. Public Class 考勤明細表
  11. Dim xlApp As Application
  12. Dim xlBook As Workbook
  13. Dim xlSheet As Worksheet
  14. Dim 暫時不開 As Boolean
  15. Dim 時段(6), 計算(6), X1 As String
  16. Dim 間隔1, 時長, 總時, VBN, CBN As Integer
  17. Dim RI As Integer = -1
  18. Dim SK As String = "要查找的 KEY"
  19. Dim Str As String = System.Windows.Forms.Application.StartupPath
  20. DIM 對話框(40) As String
  21. Private Sub Set_萬年曆()
  22. Dim ds1 As New DataSet
  23. 萬年曆_dgv.DataSource = Nothing : ds1.Clear()
  24. 萬年曆_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  25. 萬年曆_dgv.ColumnHeadersHeight = 25 : 萬年曆_dgv.AllowUserToAddRows = False : 萬年曆_dgv.RowTemplate.Height = 25
  26. SQL_萬年曆()
  27. da.Fill(ds1) : 萬年曆_dgv.DataSource = ds1.Tables(0) : conn.Close()
  28. 萬年曆_dgv.Columns(0).Visible = False : 萬年曆_dgv.Columns(表頭(18)).FillWeight = 70
  29. 萬年曆_dgv.Columns(1).ReadOnly = True : 萬年曆_dgv.Columns(2).ReadOnly = True
  30. For i As Integer = 0 To 萬年曆_dgv.Rows.Count - 1
  31. If IsDBNull(萬年曆_dgv.Rows(i).Cells(表頭(18)).Value) Then : 萬年曆_dgv.Rows(i).Cells(表頭(18)).Value = False : End If
  32. If 萬年曆_dgv.Rows(i).Cells("MGB").Value.ToString = "星期一" Then : 萬年曆_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(0)
  33. ElseIf 萬年曆_dgv.Rows(i).Cells("MGB").Value.ToString = "星期二" Then : 萬年曆_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(1)
  34. ElseIf 萬年曆_dgv.Rows(i).Cells("MGB").Value.ToString = "星期三" Then : 萬年曆_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(2)
  35. ElseIf 萬年曆_dgv.Rows(i).Cells("MGB").Value.ToString = "星期四" Then : 萬年曆_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(3)
  36. ElseIf 萬年曆_dgv.Rows(i).Cells("MGB").Value.ToString = "星期五" Then : 萬年曆_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(4)
  37. ElseIf 萬年曆_dgv.Rows(i).Cells("MGB").Value.ToString = "星期六" Then : 萬年曆_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(5)
  38. ElseIf 萬年曆_dgv.Rows(i).Cells("MGB").Value.ToString = "星期日" Then : 萬年曆_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(6)
  39. End If
  40. '-------------清單介面優化------------------------------------
  41. If 深色風格 = False Then
  42. If 萬年曆_dgv.Rows(i).Cells(0).Value.ToString = "星期六" Then : 萬年曆_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
  43. ElseIf 萬年曆_dgv.Rows(i).Cells(0).Value.ToString = "星期日" Then : 萬年曆_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink : End If
  44. If 萬年曆_dgv.Rows(i).Cells(表頭(18)).Value = True Then : 萬年曆_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink : End If
  45. Else
  46. If 萬年曆_dgv.Rows(i).Cells(0).Value.ToString = "星期六" Then : 萬年曆_dgv.Rows(i).DefaultCellStyle.BackColor = Color.Purple
  47. ElseIf 萬年曆_dgv.Rows(i).Cells(0).Value.ToString = "星期日" Then : 萬年曆_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkRed : End If
  48. If 萬年曆_dgv.Rows(i).Cells(表頭(18)).Value = True Then : 萬年曆_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkRed : End If
  49. End If
  50. Next
  51. End Sub
  52. Private Sub Set_查詢表()
  53. Dim ds1 As New DataSet
  54. 查詢表_dgv.DataSource = Nothing : ds1.Clear()
  55. 查詢表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  56. 查詢表_dgv.ColumnHeadersHeight = 25 : 查詢表_dgv.AllowUserToAddRows = False : 查詢表_dgv.RowTemplate.Height = 25
  57. PA15 = Strings.Format(日期1_dtp.Value, "yyyy/MM/dd") : PA25 = 部門1_cb.SelectedIndex : PA14 = 級別2_cb.Text : SQL_考勤查詢清單() : PA25 = ""
  58. da.Fill(ds1) : 查詢表_dgv.DataSource = ds1.Tables(0) : conn.Close()
  59. 查詢表_dgv.Columns(0).FillWeight = 180 : 查詢表_dgv.Columns(1).Visible = False : 查詢表_dgv.Columns(2).Visible = False : 查詢表_dgv.Columns(表頭(17)).FillWeight = 50
  60. 查詢表_dgv.Columns(表頭(1)).FillWeight = 50 : 查詢表_dgv.Columns(表頭(18)).FillWeight = 50 : 查詢表_dgv.Columns(表頭(26)).FillWeight = 85
  61. 查詢表_dgv.Columns(表頭(19)).FillWeight = 160
  62. For I As Integer = 4 To 16 : 查詢表_dgv.Columns(表頭(I)).FillWeight = 70 : Next
  63. 查詢表_dgv.Columns("第一").Visible = False : 查詢表_dgv.Columns("第二").Visible = False : 查詢表_dgv.Columns("第三").Visible = False
  64. 查詢表_dgv.Columns("第四").Visible = False : 查詢表_dgv.Columns("第五").Visible = False : 查詢表_dgv.Columns("第六").Visible = False
  65. 查詢表_dgv.Columns("假別編號").Visible = False
  66. 查詢表_dgv.Columns(表頭(18)).ReadOnly = True
  67. 資料規格1() : 總時 = 0
  68. For I As Integer = 4 To 9 : 查詢表_dgv.Columns(表頭(I)).Visible = True : Next : For I As Integer = 10 To 15 : 查詢表_dgv.Columns(表頭(I)).Visible = False : Next : 總時 = 0
  69. For i As Integer = 0 To 查詢表_dgv.Rows.Count - 1
  70. Dim 驗證 As String = "" : Dim 取變數 As String
  71. 取變數 = 查詢表_dgv.Rows(i).Cells(表頭(19)).Value.ToString : NN1 = 0
  72. For ii As Integer = 1 To 20
  73. If ii = 1 Then : 驗證 = Strings.Left(取變數, ii) : NN1 += 1 : Else
  74. If Strings.Mid(取變數, ii, 1) = " " Then : Exit For : Else : 驗證 &= Strings.Mid(取變數, ii, 1) : NN1 += 1 : End If
  75. End If
  76. Next
  77. If 系統語言 = "繁體中文" Then : 查詢表_dgv.Rows(i).Cells(表頭(19)).Value = 驗證 : Else
  78. If Strings.Left(查詢表_dgv.Rows(i).Cells(表頭(19)).Value.ToString, 2) = "0." Then : 查詢表_dgv.Rows(i).Cells(表頭(19)).Value = "0.NA" : Else
  79. 查詢表_dgv.Rows(i).Cells(表頭(19)).Value = Strings.Left(查詢表_dgv.Rows(i).Cells(表頭(19)).Value.ToString, 2) &
  80. Strings.Mid(查詢表_dgv.Rows(i).Cells(表頭(19)).Value.ToString, NN1 + 2, 100)
  81. End If
  82. End If
  83. '-------------基本資料準備------------------------------------
  84. If 工人_ch.Checked = True Then : 查詢表_dgv.Rows(i).Cells(表頭(17)).Value = True
  85. Else : If IsDBNull(查詢表_dgv.Rows(i).Cells(表頭(17)).Value) Then : 查詢表_dgv.Rows(i).Cells(表頭(17)).Value = False : End If : End If
  86. If IsDBNull(查詢表_dgv.Rows(i).Cells(表頭(18)).Value) Then : 查詢表_dgv.Rows(i).Cells(表頭(18)).Value = False : End If
  87. If 查詢表_dgv.Rows(i).Cells("MGB").Value.ToString = "星期一" Then : 查詢表_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(0)
  88. ElseIf 查詢表_dgv.Rows(i).Cells("MGB").Value.ToString = "星期二" Then : 查詢表_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(1)
  89. ElseIf 查詢表_dgv.Rows(i).Cells("MGB").Value.ToString = "星期三" Then : 查詢表_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(2)
  90. ElseIf 查詢表_dgv.Rows(i).Cells("MGB").Value.ToString = "星期四" Then : 查詢表_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(3)
  91. ElseIf 查詢表_dgv.Rows(i).Cells("MGB").Value.ToString = "星期五" Then : 查詢表_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(4)
  92. ElseIf 查詢表_dgv.Rows(i).Cells("MGB").Value.ToString = "星期六" Then : 查詢表_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(5)
  93. ElseIf 查詢表_dgv.Rows(i).Cells("MGB").Value.ToString = "星期日" Then : 查詢表_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(6)
  94. End If
  95. Dim DFG(6) As String : Dim CV As Integer = 1 : For V As Integer = 0 To 6 : DFG(V) = "" : Next
  96. If 查詢表_dgv.Rows(i).Cells("第一").Value.ToString <> "" Then : DFG(CV) = 查詢表_dgv.Rows(i).Cells("第一").Value.ToString : CV += 1 : End If
  97. If 查詢表_dgv.Rows(i).Cells("第二").Value.ToString <> "" Then : DFG(CV) = 查詢表_dgv.Rows(i).Cells("第二").Value.ToString : CV += 1 : End If
  98. If 查詢表_dgv.Rows(i).Cells("第三").Value.ToString <> "" Then : DFG(CV) = 查詢表_dgv.Rows(i).Cells("第三").Value.ToString : CV += 1 : End If
  99. If 查詢表_dgv.Rows(i).Cells("第四").Value.ToString <> "" Then : DFG(CV) = 查詢表_dgv.Rows(i).Cells("第四").Value.ToString : CV += 1 : End If
  100. If 查詢表_dgv.Rows(i).Cells("第五").Value.ToString <> "" Then : DFG(CV) = 查詢表_dgv.Rows(i).Cells("第五").Value.ToString : CV += 1 : End If
  101. If 查詢表_dgv.Rows(i).Cells("第六").Value.ToString <> "" Then : DFG(CV) = 查詢表_dgv.Rows(i).Cells("第六").Value.ToString : CV += 1 : End If
  102. 時段(1) = DFG(1) : 時段(2) = DFG(2)
  103. 時段(3) = DFG(3) : 時段(4) = DFG(4)
  104. 時段(5) = DFG(5) : 時段(6) = DFG(6)
  105. For II As Integer = 4 To 16 : 查詢表_dgv.Rows(i).Cells(表頭(II)).Value = "" : Next
  106. If 查詢表_dgv.Rows(i).Cells("假別編號").Value.ToString = "" Then : 查詢表_dgv.Rows(i).Cells(表頭(26)).Value = ""
  107. ElseIf 查詢表_dgv.Rows(i).Cells("假別編號").Value.ToString = "1" Then : 查詢表_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(9)
  108. ElseIf 查詢表_dgv.Rows(i).Cells("假別編號").Value.ToString = "2" Then : 查詢表_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(10)
  109. ElseIf 查詢表_dgv.Rows(i).Cells("假別編號").Value.ToString = "3" Then : 查詢表_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(11)
  110. ElseIf 查詢表_dgv.Rows(i).Cells("假別編號").Value.ToString = "4" Then : 查詢表_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(12)
  111. ElseIf 查詢表_dgv.Rows(i).Cells("假別編號").Value.ToString = "5" Then : 查詢表_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(13)
  112. End If
  113. '-------------時間推移計算------------------------------------
  114. If 時段(1) = "" And 時段(2) = "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  115. ElseIf 時段(1) <> "" And 時段(2) = "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  116. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  117. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  118. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(2) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  119. If 間隔1 >= 665 Then
  120. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  121. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(9)).Value = 時段(2)
  122. 'X1 = 時段(1) : Set_時段定點_加四小時() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  123. 'X1 = 時段(2) : Set_時段定點_加一小時() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  124. 'X1 = 時段(3) : Set_時段定點_加四小時() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  125. 'X1 = 時段(4) : Set_時段定點_加一小時() : 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = X1
  126. 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  127. 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  128. 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  129. 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  130. ElseIf 間隔1 >= 325 And 間隔1 < 665 Then
  131. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  132. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = 時段(2)
  133. 'X1 = 時段(1) : Set_時段定點_加四小時() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  134. 'X1 = 時段(2) : Set_時段定點_加一小時() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  135. 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  136. 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  137. ElseIf 間隔1 < 325 Then
  138. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  139. X1 = 時段(1) : Set_時段定點_加四小時() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  140. End If
  141. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  142. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(3) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  143. If 間隔1 >= 665 Then '---------大於十小時
  144. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(2) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  145. If 間隔1 <= 325 Then
  146. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  147. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  148. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(9)).Value = 時段(3)
  149. 'X1 = 時段(2) : Set_時段定點_加一小時() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  150. 'X1 = 時段(3) : Set_時段定點_加四小時() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  151. 'X1 = 時段(4) : Set_時段定點_加一小時() : 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = X1
  152. 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  153. 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  154. 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  155. ElseIf 間隔1 > 325 Then
  156. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  157. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(9)).Value = 時段(3)
  158. 'X1 = 時段(1) : Set_時段定點_加四小時() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  159. 'X1 = 時段(2) : Set_時段定點_加一小時() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  160. 'X1 = 時段(3) : Set_時段定點_加四小時() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  161. 'X1 = 時段(4) : Set_時段定點_加一小時() : 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = X1
  162. 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  163. 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  164. 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  165. 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  166. End If
  167. ElseIf 間隔1 > 325 And 間隔1 < 665 Then
  168. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  169. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = 時段(3)
  170. 'X1 = 時段(1) : Set_時段定點_加四小時() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  171. 'X1 = 時段(2) : Set_時段定點_加一小時() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  172. 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  173. 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  174. ElseIf 間隔1 >= 325 Then
  175. X1 = 時段(2) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(3) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  176. If 間隔1 >= 90 Then
  177. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  178. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  179. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = 時段(3)
  180. X1 = 時段(2) : Set_時段定點_加一小時() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = X1
  181. Else
  182. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  183. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  184. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1
  185. End If
  186. Else
  187. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  188. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  189. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1
  190. End If
  191. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) = "" And 時段(6) = "" Then
  192. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(4) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  193. If 間隔1 >= 665 Then
  194. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  195. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  196. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  197. X1 = 時段(4) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(9)).Value = 時段(4)
  198. 'X1 = 時段(3) : Set_時段定點_加四小時() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  199. 'X1 = 時段(4) : Set_時段定點_加一小時() : 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = X1
  200. 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  201. 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  202. Else
  203. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  204. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  205. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  206. X1 = 時段(4) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  207. End If
  208. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) <> "" And 時段(6) = "" Then
  209. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(5) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  210. If 間隔1 >= 665 Then
  211. X1 = 時段(4) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(5) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  212. If 間隔1 >= 90 Then
  213. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  214. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  215. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  216. X1 = 時段(4) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  217. X1 = 時段(5) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(9)).Value = 時段(6)
  218. X1 = 時段(5) : Set_時段定點_減一小時() : 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = X1
  219. Else
  220. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  221. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  222. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  223. X1 = 時段(4) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  224. X1 = 時段(5) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  225. End If
  226. Else
  227. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  228. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  229. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  230. X1 = 時段(4) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  231. X1 = 時段(5) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  232. End If
  233. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) <> "" And 時段(6) <> "" Then
  234. X1 = 時段(1) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  235. X1 = 時段(2) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  236. X1 = 時段(3) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  237. X1 = 時段(4) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  238. X1 = 時段(5) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  239. X1 = 時段(6) : Set_時段定點() : 查詢表_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 查詢表_dgv.Rows(i).Cells(表頭(9)).Value = 時段(6)
  240. End If
  241. '-------------時間彙總計算------------------------------------
  242. 時長 = 0
  243. If 查詢表_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 查詢表_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  244. 查詢表_dgv.Rows(i).Cells(表頭(12)).Value.ToString = "" And 查詢表_dgv.Rows(i).Cells(表頭(13)).Value.ToString = "" And
  245. 查詢表_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 查詢表_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  246. 計算(0) = 查詢表_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 查詢表_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  247. If 時長 <= 8 Then : 查詢表_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : End If
  248. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 查詢表_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  249. 查詢表_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 查詢表_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  250. 查詢表_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 查詢表_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  251. 計算(0) = 查詢表_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 查詢表_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  252. 計算(0) = 查詢表_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 查詢表_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  253. If 時長 <= 8 Then : 查詢表_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  254. If 查詢表_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  255. 查詢表_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  256. Else
  257. If 時長 < 10 Then : 查詢表_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  258. Else : 查詢表_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  259. End If
  260. End If
  261. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 查詢表_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  262. 查詢表_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 查詢表_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  263. 查詢表_dgv.Rows(i).Cells(表頭(14)).Value.ToString <> "" And 查詢表_dgv.Rows(i).Cells(表頭(15)).Value.ToString <> "" Then
  264. 計算(0) = 查詢表_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 查詢表_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  265. 計算(0) = 查詢表_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 查詢表_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  266. 計算(0) = 查詢表_dgv.Rows(i).Cells(表頭(14)).Value.ToString : 計算(1) = 查詢表_dgv.Rows(i).Cells(表頭(15)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  267. If 時長 <= 8 Then : 查詢表_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  268. If 查詢表_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  269. 查詢表_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  270. Else
  271. If 時長 < 10 Then : 查詢表_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  272. Else : 查詢表_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  273. End If
  274. End If
  275. End If
  276. '-------------清單介面優化------------------------------------
  277. If 深色風格 = False Then
  278. If 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "01" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
  279. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "02" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen
  280. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "03" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
  281. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "04" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue
  282. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "05" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue : End If
  283. Else
  284. If 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "01" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.Purple
  285. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "02" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkGreen
  286. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "03" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkRed
  287. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "04" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkBlue
  288. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "05" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkBlue : End If
  289. End If
  290. Next
  291. 查詢表_dgv.Columns(表頭(27)).FillWeight = 120
  292. End Sub
  293. Private Sub Set_使用者清單()
  294. Dim ds1 As New DataSet
  295. 清單1_dgv.DataSource = Nothing : ds1.Clear()
  296. 清單1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  297. 清單1_dgv.ColumnHeadersHeight = 25 : 清單1_dgv.AllowUserToAddRows = False : 清單1_dgv.RowTemplate.Height = 25
  298. If 小間距1_ch.Checked = False And 中間距1_ch.Checked = False And 大間距1_ch.Checked = True Then : 清單1_dgv.RowTemplate.Height = 75
  299. ElseIf 小間距1_ch.Checked = False And 中間距1_ch.Checked = True And 大間距1_ch.Checked = False Then : 清單1_dgv.RowTemplate.Height = 45
  300. ElseIf 小間距1_ch.Checked = True And 中間距1_ch.Checked = False And 大間距1_ch.Checked = False Then : 清單1_dgv.RowTemplate.Height = 25 : End If
  301. PA25 = 地區_cb.SelectedIndex : SQL3 = "" : PA14 = 級別_cb.Text : SQL_考勤明細表清單() : PA25 = ""
  302. da.Fill(ds1) : 清單1_dgv.DataSource = ds1.Tables(0) : conn.Close()
  303. 清單1_dgv.Columns(0).FillWeight = 90 : 清單1_dgv.Columns(1).Visible = False : 清單1_dgv.Columns(2).Visible = False : 清單1_dgv.Columns(7).FillWeight = 20
  304. 清單1_dgv.Columns(4).Visible = False : 清單1_dgv.Columns(5).Visible = False : 清單1_dgv.Columns(6).Visible = False : 清單1_dgv.Columns(3).Visible = False
  305. 清單1_dgv.Columns(8).Visible = False : 清單1_dgv.Columns(9).Visible = False
  306. 清單1_dgv.Columns(0).ReadOnly = True : 清單1_dgv.Columns(3).ReadOnly = True
  307. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  308. If 深色風格 = False Then
  309. If 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "01" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
  310. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "02" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen
  311. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "03" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
  312. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "04" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue
  313. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "05" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue : End If
  314. Else
  315. If 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "01" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.Purple
  316. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "02" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkGreen
  317. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "03" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkRed
  318. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "04" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkBlue
  319. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "05" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkBlue : End If
  320. End If
  321. Next
  322. 明細_dgv.DataSource = Nothing
  323. End Sub
  324. Private Sub Set_考勤彙總()
  325. Dim ds1 As New DataSet
  326. 考勤彙總_dgv.DataSource = Nothing : ds1.Clear()
  327. 考勤彙總_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  328. 考勤彙總_dgv.ColumnHeadersHeight = 25 : 考勤彙總_dgv.AllowUserToAddRows = False : 考勤彙總_dgv.RowTemplate.Height = 25
  329. If 小間距1_ch.Checked = False And 中間距1_ch.Checked = False And 大間距1_ch.Checked = True Then : 考勤彙總_dgv.RowTemplate.Height = 75
  330. ElseIf 小間距1_ch.Checked = False And 中間距1_ch.Checked = True And 大間距1_ch.Checked = False Then : 考勤彙總_dgv.RowTemplate.Height = 45
  331. ElseIf 小間距1_ch.Checked = True And 中間距1_ch.Checked = False And 大間距1_ch.Checked = False Then : 考勤彙總_dgv.RowTemplate.Height = 25 : End If
  332. PA25 = 地區1_cb.SelectedIndex : PA14 = 級別1_cb.Text : SQL_考勤明細表清單() : PA25 = ""
  333. da.Fill(ds1) : 考勤彙總_dgv.DataSource = ds1.Tables(0) : conn.Close()
  334. 考勤彙總_dgv.Columns(0).FillWeight = 120 : 考勤彙總_dgv.Columns(7).FillWeight = 30 : 考勤彙總_dgv.Columns(表頭(20)).FillWeight = 50
  335. 考勤彙總_dgv.Columns(表頭(21)).FillWeight = 50 : 考勤彙總_dgv.Columns(表頭(22)).FillWeight = 50
  336. 考勤彙總_dgv.Columns("ID卡號").Visible = False : 考勤彙總_dgv.Columns(0).ReadOnly = True : 考勤彙總_dgv.Columns(3).ReadOnly = True
  337. 考勤彙總_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  338. 考勤彙總_dgv.Columns(表頭(20)).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  339. 考勤彙總_dgv.Columns(表頭(21)).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  340. 考勤彙總_dgv.Columns(表頭(22)).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  341. Dim 上班天數, 總時間 As Integer
  342. For i As Integer = 0 To 考勤彙總_dgv.Rows.Count - 1
  343. 考勤彙總_dgv.Rows(i).Cells(表頭(20)).Value = "" : 考勤彙總_dgv.Rows(i).Cells(表頭(21)).Value = ""
  344. If 深色風格 = False Then
  345. If 考勤彙總_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "01" Then : 考勤彙總_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
  346. ElseIf 考勤彙總_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "02" Then : 考勤彙總_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen
  347. ElseIf 考勤彙總_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "03" Then : 考勤彙總_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
  348. ElseIf 考勤彙總_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "04" Then : 考勤彙總_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue
  349. ElseIf 考勤彙總_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "05" Then : 考勤彙總_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue : End If
  350. Else
  351. If 考勤彙總_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "01" Then : 考勤彙總_dgv.Rows(i).DefaultCellStyle.BackColor = Color.Purple
  352. ElseIf 考勤彙總_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "02" Then : 考勤彙總_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkGreen
  353. ElseIf 考勤彙總_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "03" Then : 考勤彙總_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkRed
  354. ElseIf 考勤彙總_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "04" Then : 考勤彙總_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkBlue
  355. ElseIf 考勤彙總_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "05" Then : 考勤彙總_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkBlue : End If
  356. End If
  357. Dim 驗證 As String = "" : Dim 取變數 As String
  358. 取變數 = 考勤彙總_dgv.Rows(i).Cells(表頭(19)).Value.ToString : NN1 = 0
  359. For ii As Integer = 1 To 20
  360. If ii = 1 Then : 驗證 = Strings.Left(取變數, ii) : NN1 += 1 : Else
  361. If Strings.Mid(取變數, ii, 1) = " " Then : Exit For : Else : 驗證 &= Strings.Mid(取變數, ii, 1) : NN1 += 1 : End If
  362. End If
  363. Next
  364. If 系統語言 = "繁體中文" Then : 考勤彙總_dgv.Rows(i).Cells(表頭(19)).Value = 驗證 : Else
  365. If Strings.Left(考勤彙總_dgv.Rows(i).Cells(表頭(19)).Value.ToString, 2) = "0." Then : 考勤彙總_dgv.Rows(i).Cells(表頭(19)).Value = "0.NA" : Else
  366. 考勤彙總_dgv.Rows(i).Cells(表頭(19)).Value = Strings.Left(考勤彙總_dgv.Rows(i).Cells(表頭(19)).Value.ToString, 2) &
  367. Strings.Mid(考勤彙總_dgv.Rows(i).Cells(表頭(19)).Value.ToString, NN1 + 2, 100)
  368. End If
  369. End If
  370. If 考勤彙總_dgv.Rows(i).Cells("ID卡號").Value.ToString <> "" Then
  371. 上班天數 = 0 : 總時間 = 0
  372. For II As Integer = 0 To 總清單_dgv.Rows.Count - 1
  373. If 考勤彙總_dgv.Rows(i).Cells("ID卡號").Value.ToString = 總清單_dgv.Rows(II).Cells("ID卡號").Value.ToString Then
  374. If 總清單_dgv.Rows(II).Cells(表頭(16)).Value.ToString <> "" And Strings.Left(總清單_dgv.Rows(II).Cells(表頭(16)).Value.ToString, 2) <> "00" Then
  375. 上班天數 += 1
  376. 總時間 += CInt(Strings.Left(總清單_dgv.Rows(II).Cells(表頭(16)).Value.ToString, 2))
  377. End If
  378. End If
  379. Next
  380. 考勤彙總_dgv.Rows(i).Cells(表頭(20)).Value = 上班天數
  381. If 總時間 < 10 Then : 考勤彙總_dgv.Rows(i).Cells(表頭(21)).Value = "0" & 總時間 & " H 00 M" : Else : 考勤彙總_dgv.Rows(i).Cells(表頭(21)).Value = 總時間 & " H 00 M" : End If
  382. End If
  383. Next
  384. End Sub
  385. Private Sub Set_總清單()
  386. Dim ds1 As New DataSet
  387. 總清單_dgv.DataSource = Nothing : ds1.Clear()
  388. 總清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  389. 總清單_dgv.ColumnHeadersHeight = 25 : 總清單_dgv.AllowUserToAddRows = False : 總清單_dgv.RowTemplate.Height = 25
  390. PA25 = 地區_cb.SelectedIndex : SQL_考勤總明細() : PA25 = ""
  391. da.Fill(ds1) : 總清單_dgv.DataSource = ds1.Tables(0) : conn.Close()
  392. 總清單_dgv.Columns(表頭(17)).FillWeight = 70 : 總清單_dgv.Columns(表頭(18)).FillWeight = 70
  393. 總清單_dgv.Columns("第一").Visible = False : 總清單_dgv.Columns("第二").Visible = False : 總清單_dgv.Columns("第三").Visible = False
  394. 總清單_dgv.Columns("第四").Visible = False : 總清單_dgv.Columns("第五").Visible = False : 總清單_dgv.Columns("第六").Visible = False
  395. For I As Integer = 4 To 9 : 總清單_dgv.Columns(表頭(I)).Visible = False : Next : For I As Integer = 10 To 15 : 總清單_dgv.Columns(表頭(I)).Visible = True : Next : 總時 = 0
  396. For i As Integer = 0 To 總清單_dgv.Rows.Count - 1
  397. '-------------基本資料準備------------------------------------
  398. If 工人_ch.Checked = True Then : 總清單_dgv.Rows(i).Cells(表頭(17)).Value = True
  399. Else : If IsDBNull(總清單_dgv.Rows(i).Cells(表頭(17)).Value) Then : 總清單_dgv.Rows(i).Cells(表頭(17)).Value = False : End If : End If
  400. If IsDBNull(總清單_dgv.Rows(i).Cells(表頭(18)).Value) Then : 總清單_dgv.Rows(i).Cells(表頭(18)).Value = False : End If
  401. If 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期一" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(0)
  402. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期二" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(1)
  403. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期三" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(2)
  404. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期四" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(3)
  405. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期五" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(4)
  406. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期六" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(5)
  407. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期日" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(6)
  408. End If
  409. Dim DFG(6) As String : Dim CV As Integer = 1 : For V As Integer = 0 To 6 : DFG(V) = "" : Next
  410. If 總清單_dgv.Rows(i).Cells("第一").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第一").Value.ToString : CV += 1 : End If
  411. If 總清單_dgv.Rows(i).Cells("第二").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第二").Value.ToString : CV += 1 : End If
  412. If 總清單_dgv.Rows(i).Cells("第三").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第三").Value.ToString : CV += 1 : End If
  413. If 總清單_dgv.Rows(i).Cells("第四").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第四").Value.ToString : CV += 1 : End If
  414. If 總清單_dgv.Rows(i).Cells("第五").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第五").Value.ToString : CV += 1 : End If
  415. If 總清單_dgv.Rows(i).Cells("第六").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第六").Value.ToString : CV += 1 : End If
  416. 時段(1) = DFG(1) : 時段(2) = DFG(2)
  417. 時段(3) = DFG(3) : 時段(4) = DFG(4)
  418. 時段(5) = DFG(5) : 時段(6) = DFG(6)
  419. For II As Integer = 4 To 16 : 總清單_dgv.Rows(i).Cells(表頭(II)).Value = "" : Next
  420. '-------------時間推移計算------------------------------------
  421. If 時段(1) = "" And 時段(2) = "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  422. ElseIf 時段(1) <> "" And 時段(2) = "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  423. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  424. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  425. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(2) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  426. If 間隔1 >= 665 Then
  427. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  428. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(2)
  429. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  430. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  431. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  432. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  433. ElseIf 間隔1 >= 325 And 間隔1 < 665 Then
  434. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  435. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(2)
  436. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  437. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  438. ElseIf 間隔1 < 325 Then
  439. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  440. X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  441. End If
  442. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  443. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(3) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  444. If 間隔1 >= 665 Then '---------大於十小時
  445. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(2) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  446. If 間隔1 <= 325 Then
  447. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  448. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  449. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(3)
  450. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  451. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  452. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  453. ElseIf 間隔1 > 325 Then
  454. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  455. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(3)
  456. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  457. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  458. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  459. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  460. End If
  461. ElseIf 間隔1 > 325 And 間隔1 < 625 Then
  462. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  463. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(3)
  464. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  465. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  466. ElseIf 間隔1 >= 325 Then
  467. X1 = 時段(2) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(3) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  468. If 間隔1 >= 90 Then
  469. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  470. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  471. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(3)
  472. X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1
  473. Else
  474. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  475. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  476. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1
  477. End If
  478. Else
  479. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  480. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  481. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1
  482. End If
  483. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) = "" And 時段(6) = "" Then
  484. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(4) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  485. If 間隔1 >= 665 Then
  486. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  487. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  488. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  489. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(4)
  490. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  491. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  492. Else
  493. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  494. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  495. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  496. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  497. End If
  498. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) <> "" And 時段(6) = "" Then
  499. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(5) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  500. If 間隔1 >= 665 Then
  501. X1 = 時段(4) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(5) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  502. If 間隔1 >= 90 Then
  503. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  504. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  505. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  506. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  507. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(6)
  508. X1 = 時段(5) : Set_時段定點_減一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1
  509. Else
  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(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  513. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  514. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  515. End If
  516. Else
  517. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  518. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  519. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  520. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  521. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  522. End If
  523. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) <> "" And 時段(6) <> "" Then
  524. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  525. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  526. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  527. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  528. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  529. X1 = 時段(6) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(6)
  530. End If
  531. '-------------時間彙總計算------------------------------------
  532. 時長 = 0
  533. If 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  534. 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString = "" And 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString = "" And
  535. 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  536. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  537. If 時長 <= 8 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : End If
  538. ElseIf 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  539. 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  540. 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  541. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  542. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  543. If 時長 <= 8 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  544. If 總清單_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  545. 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  546. Else
  547. If 時長 < 10 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  548. Else : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  549. End If
  550. End If
  551. ElseIf 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  552. 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  553. 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString <> "" Then
  554. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  555. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  556. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  557. If 時長 <= 8 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  558. If 總清單_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  559. 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  560. Else
  561. If 時長 < 10 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  562. Else : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  563. End If
  564. End If
  565. End If
  566. Next
  567. Set_考勤彙總()
  568. End Sub
  569. Private Sub Set_考勤明細()
  570. Dim ds1 As New DataSet
  571. 明細_dgv.DataSource = Nothing : ds1.Clear()
  572. 明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  573. 明細_dgv.ColumnHeadersHeight = 25 : 明細_dgv.AllowUserToAddRows = False : 明細_dgv.RowTemplate.Height = 25
  574. If 小間距1_ch.Checked = False And 中間距1_ch.Checked = False And 大間距1_ch.Checked = True Then : 明細_dgv.RowTemplate.Height = 75
  575. ElseIf 小間距1_ch.Checked = False And 中間距1_ch.Checked = True And 大間距1_ch.Checked = False Then : 明細_dgv.RowTemplate.Height = 45
  576. ElseIf 小間距1_ch.Checked = True And 中間距1_ch.Checked = False And 大間距1_ch.Checked = False Then : 明細_dgv.RowTemplate.Height = 25 : End If
  577. SQL_考勤明細()
  578. da.Fill(ds1) : 明細_dgv.DataSource = ds1.Tables(0) : conn.Close()
  579. 明細_dgv.Columns(0).Visible = False : 明細_dgv.Columns(1).FillWeight = 60 : 明細_dgv.Columns(2).FillWeight = 80 : 明細_dgv.Columns(表頭(17)).FillWeight = 50
  580. 明細_dgv.Columns(表頭(18)).FillWeight = 50 : 明細_dgv.Columns(表頭(26)).FillWeight = 85
  581. For I As Integer = 4 To 16 : 明細_dgv.Columns(表頭(I)).FillWeight = 70 : Next
  582. 明細_dgv.Columns("第一").Visible = False : 明細_dgv.Columns("第二").Visible = False : 明細_dgv.Columns("第三").Visible = False
  583. 明細_dgv.Columns("第四").Visible = False : 明細_dgv.Columns("第五").Visible = False : 明細_dgv.Columns("第六").Visible = False
  584. 明細_dgv.Columns("假別編號").Visible = False
  585. 明細_dgv.Columns(表頭(18)).ReadOnly = True
  586. 資料規格() : 總時 = 0 : 總時數_tb.Text = ""
  587. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  588. '-------------基本資料準備------------------------------------
  589. If 工人_ch.Checked = True Then : 明細_dgv.Rows(i).Cells(表頭(17)).Value = True
  590. Else : If IsDBNull(明細_dgv.Rows(i).Cells(表頭(17)).Value) Then : 明細_dgv.Rows(i).Cells(表頭(17)).Value = False : End If : End If
  591. If IsDBNull(明細_dgv.Rows(i).Cells(表頭(18)).Value) Then : 明細_dgv.Rows(i).Cells(表頭(18)).Value = False : End If
  592. If 明細_dgv.Rows(i).Cells("MGB").Value.ToString = "星期一" Then : 明細_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(0)
  593. ElseIf 明細_dgv.Rows(i).Cells("MGB").Value.ToString = "星期二" Then : 明細_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(1)
  594. ElseIf 明細_dgv.Rows(i).Cells("MGB").Value.ToString = "星期三" Then : 明細_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(2)
  595. ElseIf 明細_dgv.Rows(i).Cells("MGB").Value.ToString = "星期四" Then : 明細_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(3)
  596. ElseIf 明細_dgv.Rows(i).Cells("MGB").Value.ToString = "星期五" Then : 明細_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(4)
  597. ElseIf 明細_dgv.Rows(i).Cells("MGB").Value.ToString = "星期六" Then : 明細_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(5)
  598. ElseIf 明細_dgv.Rows(i).Cells("MGB").Value.ToString = "星期日" Then : 明細_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(6)
  599. End If
  600. Dim DFG(6) As String : Dim CV As Integer = 1 : For V As Integer = 0 To 6 : DFG(V) = "" : Next
  601. If 明細_dgv.Rows(i).Cells("第一").Value.ToString <> "" Then : DFG(CV) = 明細_dgv.Rows(i).Cells("第一").Value.ToString : CV += 1 : End If
  602. If 明細_dgv.Rows(i).Cells("第二").Value.ToString <> "" Then : DFG(CV) = 明細_dgv.Rows(i).Cells("第二").Value.ToString : CV += 1 : End If
  603. If 明細_dgv.Rows(i).Cells("第三").Value.ToString <> "" Then : DFG(CV) = 明細_dgv.Rows(i).Cells("第三").Value.ToString : CV += 1 : End If
  604. If 明細_dgv.Rows(i).Cells("第四").Value.ToString <> "" Then : DFG(CV) = 明細_dgv.Rows(i).Cells("第四").Value.ToString : CV += 1 : End If
  605. If 明細_dgv.Rows(i).Cells("第五").Value.ToString <> "" Then : DFG(CV) = 明細_dgv.Rows(i).Cells("第五").Value.ToString : CV += 1 : End If
  606. If 明細_dgv.Rows(i).Cells("第六").Value.ToString <> "" Then : DFG(CV) = 明細_dgv.Rows(i).Cells("第六").Value.ToString : CV += 1 : End If
  607. 時段(1) = DFG(1) : 時段(2) = DFG(2)
  608. 時段(3) = DFG(3) : 時段(4) = DFG(4)
  609. 時段(5) = DFG(5) : 時段(6) = DFG(6)
  610. For II As Integer = 4 To 16 : 明細_dgv.Rows(i).Cells(表頭(II)).Value = "" : Next
  611. If 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = ""
  612. ElseIf 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "1" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(9)
  613. ElseIf 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "2" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(10)
  614. ElseIf 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "3" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(11)
  615. ElseIf 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "4" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(12)
  616. ElseIf 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "5" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(13)
  617. End If
  618. '-------------時間推移計算------------------------------------
  619. If 時段(1) = "" And 時段(2) = "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  620. ElseIf 時段(1) <> "" And 時段(2) = "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  621. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  622. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  623. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(2) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  624. If 間隔1 >= 665 Then
  625. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  626. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(9)).Value = 時段(2)
  627. 明細_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 明細_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  628. 明細_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 明細_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  629. 明細_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 明細_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  630. 明細_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 明細_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  631. ElseIf 間隔1 >= 325 And 間隔1 < 665 Then
  632. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  633. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(7)).Value = 時段(2)
  634. 明細_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 明細_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  635. 明細_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 明細_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  636. ElseIf 間隔1 < 325 Then
  637. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  638. X1 = 時段(1) : Set_時段定點_加四小時() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  639. End If
  640. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  641. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(3) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  642. If 間隔1 >= 665 Then '---------大於十小時
  643. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(2) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  644. If 間隔1 <= 325 Then
  645. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  646. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  647. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(9)).Value = 時段(3)
  648. 明細_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 明細_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  649. 明細_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 明細_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  650. 明細_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 明細_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  651. ElseIf 間隔1 > 325 Then
  652. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  653. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(9)).Value = 時段(3)
  654. 明細_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 明細_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  655. 明細_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 明細_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  656. 明細_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 明細_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  657. 明細_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 明細_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  658. End If
  659. ElseIf 間隔1 > 325 And 間隔1 < 625 Then
  660. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  661. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(7)).Value = 時段(3)
  662. 明細_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 明細_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  663. 明細_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 明細_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  664. ElseIf 間隔1 >= 325 Then
  665. X1 = 時段(2) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(3) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  666. If 間隔1 >= 90 Then
  667. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  668. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  669. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(7)).Value = 時段(3)
  670. X1 = 時段(2) : Set_時段定點_加一小時() : 明細_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(6)).Value = X1
  671. Else
  672. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  673. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  674. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(12)).Value = X1
  675. End If
  676. Else
  677. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  678. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  679. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(12)).Value = X1
  680. End If
  681. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) = "" And 時段(6) = "" Then
  682. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(4) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  683. If 間隔1 >= 665 Then
  684. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  685. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  686. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  687. X1 = 時段(4) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(9)).Value = 時段(4)
  688. 明細_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 明細_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  689. 明細_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 明細_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  690. Else
  691. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  692. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  693. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  694. X1 = 時段(4) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  695. End If
  696. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) <> "" And 時段(6) = "" Then
  697. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(5) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  698. If 間隔1 >= 665 Then
  699. X1 = 時段(4) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(5) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  700. If 間隔1 >= 90 Then
  701. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  702. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  703. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  704. X1 = 時段(4) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  705. X1 = 時段(5) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(9)).Value = 時段(6)
  706. X1 = 時段(5) : Set_時段定點_減一小時() : 明細_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(7)).Value = X1
  707. Else
  708. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  709. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  710. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  711. X1 = 時段(4) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  712. X1 = 時段(5) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  713. End If
  714. Else
  715. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  716. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  717. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  718. X1 = 時段(4) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  719. X1 = 時段(5) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  720. End If
  721. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) <> "" And 時段(6) <> "" Then
  722. X1 = 時段(1) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  723. X1 = 時段(2) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  724. X1 = 時段(3) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  725. X1 = 時段(4) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  726. X1 = 時段(5) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  727. X1 = 時段(6) : Set_時段定點() : 明細_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 明細_dgv.Rows(i).Cells(表頭(9)).Value = 時段(6)
  728. End If
  729. '-------------時間彙總計算------------------------------------
  730. 時長 = 0
  731. If (明細_dgv.Rows(i).Cells(表頭(17)).Value = False And 明細_dgv.Rows(i).Cells(表頭(18)).Value = True) Or
  732. (明細_dgv.Rows(i).Cells("MGB").Value.ToString = "星期日" And 明細_dgv.Rows(i).Cells(表頭(17)).Value = False) Then
  733. 明細_dgv.Rows(i).Cells(表頭(16)).Value = "00 H 00 M"
  734. Else
  735. If 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  736. 明細_dgv.Rows(i).Cells(表頭(12)).Value.ToString = "" And 明細_dgv.Rows(i).Cells(表頭(13)).Value.ToString = "" And
  737. 明細_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 明細_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  738. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  739. If 時長 <= 8 Then : 明細_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : End If
  740. ElseIf 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  741. 明細_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  742. 明細_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 明細_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  743. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  744. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  745. If 時長 <= 8 Then : 明細_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  746. If 明細_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  747. 明細_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  748. Else
  749. If 時長 < 10 Then : 明細_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  750. Else : 明細_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  751. End If
  752. End If
  753. ElseIf 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  754. 明細_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  755. 明細_dgv.Rows(i).Cells(表頭(14)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(15)).Value.ToString <> "" Then
  756. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  757. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  758. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(14)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(15)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  759. If 時長 <= 8 Then : 明細_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  760. If 明細_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  761. 明細_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  762. Else
  763. If 時長 < 10 Then : 明細_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  764. Else : 明細_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  765. End If
  766. End If
  767. End If
  768. If 明細_dgv.Rows(i).Cells(表頭(16)).Value.ToString <> "" Then
  769. 總時 += CInt(Strings.Left(明細_dgv.Rows(i).Cells(表頭(16)).Value.ToString, 2))
  770. If 總時 < 10 Then : 總時數_tb.Text = "0" & 總時 & " H 00 M" : Else : 總時數_tb.Text = 總時 & " H 00 M" : End If
  771. End If
  772. End If
  773. '-------------清單介面優化------------------------------------
  774. If 深色風格 = False Then
  775. If 明細_dgv.Rows(i).Cells(0).Value.ToString = "星期六" Then : 明細_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
  776. ElseIf 明細_dgv.Rows(i).Cells(0).Value.ToString = "星期日" Then : 明細_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink : End If
  777. If 明細_dgv.Rows(i).Cells(表頭(18)).Value = True Then : 明細_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink : End If
  778. Else
  779. If 明細_dgv.Rows(i).Cells(0).Value.ToString = "星期六" Then : 明細_dgv.Rows(i).DefaultCellStyle.BackColor = Color.Purple
  780. ElseIf 明細_dgv.Rows(i).Cells(0).Value.ToString = "星期日" Then : 明細_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkRed : End If
  781. If 明細_dgv.Rows(i).Cells(表頭(18)).Value = True Then : 明細_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkRed : End If
  782. End If
  783. Next : 明細_dgv.Columns(表頭(27)).FillWeight = 120 : 明細_dgv.Columns("C_No").FillWeight = 50
  784. 'Set_明細_dgv_下拉式清單1() :
  785. End Sub
  786. Private Sub Set_明細_dgv_下拉式清單1()
  787. Dim Col As New DataGridViewComboBoxColumn With {
  788. .FillWeight = 40,
  789. .DataPropertyName = "假別編號"
  790. }
  791. Col.Items.Clear()
  792. Col.Items.Add("") : Col.Items.Add("1") : Col.Items.Add("2") : Col.Items.Add("3") : Col.Items.Add("4") : Col.Items.Add("5")
  793. Col.HeaderText = "C_No" : Col.Name = "C_No"
  794. 明細_dgv.Columns.Insert(27, Col)
  795. End Sub
  796. Private Sub 資料規格()
  797. If 實際打卡_cb.Checked = True Then
  798. For I As Integer = 4 To 9 : 明細_dgv.Columns(表頭(I)).Visible = True : Next : For I As Integer = 10 To 15 : 明細_dgv.Columns(表頭(I)).Visible = False : Next
  799. Else
  800. For I As Integer = 4 To 9 : 明細_dgv.Columns(表頭(I)).Visible = False : Next : For I As Integer = 10 To 15 : 明細_dgv.Columns(表頭(I)).Visible = True : Next
  801. End If
  802. End Sub
  803. Private Sub 資料規格1()
  804. If 實際打卡_cb.Checked = True Then
  805. For I As Integer = 4 To 9 : 查詢表_dgv.Columns(表頭(I)).Visible = True : Next : For I As Integer = 10 To 15 : 查詢表_dgv.Columns(表頭(I)).Visible = False : Next
  806. Else
  807. For I As Integer = 4 To 9 : 查詢表_dgv.Columns(表頭(I)).Visible = False : Next : For I As Integer = 10 To 15 : 查詢表_dgv.Columns(表頭(I)).Visible = True : Next
  808. End If
  809. End Sub
  810. Private Sub 時間比對()
  811. Dim dateA As Date = Date.ParseExact("[" & 計算(0) & "]", "[HH:mm:ss]", Nothing)
  812. Dim dateB As Date = Date.ParseExact("[" & 計算(1) & "]", "[HH:mm:ss]", Nothing)
  813. Dim hoursDiff As Integer = DateDiff(DateInterval.Minute, dateA, dateB)
  814. 間隔1 = Math.Abs(hoursDiff)
  815. End Sub
  816. Private Sub Set_時段定點()
  817. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  818. 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"
  819. 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"
  820. 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"
  821. 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"
  822. 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"
  823. 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"
  824. 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"
  825. 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"
  826. 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"
  827. 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"
  828. 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"
  829. 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"
  830. End If
  831. End Sub
  832. Private Sub Set_時段定點_減一小時()
  833. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  834. 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"
  835. 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"
  836. 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"
  837. 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"
  838. 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"
  839. 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"
  840. 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"
  841. 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"
  842. 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"
  843. 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"
  844. 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"
  845. 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"
  846. End If
  847. End Sub
  848. Private Sub Set_時段定點_加一小時()
  849. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  850. 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"
  851. 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"
  852. 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"
  853. 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"
  854. 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"
  855. 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"
  856. 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"
  857. 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"
  858. 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"
  859. 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"
  860. 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"
  861. 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"
  862. End If
  863. End Sub
  864. Private Sub Set_時段定點_加四小時()
  865. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  866. 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"
  867. 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"
  868. 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"
  869. 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"
  870. 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"
  871. 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"
  872. 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"
  873. 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"
  874. 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"
  875. 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"
  876. 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"
  877. 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"
  878. End If
  879. End Sub
  880. Private Sub 語言轉換讀取()
  881. If 系統語言 = "繁體中文" Then : 語言 = "CH" : ElseIf 系統語言 = "English" Then : 語言 = "EN" : ElseIf 系統語言 = "Indonesian" Then : 語言 = "IN" : End If
  882. Me.Text = 系統語言字典("H001-270-" & 語言) : ToolTip1.ToolTipTitle = 系統語言字典("G000-108-" & 語言) : 實際打卡_cb.Text = 系統語言字典("H609-121-" & 語言)
  883. 在職_bt.Text = 系統語言字典("H607-108-" & 語言) : 離職_bt.Text = 系統語言字典("H002-116-" & 語言) : 考勤計算_cb.Text = 系統語言字典("H609-122-" & 語言)
  884. 考勤明細表_tp.Text = 系統語言字典("H001-270-" & 語言) : 考勤彙總表_tp.Text = 系統語言字典("H609-126-" & 語言) : Label56.Text = 系統語言字典("H609-127-" & 語言)
  885. 假日設定_bt.Text = 系統語言字典("H609-127-" & 語言) : 考勤查詢表_tp.Text = 系統語言字典("H609-140-" & 語言) : 單一列印_cb.Text = 系統語言字典("H609-143-" & 語言)
  886. 工人_ch.Text = 系統語言字典("G000-159-" & 語言) : Label12.Text = 系統語言字典("H609-111-" & 語言) : Label21.Text = 系統語言字典("H609-111-" & 語言)
  887. Label11.Text = 系統語言字典("H609-139-" & 語言) : Label24.Text = 系統語言字典("H609-139-" & 語言) : Label8.Text = 系統語言字典("H609-130-" & 語言)
  888. Label6.Text = 系統語言字典("H609-109-" & 語言) : Label23.Text = 系統語言字典("H609-109-" & 語言) : Label9.Text = 系統語言字典("H609-131-" & 語言)
  889. Label7.Text = 系統語言字典("H609-110-" & 語言) : Label22.Text = 系統語言字典("H609-110-" & 語言) : Label10.Text = 系統語言字典("H609-132-" & 語言)
  890. Label13.Text = 系統語言字典("H609-112-" & 語言) : Label20.Text = 系統語言字典("H609-112-" & 語言) : 表頭(21) = 系統語言字典("H609-125-" & 語言)
  891. Label14.Text = 系統語言字典("H609-113-" & 語言) : Label19.Text = 系統語言字典("H609-113-" & 語言) : Label1.Text = 系統語言字典("H609-125-" & 語言)
  892. Label15.Text = 系統語言字典("H609-114-" & 語言) : Label18.Text = 系統語言字典("H609-114-" & 語言)
  893. 表頭(0) = 系統語言字典("H601-103-" & 語言) : 表頭(1) = 系統語言字典("H602-104-" & 語言) : 表頭(2) = 系統語言字典("H609-107-" & 語言) : 表頭(3) = 系統語言字典("H609-108-" & 語言)
  894. 表頭(10) = 系統語言字典("H609-115-" & 語言) : 表頭(11) = 系統語言字典("H609-116-" & 語言) : 表頭(12) = 系統語言字典("H609-117-" & 語言) : 表頭(13) = 系統語言字典("H609-118-" & 語言)
  895. 表頭(14) = 系統語言字典("H609-119-" & 語言) : 表頭(15) = 系統語言字典("H609-120-" & 語言) : 表頭(16) = 系統語言字典("H609-123-" & 語言) : 表頭(17) = 系統語言字典("H609-124-" & 語言)
  896. 表頭(22) = 系統語言字典("H607-103-" & 語言) : 表頭(18) = 系統語言字典("H609-128-" & 語言) : 表頭(19) = 系統語言字典("H601-108-" & 語言) : 表頭(20) = 系統語言字典("H609-129-" & 語言)
  897. 表頭(4) = 系統語言字典("H609-109-" & 語言) : 表頭(26) = 系統語言字典("H609-138-" & 語言) : 表頭(27) = 系統語言字典("G000-155-" & 語言) : 表頭(8) = 系統語言字典("H609-113-" & 語言)
  898. 表頭(9) = 系統語言字典("H609-114-" & 語言) : 表頭(7) = 系統語言字典("H609-112-" & 語言) : 表頭(6) = 系統語言字典("H609-111-" & 語言) : 表頭(5) = 系統語言字典("H609-110-" & 語言)
  899. 表頭(25) = 系統語言字典("H609-132-" & 語言) : 表頭(24) = 系統語言字典("H609-131-" & 語言) : 表頭(23) = 系統語言字典("H609-130-" & 語言)
  900. 對話框(0) = 系統語言字典("H609-100-" & 語言) : 對話框(1) = 系統語言字典("H609-101-" & 語言) : 對話框(7) = 系統語言字典("G000-110-" & 語言) : 對話框(12) = 系統語言字典("H609-136-" & 語言)
  901. 對話框(2) = 系統語言字典("H609-102-" & 語言) : 對話框(3) = 系統語言字典("H609-103-" & 語言) : 對話框(8) = 系統語言字典("G000-119-" & 語言) : 對話框(13) = 系統語言字典("H609-137-" & 語言)
  902. 對話框(4) = 系統語言字典("H609-104-" & 語言) : 對話框(5) = 系統語言字典("H609-105-" & 語言) : 對話框(10) = 系統語言字典("H609-134-" & 語言) : 對話框(11) = 系統語言字典("H609-135-" & 語言)
  903. 對話框(14) = 系統語言字典("G000-158-" & 語言) : 對話框(16) = 系統語言字典("H609-141-" & 語言) : 對話框(17) = 系統語言字典("H609-142-" & 語言) : 對話框(18) = 系統語言字典("H204-134-" & 語言)
  904. 對話框(9) = 系統語言字典("H609-133-" & 語言) : 對話框(6) = 系統語言字典("H609-106-" & 語言) : 對話框(15) = 系統語言字典("H609-139-" & 語言)
  905. 請假編號_cb.Items.Clear() : 請假編號_cb.Items.Add("") : 請假編號_cb.Items.Add(對話框(9)) : 請假編號_cb.Items.Add(對話框(10))
  906. 請假編號_cb.Items.Add(對話框(11)) : 請假編號_cb.Items.Add(對話框(12)) : 請假編號_cb.Items.Add(對話框(13))
  907. End Sub
  908. Private Sub 考勤編輯_bt_MouseEnter(sender As Object, e As EventArgs) Handles 考勤編輯_bt.MouseEnter
  909. ToolTip1.SetToolTip(Me.考勤編輯_bt, 對話框(15))
  910. End Sub
  911. Private Sub 考勤編輯1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 考勤編輯1_bt.MouseEnter
  912. ToolTip1.SetToolTip(Me.考勤編輯1_bt, 對話框(15))
  913. End Sub
  914. Private Sub 考勤調整_bt_MouseEnter(sender As Object, e As EventArgs) Handles 考勤調整_bt.MouseEnter
  915. ToolTip1.SetToolTip(Me.考勤調整_bt, 對話框(7))
  916. End Sub
  917. Private Sub 考勤調整1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 考勤調整1_bt.MouseEnter
  918. ToolTip1.SetToolTip(Me.考勤調整1_bt, 對話框(7))
  919. End Sub
  920. Private Sub 存檔_bt_MouseEnter(sender As Object, e As EventArgs) Handles 存檔_bt.MouseEnter
  921. ToolTip1.SetToolTip(Me.存檔_bt, 對話框(7))
  922. End Sub
  923. Private Sub 加班請假_bt_MouseEnter(sender As Object, e As EventArgs) Handles 加班請假_bt.MouseEnter
  924. ToolTip1.SetToolTip(Me.加班請假_bt, 對話框(7))
  925. End Sub
  926. Private Sub 年分清單()
  927. SQL_年分清單() : 年份_cb.Items.Clear() : 年份1_cb.Items.Clear() : 年份2_cb.Items.Clear()
  928. While (dr.Read()) : 年份_cb.Items.Add(dr("日期")) : 年份1_cb.Items.Add(dr("日期")) : 年份2_cb.Items.Add(dr("日期")) : End While : conn.Close()
  929. End Sub
  930. Private Sub 級別清單()
  931. SQL_考勤級別讀取() : 級別_cb.Items.Clear() : 級別_cb.Items.Add("") : 級別1_cb.Items.Clear() : 級別1_cb.Items.Add("") : 級別2_cb.Items.Clear() : 級別2_cb.Items.Add("")
  932. While (dr.Read()) : 級別_cb.Items.Add(dr("級別")) : 級別1_cb.Items.Add(dr("級別")) : 級別2_cb.Items.Add(dr("級別")) : End While : conn.Close()
  933. End Sub
  934. Private Sub 地區清單()
  935. 地區_cb.Items.Clear() : 地區_cb.Items.Add("") : 地區_cb.Items.Add(對話框(16)) : 地區_cb.Items.Add(對話框(17))
  936. 地區1_cb.Items.Clear() : 地區1_cb.Items.Add("") : 地區1_cb.Items.Add(對話框(16)) : 地區1_cb.Items.Add(對話框(17))
  937. 部門1_cb.Items.Clear() : 部門1_cb.Items.Add("") : 部門1_cb.Items.Add(對話框(16)) : 部門1_cb.Items.Add(對話框(17))
  938. End Sub
  939. Private Sub 考勤明細表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  940. Me.MdiParent = HX_PGS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  941. 風格() : H(609) = True : 介面 = "H609" : 語言轉換讀取() : 顯示說明(999, True)
  942. 在職 = True : Panel1.SendToBack() : 實際打卡_cb.Checked = True : 視窗4_pl.Visible = False : 視窗3_pl.Visible = False : 視窗2_pl.Visible = False
  943. If CInt(登入人級別) <= 5 Then : 高級_cb.Checked = True : Else : 高級_cb.Checked = False : End If
  944. 計算分流.Enabled = True
  945. End Sub
  946. Private Sub 計算分流_Tick(sender As Object, e As EventArgs) Handles 計算分流.Tick
  947. 計算分流.Enabled = False
  948. 地區清單() : 級別清單() : Set_使用者清單() : 年分清單() : 暫時不開 = True
  949. 年份_cb.Text = Year(Today) : 月份_cb.SelectedIndex = Month(Today) - 1 : 年份1_cb.Text = Year(Today) : 月份1_cb.SelectedIndex = Month(Today) - 1
  950. 年份2_cb.Text = Year(Today) : 月份2_cb.SelectedIndex = Month(Today) - 1 : Set_考勤明細() : Set_總清單()
  951. If 清單1_dgv.Rows.Count > 0 Then
  952. PA1 = 清單1_dgv.Rows(0).Cells("ID卡號").Value.ToString : 姓名_tb.Text = 清單1_dgv.Rows(0).Cells(表頭(0)).Value.ToString.ToUpper
  953. 員工代碼_tb.Text = 清單1_dgv.Rows(0).Cells(表頭(23)).Value.ToString.ToUpper : 員工崗位_tb.Text = 清單1_dgv.Rows(0).Cells(表頭(24)).Value.ToString.ToUpper
  954. 部門名稱_tb.Text = 清單1_dgv.Rows(0).Cells(表頭(25)).Value.ToString.ToUpper
  955. ID_tb.Text = PA1
  956. PA2 = 年份_cb.Text : PA3 = 月份_cb.Text : Set_考勤明細()
  957. End If : 首次開啟 = True
  958. End Sub
  959. Private Sub 語轉扭_bt_Click(sender As Object, e As EventArgs) Handles 語轉扭_bt.Click
  960. H(609) = True : 介面 = "H609" : 語言轉換讀取()
  961. 首次開啟 = False : 計算分流.Enabled = True
  962. End Sub
  963. Private Sub 考勤明細表_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
  964. H(607) = False : MyMod.虛擬桌面開啟()
  965. End Sub
  966. Private Sub 考勤明細表_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
  967. MyMod.清單字體大小調整()
  968. 查詢表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  969. 考勤彙總_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  970. 明細_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  971. 清單1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  972. End Sub
  973. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  974. timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True
  975. End Sub
  976. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  977. timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True
  978. End Sub
  979. Private Sub 查詢表_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 查詢表_dgv.RowPostPaint
  980. Dim linePen As New Pen(Color.Blue, 2)
  981. If e.RowIndex = 查詢表_dgv.Rows.Count - 1 Then
  982. Exit Sub
  983. Else
  984. If 查詢表_dgv(表頭(19), e.RowIndex).Value.ToString <> 查詢表_dgv(表頭(19), e.RowIndex + 1).Value.ToString Then
  985. Dim startX As Integer = IIf(查詢表_dgv.RowHeadersVisible, 查詢表_dgv.RowHeadersWidth, 0)
  986. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  987. Dim endX As Integer = startX + 查詢表_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 查詢表_dgv.HorizontalScrollingOffset
  988. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  989. Exit Sub
  990. End If
  991. End If
  992. For i As Integer = 0 To 查詢表_dgv.Rows.Count - 1
  993. If 深色風格 = False Then
  994. If 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "01" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
  995. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "02" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen
  996. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "03" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
  997. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "04" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue
  998. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "05" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue : End If
  999. Else
  1000. If 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "01" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.Purple
  1001. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "02" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkGreen
  1002. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "03" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkRed
  1003. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "04" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkBlue
  1004. ElseIf 查詢表_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "05" Then : 查詢表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkBlue : End If
  1005. End If
  1006. Next
  1007. End Sub
  1008. Private Sub 清單1_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 清單1_dgv.RowPostPaint
  1009. If 首次開啟 = True Then
  1010. Dim linePen As New Pen(Color.Blue, 2)
  1011. If e.RowIndex = 清單1_dgv.Rows.Count - 1 Then
  1012. Exit Sub
  1013. Else
  1014. If 清單1_dgv(表頭(19), e.RowIndex).Value.ToString <> 清單1_dgv(表頭(19), e.RowIndex + 1).Value.ToString Then
  1015. Dim startX As Integer = IIf(清單1_dgv.RowHeadersVisible, 清單1_dgv.RowHeadersWidth, 0)
  1016. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  1017. Dim endX As Integer = startX + 清單1_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 清單1_dgv.HorizontalScrollingOffset
  1018. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  1019. Exit Sub
  1020. End If
  1021. End If
  1022. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1023. If 深色風格 = False Then
  1024. If 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "01" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
  1025. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "02" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen
  1026. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "03" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
  1027. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "04" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue
  1028. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "05" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue : End If
  1029. Else
  1030. If 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "01" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.Purple
  1031. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "02" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkGreen
  1032. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "03" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkRed
  1033. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "04" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkBlue
  1034. ElseIf 清單1_dgv.Rows(i).Cells(表頭(1)).Value.ToString = "05" Then : 清單1_dgv.Rows(i).DefaultCellStyle.BackColor = Color.DarkBlue : End If
  1035. End If
  1036. Next
  1037. End If
  1038. End Sub
  1039. Private Sub 清單1_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 清單1_dgv.CellClick
  1040. If e.RowIndex = -1 Then : Else
  1041. PA1 = 清單1_dgv.Rows(e.RowIndex).Cells("ID卡號").Value.ToString : 姓名_tb.Text = 清單1_dgv.Rows(e.RowIndex).Cells(表頭(0)).Value.ToString.ToUpper
  1042. 員工代碼_tb.Text = 清單1_dgv.Rows(e.RowIndex).Cells(表頭(23)).Value.ToString.ToUpper : 員工崗位_tb.Text = 清單1_dgv.Rows(e.RowIndex).Cells(表頭(24)).Value.ToString.ToUpper
  1043. 部門名稱_tb.Text = 清單1_dgv.Rows(e.RowIndex).Cells(表頭(25)).Value.ToString.ToUpper
  1044. ID_tb.Text = PA1
  1045. PA2 = 年份_cb.Text : PA3 = 月份_cb.Text : Set_考勤明細()
  1046. End If
  1047. End Sub
  1048. Private Sub 明細_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 明細_dgv.MouseUp
  1049. 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If
  1050. If 明細_dgv.SelectedCells.Count > 0 Then
  1051. If 明細_dgv.SelectedCells(0).ColumnIndex = 27 Then
  1052. If 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value.ToString = "" Then : 請假編號_cb.Text = ""
  1053. ElseIf 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value.ToString = "1" Then : 請假編號_cb.Text = 對話框(9)
  1054. ElseIf 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value.ToString = "2" Then : 請假編號_cb.Text = 對話框(10)
  1055. ElseIf 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value.ToString = "3" Then : 請假編號_cb.Text = 對話框(11)
  1056. ElseIf 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value.ToString = "4" Then : 請假編號_cb.Text = 對話框(12)
  1057. ElseIf 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value.ToString = "5" Then : 請假編號_cb.Text = 對話框(13) : End If
  1058. CB選擇清單(請假編號_cb, 請假編號_cb.Text)
  1059. If 請假編號_cb.Text = "" Then
  1060. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(26).Value = "" : 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value = ""
  1061. ElseIf 請假編號_cb.Text = 對話框(9) Then
  1062. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(26).Value = "1" : 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value = "1"
  1063. ElseIf 請假編號_cb.Text = 對話框(10) Then
  1064. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(26).Value = "2" : 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value = "2"
  1065. ElseIf 請假編號_cb.Text = 對話框(11) Then
  1066. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(26).Value = "3" : 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value = "3"
  1067. ElseIf 請假編號_cb.Text = 對話框(12) Then
  1068. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(26).Value = "4" : 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value = "4"
  1069. ElseIf 請假編號_cb.Text = 對話框(13) Then
  1070. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(26).Value = "5" : 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(27).Value = "5"
  1071. End If
  1072. If 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells("假別編號").Value.ToString = "" Then
  1073. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(表頭(26)).Value = ""
  1074. ElseIf 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells("假別編號").Value.ToString = "1" Then
  1075. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(表頭(26)).Value = 對話框(9)
  1076. ElseIf 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells("假別編號").Value.ToString = "2" Then
  1077. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(表頭(26)).Value = 對話框(10)
  1078. ElseIf 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells("假別編號").Value.ToString = "3" Then
  1079. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(表頭(26)).Value = 對話框(11)
  1080. ElseIf 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells("假別編號").Value.ToString = "4" Then
  1081. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(表頭(26)).Value = 對話框(12)
  1082. ElseIf 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells("假別編號").Value.ToString = "5" Then
  1083. 明細_dgv.Rows(明細_dgv.SelectedCells(0).RowIndex).Cells(表頭(26)).Value = 對話框(13)
  1084. End If
  1085. End If
  1086. End If
  1087. End Sub
  1088. Private Sub 明細_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 明細_dgv.CellClick
  1089. If e.RowIndex = -1 Then : Else
  1090. 日期_tb.Text = 明細_dgv.Rows(e.RowIndex).Cells(表頭(3)).Value.ToString
  1091. If 明細_dgv.Rows(e.RowIndex).Cells(表頭(4)).Value.ToString = "" Then : 時段1_rtp.Value = "08:00:00" : S1.Checked = False : 時段1_rtp.Enabled = True
  1092. Else : 時段1_rtp.Value = 明細_dgv.Rows(e.RowIndex).Cells(表頭(4)).Value.ToString : S1.Checked = True : 時段1_rtp.Enabled = False : End If
  1093. If 高級_cb.Checked = True And 時段1_rtp.Enabled = False Then : 時段1_rtp.Enabled = True : End If
  1094. If 明細_dgv.Rows(e.RowIndex).Cells(表頭(5)).Value.ToString = "" Then : 時段2_rtp.Value = "12:00:00" : S2.Checked = False : 時段2_rtp.Enabled = True
  1095. Else : 時段2_rtp.Value = 明細_dgv.Rows(e.RowIndex).Cells(表頭(5)).Value.ToString : S2.Checked = True : 時段2_rtp.Enabled = False : End If
  1096. If 高級_cb.Checked = True And 時段2_rtp.Enabled = False Then : 時段2_rtp.Enabled = True : End If
  1097. If 明細_dgv.Rows(e.RowIndex).Cells(表頭(6)).Value.ToString = "" Then : 時段3_rtp.Value = "13:00:00" : S3.Checked = False : 時段3_rtp.Enabled = True
  1098. Else : 時段3_rtp.Value = 明細_dgv.Rows(e.RowIndex).Cells(表頭(6)).Value.ToString : S3.Checked = True : 時段3_rtp.Enabled = False : End If
  1099. If 高級_cb.Checked = True And 時段3_rtp.Enabled = False Then : 時段3_rtp.Enabled = True : End If
  1100. If 明細_dgv.Rows(e.RowIndex).Cells(表頭(7)).Value.ToString = "" Then : 時段4_rtp.Value = "17:00:00" : S4.Checked = False : 時段4_rtp.Enabled = True
  1101. Else : 時段4_rtp.Value = 明細_dgv.Rows(e.RowIndex).Cells(表頭(7)).Value.ToString : S4.Checked = True : 時段4_rtp.Enabled = False : End If
  1102. If 高級_cb.Checked = True And 時段4_rtp.Enabled = False Then : 時段4_rtp.Enabled = True : End If
  1103. If 明細_dgv.Rows(e.RowIndex).Cells(表頭(8)).Value.ToString = "" Then : 時段5_rtp.Value = "18:00:00" : S5.Checked = False : 時段5_rtp.Enabled = True
  1104. Else : 時段5_rtp.Value = 明細_dgv.Rows(e.RowIndex).Cells(表頭(8)).Value.ToString : S5.Checked = True : 時段5_rtp.Enabled = False : End If
  1105. If 高級_cb.Checked = True And 時段5_rtp.Enabled = False Then : 時段5_rtp.Enabled = True : End If
  1106. If 明細_dgv.Rows(e.RowIndex).Cells(表頭(9)).Value.ToString = "" Then : 時段6_rtp.Value = "20:00:00" : S6.Checked = False : 時段6_rtp.Enabled = True
  1107. Else : 時段6_rtp.Value = 明細_dgv.Rows(e.RowIndex).Cells(表頭(9)).Value.ToString : S6.Checked = True : 時段6_rtp.Enabled = False : End If
  1108. If 高級_cb.Checked = True And 時段6_rtp.Enabled = False Then : 時段6_rtp.Enabled = True : End If
  1109. 總時 = 0 : 總時數_tb.Text = ""
  1110. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  1111. '-------------時間彙總計算------------------------------------
  1112. 時長 = 0
  1113. If (明細_dgv.Rows(i).Cells(表頭(17)).Value = False And 明細_dgv.Rows(i).Cells(表頭(18)).Value = True) Or
  1114. (明細_dgv.Rows(i).Cells("MGB").Value.ToString = "星期日" And 明細_dgv.Rows(i).Cells(表頭(17)).Value = False) Then
  1115. 明細_dgv.Rows(i).Cells(表頭(16)).Value = "00 H 00 M"
  1116. Else
  1117. If 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  1118. 明細_dgv.Rows(i).Cells(表頭(12)).Value.ToString = "" And 明細_dgv.Rows(i).Cells(表頭(13)).Value.ToString = "" And
  1119. 明細_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 明細_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  1120. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  1121. If 時長 <= 8 Then : 明細_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : End If
  1122. ElseIf 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  1123. 明細_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  1124. 明細_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 明細_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  1125. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  1126. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  1127. If 時長 <= 8 Then : 明細_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  1128. If 明細_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  1129. 明細_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  1130. Else
  1131. If 時長 < 10 Then : 明細_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  1132. Else : 明細_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  1133. End If
  1134. End If
  1135. ElseIf 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  1136. 明細_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  1137. 明細_dgv.Rows(i).Cells(表頭(14)).Value.ToString <> "" And 明細_dgv.Rows(i).Cells(表頭(15)).Value.ToString <> "" Then
  1138. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  1139. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  1140. 計算(0) = 明細_dgv.Rows(i).Cells(表頭(14)).Value.ToString : 計算(1) = 明細_dgv.Rows(i).Cells(表頭(15)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  1141. If 時長 <= 8 Then : 明細_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  1142. If 明細_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  1143. 明細_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  1144. Else
  1145. If 時長 < 10 Then : 明細_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  1146. Else : 明細_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  1147. End If
  1148. End If
  1149. End If
  1150. End If
  1151. If 明細_dgv.Rows(i).Cells(表頭(16)).Value.ToString <> "" Then
  1152. 總時 += CInt(Strings.Left(明細_dgv.Rows(i).Cells(表頭(16)).Value.ToString, 2))
  1153. If 總時 < 10 Then : 總時數_tb.Text = "0" & 總時 & " H 00 M" : Else : 總時數_tb.Text = 總時 & " H 00 M" : End If
  1154. End If
  1155. If 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = ""
  1156. ElseIf 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "1" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(9)
  1157. ElseIf 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "2" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(10)
  1158. ElseIf 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "3" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(11)
  1159. ElseIf 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "4" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(12)
  1160. ElseIf 明細_dgv.Rows(i).Cells("假別編號").Value.ToString = "5" Then : 明細_dgv.Rows(i).Cells(表頭(26)).Value = 對話框(13)
  1161. End If
  1162. Next
  1163. End If
  1164. End Sub
  1165. Private Sub 假日設定_bt_Click(sender As Object, e As EventArgs) Handles 假日設定_bt.Click
  1166. If 視窗4_pl.Visible = False Then
  1167. 暫時不開 = True
  1168. PA2 = 年份1_cb.Text : PA3 = 月份1_cb.Text : Set_萬年曆()
  1169. Dim XC As Integer = Me.Size.Width : Dim YC As Integer = Me.Size.Height
  1170. Dim XD As Integer = 視窗4_pl.Width : Dim YD As Integer = 視窗4_pl.Height
  1171. 視窗4_pl.Location = New System.Drawing.Point((XC - XD) / 2, (YC - YD) / 2) : 視窗4_pl.Visible = True : 視窗4_pl.BringToFront()
  1172. 暫時不開 = False
  1173. Else : 視窗4_pl.Visible = False : End If
  1174. End Sub
  1175. Private Sub 考勤編輯_bt_Click(sender As Object, e As EventArgs) Handles 考勤編輯_bt.Click
  1176. Dim XC As Integer = Me.Size.Width : Dim YC As Integer = Me.Size.Height
  1177. Dim XD As Integer = 視窗3_pl.Width : Dim YD As Integer = 視窗3_pl.Height
  1178. If 視窗3_pl.Visible = False Then : 視窗3_pl.Location = New System.Drawing.Point((XC - XD) / 2, (YC - YD) / 2) : 視窗3_pl.Visible = True : 視窗3_pl.BringToFront()
  1179. 時段1_rtp.Enabled = False : 時段2_rtp.Enabled = False : 時段3_rtp.Enabled = False
  1180. 時段4_rtp.Enabled = False : 時段5_rtp.Enabled = False : 時段6_rtp.Enabled = False
  1181. Else : 視窗3_pl.Visible = False : End If
  1182. End Sub
  1183. Private Sub 考勤編輯1_bt_Click(sender As Object, e As EventArgs) Handles 考勤編輯1_bt.Click
  1184. If 視窗2_pl.Visible = False Then
  1185. 時段A1_rtp.Value = "08:00:00" : 時段A2_rtp.Value = "12:00:00" : 時段A3_rtp.Value = "13:00:00"
  1186. 時段A4_rtp.Value = "17:00:00" : 時段A5_rtp.Value = "18:00:00" : 時段A6_rtp.Value = "20:00:00"
  1187. Dim XC As Integer = Me.Size.Width : Dim YC As Integer = Me.Size.Height
  1188. Dim XD As Integer = 視窗2_pl.Width : Dim YD As Integer = 視窗2_pl.Height
  1189. 視窗2_pl.Location = New System.Drawing.Point((XC - XD) / 2, (YC - YD) / 2) : 視窗2_pl.Visible = True : 視窗2_pl.BringToFront()
  1190. Else : 視窗2_pl.Visible = False : End If
  1191. End Sub
  1192. Private Sub CanceL2_bt_Click(sender As Object, e As EventArgs) Handles CanceL2_bt.Click
  1193. If 視窗2_pl.Visible = False Then : 視窗2_pl.Visible = True : 視窗2_pl.BringToFront() : Else : 視窗2_pl.Visible = False : Set_查詢表() : End If
  1194. End Sub
  1195. Private Sub CanceL3_bt_Click(sender As Object, e As EventArgs) Handles CanceL3_bt.Click
  1196. If 視窗3_pl.Visible = False Then : 視窗3_pl.Visible = True : 視窗3_pl.BringToFront() : Else : 視窗3_pl.Visible = False : Set_考勤明細() : End If
  1197. End Sub
  1198. Private Sub CanceL4_bt_Click(sender As Object, e As EventArgs) Handles CanceL4_bt.Click
  1199. If 視窗4_pl.Visible = False Then : 視窗4_pl.Visible = True : 視窗4_pl.BringToFront() : Else : 視窗4_pl.Visible = False : Set_考勤明細() : End If
  1200. End Sub
  1201. Private Sub 月份1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 月份1_cb.SelectedIndexChanged
  1202. If 暫時不開 = False Then : PA2 = 年份1_cb.Text : PA3 = 月份1_cb.Text : Set_萬年曆() : End If
  1203. End Sub
  1204. Private Sub 年份1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 年份1_cb.SelectedIndexChanged
  1205. If 暫時不開 = False Then : PA2 = 年份1_cb.Text : PA3 = 月份1_cb.Text : Set_萬年曆() : End If
  1206. End Sub
  1207. Private Sub 在職_bt_Click(sender As Object, e As EventArgs) Handles 在職_bt.Click
  1208. 在職 = True : Set_使用者清單()
  1209. End Sub
  1210. Private Sub 離職_bt_Click(sender As Object, e As EventArgs) Handles 離職_bt.Click
  1211. 在職 = False : Set_使用者清單()
  1212. End Sub
  1213. Private Sub 實際打卡_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 實際打卡_cb.Click
  1214. 實際打卡_cb.Checked = True : 考勤計算_cb.Checked = False : 資料規格()
  1215. End Sub
  1216. Private Sub 考勤計算_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 考勤計算_cb.Click
  1217. 實際打卡_cb.Checked = False : 考勤計算_cb.Checked = True : 資料規格()
  1218. End Sub
  1219. Private Sub 級別_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 級別_cb.SelectedIndexChanged
  1220. Set_使用者清單()
  1221. End Sub
  1222. Private Sub 級別1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 級別1_cb.SelectedIndexChanged
  1223. Set_考勤彙總()
  1224. End Sub
  1225. Private Sub 級別2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 級別2_cb.SelectedIndexChanged
  1226. Set_查詢表()
  1227. End Sub
  1228. Private Sub 部門1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 部門1_cb.SelectedIndexChanged
  1229. Set_查詢表()
  1230. End Sub
  1231. Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click
  1232. For i As Integer = 0 To 萬年曆_dgv.Rows.Count - 1
  1233. PA15 = 萬年曆_dgv.Rows(i).Cells(表頭(3)).Value.ToString() : BL1 = 萬年曆_dgv.Rows(i).Cells(表頭(18)).Value : SQL_萬年曆_休假標註()
  1234. Next : Set_萬年曆() : MGB(對話框(8), 1)
  1235. End Sub
  1236. Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged
  1237. If TabControl1.SelectedTab Is 考勤彙總表_tp Then
  1238. PA = "" : PA2 = 年份2_cb.Text : PA3 = 月份2_cb.Text : Set_總清單()
  1239. ElseIf TabControl1.SelectedTab Is 考勤查詢表_tp Then
  1240. 日期1_tb.Text = Strings.Format(日期1_dtp.Value, "yyyy/MM/dd") : Set_查詢表()
  1241. End If
  1242. End Sub
  1243. Private Sub 工人_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 工人_ch.Click
  1244. If 工人_ch.Checked = True Then : 工人 = True : Else : 工人 = False : End If
  1245. If TabControl1.SelectedTab Is 考勤明細表_tp Then : Set_使用者清單()
  1246. ElseIf TabControl1.SelectedTab Is 考勤彙總表_tp Then : Set_考勤彙總()
  1247. ElseIf TabControl1.SelectedTab Is 考勤查詢表_tp Then : Set_查詢表() : End If
  1248. End Sub
  1249. Private Sub 加班請假_bt_Click(sender As Object, e As EventArgs) Handles 加班請假_bt.Click
  1250. If ID_tb.Text = "" Or 姓名_tb.Text = "" Then : MGB(對話框(14), 1) : Else
  1251. For i As Integer = 0 To 明細_dgv.Rows.Count - 1 '
  1252. BL1 = 明細_dgv.Rows(i).Cells(表頭(17)).Value : PA17 = 明細_dgv.Rows(i).Cells("假別編號").Value.ToString
  1253. PA18 = 明細_dgv.Rows(i).Cells(表頭(27)).Value.ToString : PA15 = 明細_dgv.Rows(i).Cells(表頭(3)).Value.ToString : PA1 = ID_tb.Text
  1254. SQL_人事考勤明細表查詢() : If dr.Read Then : SQL_人事考勤明細表修改() : Else : SQL_人事考勤明細表新增() : End If
  1255. Next : Set_考勤明細() : MGB(對話框(8), 1)
  1256. End If
  1257. End Sub
  1258. Private Sub 考勤調整_bt_Click(sender As Object, e As EventArgs) Handles 考勤調整_bt.Click
  1259. If ID_tb.Text = "" Or 姓名_tb.Text = "" Then : MGB(對話框(14), 1) : Else
  1260. PA15 = 日期_tb.Text : PA1 = ID_tb.Text
  1261. If 時段1_rtp.Enabled = True And S1.Checked = True Then
  1262. SQL_人事考勤明細表查詢()
  1263. If dr.Read Then : SQL2 = "第一" : PA45 = Strings.Format(時段1_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1264. Else : PA9 = Strings.Format(時段1_rtp.Value, "HH:mm:ss") : PA9 = PA9.Replace(".", ":") : PA10 = "" : PA11 = "" : PA12 = "" : PA13 = "" : PA14 = ""
  1265. SQL_人事考勤明細表新增1() : End If
  1266. End If
  1267. If 時段2_rtp.Enabled = True And S2.Checked = True Then
  1268. SQL_人事考勤明細表查詢()
  1269. If dr.Read Then : SQL2 = "第二" : PA45 = Strings.Format(時段2_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1270. Else : PA9 = "" : PA10 = Strings.Format(時段2_rtp.Value, "HH:mm:ss") : PA10 = PA10.Replace(".", ":") : PA11 = "" : PA12 = "" : PA13 = "" : PA14 = ""
  1271. SQL_人事考勤明細表新增1() : End If
  1272. End If
  1273. If 時段3_rtp.Enabled = True And S3.Checked = True Then
  1274. SQL_人事考勤明細表查詢()
  1275. If dr.Read Then : SQL2 = "第三" : PA45 = Strings.Format(時段3_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1276. Else : PA9 = "" : PA10 = "" : PA11 = Strings.Format(時段3_rtp.Value, "HH:mm:ss") : PA11 = PA11.Replace(".", ":") : PA12 = "" : PA13 = "" : PA14 = ""
  1277. SQL_人事考勤明細表新增1() : End If
  1278. End If
  1279. If 時段4_rtp.Enabled = True And S4.Checked = True Then
  1280. SQL_人事考勤明細表查詢()
  1281. If dr.Read Then : SQL2 = "第四" : PA45 = Strings.Format(時段4_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1282. Else : PA9 = "" : PA10 = "" : PA11 = "" : PA12 = Strings.Format(時段4_rtp.Value, "HH:mm:ss") : PA12 = PA12.Replace(".", ":") : PA13 = "" : PA14 = ""
  1283. SQL_人事考勤明細表新增1() : End If
  1284. End If
  1285. If 時段5_rtp.Enabled = True And S5.Checked = True Then
  1286. SQL_人事考勤明細表查詢()
  1287. If dr.Read Then : SQL2 = "第五" : PA45 = Strings.Format(時段5_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1288. Else : PA9 = "" : PA10 = "" : PA11 = "" : PA12 = "" : PA13 = Strings.Format(時段5_rtp.Value, "HH:mm:ss") : PA13 = PA13.Replace(".", ":") : PA14 = ""
  1289. SQL_人事考勤明細表新增1() : End If
  1290. End If
  1291. If 時段6_rtp.Enabled = True And S6.Checked = True Then
  1292. SQL_人事考勤明細表查詢()
  1293. If dr.Read Then : SQL2 = "第六" : PA45 = Strings.Format(時段6_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1294. Else : PA9 = "" : PA10 = "" : PA11 = "" : PA12 = "" : PA13 = "" : PA14 = Strings.Format(時段6_rtp.Value, "HH:mm:ss") : PA14 = PA14.Replace(".", ":")
  1295. SQL_人事考勤明細表新增1() : End If
  1296. End If
  1297. 加班請假_bt.PerformClick() : Set_考勤明細()
  1298. End If
  1299. End Sub
  1300. Private Sub 考勤調整1_bt_Click_1(sender As Object, e As EventArgs) Handles 考勤調整1_bt.Click
  1301. For i As Integer = 0 To 查詢表_dgv.Rows.Count - 1
  1302. PA1 = 查詢表_dgv.Rows(i).Cells("ID卡號").Value.ToString : PA15 = 日期1_tb.Text
  1303. If 查詢表_dgv.Rows(i).Cells(表頭(4)).Value.ToString = "" And SS1.Checked = True Then
  1304. SQL_人事考勤明細表查詢()
  1305. If dr.Read Then : SQL2 = "第一" : PA45 = Strings.Format(時段A1_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1306. Else : PA9 = Strings.Format(時段A1_rtp.Value, "HH:mm:ss") : PA9 = PA9.Replace(".", ":") : PA10 = "" : PA11 = "" : PA12 = "" : PA13 = "" : PA14 = ""
  1307. SQL_人事考勤明細表新增1() : End If
  1308. End If
  1309. If 查詢表_dgv.Rows(i).Cells(表頭(5)).Value.ToString = "" And SS2.Checked = True Then
  1310. SQL_人事考勤明細表查詢()
  1311. If dr.Read Then : SQL2 = "第二" : PA45 = Strings.Format(時段A2_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1312. Else : PA9 = "" : PA10 = Strings.Format(時段A2_rtp.Value, "HH:mm:ss") : PA10 = PA10.Replace(".", ":") : PA11 = "" : PA12 = "" : PA13 = "" : PA14 = ""
  1313. SQL_人事考勤明細表新增1() : End If
  1314. End If
  1315. If 查詢表_dgv.Rows(i).Cells(表頭(6)).Value.ToString = "" And SS3.Checked = True Then
  1316. SQL_人事考勤明細表查詢()
  1317. If dr.Read Then : SQL2 = "第三" : PA45 = Strings.Format(時段A3_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1318. Else : PA9 = "" : PA10 = "" : PA11 = Strings.Format(時段A3_rtp.Value, "HH:mm:ss") : PA11 = PA11.Replace(".", ":") : PA12 = "" : PA13 = "" : PA14 = ""
  1319. SQL_人事考勤明細表新增1() : End If
  1320. End If
  1321. If 查詢表_dgv.Rows(i).Cells(表頭(7)).Value.ToString = "" And SS4.Checked = True Then
  1322. SQL_人事考勤明細表查詢()
  1323. If dr.Read Then : SQL2 = "第四" : PA45 = Strings.Format(時段A4_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1324. Else : PA9 = "" : PA10 = "" : PA11 = "" : PA12 = Strings.Format(時段A4_rtp.Value, "HH:mm:ss") : PA12 = PA12.Replace(".", ":") : PA13 = "" : PA14 = ""
  1325. SQL_人事考勤明細表新增1() : End If
  1326. End If
  1327. If 查詢表_dgv.Rows(i).Cells(表頭(8)).Value.ToString = "" And SS5.Checked = True Then
  1328. SQL_人事考勤明細表查詢()
  1329. If dr.Read Then : SQL2 = "第五" : PA45 = Strings.Format(時段A5_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1330. Else : PA9 = "" : PA10 = "" : PA11 = "" : PA12 = "" : PA13 = Strings.Format(時段A5_rtp.Value, "HH:mm:ss") : PA13 = PA13.Replace(".", ":") : PA14 = ""
  1331. SQL_人事考勤明細表新增1() : End If
  1332. End If
  1333. If 查詢表_dgv.Rows(i).Cells(表頭(9)).Value.ToString = "" And SS6.Checked = True Then
  1334. SQL_人事考勤明細表查詢()
  1335. If dr.Read Then : SQL2 = "第六" : PA45 = Strings.Format(時段A6_rtp.Value, "HH:mm:ss") : PA45 = PA45.Replace(".", ":") : SQL_人事考勤明細表修改1()
  1336. Else : PA9 = "" : PA10 = "" : PA11 = "" : PA12 = "" : PA13 = "" : PA14 = Strings.Format(時段A6_rtp.Value, "HH:mm:ss") : PA14 = PA14.Replace(".", ":")
  1337. SQL_人事考勤明細表新增1() : End If
  1338. End If
  1339. Next : Set_查詢表()
  1340. End Sub
  1341. Private Sub 時段1_rtp_Click(sender As Object, e As EventArgs) Handles 時段1_rtp.Click
  1342. If S1.Checked = False Then : S1.Checked = True : End If
  1343. End Sub
  1344. Private Sub 時段2_rtp_Click(sender As Object, e As EventArgs) Handles 時段2_rtp.Click
  1345. If S2.Checked = False Then : S2.Checked = True : End If
  1346. End Sub
  1347. Private Sub 時段3_rtp_Click(sender As Object, e As EventArgs) Handles 時段3_rtp.Click
  1348. If S3.Checked = False Then : S3.Checked = True : End If
  1349. End Sub
  1350. Private Sub 時段4_rtp_Click(sender As Object, e As EventArgs) Handles 時段4_rtp.Click
  1351. If S4.Checked = False Then : S4.Checked = True : End If
  1352. End Sub
  1353. Private Sub 時段5_rtp_Click(sender As Object, e As EventArgs) Handles 時段5_rtp.Click
  1354. If S5.Checked = False Then : S5.Checked = True : End If
  1355. End Sub
  1356. Private Sub 時段6_rtp_Click(sender As Object, e As EventArgs) Handles 時段6_rtp.Click
  1357. If S6.Checked = False Then : S6.Checked = True : End If
  1358. End Sub
  1359. Private Sub 時段A1_rtp_Click(sender As Object, e As EventArgs) Handles 時段A1_rtp.Click
  1360. If SS1.Checked = False Then : SS1.Checked = True : End If
  1361. End Sub
  1362. Private Sub 時段A2_rtp_Click(sender As Object, e As EventArgs) Handles 時段A2_rtp.Click
  1363. If SS2.Checked = False Then : SS2.Checked = True : End If
  1364. End Sub
  1365. Private Sub 時段A3_rtp_Click(sender As Object, e As EventArgs) Handles 時段A3_rtp.Click
  1366. If SS3.Checked = False Then : SS3.Checked = True : End If
  1367. End Sub
  1368. Private Sub 時段A4_rtp_Click(sender As Object, e As EventArgs) Handles 時段A4_rtp.Click
  1369. If SS4.Checked = False Then : SS4.Checked = True : End If
  1370. End Sub
  1371. Private Sub 時段A5_rtp_Click(sender As Object, e As EventArgs) Handles 時段A5_rtp.Click
  1372. If SS5.Checked = False Then : SS5.Checked = True : End If
  1373. End Sub
  1374. Private Sub 時段A6_rtp_Click(sender As Object, e As EventArgs) Handles 時段A6_rtp.Click
  1375. If SS6.Checked = False Then : SS6.Checked = True : End If
  1376. End Sub
  1377. Private Sub S1_CheckedChanged(sender As Object, e As EventArgs) Handles S1.Click
  1378. If S1.Checked = False Then : S1.Checked = True : Else : S1.Checked = False : End If
  1379. End Sub
  1380. Private Sub S2_CheckedChanged(sender As Object, e As EventArgs) Handles S2.Click
  1381. If S2.Checked = False Then : S2.Checked = True : Else : S2.Checked = False : End If
  1382. End Sub
  1383. Private Sub S3_CheckedChanged(sender As Object, e As EventArgs) Handles S3.Click
  1384. If S3.Checked = False Then : S3.Checked = True : Else : S3.Checked = False : End If
  1385. End Sub
  1386. Private Sub S4_CheckedChanged(sender As Object, e As EventArgs) Handles S4.Click
  1387. If S4.Checked = False Then : S4.Checked = True : Else : S4.Checked = False : End If
  1388. End Sub
  1389. Private Sub S5_CheckedChanged(sender As Object, e As EventArgs) Handles S5.Click
  1390. If S5.Checked = False Then : S5.Checked = True : Else : S5.Checked = False : End If
  1391. End Sub
  1392. Private Sub S6_CheckedChanged(sender As Object, e As EventArgs) Handles S6.Click
  1393. If S6.Checked = False Then : S6.Checked = True : Else : S6.Checked = False : End If
  1394. End Sub
  1395. Private Sub 高級_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 高級_cb.Click
  1396. If 高級_cb.Checked = True And 時段1_rtp.Enabled = False Then : 時段1_rtp.Enabled = True : End If
  1397. If 高級_cb.Checked = True And 時段2_rtp.Enabled = False Then : 時段2_rtp.Enabled = True : End If
  1398. If 高級_cb.Checked = True And 時段3_rtp.Enabled = False Then : 時段3_rtp.Enabled = True : End If
  1399. If 高級_cb.Checked = True And 時段4_rtp.Enabled = False Then : 時段4_rtp.Enabled = True : End If
  1400. If 高級_cb.Checked = True And 時段5_rtp.Enabled = False Then : 時段5_rtp.Enabled = True : End If
  1401. If 高級_cb.Checked = True And 時段6_rtp.Enabled = False Then : 時段6_rtp.Enabled = True : End If
  1402. End Sub
  1403. Private Sub 日期1_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 日期1_dtp.ValueChanged
  1404. 日期1_tb.Text = Strings.Format(日期1_dtp.Value, "yyyy/MM/dd") : Set_查詢表()
  1405. End Sub
  1406. Private Sub 部門_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 部門_cb.SelectedIndexChanged
  1407. Set_查詢表()
  1408. End Sub
  1409. Private Sub 地區_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 地區_cb.SelectedIndexChanged
  1410. Set_使用者清單()
  1411. End Sub
  1412. Private Sub 地區1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 地區1_cb.SelectedIndexChanged
  1413. Set_考勤彙總()
  1414. End Sub
  1415. Private Sub DA3_bt_Click(sender As Object, e As EventArgs) Handles DA3_bt.Click
  1416. 日期1_dtp.Value = 日期1_dtp.Value.AddDays(+1)
  1417. End Sub
  1418. Private Sub DA1_bt_Click(sender As Object, e As EventArgs) Handles DA1_bt.Click
  1419. 日期1_dtp.Value = 日期1_dtp.Value.AddDays(-1)
  1420. End Sub
  1421. Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
  1422. Return CType(xlBook.Worksheets.Add, Worksheet)
  1423. End Function
  1424. Private Sub 列印()
  1425. xlSheet = NewMethod(xlBook)
  1426. xlApp.Sheets(1).Name = 姓名_tb.Text
  1427. xlBook.Activate() : xlSheet.Activate()
  1428. xlSheet.Cells(1, 1) = "LAPORAN KEHADIRAN KARYAWAN"
  1429. xlSheet.Cells(2, 1) = "Fingerprint" : xlSheet.Cells(2, 7) = "Jabatan KKaryawan"
  1430. xlSheet.Cells(3, 1) = "Kode Karyawan" : xlSheet.Cells(3, 7) = "Tanggal Gabung"
  1431. xlSheet.Cells(4, 1) = "Nama Karyawan" : xlSheet.Cells(4, 7) = "Nama Departemer"
  1432. xlSheet.Cells(5, 1) = "HARI" : xlSheet.Cells(5, 2) = "TANGGAL" : xlSheet.Cells(5, 3) = "JAM KERJA" : xlSheet.Cells(5, 4) = "KEGIATAN" : xlSheet.Cells(5, 5) = "JAM MASUK"
  1433. xlSheet.Cells(5, 6) = "JAM KELUAR" : xlSheet.Cells(5, 7) = "TERLAMBAT" : xlSheet.Cells(5, 8) = "CEPAT PULANG" : xlSheet.Cells(5, 9) = "LEMBUR"
  1434. xlSheet.Cells(5, 10) = "OTI" : xlSheet.Cells(5, 11) = "OTII" : xlSheet.Cells(5, 12) = "JUMLAH JAM" : xlSheet.Cells(5, 13) = "CATATAN"
  1435. VBN = 0 : CBN = 0
  1436. For II As Integer = 0 To 明細_dgv.Rows.Count - 1 : CBN = 6 + II
  1437. If 明細_dgv.Rows(II).Cells("MGB").Value.ToString = "星期日" Then : VBN = 6 + II : AA(xlApp, xlSheet) : End If
  1438. xlSheet.Cells(6 + II, 1) = 明細_dgv.Rows(II).Cells(表頭(2)).Value.ToString : xlSheet.Cells(6 + II, 2) = 明細_dgv.Rows(II).Cells(表頭(3)).Value.ToString
  1439. '--------------第三格-----------------
  1440. If 明細_dgv.Rows(II).Cells("MGB").Value.ToString = "星期日" Or 明細_dgv.Rows(II).Cells(表頭(18)).Value = True Then
  1441. If 明細_dgv.Rows(II).Cells(表頭(17)).Value = False Then : xlSheet.Cells(6 + II, 3) = "" : Else
  1442. If 明細_dgv.Rows(II).Cells("MGB").Value.ToString = "星期六" Then : xlSheet.Cells(6 + II, 3) = "08:00-12:00" : Else : xlSheet.Cells(6 + II, 3) = "08:00-17:00" : End If
  1443. End If
  1444. ElseIf 明細_dgv.Rows(II).Cells("MGB").Value.ToString = "星期六" Then : xlSheet.Cells(6 + II, 3) = "08:00-12:00" : Else : xlSheet.Cells(6 + II, 3) = "08:00-17:00" : End If
  1445. '--------------第四格-----------------
  1446. If 明細_dgv.Rows(II).Cells(表頭(26)).Value.ToString <> "" Then
  1447. xlSheet.Cells(6 + II, 4) = 明細_dgv.Rows(II).Cells(表頭(26)).Value.ToString
  1448. Else
  1449. If (明細_dgv.Rows(II).Cells(表頭(17)).Value = False And 明細_dgv.Rows(II).Cells(表頭(18)).Value = True) Or
  1450. (明細_dgv.Rows(II).Cells("MGB").Value.ToString = "星期日" And 明細_dgv.Rows(II).Cells(表頭(17)).Value = False) Then
  1451. xlSheet.Cells(6 + II, 4) = ""
  1452. Else
  1453. If 明細_dgv.Rows(II).Cells("MGB").Value.ToString = "星期日" And 明細_dgv.Rows(II).Cells(表頭(17)).Value = False Then : xlSheet.Cells(6 + II, 4) = ""
  1454. ElseIf 明細_dgv.Rows(II).Cells("MGB").Value.ToString = "星期日" And 明細_dgv.Rows(II).Cells(表頭(17)).Value = True Then : xlSheet.Cells(6 + II, 4) = "Work"
  1455. Else : xlSheet.Cells(6 + II, 4) = "Work" : End If
  1456. End If
  1457. End If
  1458. If (明細_dgv.Rows(II).Cells(表頭(17)).Value = False And 明細_dgv.Rows(II).Cells(表頭(18)).Value = True) Or
  1459. (明細_dgv.Rows(II).Cells("MGB").Value.ToString = "星期日" And 明細_dgv.Rows(II).Cells(表頭(17)).Value = False) Then
  1460. xlSheet.Cells(6 + II, 5) = "" : xlSheet.Cells(6 + II, 6) = ""
  1461. Else
  1462. '--------------第五格-----------------
  1463. If 明細_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" Then
  1464. xlSheet.Cells(6 + II, 5) = 明細_dgv.Rows(II).Cells(表頭(4)).Value.ToString : Else : xlSheet.Cells(6 + II, 5) = "" : End If
  1465. '--------------第六格-----------------
  1466. If 明細_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 明細_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" Then
  1467. xlSheet.Cells(6 + II, 6) = 明細_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  1468. ElseIf 明細_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 明細_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" Then
  1469. xlSheet.Cells(6 + II, 6) = 明細_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  1470. Else : xlSheet.Cells(6 + II, 6) = "" : End If
  1471. '--------------第八、九格-----------------
  1472. If 明細_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 明細_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  1473. xlSheet.Cells(6 + II, 8) = 明細_dgv.Rows(II).Cells(表頭(8)).Value.ToString : xlSheet.Cells(6 + II, 9) = 明細_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  1474. End If
  1475. '--------------第十、十一格-----------------
  1476. If 明細_dgv.Rows(II).Cells(表頭(16)).Value.ToString = "" Then : Else
  1477. If CInt(Strings.Left(明細_dgv.Rows(II).Cells(表頭(16)).Value.ToString, 2)) > 8 Then
  1478. If CInt(Strings.Left(明細_dgv.Rows(II).Cells(表頭(16)).Value.ToString, 2)) - 8 = 1 Then : xlSheet.Cells(6 + II, 10) = "1" : xlSheet.Cells(6 + II, 11) = ""
  1479. ElseIf CInt(Strings.Left(明細_dgv.Rows(II).Cells(表頭(16)).Value.ToString, 2)) - 8 > 1 Then
  1480. xlSheet.Cells(6 + II, 10) = "1" : xlSheet.Cells(6 + II, 11) = CInt(Strings.Left(明細_dgv.Rows(II).Cells(表頭(16)).Value.ToString, 2)) - 9
  1481. End If
  1482. Else : xlSheet.Cells(6 + II, 10) = "" : xlSheet.Cells(6 + II, 11) = "" : End If
  1483. End If
  1484. End If
  1485. '--------------第十二、十三格-----------------
  1486. xlSheet.Cells(6 + II, 12) = 明細_dgv.Rows(II).Cells(表頭(16)).Value.ToString : xlSheet.Cells(6 + II, 13) = 明細_dgv.Rows(II).Cells(表頭(27)).Value.ToString
  1487. Next
  1488. xlSheet.Cells(CBN + 1, 1) = "Total Kerja" : xlSheet.Cells(CBN + 1, 10) = "=SUM(J6:J" & CBN & ")" : xlSheet.Cells(CBN + 1, 11) = "=SUM(K6:K" & CBN & ")"
  1489. xlSheet.Cells(CBN + 1, 12) = 總時數_tb.Text : BB(xlApp, xlSheet)
  1490. End Sub
  1491. Private Sub 列印_bt_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click
  1492. xlApp = CType(CreateObject("Excel.Application"), Application)
  1493. xlBook = xlApp.Workbooks.Add
  1494. xlApp.DisplayAlerts = True
  1495. xlApp.Visible = True
  1496. xlApp.Application.WindowState = xlMaximized
  1497. If 單一列印_cb.Checked = True Then : If 姓名_tb.Text = "" Then : MGB(對話框(14), 1) : Else : 列印() : End If : Else
  1498. For I As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1499. PA1 = 清單1_dgv.Rows(I).Cells("ID卡號").Value.ToString : 姓名_tb.Text = 清單1_dgv.Rows(I).Cells(表頭(0)).Value.ToString.ToUpper
  1500. 員工代碼_tb.Text = 清單1_dgv.Rows(I).Cells(表頭(23)).Value.ToString.ToUpper : 員工崗位_tb.Text = 清單1_dgv.Rows(I).Cells(表頭(24)).Value.ToString.ToUpper
  1501. 部門名稱_tb.Text = 清單1_dgv.Rows(I).Cells(表頭(25)).Value.ToString.ToUpper
  1502. ID_tb.Text = PA1 : PA2 = 年份_cb.Text : PA3 = 月份_cb.Text : Set_考勤明細() : 列印()
  1503. Next
  1504. End If
  1505. xlSheet.PageSetup.PrintArea = ""
  1506. xlApp.Cells.Select()
  1507. xlApp.Application.WindowState = xlMinimized
  1508. MGB(對話框(18), 1)
  1509. End Sub
  1510. Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  1511. xlSheet.Range("A" & VBN & ":M" & VBN).Select()
  1512. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent2
  1513. .TintAndShade = 0.599993896298105 : .PatternTintAndShade = 0 : End With
  1514. End Sub
  1515. Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  1516. xlSheet.Range("A1:D1").Select()
  1517. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent5
  1518. .TintAndShade = 0.799981688894314 : .PatternTintAndShade = 0 : End With
  1519. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 8
  1520. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 11
  1521. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1522. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1523. xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 11
  1524. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1525. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1526. xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 12
  1527. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1528. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1529. xlSheet.Columns("E:I").Select : myExcel.Selection.ColumnWidth = 9
  1530. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1531. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1532. xlSheet.Columns("J:K").Select : myExcel.Selection.ColumnWidth = 5
  1533. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1534. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1535. xlSheet.Columns("L:L").Select : myExcel.Selection.ColumnWidth = 11
  1536. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1537. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1538. xlSheet.Columns("M:M").Select : myExcel.Selection.ColumnWidth = 12
  1539. xlSheet.Rows("5:5").Select
  1540. With myExcel.Selection : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  1541. .ReadingOrder = xlContext : .MergeCells = False : End With
  1542. xlSheet.Range("G2:G4").Select()
  1543. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1544. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1545. xlSheet.Range("A5:M5").Select()
  1546. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1547. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1548. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1549. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1550. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1551. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1552. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1553. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1554. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1555. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1556. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1557. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1558. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1559. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1560. myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  1561. xlSheet.Range("A6:M" & CBN).Select()
  1562. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1563. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1564. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1565. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1566. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1567. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1568. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1569. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1570. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1571. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1572. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1573. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1574. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1575. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1576. myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  1577. xlSheet.Range("A" & CBN + 1 & ":I" & CBN + 1).Select()
  1578. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1579. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1580. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1581. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1582. xlSheet.Range("A" & CBN + 1 & ":M" & CBN + 1).Select()
  1583. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1584. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1585. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1586. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1587. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1588. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1589. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1590. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1591. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1592. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1593. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1594. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1595. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1596. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1597. myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  1598. xlSheet.Range("H" & CBN).Select() : myExcel.ActiveWindow.DisplayGridlines = False
  1599. xlSheet.Rows("6:6").Select : myExcel.ActiveWindow.FreezePanes = True
  1600. xlSheet.Range("M2").Select()
  1601. End Sub
  1602. '----------------------自創視窗滑鼠拖曳功能---------------------------------------------------------------------------------------------------------
  1603. Dim OldX, OldY As Long
  1604. Dim drag As Boolean
  1605. Private Sub 視窗4_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseDown
  1606. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  1607. End Sub
  1608. Private Sub 視窗4_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseMove
  1609. If drag Then : 視窗4_pl.Left = 視窗4_pl.Left + e.X - OldX : 視窗4_pl.Top = 視窗4_pl.Top + e.Y - OldY : End If
  1610. End Sub
  1611. Private Sub 視窗4_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseUp
  1612. drag = False
  1613. End Sub
  1614. Private Sub 視窗3_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseDown
  1615. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  1616. End Sub
  1617. Private Sub 視窗3_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseMove
  1618. If drag Then : 視窗3_pl.Left = 視窗3_pl.Left + e.X - OldX : 視窗3_pl.Top = 視窗3_pl.Top + e.Y - OldY : End If
  1619. End Sub
  1620. Private Sub 視窗3_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseUp
  1621. drag = False
  1622. End Sub
  1623. Private Sub 視窗2_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseDown
  1624. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  1625. End Sub
  1626. Private Sub 視窗2_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseMove
  1627. If drag Then : 視窗2_pl.Left = 視窗2_pl.Left + e.X - OldX : 視窗2_pl.Top = 視窗2_pl.Top + e.Y - OldY : End If
  1628. End Sub
  1629. Private Sub 視窗2_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseUp
  1630. drag = False
  1631. End Sub
  1632. Private Sub Label11_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label11.MouseDown
  1633. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  1634. End Sub
  1635. Private Sub Label11_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label11.MouseMove
  1636. If drag Then : 視窗3_pl.Left = 視窗3_pl.Left + e.X - OldX : 視窗3_pl.Top = 視窗3_pl.Top + e.Y - OldY : End If
  1637. End Sub
  1638. Private Sub Label11_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label24.MouseUp
  1639. drag = False
  1640. End Sub
  1641. Private Sub Label24_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label24.MouseDown
  1642. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  1643. End Sub
  1644. Private Sub Label24_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label24.MouseMove
  1645. If drag Then : 視窗2_pl.Left = 視窗2_pl.Left + e.X - OldX : 視窗2_pl.Top = 視窗2_pl.Top + e.Y - OldY : End If
  1646. End Sub
  1647. Private Sub Label24_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label24.MouseUp
  1648. drag = False
  1649. End Sub
  1650. Private Sub 風格()
  1651. If 深色風格 = False Then
  1652. 考勤明細表_tp.BackColor = SystemColors.Control : 考勤彙總表_tp.BackColor = SystemColors.Control : 視窗4_pl.BackColor = SystemColors.Control
  1653. 考勤查詢表_tp.BackColor = SystemColors.Control : Panel6.BackColor = Color.White : 視窗3_pl.BackColor = SystemColors.Control : Panel4.BackColor = Color.White
  1654. 視窗2_pl.BackColor = SystemColors.Control : Panel5.BackColor = Color.White
  1655. '----------------黑-------------------------------------------
  1656. 小間距1_ch.ForeColor = Color.Black : 中間距1_ch.ForeColor = Color.Black : 大間距1_ch.ForeColor = Color.Black : Label8.ForeColor = Color.Black
  1657. Label17.ForeColor = Color.Black : Label16.ForeColor = Color.Black : Label9.ForeColor = Color.Black : Label10.ForeColor = Color.Black
  1658. Label1.ForeColor = Color.Black : Label5.ForeColor = Color.Black : Label4.ForeColor = Color.Black : Label56.ForeColor = Color.Black
  1659. Label24.ForeColor = Color.Black : Label23.ForeColor = Color.Black : Label22.ForeColor = Color.Black : Label21.ForeColor = Color.Black
  1660. Label20.ForeColor = Color.Black : Label19.ForeColor = Color.Black : Label18.ForeColor = Color.Black : Label3.ForeColor = Color.Black
  1661. Label2.ForeColor = Color.Black : Label6.ForeColor = Color.Black : Label7.ForeColor = Color.Black : Label12.ForeColor = Color.Black
  1662. Label13.ForeColor = Color.Black : Label14.ForeColor = Color.Black : Label15.ForeColor = Color.Black : 高級_cb.ForeColor = Color.Black
  1663. 語轉扭_bt.BackColor = Color.White : 語轉扭_bt.ForeColor = Color.Black :: 姓名_tb.BackColor = Color.White : 姓名_tb.ForeColor = Color.Black
  1664. 在職_bt.BackColor = Color.White : 在職_bt.ForeColor = Color.Black : 離職_bt.BackColor = Color.White : 離職_bt.ForeColor = Color.Black
  1665. 員工代碼_tb.BackColor = Color.White : 員工代碼_tb.ForeColor = Color.Black : 員工崗位_tb.BackColor = Color.White : 員工崗位_tb.ForeColor = Color.Black
  1666. 部門名稱_tb.BackColor = Color.White : 部門名稱_tb.ForeColor = Color.Black : 日期_tb.BackColor = Color.White : 日期_tb.ForeColor = Color.Black
  1667. 日期1_tb.BackColor = Color.White : 日期1_tb.ForeColor = Color.Black : 總時數_tb.BackColor = Color.White : 總時數_tb.ForeColor = Color.Black
  1668. 時段1_rtp.BackColor = Color.White : 時段1_rtp.ForeColor = Color.Black : 時段2_rtp.BackColor = Color.White : 時段2_rtp.ForeColor = Color.Black
  1669. 時段3_rtp.BackColor = Color.White : 時段3_rtp.ForeColor = Color.Black : 時段4_rtp.BackColor = Color.White : 時段4_rtp.ForeColor = Color.Black
  1670. 時段5_rtp.BackColor = Color.White : 時段5_rtp.ForeColor = Color.Black : 時段6_rtp.BackColor = Color.White : 時段6_rtp.ForeColor = Color.Black
  1671. 時段A1_rtp.BackColor = Color.White : 時段A1_rtp.ForeColor = Color.Black : 時段A2_rtp.BackColor = Color.White : 時段A2_rtp.ForeColor = Color.Black
  1672. 時段A3_rtp.BackColor = Color.White : 時段A3_rtp.ForeColor = Color.Black : 時段A4_rtp.BackColor = Color.White : 時段A4_rtp.ForeColor = Color.Black
  1673. 時段A5_rtp.BackColor = Color.White : 時段A5_rtp.ForeColor = Color.Black : 時段A6_rtp.BackColor = Color.White : 時段A6_rtp.ForeColor = Color.Black
  1674. 存檔_bt.BackColor = Color.White : 考勤調整_bt.BackColor = Color.White : 考勤編輯_bt.BackColor = Color.White : 加班請假_bt.BackColor = Color.White
  1675. 列印_bt.BackColor = Color.White : 考勤調整1_bt.BackColor = Color.White : 考勤編輯1_bt.BackColor = Color.White : DA1_bt.BackColor = Color.White
  1676. DA3_bt.BackColor = Color.White
  1677. 清單1_dgv.EnableHeadersVisualStyles = True : 清單1_dgv.BackgroundColor = Color.White : 清單1_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.Black
  1678. 清單1_dgv.DefaultCellStyle.BackColor = Color.White : 清單1_dgv.DefaultCellStyle.ForeColor = Color.Black
  1679. 明細_dgv.EnableHeadersVisualStyles = True : 明細_dgv.BackgroundColor = Color.White : 明細_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.Black
  1680. 明細_dgv.DefaultCellStyle.BackColor = Color.White : 明細_dgv.DefaultCellStyle.ForeColor = Color.Black
  1681. 萬年曆_dgv.EnableHeadersVisualStyles = True : 萬年曆_dgv.BackgroundColor = Color.White : 萬年曆_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.Black
  1682. 萬年曆_dgv.DefaultCellStyle.BackColor = Color.White : 萬年曆_dgv.DefaultCellStyle.ForeColor = Color.Black
  1683. 考勤彙總_dgv.EnableHeadersVisualStyles = True : 考勤彙總_dgv.BackgroundColor = Color.White : 考勤彙總_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.Black
  1684. 考勤彙總_dgv.DefaultCellStyle.BackColor = Color.White : 考勤彙總_dgv.DefaultCellStyle.ForeColor = Color.Black
  1685. 查詢表_dgv.EnableHeadersVisualStyles = True : 查詢表_dgv.BackgroundColor = Color.White : 查詢表_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.Black
  1686. 查詢表_dgv.DefaultCellStyle.BackColor = Color.White : 查詢表_dgv.DefaultCellStyle.ForeColor = Color.Black
  1687. Else
  1688. 考勤明細表_tp.BackColor = Color.Black : 考勤彙總表_tp.BackColor = Color.Black : 考勤查詢表_tp.BackColor = Color.Black
  1689. 視窗4_pl.BackColor = Color.DimGray : Panel6.BackColor = Color.Black : 視窗3_pl.BackColor = Color.DimGray : Panel4.BackColor = Color.Black
  1690. 視窗2_pl.BackColor = Color.DimGray : Panel5.BackColor = Color.Black
  1691. '----------------黑-------------------------------------------
  1692. 小間距1_ch.ForeColor = Color.White : 中間距1_ch.ForeColor = Color.White : 大間距1_ch.ForeColor = Color.White : Label8.ForeColor = Color.White
  1693. Label17.ForeColor = Color.White : Label16.ForeColor = Color.White : Label9.ForeColor = Color.White : Label10.ForeColor = Color.White
  1694. Label1.ForeColor = Color.White : Label5.ForeColor = Color.White : Label4.ForeColor = Color.White : Label56.ForeColor = Color.White
  1695. Label24.ForeColor = Color.White : Label23.ForeColor = Color.White : Label22.ForeColor = Color.White : Label21.ForeColor = Color.White
  1696. Label20.ForeColor = Color.White : Label19.ForeColor = Color.White : Label18.ForeColor = Color.White : Label3.ForeColor = Color.White
  1697. Label2.ForeColor = Color.White : Label6.ForeColor = Color.White : Label7.ForeColor = Color.White : Label12.ForeColor = Color.White
  1698. Label13.ForeColor = Color.White : Label14.ForeColor = Color.White : Label15.ForeColor = Color.White : 高級_cb.ForeColor = Color.White
  1699. 語轉扭_bt.BackColor = Color.DimGray : 語轉扭_bt.ForeColor = Color.White :: 姓名_tb.BackColor = Color.DimGray : 姓名_tb.ForeColor = Color.White
  1700. 在職_bt.BackColor = Color.DimGray : 在職_bt.ForeColor = Color.White : 離職_bt.BackColor = Color.DimGray : 離職_bt.ForeColor = Color.White
  1701. 員工代碼_tb.BackColor = Color.DimGray : 員工代碼_tb.ForeColor = Color.White : 員工崗位_tb.BackColor = Color.DimGray : 員工崗位_tb.ForeColor = Color.White
  1702. 部門名稱_tb.BackColor = Color.DimGray : 部門名稱_tb.ForeColor = Color.White : 日期_tb.BackColor = Color.DimGray : 日期_tb.ForeColor = Color.White
  1703. 日期1_tb.BackColor = Color.DimGray : 日期1_tb.ForeColor = Color.White : 總時數_tb.BackColor = Color.DimGray : 總時數_tb.ForeColor = Color.White
  1704. 時段1_rtp.BackColor = Color.Black : 時段1_rtp.ForeColor = Color.White : 時段2_rtp.BackColor = Color.Black : 時段2_rtp.ForeColor = Color.White
  1705. 時段3_rtp.BackColor = Color.Black : 時段3_rtp.ForeColor = Color.White : 時段4_rtp.BackColor = Color.Black : 時段4_rtp.ForeColor = Color.White
  1706. 時段5_rtp.BackColor = Color.Black : 時段5_rtp.ForeColor = Color.White : 時段6_rtp.BackColor = Color.Black : 時段6_rtp.ForeColor = Color.White
  1707. 時段A1_rtp.BackColor = Color.Black : 時段A1_rtp.ForeColor = Color.White : 時段A2_rtp.BackColor = Color.Black : 時段A2_rtp.ForeColor = Color.White
  1708. 時段A3_rtp.BackColor = Color.Black : 時段A3_rtp.ForeColor = Color.White : 時段A4_rtp.BackColor = Color.Black : 時段A4_rtp.ForeColor = Color.White
  1709. 時段A5_rtp.BackColor = Color.Black : 時段A5_rtp.ForeColor = Color.White : 時段A6_rtp.BackColor = Color.Black : 時段A6_rtp.ForeColor = Color.White
  1710. 存檔_bt.BackColor = Color.DimGray : 考勤調整_bt.BackColor = Color.DimGray : 考勤編輯_bt.BackColor = Color.DimGray : 加班請假_bt.BackColor = Color.DimGray
  1711. 列印_bt.BackColor = Color.DimGray : 考勤調整1_bt.BackColor = Color.DimGray : 考勤編輯1_bt.BackColor = Color.DimGray : DA1_bt.BackColor = Color.DimGray
  1712. DA3_bt.BackColor = Color.DimGray
  1713. 清單1_dgv.EnableHeadersVisualStyles = False : 清單1_dgv.BackgroundColor = Color.DimGray : 清單1_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
  1714. 清單1_dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.Black : 清單1_dgv.DefaultCellStyle.BackColor = Color.Black : 清單1_dgv.DefaultCellStyle.ForeColor = Color.White
  1715. 明細_dgv.EnableHeadersVisualStyles = False : 明細_dgv.BackgroundColor = Color.DimGray : 明細_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
  1716. 明細_dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.Black : 明細_dgv.DefaultCellStyle.BackColor = Color.Black : 明細_dgv.DefaultCellStyle.ForeColor = Color.White
  1717. 萬年曆_dgv.EnableHeadersVisualStyles = False : 萬年曆_dgv.BackgroundColor = Color.DimGray : 萬年曆_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
  1718. 萬年曆_dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.Black : 萬年曆_dgv.DefaultCellStyle.BackColor = Color.Black : 萬年曆_dgv.DefaultCellStyle.ForeColor = Color.White
  1719. 考勤彙總_dgv.EnableHeadersVisualStyles = False : 考勤彙總_dgv.BackgroundColor = Color.DimGray : 考勤彙總_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
  1720. 考勤彙總_dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.Black : 考勤彙總_dgv.DefaultCellStyle.BackColor = Color.Black : 考勤彙總_dgv.DefaultCellStyle.ForeColor = Color.White
  1721. 查詢表_dgv.EnableHeadersVisualStyles = False : 查詢表_dgv.BackgroundColor = Color.DimGray : 查詢表_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
  1722. 查詢表_dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.Black : 查詢表_dgv.DefaultCellStyle.BackColor = Color.Black : 查詢表_dgv.DefaultCellStyle.ForeColor = Color.White
  1723. End If
  1724. End Sub
  1725. End Class