Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

人員薪資.vb 209KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883
  1. Option Explicit On
  2. Imports System.IO
  3. Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
  4. Imports Microsoft.Office.Interop.Excel.Constants
  5. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  6. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  7. Imports Microsoft.Office.Interop.Excel.XlBorderWeight
  8. Imports Microsoft.Office.Interop.Excel.XlThemeFont
  9. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  10. Imports Microsoft.Office.Interop.Excel.XlWindowState
  11. Imports Microsoft.Office.Interop.Excel.XlPageOrientation
  12. Imports Microsoft.Office.Interop.Excel
  13. Imports PdfSharp.Pdf
  14. Imports PdfSharp.Pdf.IO
  15. Public Class 人員薪資
  16. Dim 對話框(17) As String
  17. Dim 間隔1, 時長, 總時, GN1, 之前選擇 As Integer
  18. Dim 時段(6), 計算(6), X1, AUTO時, AUTO舊1, AUTO舊2 As String
  19. Dim 本周周一 As Date
  20. Dim xlApp As Application
  21. Dim xlBook As Workbook
  22. Dim xlSheet As Worksheet
  23. Private Function IsVerticalScrollBarVisible(dgv As DataGridView) As Boolean
  24. Return dgv.FirstDisplayedScrollingRowIndex > 0 OrElse dgv.DisplayedRowCount(False) < dgv.Rows.Count
  25. End Function
  26. Private Sub 語言轉換讀取()
  27. If 系統語言 = "繁體中文" Then : 語言 = "CH" : ElseIf 系統語言 = "English" Then : 語言 = "EN" : ElseIf 系統語言 = "Indonesian" Then : 語言 = "IN" : End If
  28. 對話框(16) = 系統語言字典("H609-141-" & 語言) : 對話框(17) = 系統語言字典("H609-142-" & 語言) : 表頭(0) = 系統語言字典("H601-103-" & 語言)
  29. 表頭(1) = 系統語言字典("H602-104-" & 語言) : 表頭(2) = 系統語言字典("H609-107-" & 語言) : 表頭(3) = 系統語言字典("H609-108-" & 語言)
  30. 表頭(4) = 系統語言字典("H609-109-" & 語言) : 表頭(5) = 系統語言字典("H609-110-" & 語言) : 表頭(6) = 系統語言字典("H609-111-" & 語言)
  31. 表頭(7) = 系統語言字典("H609-112-" & 語言) : 表頭(8) = 系統語言字典("H609-113-" & 語言) : 表頭(9) = 系統語言字典("H609-114-" & 語言)
  32. 表頭(10) = 系統語言字典("H609-115-" & 語言) : 表頭(11) = 系統語言字典("H609-116-" & 語言) : 表頭(12) = 系統語言字典("H609-117-" & 語言)
  33. 表頭(13) = 系統語言字典("H609-118-" & 語言) : 表頭(14) = 系統語言字典("H609-119-" & 語言) : 表頭(15) = 系統語言字典("H609-120-" & 語言)
  34. 表頭(16) = 系統語言字典("H609-123-" & 語言) : 表頭(17) = 系統語言字典("H609-124-" & 語言) : 表頭(18) = 系統語言字典("H609-128-" & 語言)
  35. 表頭(19) = 系統語言字典("H601-108-" & 語言) : 表頭(20) = 系統語言字典("H609-129-" & 語言) : 表頭(21) = 系統語言字典("H609-125-" & 語言)
  36. 表頭(22) = 系統語言字典("H607-103-" & 語言) : 表頭(23) = 系統語言字典("H609-130-" & 語言) : 表頭(24) = 系統語言字典("H609-131-" & 語言)
  37. 表頭(25) = 系統語言字典("H609-132-" & 語言) : 表頭(26) = 系統語言字典("H611-105-" & 語言) : 表頭(27) = 系統語言字典("H611-106-" & 語言)
  38. 表頭(28) = 系統語言字典("H611-107-" & 語言) : 表頭(29) = 系統語言字典("H611-108-" & 語言) : 工人_ch.Text = 系統語言字典("G000-159-" & 語言)
  39. 對話框(0) = 系統語言字典("H611-100-" & 語言) : 對話框(1) = 系統語言字典("H611-101-" & 語言) : 對話框(2) = 系統語言字典("H611-102-" & 語言)
  40. 對話框(3) = 系統語言字典("H611-103-" & 語言) : 對話框(4) = 系統語言字典("H611-104-" & 語言) : 表頭(30) = 系統語言字典("H611-109-" & 語言)
  41. DA1_bt.Text = 系統語言字典("H611-111-" & 語言) : DA2_bt.Text = 系統語言字典("H611-112-" & 語言) : DA3_bt.Text = 系統語言字典("H611-113-" & 語言)
  42. 群組輸入_ch.Text = 系統語言字典("H611-114-" & 語言) : 群組選擇_ch.Text = 系統語言字典("H611-115-" & 語言) : 考勤表_bt.Text = 系統語言字典("H611-116-" & 語言)
  43. 薪資表_bt.Text = 系統語言字典("H611-117-" & 語言) : Label11.Text = 系統語言字典("H611-118-" & 語言) : Label1.Text = 系統語言字典("H611-119-" & 語言)
  44. Label7.Text = 系統語言字典("H609-124-" & 語言) : Label8.Text = 系統語言字典("H611-120-" & 語言)
  45. 表頭(64) = 系統語言字典("H611-122-" & 語言) : 表頭(31) = 系統語言字典("H611-123-" & 語言) : 表頭(32) = 系統語言字典("H611-124-" & 語言)
  46. 表頭(33) = 系統語言字典("H611-125-" & 語言) : 表頭(34) = 系統語言字典("H611-126-" & 語言) : 表頭(35) = 系統語言字典("H611-127-" & 語言)
  47. 表頭(36) = 系統語言字典("H611-128-" & 語言) : 表頭(37) = 系統語言字典("H611-129-" & 語言) : 表頭(38) = 系統語言字典("H611-130-" & 語言)
  48. 表頭(39) = 系統語言字典("H611-131-" & 語言) : 表頭(40) = 系統語言字典("H611-132-" & 語言) : 表頭(41) = 系統語言字典("H611-133-" & 語言)
  49. 表頭(42) = 系統語言字典("H611-134-" & 語言) : 表頭(43) = 系統語言字典("H611-135-" & 語言) : 表頭(44) = 系統語言字典("H611-136-" & 語言)
  50. 表頭(45) = 系統語言字典("H611-137-" & 語言) : 表頭(46) = 系統語言字典("H611-138-" & 語言) : 表頭(47) = 系統語言字典("H611-139-" & 語言)
  51. 表頭(48) = 系統語言字典("H611-140-" & 語言) : 表頭(49) = 系統語言字典("H611-141-" & 語言) : 表頭(50) = 系統語言字典("H611-142-" & 語言)
  52. 表頭(51) = 系統語言字典("H611-143-" & 語言) : 表頭(52) = 系統語言字典("H611-144-" & 語言) : 表頭(53) = 系統語言字典("H611-145-" & 語言)
  53. 表頭(54) = 系統語言字典("H611-146-" & 語言) : 表頭(55) = 系統語言字典("H611-147-" & 語言) : 表頭(56) = 系統語言字典("H611-148-" & 語言)
  54. 表頭(57) = 系統語言字典("H611-149-" & 語言) : 表頭(58) = 系統語言字典("H611-150-" & 語言) : 表頭(59) = 系統語言字典("H611-151-" & 語言)
  55. 表頭(60) = 系統語言字典("H611-152-" & 語言) : 表頭(61) = 系統語言字典("H611-153-" & 語言) : 表頭(62) = 系統語言字典("H611-154-" & 語言)
  56. 表頭(63) = 系統語言字典("H611-155-" & 語言)
  57. End Sub
  58. Private Sub Set_使用者清單()
  59. Set_總清單() : Set_虛擬表() : Dim ds1, ds2 As New DataSet
  60. 清單1_dgv.DataSource = Nothing : ds1.Clear()
  61. 清單1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  62. 清單1_dgv.ColumnHeadersHeight = 45 : 清單1_dgv.AllowUserToAddRows = False : 清單1_dgv.RowTemplate.Height = 35
  63. 合計_dgv.DataSource = Nothing : ds2.Clear()
  64. 合計_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  65. 合計_dgv.ColumnHeadersHeight = 45 : 合計_dgv.AllowUserToAddRows = False : 合計_dgv.RowTemplate.Height = 35
  66. 合計_dgv.ColumnHeadersVisible = False
  67. If 群組1_cb.Text = "HARIAN GROUP" Then
  68. SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 LIKE 'HARIAN GROUP'"
  69. SQL4 = "[HX-PGS-MSN].dbo.人員資料表.員工代碼"
  70. Else
  71. SQL5 = " AND [HX-PGS-MSN].dbo.人員資料表.部門名稱 NOT LIKE 'HARIAN GROUP'"
  72. SQL4 = "[HX-PGS-MSN].dbo.人員資料表.部門名稱,使用者權限管理表.姓名"
  73. End If
  74. PA25 = 地區_cb.SelectedIndex : SQL3 = "" : PA14 = 級別_cb.Text : PA19 = 群組_cb.Text
  75. SQL_人員薪資表1() : da.Fill(ds1) : 清單1_dgv.DataSource = ds1.Tables(0) : conn.Close()
  76. SQL_人員薪資表2() : da.Fill(ds2) : 合計_dgv.DataSource = ds2.Tables(0) : conn.Close() : PA25 = ""
  77. 清單1_dgv.Columns("Save.").FillWeight = 40 : 清單1_dgv.Columns(12).Visible = True : 清單1_dgv.Columns(50).Visible = False : 清單1_dgv.Columns(0).FillWeight = 120
  78. 清單1_dgv.Columns(4).FillWeight = 25
  79. 合計_dgv.Columns("Save.").FillWeight = 40 : 合計_dgv.Columns(12).Visible = True : 合計_dgv.Columns(50).Visible = False : 合計_dgv.Columns(0).FillWeight = 120
  80. 合計_dgv.Columns(4).FillWeight = 25
  81. For i As Integer = 2 To 14 : 清單1_dgv.Columns(i).Visible = False : Next : For i As Integer = 29 To 48 : 清單1_dgv.Columns(i).Visible = False : Next
  82. For i As Integer = 15 To 28 : 清單1_dgv.Columns(i).FillWeight = 60 : Next : For i As Integer = 29 To 34 : 清單1_dgv.Columns(i).FillWeight = 60 : Next
  83. For i As Integer = 35 To 48 : 清單1_dgv.Columns(i).FillWeight = 40 : Next : 清單1_dgv.Columns(12).Visible = True : 清單1_dgv.Columns(4).Visible = True
  84. For i As Integer = 1 To 50 : 清單1_dgv.Columns(i).ReadOnly = True : Next
  85. If 群組選擇_ch.Checked = True Then : 清單1_dgv.Columns(0).ReadOnly = True : Else : 清單1_dgv.Columns(0).ReadOnly = False : End If
  86. 清單1_dgv.Columns(12).ReadOnly = False
  87. For i As Integer = 2 To 14 : 合計_dgv.Columns(i).Visible = False : Next : For i As Integer = 29 To 48 : 合計_dgv.Columns(i).Visible = False : Next
  88. For i As Integer = 15 To 28 : 合計_dgv.Columns(i).FillWeight = 60 : Next : For i As Integer = 29 To 34 : 合計_dgv.Columns(i).FillWeight = 60 : Next
  89. For i As Integer = 35 To 48 : 合計_dgv.Columns(i).FillWeight = 40 : Next : 合計_dgv.Columns(12).Visible = True : 合計_dgv.Columns(4).Visible = True
  90. For i As Integer = 1 To 50 : 合計_dgv.Columns(i).ReadOnly = True : Next
  91. If 群組選擇_ch.Checked = True Then : 合計_dgv.Columns(0).ReadOnly = True : Else : 合計_dgv.Columns(0).ReadOnly = False : End If
  92. 合計_dgv.Columns(12).ReadOnly = False
  93. 清單1_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 清單1_dgv.Columns(13).DefaultCellStyle.Format = "#,##0"
  94. For i As Integer = 4 To 11
  95. 清單1_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  96. 清單1_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  97. Next
  98. For i As Integer = 12 To 48
  99. 清單1_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  100. 清單1_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  101. Next
  102. If 深色風格 = False Then
  103. 清單1_dgv.Columns(15).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(16).DefaultCellStyle.ForeColor = Color.Red
  104. 清單1_dgv.Columns(17).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(18).DefaultCellStyle.ForeColor = Color.Blue
  105. 清單1_dgv.Columns(19).DefaultCellStyle.ForeColor = Color.Green : 清單1_dgv.Columns(20).DefaultCellStyle.ForeColor = Color.Green
  106. 清單1_dgv.Columns(21).DefaultCellStyle.ForeColor = Color.Coral : 清單1_dgv.Columns(22).DefaultCellStyle.ForeColor = Color.Coral
  107. 清單1_dgv.Columns(23).DefaultCellStyle.ForeColor = Color.Cyan : 清單1_dgv.Columns(24).DefaultCellStyle.ForeColor = Color.Cyan
  108. 清單1_dgv.Columns(25).DefaultCellStyle.ForeColor = Color.Salmon : 清單1_dgv.Columns(26).DefaultCellStyle.ForeColor = Color.Salmon
  109. 清單1_dgv.Columns(27).DefaultCellStyle.ForeColor = Color.SlateGray : 清單1_dgv.Columns(28).DefaultCellStyle.ForeColor = Color.SlateGray
  110. 清單1_dgv.Columns(29).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(30).DefaultCellStyle.ForeColor = Color.Red
  111. 清單1_dgv.Columns(31).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(32).DefaultCellStyle.ForeColor = Color.Blue
  112. 清單1_dgv.Columns(33).DefaultCellStyle.ForeColor = Color.Green : 清單1_dgv.Columns(34).DefaultCellStyle.ForeColor = Color.Green
  113. 清單1_dgv.Columns(35).DefaultCellStyle.ForeColor = Color.Coral : 清單1_dgv.Columns(36).DefaultCellStyle.ForeColor = Color.Coral
  114. 清單1_dgv.Columns(37).DefaultCellStyle.ForeColor = Color.Cyan : 清單1_dgv.Columns(38).DefaultCellStyle.ForeColor = Color.Cyan
  115. 清單1_dgv.Columns(39).DefaultCellStyle.ForeColor = Color.Salmon : 清單1_dgv.Columns(40).DefaultCellStyle.ForeColor = Color.Salmon
  116. 清單1_dgv.Columns(41).DefaultCellStyle.ForeColor = Color.SlateGray : 清單1_dgv.Columns(42).DefaultCellStyle.ForeColor = Color.SlateGray
  117. 清單1_dgv.Columns(43).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(44).DefaultCellStyle.ForeColor = Color.Red
  118. 清單1_dgv.Columns(45).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(46).DefaultCellStyle.ForeColor = Color.Blue
  119. 清單1_dgv.Columns(47).DefaultCellStyle.ForeColor = Color.Green : 清單1_dgv.Columns(48).DefaultCellStyle.ForeColor = Color.Green
  120. Else
  121. 清單1_dgv.Columns(15).DefaultCellStyle.ForeColor = Color.LightPink : 清單1_dgv.Columns(16).DefaultCellStyle.ForeColor = Color.LightPink
  122. 清單1_dgv.Columns(17).DefaultCellStyle.ForeColor = Color.LightBlue : 清單1_dgv.Columns(18).DefaultCellStyle.ForeColor = Color.LightBlue
  123. 清單1_dgv.Columns(19).DefaultCellStyle.ForeColor = Color.LightGreen : 清單1_dgv.Columns(20).DefaultCellStyle.ForeColor = Color.LightGreen
  124. 清單1_dgv.Columns(21).DefaultCellStyle.ForeColor = Color.LightCoral : 清單1_dgv.Columns(22).DefaultCellStyle.ForeColor = Color.LightCoral
  125. 清單1_dgv.Columns(23).DefaultCellStyle.ForeColor = Color.LightCyan : 清單1_dgv.Columns(24).DefaultCellStyle.ForeColor = Color.LightCyan
  126. 清單1_dgv.Columns(25).DefaultCellStyle.ForeColor = Color.LightSalmon : 清單1_dgv.Columns(26).DefaultCellStyle.ForeColor = Color.LightSalmon
  127. 清單1_dgv.Columns(27).DefaultCellStyle.ForeColor = Color.LightSlateGray : 清單1_dgv.Columns(28).DefaultCellStyle.ForeColor = Color.LightSlateGray
  128. 清單1_dgv.Columns(29).DefaultCellStyle.ForeColor = Color.LightPink : 清單1_dgv.Columns(30).DefaultCellStyle.ForeColor = Color.LightPink
  129. 清單1_dgv.Columns(31).DefaultCellStyle.ForeColor = Color.LightBlue : 清單1_dgv.Columns(32).DefaultCellStyle.ForeColor = Color.LightBlue
  130. 清單1_dgv.Columns(33).DefaultCellStyle.ForeColor = Color.LightGreen : 清單1_dgv.Columns(34).DefaultCellStyle.ForeColor = Color.LightGreen
  131. 清單1_dgv.Columns(35).DefaultCellStyle.ForeColor = Color.LightCoral : 清單1_dgv.Columns(36).DefaultCellStyle.ForeColor = Color.LightCoral
  132. 清單1_dgv.Columns(37).DefaultCellStyle.ForeColor = Color.LightCyan : 清單1_dgv.Columns(38).DefaultCellStyle.ForeColor = Color.LightCyan
  133. 清單1_dgv.Columns(39).DefaultCellStyle.ForeColor = Color.LightSalmon : 清單1_dgv.Columns(40).DefaultCellStyle.ForeColor = Color.LightSalmon
  134. 清單1_dgv.Columns(41).DefaultCellStyle.ForeColor = Color.LightSlateGray : 清單1_dgv.Columns(42).DefaultCellStyle.ForeColor = Color.LightSlateGray
  135. 清單1_dgv.Columns(43).DefaultCellStyle.ForeColor = Color.LightPink : 清單1_dgv.Columns(44).DefaultCellStyle.ForeColor = Color.LightPink
  136. 清單1_dgv.Columns(45).DefaultCellStyle.ForeColor = Color.LightBlue : 清單1_dgv.Columns(46).DefaultCellStyle.ForeColor = Color.LightBlue
  137. 清單1_dgv.Columns(47).DefaultCellStyle.ForeColor = Color.LightGreen : 清單1_dgv.Columns(48).DefaultCellStyle.ForeColor = Color.LightGreen
  138. End If : 清單1_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  139. 合計_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 合計_dgv.Columns(13).DefaultCellStyle.Format = "#,##0"
  140. For i As Integer = 4 To 11
  141. 合計_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  142. 合計_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  143. Next
  144. For i As Integer = 12 To 48
  145. 合計_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  146. 合計_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  147. Next
  148. If 深色風格 = False Then
  149. 合計_dgv.Columns(15).DefaultCellStyle.ForeColor = Color.Red : 合計_dgv.Columns(16).DefaultCellStyle.ForeColor = Color.Red
  150. 合計_dgv.Columns(17).DefaultCellStyle.ForeColor = Color.Blue : 合計_dgv.Columns(18).DefaultCellStyle.ForeColor = Color.Blue
  151. 合計_dgv.Columns(19).DefaultCellStyle.ForeColor = Color.Green : 合計_dgv.Columns(20).DefaultCellStyle.ForeColor = Color.Green
  152. 合計_dgv.Columns(21).DefaultCellStyle.ForeColor = Color.Coral : 合計_dgv.Columns(22).DefaultCellStyle.ForeColor = Color.Coral
  153. 合計_dgv.Columns(23).DefaultCellStyle.ForeColor = Color.Cyan : 合計_dgv.Columns(24).DefaultCellStyle.ForeColor = Color.Cyan
  154. 合計_dgv.Columns(25).DefaultCellStyle.ForeColor = Color.Salmon : 合計_dgv.Columns(26).DefaultCellStyle.ForeColor = Color.Salmon
  155. 合計_dgv.Columns(27).DefaultCellStyle.ForeColor = Color.SlateGray : 合計_dgv.Columns(28).DefaultCellStyle.ForeColor = Color.SlateGray
  156. 合計_dgv.Columns(29).DefaultCellStyle.ForeColor = Color.Red : 合計_dgv.Columns(30).DefaultCellStyle.ForeColor = Color.Red
  157. 合計_dgv.Columns(31).DefaultCellStyle.ForeColor = Color.Blue : 合計_dgv.Columns(32).DefaultCellStyle.ForeColor = Color.Blue
  158. 合計_dgv.Columns(33).DefaultCellStyle.ForeColor = Color.Green : 合計_dgv.Columns(34).DefaultCellStyle.ForeColor = Color.Green
  159. 合計_dgv.Columns(35).DefaultCellStyle.ForeColor = Color.Coral : 合計_dgv.Columns(36).DefaultCellStyle.ForeColor = Color.Coral
  160. 合計_dgv.Columns(37).DefaultCellStyle.ForeColor = Color.Cyan : 合計_dgv.Columns(38).DefaultCellStyle.ForeColor = Color.Cyan
  161. 合計_dgv.Columns(39).DefaultCellStyle.ForeColor = Color.Salmon : 合計_dgv.Columns(40).DefaultCellStyle.ForeColor = Color.Salmon
  162. 合計_dgv.Columns(41).DefaultCellStyle.ForeColor = Color.SlateGray : 合計_dgv.Columns(42).DefaultCellStyle.ForeColor = Color.SlateGray
  163. 合計_dgv.Columns(43).DefaultCellStyle.ForeColor = Color.Red : 合計_dgv.Columns(44).DefaultCellStyle.ForeColor = Color.Red
  164. 合計_dgv.Columns(45).DefaultCellStyle.ForeColor = Color.Blue : 合計_dgv.Columns(46).DefaultCellStyle.ForeColor = Color.Blue
  165. 合計_dgv.Columns(47).DefaultCellStyle.ForeColor = Color.Green : 合計_dgv.Columns(48).DefaultCellStyle.ForeColor = Color.Green
  166. Else
  167. 合計_dgv.Columns(15).DefaultCellStyle.ForeColor = Color.LightPink : 合計_dgv.Columns(16).DefaultCellStyle.ForeColor = Color.LightPink
  168. 合計_dgv.Columns(17).DefaultCellStyle.ForeColor = Color.LightBlue : 合計_dgv.Columns(18).DefaultCellStyle.ForeColor = Color.LightBlue
  169. 合計_dgv.Columns(19).DefaultCellStyle.ForeColor = Color.LightGreen : 合計_dgv.Columns(20).DefaultCellStyle.ForeColor = Color.LightGreen
  170. 合計_dgv.Columns(21).DefaultCellStyle.ForeColor = Color.LightCoral : 合計_dgv.Columns(22).DefaultCellStyle.ForeColor = Color.LightCoral
  171. 合計_dgv.Columns(23).DefaultCellStyle.ForeColor = Color.LightCyan : 合計_dgv.Columns(24).DefaultCellStyle.ForeColor = Color.LightCyan
  172. 合計_dgv.Columns(25).DefaultCellStyle.ForeColor = Color.LightSalmon : 合計_dgv.Columns(26).DefaultCellStyle.ForeColor = Color.LightSalmon
  173. 合計_dgv.Columns(27).DefaultCellStyle.ForeColor = Color.LightSlateGray : 合計_dgv.Columns(28).DefaultCellStyle.ForeColor = Color.LightSlateGray
  174. 合計_dgv.Columns(29).DefaultCellStyle.ForeColor = Color.LightPink : 合計_dgv.Columns(30).DefaultCellStyle.ForeColor = Color.LightPink
  175. 合計_dgv.Columns(31).DefaultCellStyle.ForeColor = Color.LightBlue : 合計_dgv.Columns(32).DefaultCellStyle.ForeColor = Color.LightBlue
  176. 合計_dgv.Columns(33).DefaultCellStyle.ForeColor = Color.LightGreen : 合計_dgv.Columns(34).DefaultCellStyle.ForeColor = Color.LightGreen
  177. 合計_dgv.Columns(35).DefaultCellStyle.ForeColor = Color.LightCoral : 合計_dgv.Columns(36).DefaultCellStyle.ForeColor = Color.LightCoral
  178. 合計_dgv.Columns(37).DefaultCellStyle.ForeColor = Color.LightCyan : 合計_dgv.Columns(38).DefaultCellStyle.ForeColor = Color.LightCyan
  179. 合計_dgv.Columns(39).DefaultCellStyle.ForeColor = Color.LightSalmon : 合計_dgv.Columns(40).DefaultCellStyle.ForeColor = Color.LightSalmon
  180. 合計_dgv.Columns(41).DefaultCellStyle.ForeColor = Color.LightSlateGray : 合計_dgv.Columns(42).DefaultCellStyle.ForeColor = Color.LightSlateGray
  181. 合計_dgv.Columns(43).DefaultCellStyle.ForeColor = Color.LightPink : 合計_dgv.Columns(44).DefaultCellStyle.ForeColor = Color.LightPink
  182. 合計_dgv.Columns(45).DefaultCellStyle.ForeColor = Color.LightBlue : 合計_dgv.Columns(46).DefaultCellStyle.ForeColor = Color.LightBlue
  183. 合計_dgv.Columns(47).DefaultCellStyle.ForeColor = Color.LightGreen : 合計_dgv.Columns(48).DefaultCellStyle.ForeColor = Color.LightGreen
  184. End If : 合計_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  185. Dim mycol1 As DataGridViewImageColumn = 清單1_dgv.Columns("Save.") : mycol1.ImageLayout = DataGridViewImageCellLayout.Zoom
  186. For I As Integer = 0 To 清單1_dgv.Rows.Count - 1
  187. 清單1_dgv.Rows(I).Cells("Save.").Value = My.Resources.SAVER
  188. Next
  189. '-------------------------合計DGV變形----------------------------------------------------------------------------------------------------------------------
  190. If IsVerticalScrollBarVisible(清單1_dgv) Then : 合計_dgv.Size = New Size(清單1_dgv.Size.Width - 17, 合計_dgv.Size.Height)
  191. Else : 合計_dgv.Size = New Size(清單1_dgv.Size.Width, 合計_dgv.Size.Height) : End If
  192. 合計_dgv.Rows(0).Cells(0).Value = "" : 合計_dgv.Rows(0).Cells(1).Value = "" : 合計_dgv.Rows(0).Cells(4).Value = "" : 合計_dgv.Rows(0).Cells(12).Value = "0"
  193. 合計_dgv.Rows(0).Cells(13).Value = "0" : 合計_dgv.Rows(0).Cells(15).Value = "" : 合計_dgv.Rows(0).Cells(16).Value = "" : 合計_dgv.Rows(0).Cells(17).Value = ""
  194. 合計_dgv.Rows(0).Cells(18).Value = "" : 合計_dgv.Rows(0).Cells(19).Value = "" : 合計_dgv.Rows(0).Cells(20).Value = "" : 合計_dgv.Rows(0).Cells(21).Value = ""
  195. 合計_dgv.Rows(0).Cells(22).Value = "" : 合計_dgv.Rows(0).Cells(23).Value = "" : 合計_dgv.Rows(0).Cells(24).Value = "" : 合計_dgv.Rows(0).Cells(25).Value = ""
  196. 合計_dgv.Rows(0).Cells(26).Value = "" : 合計_dgv.Rows(0).Cells(27).Value = "" : 合計_dgv.Rows(0).Cells(28).Value = "" : 合計_dgv.Rows(0).Cells(29).Value = "0"
  197. 合計_dgv.Rows(0).Cells(30).Value = "0" : 合計_dgv.Rows(0).Cells(31).Value = "" : 合計_dgv.Rows(0).Cells(32).Value = "" : 合計_dgv.Rows(0).Cells(33).Value = "0"
  198. 合計_dgv.Rows(0).Cells(34).Value = "0" : 合計_dgv.Rows(0).Cells(35).Value = "0" : 合計_dgv.Rows(0).Cells(36).Value = "0" : 合計_dgv.Rows(0).Cells(37).Value = "0"
  199. 合計_dgv.Rows(0).Cells(38).Value = "0" : 合計_dgv.Rows(0).Cells(39).Value = "0" : 合計_dgv.Rows(0).Cells(40).Value = "0" : 合計_dgv.Rows(0).Cells(41).Value = "0"
  200. 合計_dgv.Rows(0).Cells(42).Value = "0" : 合計_dgv.Rows(0).Cells(43).Value = "0" : 合計_dgv.Rows(0).Cells(44).Value = "0" : 合計_dgv.Rows(0).Cells(45).Value = "0"
  201. 合計_dgv.Rows(0).Cells(46).Value = "0" : 合計_dgv.Rows(0).Cells(47).Value = "0" : 合計_dgv.Rows(0).Cells(48).Value = "0"
  202. 合計_dgv.Rows(0).Cells("Save.").Value = My.Resources.NULL1
  203. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  204. '-------------------------實際考勤--------------------------------------------------------------------------------------------------------------------
  205. If 清單1_dgv.Rows(i).Cells(0).Value.ToString <> "" Then : 清單1_dgv.Rows(i).Cells(0).Value = 清單1_dgv.Rows(i).Cells(0).Value.ToString.ToUpper : End If
  206. If 清單1_dgv.Rows(i).Cells(1).Value.ToString <> "" Then : 清單1_dgv.Rows(i).Cells(1).Value = 清單1_dgv.Rows(i).Cells(1).Value.ToString.ToUpper : End If
  207. '-------------------------清空資料取得預設值--------------------------------------------------------------------------------------------------------------------
  208. For FF As Integer = 15 To 48 : 清單1_dgv.Rows(i).Cells(FF).Value = "" : Next
  209. '-------------------------計算週考勤表--------------------------------------------------------------------------------------------------------------------
  210. For II As Integer = 0 To 總清單_dgv.Rows.Count - 1
  211. If 清單1_dgv.Rows(i).Cells("ID卡號").Value.ToString = 總清單_dgv.Rows(II).Cells("ID卡號").Value.ToString Then
  212. '-------------------------計算星期一--------------------------------------------------------------------------------------------------------------------
  213. If 月份2_cb.Text = Strings.Mid(星1_bt.Text, 6, 2) Then
  214. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星1_bt.Text Then
  215. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  216. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  217. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  218. 清單1_dgv.Rows(i).Cells(15).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  219. 清單1_dgv.Rows(i).Cells(16).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  220. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  221. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  222. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  223. 清單1_dgv.Rows(i).Cells(15).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  224. 清單1_dgv.Rows(i).Cells(16).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  225. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  226. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  227. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  228. 清單1_dgv.Rows(i).Cells(15).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  229. 清單1_dgv.Rows(i).Cells(16).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  230. End If
  231. End If
  232. End If
  233. '-------------------------計算星期二--------------------------------------------------------------------------------------------------------------------
  234. If 月份2_cb.Text = Strings.Mid(星2_bt.Text, 6, 2) Then
  235. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星2_bt.Text Then
  236. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  237. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  238. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  239. 清單1_dgv.Rows(i).Cells(17).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  240. 清單1_dgv.Rows(i).Cells(18).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  241. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  242. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  243. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  244. 清單1_dgv.Rows(i).Cells(17).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  245. 清單1_dgv.Rows(i).Cells(18).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  246. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  247. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  248. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  249. 清單1_dgv.Rows(i).Cells(17).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  250. 清單1_dgv.Rows(i).Cells(18).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  251. End If
  252. End If
  253. End If
  254. '-------------------------計算星期三--------------------------------------------------------------------------------------------------------------------
  255. If 月份2_cb.Text = Strings.Mid(星3_bt.Text, 6, 2) Then
  256. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星3_bt.Text Then
  257. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  258. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  259. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  260. 清單1_dgv.Rows(i).Cells(19).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  261. 清單1_dgv.Rows(i).Cells(20).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  262. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  263. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  264. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  265. 清單1_dgv.Rows(i).Cells(19).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  266. 清單1_dgv.Rows(i).Cells(20).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  267. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  268. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  269. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  270. 清單1_dgv.Rows(i).Cells(19).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  271. 清單1_dgv.Rows(i).Cells(20).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  272. End If
  273. End If
  274. End If
  275. '-------------------------計算星期四--------------------------------------------------------------------------------------------------------------------
  276. If 月份2_cb.Text = Strings.Mid(星4_bt.Text, 6, 2) Then
  277. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星4_bt.Text Then
  278. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  279. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  280. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  281. 清單1_dgv.Rows(i).Cells(21).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  282. 清單1_dgv.Rows(i).Cells(22).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  283. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  284. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  285. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  286. 清單1_dgv.Rows(i).Cells(21).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  287. 清單1_dgv.Rows(i).Cells(22).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  288. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  289. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  290. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  291. 清單1_dgv.Rows(i).Cells(21).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  292. 清單1_dgv.Rows(i).Cells(22).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  293. End If
  294. End If
  295. End If
  296. '-------------------------計算星期五--------------------------------------------------------------------------------------------------------------------
  297. If 月份2_cb.Text = Strings.Mid(星5_bt.Text, 6, 2) Then
  298. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星5_bt.Text Then
  299. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  300. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  301. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  302. 清單1_dgv.Rows(i).Cells(23).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  303. 清單1_dgv.Rows(i).Cells(24).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  304. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  305. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  306. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  307. 清單1_dgv.Rows(i).Cells(23).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  308. 清單1_dgv.Rows(i).Cells(24).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  309. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  310. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  311. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  312. 清單1_dgv.Rows(i).Cells(23).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  313. 清單1_dgv.Rows(i).Cells(24).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  314. End If
  315. End If
  316. End If
  317. '-------------------------計算星期六--------------------------------------------------------------------------------------------------------------------
  318. If 月份2_cb.Text = Strings.Mid(星6_bt.Text, 6, 2) Then
  319. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星6_bt.Text Then
  320. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  321. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  322. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  323. 清單1_dgv.Rows(i).Cells(25).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  324. 清單1_dgv.Rows(i).Cells(26).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  325. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  326. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  327. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  328. 清單1_dgv.Rows(i).Cells(25).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  329. 清單1_dgv.Rows(i).Cells(26).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  330. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  331. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  332. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  333. 清單1_dgv.Rows(i).Cells(25).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  334. 清單1_dgv.Rows(i).Cells(26).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  335. End If
  336. End If
  337. End If
  338. '-------------------------計算星期日--------------------------------------------------------------------------------------------------------------------
  339. If 月份2_cb.Text = Strings.Mid(星7_bt.Text, 6, 2) Then
  340. If 總清單_dgv.Rows(II).Cells(表頭(3)).Value.ToString = 星7_bt.Text Then
  341. If 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  342. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString = "" And
  343. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  344. 清單1_dgv.Rows(i).Cells(27).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  345. 清單1_dgv.Rows(i).Cells(28).Value = 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString
  346. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  347. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  348. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString = "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString = "" Then
  349. 清單1_dgv.Rows(i).Cells(27).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  350. 清單1_dgv.Rows(i).Cells(28).Value = 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString
  351. ElseIf 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(5)).Value.ToString <> "" And
  352. 總清單_dgv.Rows(II).Cells(表頭(6)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(7)).Value.ToString <> "" And
  353. 總清單_dgv.Rows(II).Cells(表頭(8)).Value.ToString <> "" And 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString <> "" Then
  354. 清單1_dgv.Rows(i).Cells(27).Value = 總清單_dgv.Rows(II).Cells(表頭(4)).Value.ToString
  355. 清單1_dgv.Rows(i).Cells(28).Value = 總清單_dgv.Rows(II).Cells(表頭(9)).Value.ToString
  356. End If
  357. End If
  358. End If
  359. End If
  360. Next
  361. '-------------------------虛擬考勤--------------------------------------------------------------------------------------------------------------------
  362. For ii As Integer = 0 To 虛擬表_dgv.Rows.Count - 1
  363. If 清單1_dgv.Rows(i).Cells(50).Value.ToString = 虛擬表_dgv.Rows(ii).Cells(0).Value.ToString Then
  364. If 月份2_cb.Text = Strings.Mid(星1_bt.Text, 6, 2) Then
  365. 清單1_dgv.Rows(i).Cells(15).Value = 虛擬表_dgv.Rows(ii).Cells(1).Value.ToString : 清單1_dgv.Rows(i).Cells(16).Value = 虛擬表_dgv.Rows(ii).Cells(2).Value.ToString
  366. End If
  367. If 月份2_cb.Text = Strings.Mid(星2_bt.Text, 6, 2) Then
  368. 清單1_dgv.Rows(i).Cells(17).Value = 虛擬表_dgv.Rows(ii).Cells(3).Value.ToString : 清單1_dgv.Rows(i).Cells(18).Value = 虛擬表_dgv.Rows(ii).Cells(4).Value.ToString
  369. End If
  370. If 月份2_cb.Text = Strings.Mid(星3_bt.Text, 6, 2) Then
  371. 清單1_dgv.Rows(i).Cells(19).Value = 虛擬表_dgv.Rows(ii).Cells(5).Value.ToString : 清單1_dgv.Rows(i).Cells(20).Value = 虛擬表_dgv.Rows(ii).Cells(6).Value.ToString
  372. End If
  373. If 月份2_cb.Text = Strings.Mid(星4_bt.Text, 6, 2) Then
  374. 清單1_dgv.Rows(i).Cells(21).Value = 虛擬表_dgv.Rows(ii).Cells(7).Value.ToString : 清單1_dgv.Rows(i).Cells(22).Value = 虛擬表_dgv.Rows(ii).Cells(8).Value.ToString
  375. End If
  376. If 月份2_cb.Text = Strings.Mid(星5_bt.Text, 6, 2) Then
  377. 清單1_dgv.Rows(i).Cells(23).Value = 虛擬表_dgv.Rows(ii).Cells(9).Value.ToString : 清單1_dgv.Rows(i).Cells(24).Value = 虛擬表_dgv.Rows(ii).Cells(10).Value.ToString
  378. End If
  379. If 月份2_cb.Text = Strings.Mid(星6_bt.Text, 6, 2) Then
  380. 清單1_dgv.Rows(i).Cells(25).Value = 虛擬表_dgv.Rows(ii).Cells(11).Value.ToString : 清單1_dgv.Rows(i).Cells(26).Value = 虛擬表_dgv.Rows(ii).Cells(12).Value.ToString
  381. End If
  382. If 月份2_cb.Text = Strings.Mid(星7_bt.Text, 6, 2) Then
  383. 清單1_dgv.Rows(i).Cells(27).Value = 虛擬表_dgv.Rows(ii).Cells(13).Value.ToString : 清單1_dgv.Rows(i).Cells(28).Value = 虛擬表_dgv.Rows(ii).Cells(14).Value.ToString
  384. End If
  385. End If
  386. Next
  387. Next : AUTO時段() : 表頭變形1()
  388. If 群組1_cb.Text = "HARIAN GROUP" Or 群組1_cb.Text = "" Then
  389. PA25 = 年份2_cb.Text : PA26 = 月份2_cb.Text : PA27 = Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd")
  390. If 群組1_cb.Text = "HARIAN GROUP" Then : PA30 = "1" : Else : PA30 = "0" : End If
  391. PA28 = 合計_dgv.Rows(0).Cells(4).Value.ToString : PA29 = 合計_dgv.Rows(0).Cells(13).Value.ToString
  392. SQL_工人薪資彙總報表_查詢()
  393. If dr.Read Then : SQL_工人薪資彙總報表_修改() : Else : SQL_工人薪資彙總報表_新增() : End If
  394. End If : PA25 = "" : PA26 = "" : PA27 = "" : PA28 = "" : PA29 = "" : PA30 = ""
  395. End Sub
  396. Private Sub 表頭變形1()
  397. Dim NNS, 位置(50), X軸1 As Integer
  398. For Each column As DataGridViewColumn In 清單1_dgv.Columns
  399. If column.Index >= 0 Then
  400. Dim currentWidth As Integer = column.Width
  401. 位置(NNS) = currentWidth
  402. End If
  403. If NNS = 15 Or NNS = 16 Or NNS = 17 Or NNS = 18 Or NNS = 19 Or NNS = 20 Or NNS = 21 Or NNS = 22 Or NNS = 23 Or NNS = 24 Or NNS = 25 Or NNS = 26 Or NNS = 27 Or NNS = 28 Or
  404. NNS = 35 Or NNS = 36 Or NNS = 37 Or NNS = 38 Or NNS = 39 Or NNS = 40 Or NNS = 41 Or NNS = 42 Or NNS = 43 Or NNS = 44 Or NNS = 45 Or NNS = 46 Or NNS = 47 Or NNS = 48 Then
  405. column.HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter
  406. End If : NNS += 1
  407. Next
  408. X軸1 = 清單1_dgv.Location.X + 位置(0) + 位置(1) + 位置(4) + 位置(12) + 7
  409. 星1_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星1_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  410. X軸1 = X軸1 + 位置(15) + 位置(16) : 星2_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星2_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  411. X軸1 = X軸1 + 位置(17) + 位置(18) : 星3_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星3_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  412. X軸1 = X軸1 + 位置(19) + 位置(20) : 星4_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星4_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  413. X軸1 = X軸1 + 位置(21) + 位置(22) : 星5_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星5_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  414. X軸1 = X軸1 + 位置(23) + 位置(24) : 星6_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星6_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  415. X軸1 = X軸1 + 位置(25) + 位置(26) : 星7_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星7_bt.Size = New Size(位置(15) + 位置(16) - 2, 星1_bt.Size.Height)
  416. End Sub
  417. Private Sub 表頭變形2()
  418. Dim NNS, 位置(50), X軸1 As Integer
  419. For Each column As DataGridViewColumn In 清單1_dgv.Columns
  420. If column.Index >= 0 Then
  421. Dim currentWidth As Integer = column.Width
  422. 位置(NNS) = currentWidth
  423. End If
  424. If NNS = 15 Or NNS = 16 Or NNS = 17 Or NNS = 18 Or NNS = 19 Or NNS = 20 Or NNS = 21 Or NNS = 22 Or NNS = 23 Or NNS = 24 Or NNS = 25 Or NNS = 26 Or NNS = 27 Or NNS = 28 Or
  425. NNS = 35 Or NNS = 36 Or NNS = 37 Or NNS = 38 Or NNS = 39 Or NNS = 40 Or NNS = 41 Or NNS = 42 Or NNS = 43 Or NNS = 44 Or NNS = 45 Or NNS = 46 Or NNS = 47 Or NNS = 48 Then
  426. column.HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter
  427. End If : NNS += 1
  428. Next
  429. X軸1 = 清單1_dgv.Location.X + 位置(0) + 位置(1) + 位置(4) + 位置(13) + 位置(29) + 位置(30) + 位置(31) + 位置(32) + 位置(33) + 位置(34) + 7
  430. 星1_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星1_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  431. X軸1 = X軸1 + 位置(35) + 位置(36) : 星2_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星2_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  432. X軸1 = X軸1 + 位置(37) + 位置(38) : 星3_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星3_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  433. X軸1 = X軸1 + 位置(39) + 位置(40) : 星4_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星4_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  434. X軸1 = X軸1 + 位置(41) + 位置(42) : 星5_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星5_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  435. X軸1 = X軸1 + 位置(43) + 位置(44) : 星6_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星6_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  436. X軸1 = X軸1 + 位置(45) + 位置(46) : 星7_bt.Location = New System.Drawing.Point(X軸1, 星1_bt.Location.Y) : 星7_bt.Size = New Size(位置(35) + 位置(36) - 2, 星1_bt.Size.Height)
  437. End Sub
  438. Private Sub Set_虛擬表()
  439. Dim ds1 As New DataSet
  440. 虛擬表_dgv.DataSource = Nothing : ds1.Clear()
  441. 虛擬表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  442. 虛擬表_dgv.ColumnHeadersHeight = 25 : 虛擬表_dgv.AllowUserToAddRows = False : 虛擬表_dgv.RowTemplate.Height = 25
  443. PA25 = 星1_bt.Text : SQL_考勤虛擬表() : PA25 = ""
  444. da.Fill(ds1) : 虛擬表_dgv.DataSource = ds1.Tables(0) : conn.Close()
  445. End Sub
  446. Private Sub Set_總清單()
  447. Dim ds1 As New DataSet
  448. 總清單_dgv.DataSource = Nothing : ds1.Clear()
  449. 總清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  450. 總清單_dgv.ColumnHeadersHeight = 25 : 總清單_dgv.AllowUserToAddRows = False : 總清單_dgv.RowTemplate.Height = 25
  451. PA2 = 年份2_cb.Text : PA3 = 月份2_cb.Text : PA25 = 地區_cb.SelectedIndex : SQL_考勤總明細() : PA25 = ""
  452. da.Fill(ds1) : 總清單_dgv.DataSource = ds1.Tables(0) : conn.Close()
  453. 總清單_dgv.Columns(表頭(17)).FillWeight = 70 : 總清單_dgv.Columns(表頭(18)).FillWeight = 70
  454. 總清單_dgv.Columns("第一").Visible = False : 總清單_dgv.Columns("第二").Visible = False : 總清單_dgv.Columns("第三").Visible = False
  455. 總清單_dgv.Columns("第四").Visible = False : 總清單_dgv.Columns("第五").Visible = False : 總清單_dgv.Columns("第六").Visible = False
  456. For I As Integer = 4 To 9 : 總清單_dgv.Columns(表頭(I)).Visible = False : Next : 總時 = 0
  457. For i As Integer = 0 To 總清單_dgv.Rows.Count - 1
  458. '-------------基本資料準備------------------------------------
  459. If 工人_ch.Checked = True Then : 總清單_dgv.Rows(i).Cells(表頭(17)).Value = True
  460. Else : If IsDBNull(總清單_dgv.Rows(i).Cells(表頭(17)).Value) Then : 總清單_dgv.Rows(i).Cells(表頭(17)).Value = False : End If : End If
  461. If IsDBNull(總清單_dgv.Rows(i).Cells(表頭(18)).Value) Then : 總清單_dgv.Rows(i).Cells(表頭(18)).Value = False : End If
  462. If 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期一" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(0)
  463. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期二" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(1)
  464. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期三" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(2)
  465. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期四" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(3)
  466. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期五" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(4)
  467. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期六" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(5)
  468. ElseIf 總清單_dgv.Rows(i).Cells("MGB").Value.ToString = "星期日" Then : 總清單_dgv.Rows(i).Cells(表頭(2)).Value = 對話框(6)
  469. End If
  470. Dim DFG(6) As String : Dim CV As Integer = 1 : For V As Integer = 0 To 6 : DFG(V) = "" : Next
  471. If 總清單_dgv.Rows(i).Cells("第一").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第一").Value.ToString : CV += 1 : End If
  472. If 總清單_dgv.Rows(i).Cells("第二").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第二").Value.ToString : CV += 1 : End If
  473. If 總清單_dgv.Rows(i).Cells("第三").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第三").Value.ToString : CV += 1 : End If
  474. If 總清單_dgv.Rows(i).Cells("第四").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第四").Value.ToString : CV += 1 : End If
  475. If 總清單_dgv.Rows(i).Cells("第五").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第五").Value.ToString : CV += 1 : End If
  476. If 總清單_dgv.Rows(i).Cells("第六").Value.ToString <> "" Then : DFG(CV) = 總清單_dgv.Rows(i).Cells("第六").Value.ToString : End If
  477. 時段(1) = DFG(1) : 時段(2) = DFG(2)
  478. 時段(3) = DFG(3) : 時段(4) = DFG(4)
  479. 時段(5) = DFG(5) : 時段(6) = DFG(6)
  480. For II As Integer = 4 To 16 : 總清單_dgv.Rows(i).Cells(表頭(II)).Value = "" : Next
  481. '-------------時間推移計算------------------------------------
  482. If 時段(1) = "" And 時段(2) = "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  483. ElseIf 時段(1) <> "" And 時段(2) = "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  484. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  485. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) = "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  486. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(2) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  487. If 間隔1 >= 665 Then
  488. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  489. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(2)
  490. 'X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  491. 'X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  492. 'X1 = 時段(3) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  493. 'X1 = 時段(4) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = X1
  494. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  495. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  496. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  497. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  498. ElseIf 間隔1 >= 325 And 間隔1 < 665 Then
  499. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  500. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(2)
  501. 'X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  502. 'X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  503. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  504. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  505. ElseIf 間隔1 < 325 Then
  506. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  507. X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  508. End If
  509. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) = "" And 時段(5) = "" And 時段(6) = "" Then
  510. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(3) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  511. If 間隔1 >= 665 Then '---------大於十小時
  512. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(2) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  513. If 間隔1 <= 325 Then
  514. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  515. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  516. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(3)
  517. 'X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  518. 'X1 = 時段(3) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  519. 'X1 = 時段(4) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = X1
  520. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  521. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  522. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  523. ElseIf 間隔1 > 325 Then
  524. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  525. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(3)
  526. 'X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  527. 'X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  528. 'X1 = 時段(3) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  529. 'X1 = 時段(4) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = X1
  530. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  531. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  532. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  533. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  534. End If
  535. ElseIf 間隔1 > 325 And 間隔1 < 625 Then
  536. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  537. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(3)
  538. 'X1 = 時段(1) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = X1 : 時段(2) = X1
  539. 'X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1 : 時段(3) = X1
  540. 總清單_dgv.Rows(i).Cells(表頭(11)).Value = "12:00:00" : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = "12:00:00"
  541. 總清單_dgv.Rows(i).Cells(表頭(12)).Value = "13:00:00" : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = "13:00:00"
  542. ElseIf 間隔1 >= 325 Then
  543. X1 = 時段(2) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(3) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  544. If 間隔1 >= 90 Then
  545. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  546. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  547. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(3)
  548. X1 = 時段(2) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = X1
  549. Else
  550. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  551. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  552. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1
  553. End If
  554. Else
  555. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  556. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  557. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1
  558. End If
  559. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) = "" And 時段(6) = "" Then
  560. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(4) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  561. If 間隔1 >= 665 Then
  562. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  563. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  564. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  565. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(4)
  566. 'X1 = 時段(3) : Set_時段定點_加四小時() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1 : 時段(4) = X1
  567. 'X1 = 時段(4) : Set_時段定點_加一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = X1
  568. 總清單_dgv.Rows(i).Cells(表頭(13)).Value = "17:00:00" : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = "17:00:00"
  569. 總清單_dgv.Rows(i).Cells(表頭(14)).Value = "18:00:00" : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = "18:00:00"
  570. Else
  571. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  572. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  573. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  574. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  575. End If
  576. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) <> "" And 時段(6) = "" Then
  577. X1 = 時段(1) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(5) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  578. If 間隔1 >= 665 Then
  579. X1 = 時段(4) : Set_時段定點() : 計算(0) = X1 : X1 = 時段(5) : Set_時段定點() : 計算(1) = X1 : 時間比對()
  580. If 間隔1 >= 90 Then
  581. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  582. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  583. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  584. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  585. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(6)
  586. X1 = 時段(5) : Set_時段定點_減一小時() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = X1
  587. Else
  588. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  589. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  590. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  591. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  592. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  593. End If
  594. Else
  595. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  596. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  597. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  598. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  599. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  600. End If
  601. ElseIf 時段(1) <> "" And 時段(2) <> "" And 時段(3) <> "" And 時段(4) <> "" And 時段(5) <> "" And 時段(6) <> "" Then
  602. X1 = 時段(1) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(10)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(4)).Value = 時段(1)
  603. X1 = 時段(2) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(11)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(5)).Value = 時段(2)
  604. X1 = 時段(3) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(12)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(6)).Value = 時段(3)
  605. X1 = 時段(4) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(13)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(7)).Value = 時段(4)
  606. X1 = 時段(5) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(14)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(8)).Value = 時段(5)
  607. X1 = 時段(6) : Set_時段定點() : 總清單_dgv.Rows(i).Cells(表頭(15)).Value = X1 : 總清單_dgv.Rows(i).Cells(表頭(9)).Value = 時段(6)
  608. End If
  609. '-------------時間彙總計算------------------------------------
  610. 時長 = 0
  611. If 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  612. 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString = "" And 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString = "" And
  613. 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  614. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  615. If 時長 <= 8 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : End If
  616. ElseIf 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  617. 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  618. 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString = "" And 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString = "" Then
  619. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  620. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  621. If 時長 <= 8 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  622. If 總清單_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  623. 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  624. Else
  625. If 時長 < 10 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  626. Else : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  627. End If
  628. End If
  629. ElseIf 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString <> "" And
  630. 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString <> "" And
  631. 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString <> "" And 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString <> "" Then
  632. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(10)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(11)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  633. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(12)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(13)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  634. 計算(0) = 總清單_dgv.Rows(i).Cells(表頭(14)).Value.ToString : 計算(1) = 總清單_dgv.Rows(i).Cells(表頭(15)).Value.ToString : 時間比對() : 時長 += (間隔1 / 60)
  635. If 時長 <= 8 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M" : Else
  636. If 總清單_dgv.Rows(i).Cells(表頭(17)).Value = False Then
  637. 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "08 H 00 M"
  638. Else
  639. If 時長 < 10 Then : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = "0" & 時長 & " H 00 M"
  640. Else : 總清單_dgv.Rows(i).Cells(表頭(16)).Value = 時長 & " H 00 M" : End If
  641. End If
  642. End If
  643. End If
  644. Next : For I As Integer = 10 To 15 : 總清單_dgv.Columns(I).Visible = True : Next
  645. End Sub
  646. Private Sub Set_時段定點()
  647. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  648. 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"
  649. 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"
  650. 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"
  651. 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"
  652. 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"
  653. 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"
  654. 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"
  655. 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"
  656. 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"
  657. 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"
  658. 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"
  659. 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"
  660. End If
  661. End Sub
  662. Private Sub Set_時段定點_減一小時()
  663. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  664. 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"
  665. 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"
  666. 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"
  667. 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"
  668. 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"
  669. 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"
  670. 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"
  671. 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"
  672. 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"
  673. 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"
  674. 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"
  675. 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"
  676. End If
  677. End Sub
  678. Private Sub Set_時段定點_加一小時()
  679. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  680. 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"
  681. 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"
  682. 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"
  683. 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"
  684. 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"
  685. 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"
  686. 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"
  687. 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"
  688. 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"
  689. 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"
  690. 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"
  691. 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"
  692. End If
  693. End Sub
  694. Private Sub Set_時段定點_加四小時()
  695. Dim 時 As String = Strings.Left(X1, 2) : Dim 分 As String = Strings.Mid(X1, 4, 2)
  696. 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"
  697. 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"
  698. 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"
  699. 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"
  700. 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"
  701. 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"
  702. 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"
  703. 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"
  704. 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"
  705. 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"
  706. 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"
  707. 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"
  708. End If
  709. End Sub
  710. Private Sub 時間比對()
  711. Dim dateA As Date = Date.ParseExact("[" & 計算(0) & "]", "[HH:mm:ss]", Nothing)
  712. Dim dateB As Date = Date.ParseExact("[" & 計算(1) & "]", "[HH:mm:ss]", Nothing)
  713. Dim hoursDiff As Integer = DateDiff(DateInterval.Minute, dateA, dateB)
  714. 間隔1 = Math.Abs(hoursDiff)
  715. End Sub
  716. Private Sub 級別清單()
  717. SQL_考勤級別讀取() : 級別_cb.Items.Clear() : 級別_cb.Items.Add("")
  718. While (dr.Read()) : 級別_cb.Items.Add(dr("級別")) : End While : conn.Close()
  719. End Sub
  720. Private Sub 地區清單()
  721. 地區_cb.Items.Clear() : 地區_cb.Items.Add("") : 地區_cb.Items.Add(對話框(16)) : 地區_cb.Items.Add(對話框(17))
  722. End Sub
  723. Private Sub 年分清單()
  724. SQL_年分清單() : 年份2_cb.Items.Clear()
  725. While (dr.Read()) : 年份2_cb.Items.Add(dr("日期")) : End While : conn.Close()
  726. End Sub
  727. Private Sub 群組清單()
  728. SQL_人員薪資表_群組() : 群組_cb.Items.Clear() : 群組1_cb.Items.Clear() : 群組_cb.Items.Add("") : 群組1_cb.Items.Add("")
  729. While (dr.Read()) : 群組_cb.Items.Add(dr("部門名稱")) : 群組1_cb.Items.Add(dr("部門名稱")) : End While : conn.Close()
  730. End Sub
  731. Private Sub 星期設定()
  732. 星1_bt.Text = Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") : 星2_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(1), "yyyy/MM/dd")
  733. 星3_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(2), "yyyy/MM/dd") : 星4_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(3), "yyyy/MM/dd")
  734. 星5_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(4), "yyyy/MM/dd") : 星6_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(5), "yyyy/MM/dd")
  735. 星7_bt.Text = Strings.Format(開始日期_dtp.Value.AddDays(6), "yyyy/MM/dd")
  736. End Sub
  737. Private Sub 人員薪資_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  738. HX_PGS_ERP_SYS.WindowState = 2 : Me.MdiParent = HX_PGS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  739. HX_PGS_ERP_SYS.MaximizeBox = False : HX_PGS_ERP_SYS.MinimizeBox = False : 之前選擇 = -1
  740. H(611) = True : 介面 = "H611" : 語言轉換讀取() : 首次開啟 = True : 顯示說明(999, False)
  741. 結束日期_dtp.Value = Today() : 開始日期_dtp.Value = 結束日期_dtp.Value
  742. Dim oldDate As Date : Dim oldWeekDay As Integer : oldDate = 結束日期_dtp.Value : oldWeekDay = Weekday(oldDate)
  743. If oldWeekDay = 7 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(1)
  744. ElseIf oldWeekDay = 6 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(2)
  745. ElseIf oldWeekDay = 5 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(3)
  746. ElseIf oldWeekDay = 4 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(4)
  747. ElseIf oldWeekDay = 3 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(5)
  748. ElseIf oldWeekDay = 2 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(6)
  749. End If : 開始日期_dtp.Value = 結束日期_dtp.Value.AddDays(-6) : 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(+6)
  750. 本周周一 = 開始日期_dtp.Value : 星期設定()
  751. If 登入人級別 = "00" Then
  752. 縮放2_bt.Visible = True
  753. Else
  754. 縮放2_bt.Visible = False
  755. End If
  756. 工人 = True : 在職 = True : 總清單_dgv.Visible = False : 視窗3_pl.Visible = False : 總清單_dgv.SendToBack() : Panel2.SendToBack()
  757. End Sub
  758. Private Sub 人員薪資_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  759. 年分清單() : 年份2_cb.Text = Year(Today) : 月份2_cb.SelectedIndex = Month(Today) - 1
  760. 群組清單() : 群組1_cb.Text = "HARIAN GROUP"
  761. 級別清單() : 地區清單() : Set_使用者清單() : 首次開啟 = False
  762. End Sub
  763. Private Sub 人員薪資_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
  764. MyMod.清單字體大小調整()
  765. 清單1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  766. End Sub
  767. Private Sub 語轉扭_bt_Click(sender As Object, e As EventArgs) Handles 語轉扭_bt.Click
  768. H(611) = True : 介面 = "H611" : 語言轉換讀取() : 首次開啟 = False
  769. End Sub
  770. Private Sub 人員薪資_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
  771. HX_PGS_ERP_SYS.WindowState = 0 : HX_PGS_ERP_SYS.MaximizeBox = True : HX_PGS_ERP_SYS.MinimizeBox = True
  772. H(611) = False : MyMod.虛擬桌面開啟()
  773. End Sub
  774. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  775. timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True
  776. End Sub
  777. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  778. timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True
  779. End Sub
  780. Private Sub 清單1_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 清單1_dgv.MouseUp
  781. 'If 清單1_dgv.SelectedCells.Count = 1 Then : MsgBox(清單1_dgv.SelectedCells(0).ColumnIndex & " " & 清單1_dgv.SelectedCells(0).RowIndex) : End If
  782. If 清單1_dgv.SelectedCells.Count > 0 Then
  783. If 之前選擇 = -1 Then : Else
  784. If 深色風格 = False Then : 清單1_dgv.Rows(之前選擇).DefaultCellStyle.BackColor = Color.White
  785. Else : 清單1_dgv.Rows(之前選擇).DefaultCellStyle.BackColor = Color.Black : End If
  786. End If
  787. If 深色風格 = False Then
  788. 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).DefaultCellStyle.BackColor = Color.LightGreen : 之前選擇 = 清單1_dgv.SelectedCells(0).RowIndex
  789. Else
  790. 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).DefaultCellStyle.BackColor = Color.Green : 之前選擇 = 清單1_dgv.SelectedCells(0).RowIndex
  791. End If
  792. If 清單1_dgv.SelectedCells(0).ColumnIndex = 0 Then
  793. If 群組選擇_ch.Checked = True Then
  794. 群組_cb.Text = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(0).Value.ToString
  795. CB選擇清單(群組_cb, 群組_cb.Text)
  796. 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(0).Value = 群組_cb.Text
  797. End If
  798. ElseIf 清單1_dgv.SelectedCells(0).ColumnIndex = 11 Then
  799. Dim 原來的 As String = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(11).Value.ToString
  800. For I As Integer = 0 To 3000 : PPBB(I) = "" : Next
  801. For I As Integer = 0 To 4 : PPBB(I) = 對話框(I) : NN1 = I : Next
  802. 下拉清單_2.ShowDialog()
  803. If PPAA = "" Then : 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(11).Value = 原來的
  804. Else : 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(11).Value = PPAA : End If
  805. ElseIf 清單1_dgv.SelectedCells(0).ColumnIndex = 49 Then
  806. PA30 = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(0).Value
  807. PA31 = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(0).Value
  808. PA32 = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(12).Value
  809. PA33 = 清單1_dgv.Rows(清單1_dgv.SelectedCells(0).RowIndex).Cells(50).Value
  810. SQL_人員薪資表_修改() : 群組清單() : MGB(系統語言字典("H509-126-" & 語言), 1)
  811. End If
  812. End If
  813. End Sub
  814. Private Sub 清單1_dgv_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles 清單1_dgv.CellEnter
  815. Dim TSSL As Long
  816. For XC As Integer = 0 To 清單1_dgv.Rows.Count - 1
  817. If IsDBNull(清單1_dgv.Rows(XC).Cells(12).Value) Then : Else
  818. If 清單1_dgv.Rows(XC).Cells(12).Value.ToString <> "" Then
  819. 清單1_dgv.Rows(XC).Cells(31).Value = Strings.Format(清單1_dgv.Rows(XC).Cells(12).Value / 8, "#,##0")
  820. 清單1_dgv.Rows(XC).Cells(32).Value = Strings.Format(清單1_dgv.Rows(XC).Cells(12).Value / 6, "#,##0")
  821. 清單1_dgv.Rows(XC).Cells(29).Value = Strings.Format((清單1_dgv.Rows(XC).Cells(12).Value / 8) * CLng(清單1_dgv.Rows(XC).Cells(33).Value.ToString), "#,##0")
  822. 清單1_dgv.Rows(XC).Cells(30).Value = Strings.Format((清單1_dgv.Rows(XC).Cells(12).Value / 6) * CLng(清單1_dgv.Rows(XC).Cells(34).Value.ToString), "#,##0")
  823. 清單1_dgv.Rows(XC).Cells(13).Value = CLng(清單1_dgv.Rows(XC).Cells(29).Value.ToString) + CLng(清單1_dgv.Rows(XC).Cells(30).Value.ToString)
  824. TSSL += CLng(清單1_dgv.Rows(XC).Cells(13).Value.ToString)
  825. HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(TSSL, "#,##0")
  826. End If
  827. End If
  828. 清單1_dgv.Rows(XC).Cells(表頭(30)).Value = 清單1_dgv.Rows(XC).Cells(表頭(25)).Value
  829. If 清單1_dgv.Rows(XC).Cells(0).Value.ToString <> "" Then : 清單1_dgv.Rows(XC).Cells(0).Value = 清單1_dgv.Rows(XC).Cells(0).Value.ToString.ToUpper : End If
  830. If 清單1_dgv.Rows(XC).Cells(1).Value.ToString <> "" Then : 清單1_dgv.Rows(XC).Cells(1).Value = 清單1_dgv.Rows(XC).Cells(1).Value.ToString.ToUpper : End If
  831. Next
  832. End Sub
  833. Private Sub DA1_bt_Click(sender As Object, e As EventArgs) Handles DA1_bt.Click
  834. 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(-1) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(-7)
  835. 日期判斷() : 星期設定() : Set_使用者清單()
  836. End Sub
  837. Private Sub DA2_bt_Click(sender As Object, e As EventArgs) Handles DA2_bt.Click
  838. 結束日期_dtp.Value = Today() : 開始日期_dtp.Value = 結束日期_dtp.Value
  839. Dim oldDate As Date : Dim oldWeekDay As Integer : oldDate = 結束日期_dtp.Value : oldWeekDay = Weekday(oldDate)
  840. If oldWeekDay = 7 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(1) : ElseIf oldWeekDay = 6 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(2)
  841. ElseIf oldWeekDay = 5 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(3) : ElseIf oldWeekDay = 4 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(4)
  842. ElseIf oldWeekDay = 3 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(5) : ElseIf oldWeekDay = 2 Then : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(6)
  843. End If : 開始日期_dtp.Value = 結束日期_dtp.Value.AddDays(-6) : 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(+6)
  844. 日期判斷() : 星期設定() : Set_使用者清單()
  845. End Sub
  846. Private Sub DA3_bt_Click(sender As Object, e As EventArgs) Handles DA3_bt.Click
  847. 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(+13) : 開始日期_dtp.Value = 開始日期_dtp.Value.AddDays(+7)
  848. 日期判斷() : 星期設定() : Set_使用者清單()
  849. End Sub
  850. Private Sub 重新讀取_bt_Click(sender As Object, e As EventArgs) Handles 重新讀取_bt.Click
  851. 日期判斷() : 星期設定() : Set_使用者清單()
  852. End Sub
  853. Private Sub 日期判斷()
  854. If Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) <> Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 4) Then
  855. PA17 = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) : PA18 = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 4)
  856. 選擇考勤月份.ShowDialog() : 年份2_cb.Text = PA19
  857. Else
  858. If Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) <> 年份2_cb.Text Then : 年份2_cb.Text = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) : End If
  859. End If
  860. If Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) <> Strings.Mid(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 6, 2) Then
  861. PA17 = Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) : PA18 = Strings.Mid(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 6, 2)
  862. 選擇考勤月份.ShowDialog() : 月份2_cb.Text = PA19
  863. Else
  864. If Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) <> 月份2_cb.Text Then : 月份2_cb.Text = Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) : End If
  865. End If
  866. End Sub
  867. Private Sub 群組輸入_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 群組輸入_ch.Click
  868. 群組輸入_ch.Checked = True : 群組選擇_ch.Checked = False : 清單1_dgv.Columns(0).ReadOnly = False
  869. End Sub
  870. Private Sub 群組選擇_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 群組選擇_ch.Click
  871. 群組輸入_ch.Checked = False : 群組選擇_ch.Checked = True : 清單1_dgv.Columns(0).ReadOnly = True
  872. End Sub
  873. Private Sub 設定_bt_Click(sender As Object, e As EventArgs) Handles 設定_bt.Click
  874. 'If 清單1_dgv.Columns(11).Visible = False Then : 清單1_dgv.Columns(11).Visible = True : Else : 清單1_dgv.Columns(11).Visible = False : End If
  875. Dim XC As Integer = Me.Size.Width : Dim YC As Integer = Me.Size.Height : Dim XD As Integer = 視窗3_pl.Width : Dim YD As Integer = 視窗3_pl.Height : 首次開啟 = False
  876. If 視窗3_pl.Visible = False Then
  877. If 群組1_cb.Text <> "HARIAN GROUP" Then : MGB(系統語言字典("H611-110-" & 語言), 1) : Else
  878. 視窗3_pl.Location = New System.Drawing.Point((XC - XD) / 2, (YC - YD) / 2) : 視窗3_pl.Visible = True : 視窗3_pl.BringToFront()
  879. 極限設定()
  880. End If
  881. Else : 視窗3_pl.Visible = False : End If
  882. End Sub
  883. Private Sub 加班_nud_ValueChanged(sender As Object, e As EventArgs) Handles 加班_nud.ValueChanged
  884. 極限設定()
  885. End Sub
  886. Private Sub 沖帳金額_nud_ValueChanged(sender As Object, e As EventArgs) Handles 沖帳金額_nud.ValueChanged
  887. 休假比例_nud.Value = (沖帳金額_nud.Value / 總數_nud.Value * 100)
  888. 休假天數_nud.Value = 可沖天數_nud.Value - (沖帳金額_nud.Value / 平均每天_nud.Value)
  889. End Sub
  890. Private Sub 極限設定()
  891. If 首次開啟 = False Then
  892. Dim 總次數 As Integer = 0 : 總數_nud.Value = 0
  893. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  894. If 清單1_dgv.Rows(i).Cells(12).Value.ToString <> "" Then
  895. 總數_nud.Value += (清單1_dgv.Rows(i).Cells(12).Value + ((清單1_dgv.Rows(i).Cells(12).Value / 6) * 加班_nud.Value)) * 7 : 總次數 += 7
  896. End If
  897. Next : 可沖天數_nud.Value = 總次數 : 平均每天_nud.Value = 總數_nud.Value / 可沖天數_nud.Value
  898. 沖帳金額_nud.Maximum = 總數_nud.Value : 沖帳金額_nud.Minimum = 可沖天數_nud.Value : 沖帳金額_nud.Value = 平均每天_nud.Value * 7
  899. 休假比例_nud.Value = 100 - (沖帳金額_nud.Value / 總數_nud.Value * 100)
  900. 休假天數_nud.Value = 可沖天數_nud.Value - (沖帳金額_nud.Value / 平均每天_nud.Value)
  901. End If
  902. End Sub
  903. Private Sub 縮放2_bt_Click(sender As Object, e As EventArgs) Handles 縮放2_bt.Click
  904. If 總清單_dgv.Visible = False Then : 總清單_dgv.Visible = True : 總清單_dgv.BringToFront() : Else : 總清單_dgv.Visible = False : 總清單_dgv.SendToBack() : End If
  905. End Sub
  906. Private Sub 考勤表_bt_Click(sender As Object, e As EventArgs) Handles 考勤表_bt.Click
  907. 合計_dgv.Columns(12).Visible = True : For i As Integer = 15 To 28 : 合計_dgv.Columns(i).Visible = True : Next
  908. 合計_dgv.Columns(13).Visible = False : For i As Integer = 29 To 48 : 合計_dgv.Columns(i).Visible = False : Next
  909. 清單1_dgv.Columns(12).Visible = True : For i As Integer = 15 To 28 : 清單1_dgv.Columns(i).Visible = True : Next
  910. 清單1_dgv.Columns(13).Visible = False : For i As Integer = 29 To 48 : 清單1_dgv.Columns(i).Visible = False : Next : 表頭變形1()
  911. End Sub
  912. Private Sub 薪資表_bt_Click(sender As Object, e As EventArgs) Handles 薪資表_bt.Click
  913. 合計_dgv.Columns(12).Visible = False : For i As Integer = 15 To 28 : 合計_dgv.Columns(i).Visible = False : Next
  914. 合計_dgv.Columns(13).Visible = True : For i As Integer = 29 To 48 : 合計_dgv.Columns(i).Visible = True : Next
  915. 清單1_dgv.Columns(12).Visible = False : For i As Integer = 15 To 28 : 清單1_dgv.Columns(i).Visible = False : Next
  916. 清單1_dgv.Columns(13).Visible = True : For i As Integer = 29 To 48 : 清單1_dgv.Columns(i).Visible = True : Next : 表頭變形2()
  917. End Sub
  918. Private Sub 級別_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 級別_cb.SelectedIndexChanged
  919. Set_使用者清單()
  920. End Sub
  921. Private Sub 地區_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 地區_cb.SelectedIndexChanged
  922. Set_使用者清單()
  923. End Sub
  924. Private Sub 群組_cb_Click(sender As Object, e As EventArgs) Handles 群組_cb.Click
  925. CB選擇清單_可選空白(群組_cb) : Set_使用者清單()
  926. End Sub
  927. Private Sub 年份2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 年份2_cb.SelectedIndexChanged
  928. If 首次開啟 = False Then : Set_使用者清單() : End If
  929. End Sub
  930. Private Sub 年份2_cb_Click(sender As Object, e As EventArgs) Handles 年份2_cb.Click
  931. CB選擇清單(年份2_cb, 年份2_cb.Text) : Set_使用者清單()
  932. End Sub
  933. Private Sub 月份2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 月份2_cb.SelectedIndexChanged
  934. If 首次開啟 = False Then : Set_使用者清單() : End If
  935. End Sub
  936. Private Sub 月份2_cb_Click(sender As Object, e As EventArgs) Handles 月份2_cb.Click
  937. CB選擇清單(月份2_cb, 月份2_cb.Text) : Set_使用者清單()
  938. End Sub
  939. Private Sub 工人_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 工人_ch.Click
  940. If 工人_ch.Checked = True Then : 工人 = True : Else : 工人 = False : End If : Set_使用者清單()
  941. End Sub
  942. Private Sub CanceL3_bt_Click(sender As Object, e As EventArgs) Handles CanceL3_bt.Click
  943. If 視窗3_pl.Visible = False Then : 視窗3_pl.Visible = True : 視窗3_pl.BringToFront() : Else : 視窗3_pl.Visible = False : End If
  944. End Sub
  945. Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click
  946. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  947. PA30 = 清單1_dgv.Rows(i).Cells(0).Value.ToString : PA31 = 清單1_dgv.Rows(i).Cells(0).Value.ToString
  948. PA32 = 清單1_dgv.Rows(i).Cells(12).Value.ToString : PA33 = 清單1_dgv.Rows(i).Cells(50).Value.ToString
  949. SQL_人員薪資表_修改()
  950. Next : 群組清單() : MGB(系統語言字典("H509-126-" & 語言), 1)
  951. End Sub
  952. Private Sub 考勤調整_bt_Click(sender As Object, e As EventArgs) Handles 考勤調整_bt.Click
  953. Dim random1 As New Random() : Dim random2 As New Random() : Dim random3 As New Random() : Dim random4 As New Random() : Dim random5 As New Random()
  954. Dim random6 As New Random() : Dim random7 As New Random() : Dim hours As Integer
  955. If 群組1_cb.Text <> "HARIAN GROUP" Then : MGB(系統語言字典("H611-110-" & 語言), 1) : Else : 清除_bt.PerformClick()
  956. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  957. If 休假比例_nud.Value > 0 And 休假比例_nud.Value < 20 Then
  958. Dim 計數 As Integer
  959. Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  960. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  961. If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  962. End If
  963. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  964. Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  965. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  966. If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  967. End If
  968. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  969. Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  970. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  971. If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  972. End If
  973. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  974. Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  975. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  976. If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  977. End If
  978. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  979. Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  980. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  981. If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  982. End If
  983. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  984. Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 45 Then
  985. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  986. If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  987. End If
  988. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 10 Then : Exit For : End If
  989. ElseIf 休假比例_nud.Value >= 20 And 休假比例_nud.Value < 40 Then
  990. Dim 計數 As Integer
  991. Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  992. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  993. If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  994. End If
  995. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  996. Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  997. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  998. If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  999. End If
  1000. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  1001. Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  1002. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1003. If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1004. End If
  1005. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  1006. Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  1007. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1008. If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1009. End If
  1010. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  1011. Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  1012. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1013. If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1014. End If
  1015. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  1016. Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 25 Then
  1017. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1018. If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1019. End If
  1020. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 7 Then : Exit For : End If
  1021. ElseIf 休假比例_nud.Value >= 40 And 休假比例_nud.Value < 60 Then
  1022. Dim 計數 As Integer
  1023. Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1024. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1025. If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1026. End If
  1027. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1028. Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1029. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1030. If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1031. End If
  1032. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1033. Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1034. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1035. If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1036. End If
  1037. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1038. Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1039. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1040. If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1041. End If
  1042. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1043. Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1044. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1045. If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1046. End If
  1047. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1048. Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 15 Then
  1049. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1050. If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1051. End If
  1052. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 5 Then : Exit For : End If
  1053. ElseIf 休假比例_nud.Value >= 60 And 休假比例_nud.Value < 80 Then
  1054. Dim 計數 As Integer
  1055. Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1056. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1057. If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1058. End If
  1059. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1060. Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1061. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1062. If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1063. End If
  1064. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1065. Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1066. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1067. If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1068. End If
  1069. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1070. Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1071. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1072. If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1073. End If
  1074. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1075. Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1076. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1077. If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1078. End If
  1079. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1080. Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 10 Then
  1081. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1082. If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1083. End If
  1084. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1085. Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 48 Then
  1086. If 清單1_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1087. If 清單1_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1088. End If
  1089. If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 3 Then : Exit For : End If
  1090. ElseIf 休假比例_nud.Value >= 80 And 休假比例_nud.Value < 100 Then
  1091. Dim 計數 As Integer
  1092. Randomize() : hours = random1.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1093. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1094. If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1095. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1096. Randomize() : hours = random2.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1097. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1098. If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1099. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1100. Randomize() : hours = random3.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1101. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1102. If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1103. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1104. Randomize() : hours = random4.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1105. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1106. If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1107. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1108. Randomize() : hours = random5.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1109. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1110. If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1111. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1112. Randomize() : hours = random6.Next(1, 100) : If hours < 休假比例_nud.Value + 5 Then
  1113. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1114. If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1115. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1116. Randomize() : hours = random7.Next(1, 100) : If hours < 休假比例_nud.Value - 30 Then
  1117. If 清單1_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1118. If 清單1_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If : 計數 += 1
  1119. End If : If 計數 > 可沖天數_nud.Value - 休假天數_nud.Value + 1 Then : Exit For : End If
  1120. ElseIf 休假比例_nud.Value = 100 Then
  1121. If 清單1_dgv.Rows(i).Cells(15).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(15).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1122. If 清單1_dgv.Rows(i).Cells(16).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(16).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1123. If 清單1_dgv.Rows(i).Cells(17).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(17).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1124. If 清單1_dgv.Rows(i).Cells(18).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(18).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1125. If 清單1_dgv.Rows(i).Cells(19).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(19).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1126. If 清單1_dgv.Rows(i).Cells(20).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(20).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1127. If 清單1_dgv.Rows(i).Cells(21).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(21).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1128. If 清單1_dgv.Rows(i).Cells(22).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(22).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1129. If 清單1_dgv.Rows(i).Cells(23).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(23).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1130. If 清單1_dgv.Rows(i).Cells(24).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(24).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1131. If 清單1_dgv.Rows(i).Cells(25).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(25).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1132. If 清單1_dgv.Rows(i).Cells(26).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(26).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1133. If 清單1_dgv.Rows(i).Cells(27).Value = "" Then : AUTO時段1() : 清單1_dgv.Rows(i).Cells(27).Value = AUTO時 : AUTO舊1 = AUTO時 : End If
  1134. If 清單1_dgv.Rows(i).Cells(28).Value = "" Then : AUTO時段2() : 清單1_dgv.Rows(i).Cells(28).Value = AUTO時 : AUTO舊2 = AUTO時 : End If
  1135. End If
  1136. Next : AUTO時段()
  1137. End If
  1138. End Sub
  1139. Private Sub AUTO時段()
  1140. Dim TSSL As Integer : Dim 加總1, 加總2, 加總3, 加總4, 加總5, 加總6, 加總7 As Long
  1141. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1142. '-------------------------計算星期一--------------------------------------------------------------------------------------------------------------------
  1143. If 清單1_dgv.Rows(i).Cells(15).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(16).Value.ToString <> "" Then
  1144. X1 = 清單1_dgv.Rows(i).Cells(15).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(16).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1145. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= -120 : End If
  1146. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1147. 清單1_dgv.Rows(i).Cells(35).Value = 時間 : 清單1_dgv.Rows(i).Cells(36).Value = 加班1
  1148. Else : 清單1_dgv.Rows(i).Cells(35).Value = "" : 清單1_dgv.Rows(i).Cells(36).Value = "" : End If
  1149. '-------------------------計算星期二--------------------------------------------------------------------------------------------------------------------
  1150. If 清單1_dgv.Rows(i).Cells(17).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(18).Value.ToString <> "" Then
  1151. X1 = 清單1_dgv.Rows(i).Cells(17).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(18).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1152. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1153. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1154. 清單1_dgv.Rows(i).Cells(37).Value = 時間 : 清單1_dgv.Rows(i).Cells(38).Value = 加班1
  1155. Else : 清單1_dgv.Rows(i).Cells(37).Value = "" : 清單1_dgv.Rows(i).Cells(38).Value = "" : End If
  1156. '-------------------------計算星期三--------------------------------------------------------------------------------------------------------------------
  1157. If 清單1_dgv.Rows(i).Cells(19).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(20).Value.ToString <> "" Then
  1158. X1 = 清單1_dgv.Rows(i).Cells(19).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(20).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1159. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1160. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1161. 清單1_dgv.Rows(i).Cells(39).Value = 時間 : 清單1_dgv.Rows(i).Cells(40).Value = 加班1
  1162. Else : 清單1_dgv.Rows(i).Cells(39).Value = "" : 清單1_dgv.Rows(i).Cells(40).Value = "" : End If
  1163. '-------------------------計算星期四--------------------------------------------------------------------------------------------------------------------
  1164. If 清單1_dgv.Rows(i).Cells(21).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(22).Value.ToString <> "" Then
  1165. X1 = 清單1_dgv.Rows(i).Cells(21).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(22).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1166. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1167. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1168. 清單1_dgv.Rows(i).Cells(41).Value = 時間 : 清單1_dgv.Rows(i).Cells(42).Value = 加班1
  1169. Else : 清單1_dgv.Rows(i).Cells(41).Value = "" : 清單1_dgv.Rows(i).Cells(42).Value = "" : End If
  1170. '-------------------------計算星期五--------------------------------------------------------------------------------------------------------------------
  1171. If 清單1_dgv.Rows(i).Cells(23).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(24).Value.ToString <> "" Then
  1172. X1 = 清單1_dgv.Rows(i).Cells(23).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(24).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1173. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1174. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1175. 清單1_dgv.Rows(i).Cells(43).Value = 時間 : 清單1_dgv.Rows(i).Cells(44).Value = 加班1
  1176. Else : 清單1_dgv.Rows(i).Cells(43).Value = "" : 清單1_dgv.Rows(i).Cells(44).Value = "" : End If
  1177. '-------------------------計算星期六--------------------------------------------------------------------------------------------------------------------
  1178. If 清單1_dgv.Rows(i).Cells(25).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(26).Value.ToString <> "" Then
  1179. X1 = 清單1_dgv.Rows(i).Cells(25).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(26).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1180. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1181. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1182. 清單1_dgv.Rows(i).Cells(45).Value = 時間 : 清單1_dgv.Rows(i).Cells(46).Value = 加班1
  1183. Else : 清單1_dgv.Rows(i).Cells(45).Value = "" : 清單1_dgv.Rows(i).Cells(46).Value = "" : End If
  1184. '-------------------------計算星期日--------------------------------------------------------------------------------------------------------------------
  1185. If 清單1_dgv.Rows(i).Cells(27).Value.ToString <> "" And 清單1_dgv.Rows(i).Cells(28).Value.ToString <> "" Then
  1186. X1 = 清單1_dgv.Rows(i).Cells(27).Value.ToString : Set_時段定點() : 計算(0) = X1 : X1 = 清單1_dgv.Rows(i).Cells(28).Value.ToString : Set_時段定點() : 計算(1) = X1 : 時間比對()
  1187. If 間隔1 >= 240 And 間隔1 < 660 Then : 間隔1 -= 60 : ElseIf 間隔1 >= 660 Then : 間隔1 -= 120 : End If
  1188. Dim 加班1 As Integer = 0 : Dim 時間 As Integer = 間隔1 / 60 : If 時間 <= 8 Then : Else : 加班1 = 時間 - 8 : 時間 = 8 : End If
  1189. 清單1_dgv.Rows(i).Cells(47).Value = 時間 : 清單1_dgv.Rows(i).Cells(48).Value = 加班1
  1190. Else : 清單1_dgv.Rows(i).Cells(47).Value = "" : 清單1_dgv.Rows(i).Cells(48).Value = "" : End If
  1191. Dim 正常(6), 加班(6) As Integer
  1192. If 清單1_dgv.Rows(i).Cells(35).Value <> "" Then : 正常(0) = 清單1_dgv.Rows(i).Cells(35).Value.ToString : Else : 正常(0) = 0 : End If
  1193. If 清單1_dgv.Rows(i).Cells(37).Value <> "" Then : 正常(1) = 清單1_dgv.Rows(i).Cells(37).Value.ToString : Else : 正常(1) = 0 : End If
  1194. If 清單1_dgv.Rows(i).Cells(39).Value <> "" Then : 正常(2) = 清單1_dgv.Rows(i).Cells(39).Value.ToString : Else : 正常(2) = 0 : End If
  1195. If 清單1_dgv.Rows(i).Cells(41).Value <> "" Then : 正常(3) = 清單1_dgv.Rows(i).Cells(41).Value.ToString : Else : 正常(3) = 0 : End If
  1196. If 清單1_dgv.Rows(i).Cells(43).Value <> "" Then : 正常(4) = 清單1_dgv.Rows(i).Cells(43).Value.ToString : Else : 正常(4) = 0 : End If
  1197. If 清單1_dgv.Rows(i).Cells(45).Value <> "" Then : 正常(5) = 清單1_dgv.Rows(i).Cells(45).Value.ToString : Else : 正常(5) = 0 : End If
  1198. If 清單1_dgv.Rows(i).Cells(47).Value <> "" Then : 正常(6) = 清單1_dgv.Rows(i).Cells(47).Value.ToString : Else : 正常(6) = 0 : End If
  1199. If 清單1_dgv.Rows(i).Cells(36).Value <> "" Then : 加班(0) = 清單1_dgv.Rows(i).Cells(36).Value.ToString : Else : 加班(0) = 0 : End If
  1200. If 清單1_dgv.Rows(i).Cells(38).Value <> "" Then : 加班(1) = 清單1_dgv.Rows(i).Cells(38).Value.ToString : Else : 加班(1) = 0 : End If
  1201. If 清單1_dgv.Rows(i).Cells(40).Value <> "" Then : 加班(2) = 清單1_dgv.Rows(i).Cells(40).Value.ToString : Else : 加班(2) = 0 : End If
  1202. If 清單1_dgv.Rows(i).Cells(42).Value <> "" Then : 加班(3) = 清單1_dgv.Rows(i).Cells(42).Value.ToString : Else : 加班(3) = 0 : End If
  1203. If 清單1_dgv.Rows(i).Cells(44).Value <> "" Then : 加班(4) = 清單1_dgv.Rows(i).Cells(44).Value.ToString : Else : 加班(4) = 0 : End If
  1204. If 清單1_dgv.Rows(i).Cells(46).Value <> "" Then : 加班(5) = 清單1_dgv.Rows(i).Cells(46).Value.ToString : Else : 加班(5) = 0 : End If
  1205. If 清單1_dgv.Rows(i).Cells(48).Value <> "" Then : 加班(6) = 清單1_dgv.Rows(i).Cells(48).Value.ToString : Else : 加班(6) = 0 : End If
  1206. 清單1_dgv.Rows(i).Cells(33).Value = 正常(0) + 正常(1) + 正常(2) + 正常(3) + 正常(4) + 正常(5) + 正常(6)
  1207. 清單1_dgv.Rows(i).Cells(34).Value = 加班(0) + 加班(1) + 加班(2) + 加班(3) + 加班(4) + 加班(5) + 加班(6)
  1208. '-------------------------計算工資單價--------------------------------------------------------------------------------------------------------------------
  1209. If IsDBNull(清單1_dgv.Rows(i).Cells(12).Value) Then : Else
  1210. If 清單1_dgv.Rows(i).Cells(12).Value.ToString <> "" Then
  1211. 清單1_dgv.Rows(i).Cells(31).Value = Strings.Format(清單1_dgv.Rows(i).Cells(12).Value / 8, "#,##0")
  1212. 清單1_dgv.Rows(i).Cells(32).Value = Strings.Format(清單1_dgv.Rows(i).Cells(12).Value / 6, "#,##0")
  1213. 清單1_dgv.Rows(i).Cells(29).Value = Strings.Format((清單1_dgv.Rows(i).Cells(12).Value / 8) * CLng(清單1_dgv.Rows(i).Cells(33).Value.ToString), "#,##0")
  1214. 清單1_dgv.Rows(i).Cells(30).Value = Strings.Format((清單1_dgv.Rows(i).Cells(12).Value / 6) * CLng(清單1_dgv.Rows(i).Cells(34).Value.ToString), "#,##0")
  1215. 清單1_dgv.Rows(i).Cells(13).Value = CLng(清單1_dgv.Rows(i).Cells(29).Value.ToString) + CLng(清單1_dgv.Rows(i).Cells(30).Value.ToString)
  1216. TSSL += CLng(清單1_dgv.Rows(i).Cells(13).Value.ToString)
  1217. HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(TSSL, "#,##0")
  1218. End If
  1219. End If
  1220. '-------------------------計算工資單價--------------------------------------------------------------------------------------------------------------------
  1221. 清單1_dgv.Rows(i).Cells(4).Value = i + 1 : 合計_dgv.Rows(0).Cells(4).Value = i + 1 : 合計_dgv.Rows(0).Cells(13).Value += CLng(清單1_dgv.Rows(i).Cells(13).Value.ToString)
  1222. 合計_dgv.Rows(0).Cells(29).Value += CLng(清單1_dgv.Rows(i).Cells(29).Value.ToString) : 合計_dgv.Rows(0).Cells(30).Value += CLng(清單1_dgv.Rows(i).Cells(30).Value.ToString)
  1223. If 清單1_dgv.Rows(i).Cells(33).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(33).Value += CLng(清單1_dgv.Rows(i).Cells(33).Value.ToString) : End If
  1224. If 清單1_dgv.Rows(i).Cells(34).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(34).Value += CLng(清單1_dgv.Rows(i).Cells(34).Value.ToString) : End If
  1225. If 清單1_dgv.Rows(i).Cells(35).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(35).Value += CLng(清單1_dgv.Rows(i).Cells(35).Value.ToString) : End If
  1226. If 清單1_dgv.Rows(i).Cells(36).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(36).Value += CLng(清單1_dgv.Rows(i).Cells(36).Value.ToString) : End If
  1227. If 清單1_dgv.Rows(i).Cells(37).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(37).Value += CLng(清單1_dgv.Rows(i).Cells(37).Value.ToString) : End If
  1228. If 清單1_dgv.Rows(i).Cells(38).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(38).Value += CLng(清單1_dgv.Rows(i).Cells(38).Value.ToString) : End If
  1229. If 清單1_dgv.Rows(i).Cells(39).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(39).Value += CLng(清單1_dgv.Rows(i).Cells(39).Value.ToString) : End If
  1230. If 清單1_dgv.Rows(i).Cells(40).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(40).Value += CLng(清單1_dgv.Rows(i).Cells(40).Value.ToString) : End If
  1231. If 清單1_dgv.Rows(i).Cells(41).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(41).Value += CLng(清單1_dgv.Rows(i).Cells(41).Value.ToString) : End If
  1232. If 清單1_dgv.Rows(i).Cells(42).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(42).Value += CLng(清單1_dgv.Rows(i).Cells(42).Value.ToString) : End If
  1233. If 清單1_dgv.Rows(i).Cells(43).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(43).Value += CLng(清單1_dgv.Rows(i).Cells(43).Value.ToString) : End If
  1234. If 清單1_dgv.Rows(i).Cells(44).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(44).Value += CLng(清單1_dgv.Rows(i).Cells(44).Value.ToString) : End If
  1235. If 清單1_dgv.Rows(i).Cells(45).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(45).Value += CLng(清單1_dgv.Rows(i).Cells(45).Value.ToString) : End If
  1236. If 清單1_dgv.Rows(i).Cells(46).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(46).Value += CLng(清單1_dgv.Rows(i).Cells(46).Value.ToString) : End If
  1237. If 清單1_dgv.Rows(i).Cells(47).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(47).Value += CLng(清單1_dgv.Rows(i).Cells(47).Value.ToString) : End If
  1238. If 清單1_dgv.Rows(i).Cells(48).Value.ToString <> "" Then : 合計_dgv.Rows(0).Cells(48).Value += CLng(清單1_dgv.Rows(i).Cells(48).Value.ToString) : End If
  1239. If 清單1_dgv.Rows(i).Cells(15).Value.ToString = "" Then : Else : 加總1 += 1 : End If
  1240. If 清單1_dgv.Rows(i).Cells(17).Value.ToString = "" Then : Else : 加總2 += 1 : End If
  1241. If 清單1_dgv.Rows(i).Cells(19).Value.ToString = "" Then : Else : 加總3 += 1 : End If
  1242. If 清單1_dgv.Rows(i).Cells(21).Value.ToString = "" Then : Else : 加總4 += 1 : End If
  1243. If 清單1_dgv.Rows(i).Cells(23).Value.ToString = "" Then : Else : 加總5 += 1 : End If
  1244. If 清單1_dgv.Rows(i).Cells(25).Value.ToString = "" Then : Else : 加總6 += 1 : End If
  1245. If 清單1_dgv.Rows(i).Cells(27).Value.ToString = "" Then : Else : 加總7 += 1 : End If
  1246. Next
  1247. 合計_dgv.Rows(0).Cells(15).Value = 加總1 : 合計_dgv.Rows(0).Cells(17).Value = 加總2 : 合計_dgv.Rows(0).Cells(19).Value = 加總3 : 合計_dgv.Rows(0).Cells(21).Value = 加總4
  1248. 合計_dgv.Rows(0).Cells(23).Value = 加總5 : 合計_dgv.Rows(0).Cells(25).Value = 加總6 : 合計_dgv.Rows(0).Cells(27).Value = 加總7
  1249. 合計_dgv.Rows(0).Cells(29).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(29).Value), "#,##0")
  1250. 合計_dgv.Rows(0).Cells(30).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(30).Value), "#,##0")
  1251. 合計_dgv.Rows(0).Cells(33).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(33).Value), "#,##0")
  1252. 合計_dgv.Rows(0).Cells(34).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(34).Value), "#,##0")
  1253. 合計_dgv.Rows(0).Cells(35).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(35).Value), "#,##0")
  1254. 合計_dgv.Rows(0).Cells(36).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(36).Value), "#,##0")
  1255. 合計_dgv.Rows(0).Cells(37).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(37).Value), "#,##0")
  1256. 合計_dgv.Rows(0).Cells(38).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(38).Value), "#,##0")
  1257. 合計_dgv.Rows(0).Cells(39).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(39).Value), "#,##0")
  1258. 合計_dgv.Rows(0).Cells(40).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(40).Value), "#,##0")
  1259. 合計_dgv.Rows(0).Cells(41).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(41).Value), "#,##0")
  1260. 合計_dgv.Rows(0).Cells(42).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(42).Value), "#,##0")
  1261. 合計_dgv.Rows(0).Cells(43).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(43).Value), "#,##0")
  1262. 合計_dgv.Rows(0).Cells(44).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(44).Value), "#,##0")
  1263. 合計_dgv.Rows(0).Cells(45).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(45).Value), "#,##0")
  1264. 合計_dgv.Rows(0).Cells(46).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(46).Value), "#,##0")
  1265. 合計_dgv.Rows(0).Cells(47).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(47).Value), "#,##0")
  1266. 合計_dgv.Rows(0).Cells(48).Value = Strings.Format(CLng(合計_dgv.Rows(0).Cells(48).Value), "#,##0")
  1267. End Sub
  1268. Private Sub AUTO時段1()
  1269. Dim random As New Random()
  1270. For i As Integer = 1 To 1000
  1271. Randomize() : Dim hours As Integer = random.Next(6, 7) : Dim minutes As Integer
  1272. If hours = 6 Then : Randomize() : minutes = random.Next(45, 59) : Else : Randomize() : minutes = random.Next(0, 3) : End If
  1273. Randomize() : Dim seconds As Integer = random.Next(0, 60) : AUTO時 = $"{hours:00}:{minutes:00}:{seconds:00}"
  1274. If AUTO舊1 <> AUTO時 Then : Exit For : End If
  1275. Next
  1276. End Sub
  1277. Private Sub AUTO時段2()
  1278. Dim random As New Random()
  1279. For i As Integer = 1 To 1000
  1280. Dim hours As Integer
  1281. If 加班_nud.Value = 1 Then : Randomize() : hours = random.Next(16, 17)
  1282. ElseIf 加班_nud.Value = 2 Then : Randomize() : hours = random.Next(18, 19)
  1283. ElseIf 加班_nud.Value = 3 Then : Randomize() : hours = random.Next(19, 20) : End If
  1284. Dim minutes As Integer
  1285. If 加班_nud.Value = 1 Then : If hours = 16 Then : Randomize() : minutes = random.Next(55, 59) : Else : Randomize() : minutes = random.Next(0, 15) : End If
  1286. ElseIf 加班_nud.Value = 2 Then : If hours = 18 Then : Randomize() : minutes = random.Next(55, 59) : Else : Randomize() : minutes = random.Next(0, 15) : End If
  1287. ElseIf 加班_nud.Value = 3 Then : If hours = 19 Then : Randomize() : minutes = random.Next(55, 59) : Else : Randomize() : minutes = random.Next(0, 15) : End If : End If
  1288. Randomize() : Dim seconds As Integer = random.Next(0, 60) : AUTO時 = $"{hours:00}:{minutes:00}:{seconds:00}"
  1289. If AUTO舊2 <> AUTO時 Then : Exit For : End If
  1290. Next
  1291. End Sub
  1292. Private Sub 清除_bt_Click(sender As Object, e As EventArgs) Handles 清除_bt.Click
  1293. If 群組1_cb.Text <> "HARIAN GROUP" Then : MGB(系統語言字典("H611-110-" & 語言), 1) : Else
  1294. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1295. 清單1_dgv.Rows(i).Cells(15).Value = "" : 清單1_dgv.Rows(i).Cells(16).Value = "" : 清單1_dgv.Rows(i).Cells(17).Value = "" : 清單1_dgv.Rows(i).Cells(18).Value = ""
  1296. 清單1_dgv.Rows(i).Cells(19).Value = "" : 清單1_dgv.Rows(i).Cells(20).Value = "" : 清單1_dgv.Rows(i).Cells(21).Value = "" : 清單1_dgv.Rows(i).Cells(22).Value = ""
  1297. 清單1_dgv.Rows(i).Cells(23).Value = "" : 清單1_dgv.Rows(i).Cells(24).Value = "" : 清單1_dgv.Rows(i).Cells(25).Value = "" : 清單1_dgv.Rows(i).Cells(26).Value = ""
  1298. 清單1_dgv.Rows(i).Cells(27).Value = "" : 清單1_dgv.Rows(i).Cells(28).Value = ""
  1299. Next : AUTO時段()
  1300. End If
  1301. End Sub
  1302. Private Sub 虛擬存檔_bt_Click(sender As Object, e As EventArgs) Handles 虛擬存檔_bt.Click
  1303. If 群組1_cb.Text <> "HARIAN GROUP" Then : MGB(系統語言字典("H611-110-" & 語言), 1) : Else
  1304. Dim 可以存檔 As Boolean = False
  1305. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1306. If 清單1_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(25).Value.ToString = "" And
  1307. 清單1_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(26).Value.ToString = "" And
  1308. 清單1_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(27).Value.ToString = "" And
  1309. 清單1_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(28).Value.ToString = "" And
  1310. 清單1_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else : 可以存檔 = True : End If
  1311. Next
  1312. If 可以存檔 = True Then
  1313. Dim AAS As String = "" : PA45 = 星1_bt.Text : SQL_虛擬考勤明細表刪除()
  1314. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1315. If 清單1_dgv.Rows(i).Cells(15).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(20).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(25).Value.ToString = "" And
  1316. 清單1_dgv.Rows(i).Cells(16).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(21).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(26).Value.ToString = "" And
  1317. 清單1_dgv.Rows(i).Cells(17).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(22).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(27).Value.ToString = "" And
  1318. 清單1_dgv.Rows(i).Cells(18).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(23).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(28).Value.ToString = "" And
  1319. 清單1_dgv.Rows(i).Cells(19).Value.ToString = "" And 清單1_dgv.Rows(i).Cells(24).Value.ToString = "" Then : Else
  1320. AAS = "(N'" & 清單1_dgv.Rows(i).Cells(50).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(15).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(16).Value.ToString & "',
  1321. N'" & 清單1_dgv.Rows(i).Cells(17).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(18).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(19).Value.ToString & "',
  1322. N'" & 清單1_dgv.Rows(i).Cells(20).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(21).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(22).Value.ToString & "',
  1323. N'" & 清單1_dgv.Rows(i).Cells(23).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(24).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(25).Value.ToString & "',
  1324. N'" & 清單1_dgv.Rows(i).Cells(26).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(27).Value.ToString & "', N'" & 清單1_dgv.Rows(i).Cells(28).Value.ToString & "',
  1325. N'" & 星1_bt.Text & "')"
  1326. End If : If i = 0 Then : SQL2 = AAS : Else : SQL2 = SQL2 & "," & AAS : End If
  1327. Next
  1328. SQL_虛擬考勤明細表新增() : Set_使用者清單() : MGB(系統語言字典("H509-126-" & 語言), 1)
  1329. Else : MGB(系統語言字典("H611-121-" & 語言), 1) : End If
  1330. End If
  1331. End Sub
  1332. Private Sub 列印_bt_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click
  1333. PA17 = "EXCEL" : PA18 = "PDF" : 選擇考勤月份.ShowDialog()
  1334. Dim FVG As String
  1335. xlApp = CType(CreateObject("Excel.Application"), Application)
  1336. xlBook = xlApp.Workbooks.Add
  1337. xlApp.DisplayAlerts = True
  1338. xlApp.Visible = True
  1339. xlApp.Application.WindowState = xlMaximized
  1340. GN1 = 0
  1341. ''----------------------------------------------------------------------------------------------------------------------
  1342. xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select
  1343. If 群組1_cb.Text = "" Then : FVG = "ALL GROUP 伙食費" : Else : FVG = 群組1_cb.Text & "伙食費" : End If
  1344. xlApp.Sheets(1).Name = FVG : xlBook.Activate() : xlSheet.Activate()
  1345. xlSheet.Cells(1, 1) = "點工伙食費表(吃飯錢) UANG MAKAN BURUH HARIAN " & FVG
  1346. xlSheet.Cells(2, 1) = "STT" : xlSheet.Cells(2, 2) = "員工編號" & vbCrLf & "ID_No" : xlSheet.Cells(2, 3) = "姓名" & vbCrLf & "Name" : xlSheet.Cells(2, 4) = "TOTAL UANG MAKAN"
  1347. xlSheet.Cells(2, 5) = "TOTAL MASUK KERJA" : xlSheet.Cells(2, 6) = "UANG MAKAN / HARI"
  1348. xlSheet.Cells(2, 7) = 星1_bt.Text : xlSheet.Cells(3, 7) = "上班" : xlSheet.Cells(2, 8) = 星2_bt.Text : xlSheet.Cells(3, 8) = "上班"
  1349. xlSheet.Cells(2, 9) = 星3_bt.Text : xlSheet.Cells(3, 9) = "上班" : xlSheet.Cells(2, 10) = 星4_bt.Text : xlSheet.Cells(3, 10) = "上班"
  1350. xlSheet.Cells(2, 11) = 星5_bt.Text : xlSheet.Cells(3, 11) = "上班" : xlSheet.Cells(2, 12) = 星6_bt.Text : xlSheet.Cells(3, 12) = "上班"
  1351. xlSheet.Cells(2, 13) = 星7_bt.Text : xlSheet.Cells(3, 13) = "上班" : xlSheet.Cells(2, 14) = "備註"
  1352. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1353. xlSheet.Cells(4 + i, 1) = i + 1 : xlSheet.Cells(4 + i, 2) = 清單1_dgv.Rows(i).Cells("ID卡號").Value.ToString
  1354. xlSheet.Cells(4 + i, 3) = 清單1_dgv.Rows(i).Cells(表頭(0)).Value.ToString : xlSheet.Cells(4 + i, 6) = "5000"
  1355. xlSheet.Cells(4 + i, 5) = "= SUM(G" & 4 + i & ": M" & 4 + i & ")" : xlSheet.Cells(4 + i, 4) = "=F" & 4 + i & "*E" & 4 + i & ""
  1356. If 清單1_dgv.Rows(i).Cells(表頭(64)).Value.ToString <> "" Then : xlSheet.Cells(4 + i, 7) = "1" : End If
  1357. If 清單1_dgv.Rows(i).Cells(表頭(32)).Value.ToString <> "" Then : xlSheet.Cells(4 + i, 8) = "1" : End If
  1358. If 清單1_dgv.Rows(i).Cells(表頭(34)).Value.ToString <> "" Then : xlSheet.Cells(4 + i, 9) = "1" : End If
  1359. If 清單1_dgv.Rows(i).Cells(表頭(36)).Value.ToString <> "" Then : xlSheet.Cells(4 + i, 10) = "1" : End If
  1360. If 清單1_dgv.Rows(i).Cells(表頭(38)).Value.ToString <> "" Then : xlSheet.Cells(4 + i, 11) = "1" : End If
  1361. If 清單1_dgv.Rows(i).Cells(表頭(40)).Value.ToString <> "" Then : xlSheet.Cells(4 + i, 12) = "1" : End If
  1362. If 清單1_dgv.Rows(i).Cells(表頭(42)).Value.ToString <> "" Then : xlSheet.Cells(4 + i, 13) = "1" : End If : GN1 += 1
  1363. Next : xlSheet.Cells(4 + GN1 + 1, 3) = "TOTAL : " : xlSheet.Cells(4 + GN1 + 1, 4) = "=SUM(D4:D" & 4 + GN1 & ")" : BB(xlApp, xlSheet)
  1364. '----------------------------------------------------------------------------------------------------------------------
  1365. xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select
  1366. If 群組1_cb.Text = "" Then : FVG = "ALL GROUP 薪資表" : Else : FVG = 群組1_cb.Text & "薪資表" : End If
  1367. xlApp.Sheets(1).Name = FVG : xlBook.Activate() : xlSheet.Activate()
  1368. xlSheet.Cells(1, 1) = "點 工 薪 資 表 TABEL GAJI " & FVG
  1369. xlSheet.Cells(2, 1) = "STT" : xlSheet.Cells(2, 2) = "員工編號" & vbCrLf & "ID_No" : xlSheet.Cells(2, 3) = "姓名" & vbCrLf & "Name" : xlSheet.Cells(2, 4) = "總計" & vbCrLf & "A=B+C"
  1370. xlSheet.Cells(2, 5) = "工資金額" : xlSheet.Cells(3, 5) = "正常" & vbCrLf & "B=D*F" : xlSheet.Cells(3, 6) = "加班" & vbCrLf & "C=E*G"
  1371. xlSheet.Cells(2, 7) = "工資單價" : xlSheet.Cells(3, 7) = "正常/H" & vbCrLf & "D" : xlSheet.Cells(3, 8) = "加班/H" & vbCrLf & "E"
  1372. xlSheet.Cells(2, 9) = "合計" : xlSheet.Cells(3, 9) = "正常/H" & vbCrLf & "F" : xlSheet.Cells(3, 10) = "加班/H" & vbCrLf & "G"
  1373. xlSheet.Cells(2, 11) = 星1_bt.Text : xlSheet.Cells(3, 11) = "正常/H" : xlSheet.Cells(3, 12) = "加班/H"
  1374. xlSheet.Cells(2, 13) = 星2_bt.Text : xlSheet.Cells(3, 13) = "正常/H" : xlSheet.Cells(3, 14) = "加班/H"
  1375. xlSheet.Cells(2, 15) = 星3_bt.Text : xlSheet.Cells(3, 15) = "正常/H" : xlSheet.Cells(3, 16) = "加班/H"
  1376. xlSheet.Cells(2, 17) = 星4_bt.Text : xlSheet.Cells(3, 17) = "正常/H" : xlSheet.Cells(3, 18) = "加班/H"
  1377. xlSheet.Cells(2, 19) = 星5_bt.Text : xlSheet.Cells(3, 19) = "正常/H" : xlSheet.Cells(3, 20) = "加班/H"
  1378. xlSheet.Cells(2, 21) = 星6_bt.Text : xlSheet.Cells(3, 21) = "正常/H" : xlSheet.Cells(3, 22) = "加班/H"
  1379. xlSheet.Cells(2, 23) = 星7_bt.Text : xlSheet.Cells(3, 23) = "正常/H" : xlSheet.Cells(3, 24) = "加班/H"
  1380. xlSheet.Cells(2, 25) = "備註"
  1381. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1382. xlSheet.Cells(4 + i, 1) = i + 1 : xlSheet.Cells(4 + i, 2) = 清單1_dgv.Rows(i).Cells("ID卡號").Value.ToString
  1383. xlSheet.Cells(4 + i, 3) = 清單1_dgv.Rows(i).Cells(表頭(0)).Value.ToString : xlSheet.Cells(4 + i, 4) = 清單1_dgv.Rows(i).Cells(表頭(28)).Value.ToString
  1384. xlSheet.Cells(4 + i, 5) = 清單1_dgv.Rows(i).Cells(表頭(58)).Value.ToString : xlSheet.Cells(4 + i, 6) = 清單1_dgv.Rows(i).Cells(表頭(59)).Value.ToString
  1385. xlSheet.Cells(4 + i, 7) = 清單1_dgv.Rows(i).Cells(表頭(60)).Value.ToString : xlSheet.Cells(4 + i, 8) = 清單1_dgv.Rows(i).Cells(表頭(61)).Value.ToString
  1386. xlSheet.Cells(4 + i, 9) = 清單1_dgv.Rows(i).Cells(表頭(62)).Value.ToString : xlSheet.Cells(4 + i, 10) = 清單1_dgv.Rows(i).Cells(表頭(63)).Value.ToString
  1387. xlSheet.Cells(4 + i, 11) = 清單1_dgv.Rows(i).Cells(表頭(44)).Value.ToString : xlSheet.Cells(4 + i, 12) = 清單1_dgv.Rows(i).Cells(表頭(45)).Value.ToString
  1388. xlSheet.Cells(4 + i, 13) = 清單1_dgv.Rows(i).Cells(表頭(46)).Value.ToString : xlSheet.Cells(4 + i, 14) = 清單1_dgv.Rows(i).Cells(表頭(47)).Value.ToString
  1389. xlSheet.Cells(4 + i, 15) = 清單1_dgv.Rows(i).Cells(表頭(48)).Value.ToString : xlSheet.Cells(4 + i, 16) = 清單1_dgv.Rows(i).Cells(表頭(49)).Value.ToString
  1390. xlSheet.Cells(4 + i, 17) = 清單1_dgv.Rows(i).Cells(表頭(50)).Value.ToString : xlSheet.Cells(4 + i, 18) = 清單1_dgv.Rows(i).Cells(表頭(51)).Value.ToString
  1391. xlSheet.Cells(4 + i, 19) = 清單1_dgv.Rows(i).Cells(表頭(52)).Value.ToString : xlSheet.Cells(4 + i, 20) = 清單1_dgv.Rows(i).Cells(表頭(53)).Value.ToString
  1392. xlSheet.Cells(4 + i, 21) = 清單1_dgv.Rows(i).Cells(表頭(54)).Value.ToString : xlSheet.Cells(4 + i, 22) = 清單1_dgv.Rows(i).Cells(表頭(55)).Value.ToString
  1393. xlSheet.Cells(4 + i, 23) = 清單1_dgv.Rows(i).Cells(表頭(56)).Value.ToString : xlSheet.Cells(4 + i, 24) = 清單1_dgv.Rows(i).Cells(表頭(57)).Value.ToString
  1394. Next
  1395. xlSheet.Cells(4 + GN1 + 1, 3) = "TOTAL : " : xlSheet.Cells(4 + GN1 + 1, 4) = "=SUM(D4:D" & 4 + GN1 & ")"
  1396. xlSheet.Cells(4 + GN1 + 1, 5) = "=SUM(E4:E" & 4 + GN1 & ")" : xlSheet.Cells(4 + GN1 + 1, 6) = "=SUM(F4:F" & 4 + GN1 & ")" : CC(xlApp, xlSheet)
  1397. '----------------------------------------------------------------------------------------------------------------------
  1398. xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select
  1399. If 群組1_cb.Text = "" Then : FVG = "ALL GROUP 考勤表" : Else : FVG = 群組1_cb.Text & "考勤表" : End If
  1400. xlApp.Sheets(1).Name = FVG : xlBook.Activate() : xlSheet.Activate()
  1401. xlSheet.Cells(1, 1) = "點 工 薪 資 表 GAJI BURUH HARIAN " & FVG
  1402. xlSheet.Cells(2, 1) = "STT" : xlSheet.Cells(2, 2) = "員工編號" & vbCrLf & "ID_No" : xlSheet.Cells(2, 3) = "姓名" & vbCrLf & "Name" : xlSheet.Cells(2, 4) = "基本薪資" & vbCrLf & "天/RP"
  1403. xlSheet.Cells(2, 5) = 星1_bt.Text : xlSheet.Cells(3, 5) = "上班" : xlSheet.Cells(3, 6) = "下班"
  1404. xlSheet.Cells(2, 7) = 星2_bt.Text : xlSheet.Cells(3, 7) = "上班" : xlSheet.Cells(3, 8) = "下班"
  1405. xlSheet.Cells(2, 9) = 星3_bt.Text : xlSheet.Cells(3, 9) = "上班" : xlSheet.Cells(3, 10) = "下班"
  1406. xlSheet.Cells(2, 11) = 星4_bt.Text : xlSheet.Cells(3, 11) = "上班" : xlSheet.Cells(3, 12) = "下班"
  1407. xlSheet.Cells(2, 13) = 星5_bt.Text : xlSheet.Cells(3, 13) = "上班" : xlSheet.Cells(3, 14) = "下班"
  1408. xlSheet.Cells(2, 15) = 星6_bt.Text : xlSheet.Cells(3, 15) = "上班" : xlSheet.Cells(3, 16) = "下班"
  1409. xlSheet.Cells(2, 17) = 星7_bt.Text : xlSheet.Cells(3, 17) = "上班" : xlSheet.Cells(3, 18) = "下班"
  1410. xlSheet.Cells(2, 19) = "備註"
  1411. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1412. xlSheet.Cells(4 + i, 1) = i + 1 : xlSheet.Cells(4 + i, 2) = 清單1_dgv.Rows(i).Cells("ID卡號").Value.ToString
  1413. xlSheet.Cells(4 + i, 3) = 清單1_dgv.Rows(i).Cells(表頭(0)).Value.ToString : xlSheet.Cells(4 + i, 4) = 清單1_dgv.Rows(i).Cells(表頭(27)).Value.ToString
  1414. xlSheet.Cells(4 + i, 5) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(64)).Value.ToString, 5) : xlSheet.Cells(4 + i, 6) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(31)).Value.ToString, 5)
  1415. xlSheet.Cells(4 + i, 7) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(32)).Value.ToString, 5) : xlSheet.Cells(4 + i, 8) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(33)).Value.ToString, 5)
  1416. xlSheet.Cells(4 + i, 9) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(34)).Value.ToString, 5) : xlSheet.Cells(4 + i, 10) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(35)).Value.ToString, 5)
  1417. xlSheet.Cells(4 + i, 11) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(36)).Value.ToString, 5) : xlSheet.Cells(4 + i, 12) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(37)).Value.ToString, 5)
  1418. xlSheet.Cells(4 + i, 13) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(38)).Value.ToString, 5) : xlSheet.Cells(4 + i, 14) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(39)).Value.ToString, 5)
  1419. xlSheet.Cells(4 + i, 15) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(40)).Value.ToString, 5) : xlSheet.Cells(4 + i, 16) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(41)).Value.ToString, 5)
  1420. xlSheet.Cells(4 + i, 17) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(42)).Value.ToString, 5) : xlSheet.Cells(4 + i, 18) = Strings.Left(清單1_dgv.Rows(i).Cells(表頭(43)).Value.ToString, 5)
  1421. Next : AA(xlApp, xlSheet)
  1422. xlApp.Sheets(4).Delete : xlSheet.PageSetup.PrintArea = ""
  1423. xlApp.Cells.Select()
  1424. xlApp.Application.WindowState = xlMinimized
  1425. If PA19 = "PDF" Then
  1426. '-------------轉換成PDF---------------------------------------------------------------------
  1427. Dim SERT As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
  1428. xlBook.Sheets(1).ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, SERT & "\" & FVG & "_X1.pdf", XlFixedFormatQuality.xlQualityStandard, True)
  1429. xlBook.Sheets(2).ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, SERT & "\" & FVG & "_X2.pdf", XlFixedFormatQuality.xlQualityStandard, True)
  1430. xlBook.Sheets(3).ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, SERT & "\" & FVG & "_X3.pdf", XlFixedFormatQuality.xlQualityStandard, True)
  1431. Dim pdf1 As String = SERT & "\" & FVG & "_X1.pdf"
  1432. Dim pdf2 As String = SERT & "\" & FVG & "_X2.pdf"
  1433. Dim pdf3 As String = SERT & "\" & FVG & "_X3.pdf"
  1434. Dim outputPDF As String = SERT & "\" & FVG & "請款單.pdf"
  1435. Dim mergedDocument As New PdfDocument() ' 创建一个新的PDF文档对象
  1436. Dim document1 As PdfDocument = PdfReader.Open(pdf1, PdfDocumentOpenMode.Import) ' 打开第一个PDF文件
  1437. For Each page As PdfPage In document1.Pages : mergedDocument.AddPage(page) : Next ' 将第一个PDF文件的页面逐一添加到合并文档
  1438. Dim document2 As PdfDocument = PdfReader.Open(pdf2, PdfDocumentOpenMode.Import) ' 打开第二个PDF文件
  1439. For Each page As PdfPage In document2.Pages : mergedDocument.AddPage(page) : Next ' 将第二个PDF文件的页面逐一添加到合并文档
  1440. Dim document3 As PdfDocument = PdfReader.Open(pdf3, PdfDocumentOpenMode.Import) ' 打开第三个PDF文件
  1441. For Each page As PdfPage In document3.Pages : mergedDocument.AddPage(page) : Next ' 将第三个PDF文件的页面逐一添加到合并文档
  1442. mergedDocument.Save(outputPDF) ' 保存合并后的PDF文件
  1443. document1.Close() : document2.Close() : document3.Close() ' 关闭文档对象
  1444. File.Delete(SERT & "\" & FVG & "_X1.pdf")
  1445. File.Delete(SERT & "\" & FVG & "_X2.pdf")
  1446. File.Delete(SERT & "\" & FVG & "_X3.pdf") ' 删除文件1和文件2
  1447. '-------------關閉EXCEL---------------------------------------------------------------------
  1448. xlSheet.PageSetup.PrintArea = "" : xlApp.Cells.Select()
  1449. xlApp.Application.WindowState = xlMinimized
  1450. xlBook.Close(False)
  1451. Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet)
  1452. Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
  1453. Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
  1454. xlApp.Quit() : xlSheet = Nothing : xlBook = Nothing : xlApp = Nothing : GC.Collect()
  1455. End If
  1456. PA17 = "" : PA18 = "" : PA19 = ""
  1457. MGB(系統語言字典("H508-121-" & 語言), 1)
  1458. End Sub
  1459. Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
  1460. Return CType(xlBook.Worksheets.Add, Worksheet)
  1461. End Function
  1462. Private Sub AA(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Worksheet)
  1463. xlSheet.Cells.Select()
  1464. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 12 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1465. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1466. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1467. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1468. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 4 : xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 10
  1469. xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 22 : xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 10
  1470. xlSheet.Columns("D:D").Select : myExcel.Selection.NumberFormatLocal = "#,##0" : xlSheet.Columns("E:R").Select : myExcel.Selection.ColumnWidth = 6
  1471. xlSheet.Range("A2:S3").Select()
  1472. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1473. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1474. xlSheet.Range("C4:R" & GN1 + 4).Select()
  1475. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1476. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1477. xlSheet.Range("A4:B" & GN1 + 4).Select()
  1478. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 9 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1479. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1480. xlSheet.Range("A1:S1").Select()
  1481. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1482. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1483. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .Color = 49407 : .TintAndShade = 0 : .PatternTintAndShade = 0 : End With
  1484. xlSheet.Range("A2:A3").Select()
  1485. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1486. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1487. xlSheet.Range("B2:B3").Select()
  1488. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1489. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1490. xlSheet.Range("C2:C3").Select()
  1491. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1492. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1493. xlSheet.Range("D2:D3").Select()
  1494. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1495. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1496. xlSheet.Range("E2:F2").Select()
  1497. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1498. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1499. xlSheet.Range("G2:H2").Select()
  1500. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1501. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1502. xlSheet.Range("I2:J2").Select()
  1503. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1504. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1505. xlSheet.Range("K2:L2").Select()
  1506. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1507. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1508. xlSheet.Range("M2:N2").Select()
  1509. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1510. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1511. xlSheet.Range("O2:P2").Select()
  1512. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1513. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1514. xlSheet.Range("Q2:R2").Select()
  1515. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1516. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1517. xlSheet.Range("S2:S3").Select()
  1518. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1519. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1520. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 30 : xlSheet.Rows("2:3").Select : myExcel.Selection.RowHeight = 20
  1521. xlSheet.Rows("4:" & GN1 + 4).Select : myExcel.Selection.RowHeight = 25
  1522. xlSheet.Range("A1:S3").Select()
  1523. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1524. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1525. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1526. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1527. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1528. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1529. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1530. xlSheet.Range("A4:S" & GN1 + 4).Select()
  1531. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1532. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1533. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1534. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1535. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1536. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1537. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1538. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1539. If 清單1_dgv.Rows(i).Cells(表頭(64)).Value.ToString = "" Then : xlSheet.Range("E" & 4 + i).Select()
  1540. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1541. If 清單1_dgv.Rows(i).Cells(表頭(31)).Value.ToString = "" Then : xlSheet.Range("F" & 4 + i).Select()
  1542. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1543. If 清單1_dgv.Rows(i).Cells(表頭(32)).Value.ToString = "" Then : xlSheet.Range("G" & 4 + i).Select()
  1544. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1545. If 清單1_dgv.Rows(i).Cells(表頭(33)).Value.ToString = "" Then : xlSheet.Range("H" & 4 + i).Select()
  1546. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1547. If 清單1_dgv.Rows(i).Cells(表頭(34)).Value.ToString = "" Then : xlSheet.Range("I" & 4 + i).Select()
  1548. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1549. If 清單1_dgv.Rows(i).Cells(表頭(35)).Value.ToString = "" Then : xlSheet.Range("J" & 4 + i).Select()
  1550. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1551. If 清單1_dgv.Rows(i).Cells(表頭(36)).Value.ToString = "" Then : xlSheet.Range("K" & 4 + i).Select()
  1552. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1553. If 清單1_dgv.Rows(i).Cells(表頭(37)).Value.ToString = "" Then : xlSheet.Range("L" & 4 + i).Select()
  1554. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1555. If 清單1_dgv.Rows(i).Cells(表頭(38)).Value.ToString = "" Then : xlSheet.Range("M" & 4 + i).Select()
  1556. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1557. If 清單1_dgv.Rows(i).Cells(表頭(39)).Value.ToString = "" Then : xlSheet.Range("N" & 4 + i).Select()
  1558. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1559. If 清單1_dgv.Rows(i).Cells(表頭(40)).Value.ToString = "" Then : xlSheet.Range("O" & 4 + i).Select()
  1560. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1561. If 清單1_dgv.Rows(i).Cells(表頭(41)).Value.ToString = "" Then : xlSheet.Range("P" & 4 + i).Select()
  1562. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1563. If 清單1_dgv.Rows(i).Cells(表頭(42)).Value.ToString = "" Then : xlSheet.Range("Q" & 4 + i).Select()
  1564. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1565. If 清單1_dgv.Rows(i).Cells(表頭(43)).Value.ToString = "" Then : xlSheet.Range("R" & 4 + i).Select()
  1566. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1567. Next
  1568. xlSheet.Range("B2:D3").Select()
  1569. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1570. .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  1571. xlSheet.Range("C4:C" & GN1 + 4).Select()
  1572. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1573. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1574. myExcel.ActiveWindow.DisplayGridlines = False
  1575. myExcel.Application.PrintCommunication = False
  1576. With myExcel.ActiveSheet.PageSetup : .PrintTitleRows = "$1:$3" : .PrintTitleColumns = "" : End With
  1577. myExcel.Application.PrintCommunication = True : myExcel.ActiveSheet.PageSetup.PrintArea = "" : myExcel.Application.PrintCommunication = False
  1578. With myExcel.ActiveSheet.PageSetup : .LeftHeader = "" : .CenterHeader = "" : .RightHeader = "" : .LeftFooter = "" : .CenterFooter = "第 &P 頁,共 &N 頁" : .RightFooter = ""
  1579. .LeftMargin = myExcel.Application.InchesToPoints(0.196850393700787) : .RightMargin = myExcel.Application.InchesToPoints(0.196850393700787)
  1580. .TopMargin = myExcel.Application.InchesToPoints(0.196850393700787) : .BottomMargin = myExcel.Application.InchesToPoints(0.393700787401575)
  1581. .HeaderMargin = myExcel.Application.InchesToPoints(0.196850393700787) : .FooterMargin = myExcel.Application.InchesToPoints(0.196850393700787)
  1582. .PrintHeadings = False : .PrintGridlines = False : .PrintQuality = 600 : .CenterHorizontally = True : .CenterVertically = False : .Orientation = xlLandscape
  1583. .Draft = False : .FirstPageNumber = xlAutomatic : .BlackAndWhite = False : .Zoom = False : .FitToPagesWide = 1 : .FitToPagesTall = False
  1584. .OddAndEvenPagesHeaderFooter = False : .DifferentFirstPageHeaderFooter = False : .ScaleWithDocHeaderFooter = True : .AlignMarginsHeaderFooter = True
  1585. .EvenPage.LeftHeader.Text = "" : .EvenPage.CenterHeader.Text = "" : .EvenPage.RightHeader.Text = "" : .EvenPage.LeftFooter.Text = "" : .EvenPage.CenterFooter.Text = ""
  1586. .EvenPage.RightFooter.Text = "" : .FirstPage.LeftHeader.Text = "" : .FirstPage.CenterHeader.Text = "" : .FirstPage.RightHeader.Text = "" : .FirstPage.LeftFooter.Text = ""
  1587. .FirstPage.CenterFooter.Text = "" : .FirstPage.RightFooter.Text = ""
  1588. End With
  1589. myExcel.Application.PrintCommunication = True
  1590. End Sub
  1591. Private Sub BB(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Worksheet)
  1592. xlSheet.Cells.Select()
  1593. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 12 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1594. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1595. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 4 : xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 14
  1596. xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 25 : xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 13
  1597. xlSheet.Columns("E:F").Select : myExcel.Selection.ColumnWidth = 8 : xlSheet.Columns("G:M").Select : myExcel.Selection.ColumnWidth = 9
  1598. xlSheet.Rows("2:3").Select : myExcel.Selection.RowHeight = 25 : xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 30
  1599. xlSheet.Columns("D:F").Select : myExcel.Selection.NumberFormatLocal = "#,##0"
  1600. xlSheet.Rows("4:" & GN1 + 5).Select : myExcel.Selection.RowHeight = 25
  1601. xlSheet.Range("A2:A3").Select()
  1602. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1603. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1604. xlSheet.Range("B2:B3").Select()
  1605. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1606. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1607. xlSheet.Range("C2:C3").Select()
  1608. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1609. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1610. xlSheet.Range("D2:D3").Select()
  1611. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1612. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With : myExcel.Selection.Merge
  1613. xlSheet.Range("E2:E3").Select()
  1614. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1615. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With : myExcel.Selection.Merge
  1616. xlSheet.Range("F2:F3").Select()
  1617. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1618. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With : myExcel.Selection.Merge
  1619. xlSheet.Range("G3:M3").Select()
  1620. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1621. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1622. xlSheet.Range("N2:N3").Select()
  1623. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1624. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1625. xlSheet.Range("A1:N1").Select()
  1626. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1627. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1628. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .Color = 49407 : .TintAndShade = 0 : .PatternTintAndShade = 0 : End With
  1629. xlSheet.Range("A1:N3").Select()
  1630. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1631. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1632. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1633. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1634. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1635. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1636. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1637. xlSheet.Range("A4:N" & GN1 + 5).Select()
  1638. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1639. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1640. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1641. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1642. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1643. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1644. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1645. xlSheet.Range("C" & GN1 + 5).Select()
  1646. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1647. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1648. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1649. If 清單1_dgv.Rows(i).Cells(表頭(64)).Value.ToString = "" Then : xlSheet.Range("G" & 4 + i).Select()
  1650. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1651. If 清單1_dgv.Rows(i).Cells(表頭(32)).Value.ToString = "" Then : xlSheet.Range("H" & 4 + i).Select()
  1652. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1653. If 清單1_dgv.Rows(i).Cells(表頭(34)).Value.ToString = "" Then : xlSheet.Range("I" & 4 + i).Select()
  1654. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1655. If 清單1_dgv.Rows(i).Cells(表頭(36)).Value.ToString = "" Then : xlSheet.Range("J" & 4 + i).Select()
  1656. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1657. If 清單1_dgv.Rows(i).Cells(表頭(38)).Value.ToString = "" Then : xlSheet.Range("K" & 4 + i).Select()
  1658. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1659. If 清單1_dgv.Rows(i).Cells(表頭(40)).Value.ToString = "" Then : xlSheet.Range("L" & 4 + i).Select()
  1660. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1661. If 清單1_dgv.Rows(i).Cells(表頭(42)).Value.ToString = "" Then : xlSheet.Range("M" & 4 + i).Select()
  1662. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1663. Next
  1664. xlSheet.Range("A2:N3").Select()
  1665. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1666. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1667. myExcel.ActiveWindow.DisplayGridlines = False
  1668. myExcel.Application.PrintCommunication = False
  1669. With myExcel.ActiveSheet.PageSetup : .PrintTitleRows = "$1:$3" : .PrintTitleColumns = "" : End With
  1670. myExcel.Application.PrintCommunication = True : myExcel.ActiveSheet.PageSetup.PrintArea = "" : myExcel.Application.PrintCommunication = False
  1671. With myExcel.ActiveSheet.PageSetup : .LeftHeader = "" : .CenterHeader = "" : .RightHeader = "" : .LeftFooter = "" : .CenterFooter = "第 &P 頁,共 &N 頁" : .RightFooter = ""
  1672. .LeftMargin = myExcel.Application.InchesToPoints(0.196850393700787) : .RightMargin = myExcel.Application.InchesToPoints(0.196850393700787)
  1673. .TopMargin = myExcel.Application.InchesToPoints(0.196850393700787) : .BottomMargin = myExcel.Application.InchesToPoints(0.393700787401575)
  1674. .HeaderMargin = myExcel.Application.InchesToPoints(0.196850393700787) : .FooterMargin = myExcel.Application.InchesToPoints(0.196850393700787)
  1675. .PrintHeadings = False : .PrintGridlines = False : .PrintQuality = 600 : .CenterHorizontally = True : .CenterVertically = False : .Orientation = xlLandscape
  1676. .Draft = False : .FirstPageNumber = xlAutomatic : .BlackAndWhite = False : .Zoom = False : .FitToPagesWide = 1 : .FitToPagesTall = False
  1677. .OddAndEvenPagesHeaderFooter = False : .DifferentFirstPageHeaderFooter = False : .ScaleWithDocHeaderFooter = True : .AlignMarginsHeaderFooter = True
  1678. .EvenPage.LeftHeader.Text = "" : .EvenPage.CenterHeader.Text = "" : .EvenPage.RightHeader.Text = "" : .EvenPage.LeftFooter.Text = "" : .EvenPage.CenterFooter.Text = ""
  1679. .EvenPage.RightFooter.Text = "" : .FirstPage.LeftHeader.Text = "" : .FirstPage.CenterHeader.Text = "" : .FirstPage.RightHeader.Text = "" : .FirstPage.LeftFooter.Text = ""
  1680. .FirstPage.CenterFooter.Text = "" : .FirstPage.RightFooter.Text = ""
  1681. End With
  1682. myExcel.Application.PrintCommunication = True
  1683. End Sub
  1684. Private Sub CC(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Worksheet)
  1685. xlSheet.Cells.Select()
  1686. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 12 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1687. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1688. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 4 : xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 10
  1689. xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 22 : xlSheet.Columns("D:E").Select : myExcel.Selection.ColumnWidth = 11
  1690. xlSheet.Columns("F:F").Select : myExcel.Selection.ColumnWidth = 8 : xlSheet.Columns("G:H").Select : myExcel.Selection.ColumnWidth = 8
  1691. xlSheet.Columns("I:X").Select : myExcel.Selection.ColumnWidth = 5 : xlSheet.Columns("I:J").Select : myExcel.Selection.ColumnWidth = 7
  1692. xlSheet.Columns("K:X").Select : myExcel.Selection.ColumnWidth = 4 : xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 30
  1693. xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 15 : xlSheet.Rows("3:3").Select : myExcel.Selection.RowHeight = 35
  1694. xlSheet.Rows("4:" & GN1 + 5).Select : myExcel.Selection.RowHeight = 25 : xlSheet.Columns("D:F").Select : myExcel.Selection.NumberFormatLocal = "#,##0"
  1695. xlSheet.Range("C4:Y" & GN1 + 5).Select()
  1696. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1697. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1698. xlSheet.Range("A4:B" & GN1 + 5).Select()
  1699. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 9 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1700. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1701. xlSheet.Range("K3:X3").Select()
  1702. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1703. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1704. xlSheet.Range("I4:X" & GN1 + 5).Select()
  1705. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1706. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1707. xlSheet.Range("A2:A3").Select()
  1708. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1709. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1710. xlSheet.Range("B2:B3").Select()
  1711. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1712. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1713. xlSheet.Range("C2:C3").Select()
  1714. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1715. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1716. xlSheet.Range("D2:D3").Select()
  1717. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1718. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1719. xlSheet.Range("E2:F2").Select()
  1720. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1721. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1722. xlSheet.Range("G2:H2").Select()
  1723. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1724. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1725. xlSheet.Range("I2:J2").Select()
  1726. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1727. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1728. xlSheet.Range("K2:L2").Select()
  1729. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1730. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1731. xlSheet.Range("M2:N2").Select()
  1732. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1733. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1734. xlSheet.Range("O2:P2").Select()
  1735. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1736. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1737. xlSheet.Range("Q2:R2").Select()
  1738. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1739. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1740. xlSheet.Range("S2:T2").Select()
  1741. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1742. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1743. xlSheet.Range("U2:V2").Select()
  1744. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1745. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1746. xlSheet.Range("W2:X2").Select()
  1747. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1748. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1749. xlSheet.Range("Y2:Y3").Select()
  1750. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1751. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1752. xlSheet.Range("A2:Y3").Select()
  1753. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1754. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1755. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  1756. .ReadingOrder = xlContext : End With
  1757. xlSheet.Range("K2:X2").Select()
  1758. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 8 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1759. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1760. xlSheet.Range("A1:Y1").Select()
  1761. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1762. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1763. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .Color = 49407 : .TintAndShade = 0 : .PatternTintAndShade = 0 : End With
  1764. xlSheet.Range("A1:Y3").Select()
  1765. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1766. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1767. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1768. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1769. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1770. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1771. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1772. xlSheet.Range("A4:Y" & GN1 + 5).Select()
  1773. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1774. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1775. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1776. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1777. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1778. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1779. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1780. For i As Integer = 0 To 清單1_dgv.Rows.Count - 1
  1781. If 清單1_dgv.Rows(i).Cells(表頭(64)).Value.ToString = "" Then : xlSheet.Range("K" & 4 + i).Select()
  1782. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1783. If 清單1_dgv.Rows(i).Cells(表頭(31)).Value.ToString = "" Then : xlSheet.Range("L" & 4 + i).Select()
  1784. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1785. If 清單1_dgv.Rows(i).Cells(表頭(32)).Value.ToString = "" Then : xlSheet.Range("M" & 4 + i).Select()
  1786. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1787. If 清單1_dgv.Rows(i).Cells(表頭(33)).Value.ToString = "" Then : xlSheet.Range("N" & 4 + i).Select()
  1788. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1789. If 清單1_dgv.Rows(i).Cells(表頭(34)).Value.ToString = "" Then : xlSheet.Range("O" & 4 + i).Select()
  1790. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1791. If 清單1_dgv.Rows(i).Cells(表頭(35)).Value.ToString = "" Then : xlSheet.Range("P" & 4 + i).Select()
  1792. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1793. If 清單1_dgv.Rows(i).Cells(表頭(36)).Value.ToString = "" Then : xlSheet.Range("Q" & 4 + i).Select()
  1794. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1795. If 清單1_dgv.Rows(i).Cells(表頭(37)).Value.ToString = "" Then : xlSheet.Range("R" & 4 + i).Select()
  1796. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1797. If 清單1_dgv.Rows(i).Cells(表頭(38)).Value.ToString = "" Then : xlSheet.Range("S" & 4 + i).Select()
  1798. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1799. If 清單1_dgv.Rows(i).Cells(表頭(39)).Value.ToString = "" Then : xlSheet.Range("T" & 4 + i).Select()
  1800. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1801. If 清單1_dgv.Rows(i).Cells(表頭(40)).Value.ToString = "" Then : xlSheet.Range("U" & 4 + i).Select()
  1802. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1803. If 清單1_dgv.Rows(i).Cells(表頭(41)).Value.ToString = "" Then : xlSheet.Range("V" & 4 + i).Select()
  1804. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1805. If 清單1_dgv.Rows(i).Cells(表頭(42)).Value.ToString = "" Then : xlSheet.Range("W" & 4 + i).Select()
  1806. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1807. If 清單1_dgv.Rows(i).Cells(表頭(43)).Value.ToString = "" Then : xlSheet.Range("X" & 4 + i).Select()
  1808. With myExcel.Selection.Borders(xlDiagonalUp) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With : End If
  1809. Next
  1810. myExcel.ActiveWindow.DisplayGridlines = False
  1811. myExcel.Application.PrintCommunication = False
  1812. With myExcel.ActiveSheet.PageSetup : .PrintTitleRows = "$1:$3" : .PrintTitleColumns = "" : End With
  1813. myExcel.Application.PrintCommunication = True : myExcel.ActiveSheet.PageSetup.PrintArea = "" : myExcel.Application.PrintCommunication = False
  1814. With myExcel.ActiveSheet.PageSetup : .LeftHeader = "" : .CenterHeader = "" : .RightHeader = "" : .LeftFooter = "" : .CenterFooter = "第 &P 頁,共 &N 頁" : .RightFooter = ""
  1815. .LeftMargin = myExcel.Application.InchesToPoints(0.196850393700787) : .RightMargin = myExcel.Application.InchesToPoints(0.196850393700787)
  1816. .TopMargin = myExcel.Application.InchesToPoints(0.196850393700787) : .BottomMargin = myExcel.Application.InchesToPoints(0.393700787401575)
  1817. .HeaderMargin = myExcel.Application.InchesToPoints(0.196850393700787) : .FooterMargin = myExcel.Application.InchesToPoints(0.196850393700787)
  1818. .PrintHeadings = False : .PrintGridlines = False : .PrintQuality = 600 : .CenterHorizontally = True : .CenterVertically = False : .Orientation = xlLandscape
  1819. .Draft = False : .FirstPageNumber = xlAutomatic : .BlackAndWhite = False : .Zoom = False : .FitToPagesWide = 1 : .FitToPagesTall = False
  1820. .OddAndEvenPagesHeaderFooter = False : .DifferentFirstPageHeaderFooter = False : .ScaleWithDocHeaderFooter = True : .AlignMarginsHeaderFooter = True
  1821. .EvenPage.LeftHeader.Text = "" : .EvenPage.CenterHeader.Text = "" : .EvenPage.RightHeader.Text = "" : .EvenPage.LeftFooter.Text = "" : .EvenPage.CenterFooter.Text = ""
  1822. .EvenPage.RightFooter.Text = "" : .FirstPage.LeftHeader.Text = "" : .FirstPage.CenterHeader.Text = "" : .FirstPage.RightHeader.Text = "" : .FirstPage.LeftFooter.Text = ""
  1823. .FirstPage.CenterFooter.Text = "" : .FirstPage.RightFooter.Text = ""
  1824. End With
  1825. myExcel.Application.PrintCommunication = True
  1826. End Sub
  1827. '----------------------自創視窗滑鼠拖曳功能---------------------------------------------------------------------------------------------------------
  1828. Dim OldX, OldY As Long : Dim drag As Boolean
  1829. Private Sub 視窗3_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseDown
  1830. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  1831. End Sub
  1832. Private Sub 視窗3_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseMove
  1833. If drag Then : 視窗3_pl.Left = 視窗3_pl.Left + e.X - OldX : 視窗3_pl.Top = 視窗3_pl.Top + e.Y - OldY : End If
  1834. End Sub
  1835. Private Sub 視窗3_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseUp
  1836. drag = False
  1837. End Sub
  1838. Private Sub Label11_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label11.MouseDown
  1839. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  1840. End Sub
  1841. Private Sub Label11_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label11.MouseMove
  1842. If drag Then : 視窗3_pl.Left = 視窗3_pl.Left + e.X - OldX : 視窗3_pl.Top = 視窗3_pl.Top + e.Y - OldY : End If
  1843. End Sub
  1844. Private Sub Label11_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label11.MouseUp
  1845. drag = False
  1846. End Sub
  1847. End Class