Açıklama Yok
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

薪資表.vb 35KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
  2. Imports Microsoft.Office.Interop.Excel.Constants
  3. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  4. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  5. Imports Microsoft.Office.Interop.Excel.XlBorderWeight
  6. Imports Microsoft.Office.Interop.Excel.XlThemeFont
  7. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  8. Imports Microsoft.Office.Interop.Excel.XlWindowState
  9. Imports Microsoft.Office.Interop.Excel.XlPageOrientation
  10. Imports Microsoft.Office.Interop.Excel
  11. Public Class 薪資表
  12. Dim 剛開啟 As Boolean : Dim 位置1 As Integer
  13. Dim xlApp As Application : Dim xlBook As Workbook : Dim xlSheet As Worksheet
  14. Private Sub 讀取打卡時間1()
  15. Dim ds1, ds2 As New DataSet
  16. 月清單_dgv.DataSource = Nothing : ds1.Clear()
  17. 月清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  18. 月清單_dgv.ColumnHeadersHeight = 45 : 月清單_dgv.AllowUserToAddRows = False
  19. SQL_薪資表讀取()
  20. da.Fill(ds1) : 月清單_dgv.DataSource = ds1.Tables(0) : conn.Close()
  21. 合計_dgv.DataSource = Nothing : ds2.Clear()
  22. 合計_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  23. 合計_dgv.ColumnHeadersHeight = 45 : 合計_dgv.AllowUserToAddRows = False : 合計_dgv.ColumnHeadersVisible = False
  24. SQL_薪資表讀取_合計()
  25. da.Fill(ds2) : 合計_dgv.DataSource = ds2.Tables(0) : conn.Close()
  26. 格式設定()
  27. End Sub
  28. Private Sub 格式設定()
  29. 月清單_dgv.Columns("項").FillWeight = 50 : 月清單_dgv.Columns("實上工時").FillWeight = 80 : 月清單_dgv.Columns("基本時薪").FillWeight = 80
  30. 月清單_dgv.Columns("主管加級").FillWeight = 90 : 月清單_dgv.Columns("職務加級").FillWeight = 90 : 月清單_dgv.Columns("婚假").FillWeight = 80
  31. 月清單_dgv.Columns("喪假").FillWeight = 80 : 月清單_dgv.Columns("其他說明").FillWeight = 150 : 月清單_dgv.Columns("其他").FillWeight = 80
  32. 月清單_dgv.Columns("未到離職").FillWeight = 80 : 月清單_dgv.Columns("一段加班1").FillWeight = 80 : 月清單_dgv.Columns("一段加班2").FillWeight = 80
  33. 月清單_dgv.Columns("二段加班1").FillWeight = 80 : 月清單_dgv.Columns("二段加班2").FillWeight = 80 : 月清單_dgv.Columns("國定假日1").FillWeight = 80
  34. 月清單_dgv.Columns("國定假日2").FillWeight = 80 : 月清單_dgv.Columns("勞保費").FillWeight = 80 : 月清單_dgv.Columns("健保費").FillWeight = 80
  35. 月清單_dgv.Columns("事假").FillWeight = 80 : 月清單_dgv.Columns("病假").FillWeight = 80 : 月清單_dgv.Columns("其他說明減").FillWeight = 150
  36. 月清單_dgv.Columns("其他減").FillWeight = 80 : 月清單_dgv.Columns("姓名").FillWeight = 80
  37. 月清單_dgv.Columns("基本月薪").DefaultCellStyle.BackColor = Color.MistyRose : 月清單_dgv.Columns("主管加級").DefaultCellStyle.BackColor = Color.MistyRose
  38. 月清單_dgv.Columns("職務加級").DefaultCellStyle.BackColor = Color.MistyRose : 月清單_dgv.Columns("婚假").DefaultCellStyle.BackColor = Color.MistyRose
  39. 月清單_dgv.Columns("喪假").DefaultCellStyle.BackColor = Color.MistyRose : 月清單_dgv.Columns("其他").DefaultCellStyle.BackColor = Color.MistyRose
  40. 月清單_dgv.Columns("未到離職").DefaultCellStyle.BackColor = Color.MistyRose : 月清單_dgv.Columns("本薪").DefaultCellStyle.BackColor = Color.MistyRose
  41. 月清單_dgv.Columns("特休補錢").DefaultCellStyle.BackColor = Color.MistyRose
  42. 月清單_dgv.Columns("一段加班1").DefaultCellStyle.BackColor = Color.LightSalmon : 月清單_dgv.Columns("一段加班2").DefaultCellStyle.BackColor = Color.LightSalmon
  43. 月清單_dgv.Columns("二段加班1").DefaultCellStyle.BackColor = Color.LightSalmon : 月清單_dgv.Columns("二段加班2").DefaultCellStyle.BackColor = Color.LightSalmon
  44. 月清單_dgv.Columns("國定假日1").DefaultCellStyle.BackColor = Color.LightSalmon : 月清單_dgv.Columns("國定假日2").DefaultCellStyle.BackColor = Color.LightSalmon
  45. 月清單_dgv.Columns("加班費1").DefaultCellStyle.BackColor = Color.LightSalmon : 月清單_dgv.Columns("加班費2").DefaultCellStyle.BackColor = Color.LightSalmon
  46. 月清單_dgv.Columns("應付小計1").DefaultCellStyle.BackColor = Color.LightSalmon : 月清單_dgv.Columns("應付小計2").DefaultCellStyle.BackColor = Color.LightSalmon
  47. 月清單_dgv.Columns("勞保費").DefaultCellStyle.BackColor = Color.LightCyan : 月清單_dgv.Columns("健保費").DefaultCellStyle.BackColor = Color.LightCyan
  48. 月清單_dgv.Columns("事假").DefaultCellStyle.BackColor = Color.LightCyan : 月清單_dgv.Columns("病假").DefaultCellStyle.BackColor = Color.LightCyan
  49. 月清單_dgv.Columns("其他減").DefaultCellStyle.BackColor = Color.LightCyan : 月清單_dgv.Columns("減項小計1").DefaultCellStyle.BackColor = Color.LightCyan
  50. 月清單_dgv.Columns("實付小計1").DefaultCellStyle.BackColor = Color.LightGreen : 月清單_dgv.Columns("實付小計2").DefaultCellStyle.BackColor = Color.LightGreen
  51. 月清單_dgv.Columns("日期").Visible = False : 月清單_dgv.Columns("到職日").Visible = False : 月清單_dgv.Columns("全勤").Visible = False
  52. 月清單_dgv.Columns("月薪").Visible = False : 月清單_dgv.Columns("時薪").Visible = False : 月清單_dgv.Columns("特休未修").Visible = False
  53. 月清單_dgv.Columns("當月天數").Visible = False : 月清單_dgv.Columns("減項小計2").Visible = False : 月清單_dgv.Columns("實上基數").Visible = False
  54. 月清單_dgv.Columns("時薪特休").Visible = False
  55. For i As Integer = 4 To 16
  56. 月清單_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : 月清單_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  57. Next
  58. For i As Integer = 18 To 36
  59. 月清單_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : 月清單_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  60. Next
  61. For i As Integer = 23 To 25
  62. 月清單_dgv.Columns(i).DefaultCellStyle.Format = "#,##0.0" : 月清單_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  63. Next
  64. For i As Integer = 28 To 30
  65. 月清單_dgv.Columns(i).DefaultCellStyle.Format = "#,##0.0" : 月清單_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  66. Next
  67. For i As Integer = 38 To 42
  68. 月清單_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : 月清單_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  69. Next
  70. If 彈性工時_cb.Checked = True Then
  71. 月清單_dgv.Columns("一段加班2").Visible = True : 月清單_dgv.Columns("二段加班2").Visible = True : 月清單_dgv.Columns("國定假日2").Visible = True
  72. 月清單_dgv.Columns("加班費2").Visible = True : 月清單_dgv.Columns("應付小計2").Visible = True : 月清單_dgv.Columns("實付小計2").Visible = True
  73. 月清單_dgv.Columns("一段加班1").Visible = False : 月清單_dgv.Columns("二段加班1").Visible = False : 月清單_dgv.Columns("國定假日1").Visible = False
  74. 月清單_dgv.Columns("加班費1").Visible = False : 月清單_dgv.Columns("應付小計1").Visible = False : 月清單_dgv.Columns("實付小計1").Visible = False
  75. Else
  76. 月清單_dgv.Columns("一段加班2").Visible = False : 月清單_dgv.Columns("二段加班2").Visible = False : 月清單_dgv.Columns("國定假日2").Visible = False
  77. 月清單_dgv.Columns("加班費2").Visible = False : 月清單_dgv.Columns("應付小計2").Visible = False : 月清單_dgv.Columns("實付小計2").Visible = False
  78. 月清單_dgv.Columns("一段加班1").Visible = True : 月清單_dgv.Columns("二段加班1").Visible = True : 月清單_dgv.Columns("國定假日1").Visible = True
  79. 月清單_dgv.Columns("加班費1").Visible = True : 月清單_dgv.Columns("應付小計1").Visible = True : 月清單_dgv.Columns("實付小計1").Visible = True
  80. End If
  81. For i As Integer = 0 To 月清單_dgv.Rows.Count - 1
  82. 月清單_dgv("項", i).Value = i + 1
  83. 月清單_dgv("特休補錢", i).Value = 月清單_dgv("特休補錢", i).Value + 月清單_dgv("時薪特休", i).Value
  84. Next
  85. 合計_dgv.Columns("項").FillWeight = 50 : 合計_dgv.Columns("實上工時").FillWeight = 80 : 合計_dgv.Columns("基本時薪").FillWeight = 80
  86. 合計_dgv.Columns("主管加級").FillWeight = 90 : 合計_dgv.Columns("職務加級").FillWeight = 90 : 合計_dgv.Columns("婚假").FillWeight = 80
  87. 合計_dgv.Columns("喪假").FillWeight = 80 : 合計_dgv.Columns("其他說明").FillWeight = 150 : 合計_dgv.Columns("其他").FillWeight = 80
  88. 合計_dgv.Columns("未到離職").FillWeight = 80 : 合計_dgv.Columns("一段加班1").FillWeight = 80 : 合計_dgv.Columns("一段加班2").FillWeight = 80
  89. 合計_dgv.Columns("二段加班1").FillWeight = 80 : 合計_dgv.Columns("二段加班2").FillWeight = 80 : 合計_dgv.Columns("國定假日1").FillWeight = 80
  90. 合計_dgv.Columns("國定假日2").FillWeight = 80 : 合計_dgv.Columns("勞保費").FillWeight = 80 : 合計_dgv.Columns("健保費").FillWeight = 80
  91. 合計_dgv.Columns("事假").FillWeight = 80 : 合計_dgv.Columns("病假").FillWeight = 80 : 合計_dgv.Columns("其他說明減").FillWeight = 150
  92. 合計_dgv.Columns("其他減").FillWeight = 80 : 合計_dgv.Columns("姓名").FillWeight = 80
  93. 合計_dgv.Columns("基本月薪").DefaultCellStyle.BackColor = Color.MistyRose : 合計_dgv.Columns("主管加級").DefaultCellStyle.BackColor = Color.MistyRose
  94. 合計_dgv.Columns("職務加級").DefaultCellStyle.BackColor = Color.MistyRose : 合計_dgv.Columns("婚假").DefaultCellStyle.BackColor = Color.MistyRose
  95. 合計_dgv.Columns("喪假").DefaultCellStyle.BackColor = Color.MistyRose : 合計_dgv.Columns("其他").DefaultCellStyle.BackColor = Color.MistyRose
  96. 合計_dgv.Columns("未到離職").DefaultCellStyle.BackColor = Color.MistyRose : 合計_dgv.Columns("本薪").DefaultCellStyle.BackColor = Color.MistyRose
  97. 合計_dgv.Columns("特休補錢").DefaultCellStyle.BackColor = Color.MistyRose
  98. 合計_dgv.Columns("一段加班1").DefaultCellStyle.BackColor = Color.LightSalmon : 合計_dgv.Columns("一段加班2").DefaultCellStyle.BackColor = Color.LightSalmon
  99. 合計_dgv.Columns("二段加班1").DefaultCellStyle.BackColor = Color.LightSalmon : 合計_dgv.Columns("二段加班2").DefaultCellStyle.BackColor = Color.LightSalmon
  100. 合計_dgv.Columns("國定假日1").DefaultCellStyle.BackColor = Color.LightSalmon : 合計_dgv.Columns("國定假日2").DefaultCellStyle.BackColor = Color.LightSalmon
  101. 合計_dgv.Columns("加班費1").DefaultCellStyle.BackColor = Color.LightSalmon : 合計_dgv.Columns("加班費2").DefaultCellStyle.BackColor = Color.LightSalmon
  102. 合計_dgv.Columns("應付小計1").DefaultCellStyle.BackColor = Color.LightSalmon : 合計_dgv.Columns("應付小計2").DefaultCellStyle.BackColor = Color.LightSalmon
  103. 合計_dgv.Columns("勞保費").DefaultCellStyle.BackColor = Color.LightCyan : 合計_dgv.Columns("健保費").DefaultCellStyle.BackColor = Color.LightCyan
  104. 合計_dgv.Columns("事假").DefaultCellStyle.BackColor = Color.LightCyan : 合計_dgv.Columns("病假").DefaultCellStyle.BackColor = Color.LightCyan
  105. 合計_dgv.Columns("其他減").DefaultCellStyle.BackColor = Color.LightCyan : 合計_dgv.Columns("減項小計1").DefaultCellStyle.BackColor = Color.LightCyan
  106. 合計_dgv.Columns("實付小計1").DefaultCellStyle.BackColor = Color.LightGreen : 合計_dgv.Columns("實付小計2").DefaultCellStyle.BackColor = Color.LightGreen
  107. 合計_dgv.Columns("日期").Visible = False : 合計_dgv.Columns("到職日").Visible = False : 合計_dgv.Columns("全勤").Visible = False
  108. 合計_dgv.Columns("月薪").Visible = False : 合計_dgv.Columns("時薪").Visible = False : 合計_dgv.Columns("特休未修").Visible = False
  109. 合計_dgv.Columns("當月天數").Visible = False : 合計_dgv.Columns("減項小計2").Visible = False : 合計_dgv.Columns("實上基數").Visible = False
  110. 合計_dgv.Columns("時薪特休").Visible = False
  111. For i As Integer = 4 To 16
  112. 合計_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : 合計_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  113. Next
  114. For i As Integer = 18 To 36
  115. 合計_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : 合計_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  116. Next
  117. For i As Integer = 23 To 25
  118. 合計_dgv.Columns(i).DefaultCellStyle.Format = "#,##0.0" : 合計_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  119. Next
  120. For i As Integer = 28 To 30
  121. 合計_dgv.Columns(i).DefaultCellStyle.Format = "#,##0.0" : 合計_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  122. Next
  123. For i As Integer = 38 To 42
  124. 合計_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : 合計_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  125. Next
  126. If 彈性工時_cb.Checked = True Then
  127. 合計_dgv.Columns("一段加班2").Visible = True : 合計_dgv.Columns("二段加班2").Visible = True : 合計_dgv.Columns("國定假日2").Visible = True
  128. 合計_dgv.Columns("加班費2").Visible = True : 合計_dgv.Columns("應付小計2").Visible = True : 合計_dgv.Columns("實付小計2").Visible = True
  129. 合計_dgv.Columns("一段加班1").Visible = False : 合計_dgv.Columns("二段加班1").Visible = False : 合計_dgv.Columns("國定假日1").Visible = False
  130. 合計_dgv.Columns("加班費1").Visible = False : 合計_dgv.Columns("應付小計1").Visible = False : 合計_dgv.Columns("實付小計1").Visible = False
  131. Else
  132. 合計_dgv.Columns("一段加班2").Visible = False : 合計_dgv.Columns("二段加班2").Visible = False : 合計_dgv.Columns("國定假日2").Visible = False
  133. 合計_dgv.Columns("加班費2").Visible = False : 合計_dgv.Columns("應付小計2").Visible = False : 合計_dgv.Columns("實付小計2").Visible = False
  134. 合計_dgv.Columns("一段加班1").Visible = True : 合計_dgv.Columns("二段加班1").Visible = True : 合計_dgv.Columns("國定假日1").Visible = True
  135. 合計_dgv.Columns("加班費1").Visible = True : 合計_dgv.Columns("應付小計1").Visible = True : 合計_dgv.Columns("實付小計1").Visible = True
  136. End If
  137. If 合計_dgv.Rows.Count > 0 Then
  138. 合計_dgv("項", 0).Value = "" : 合計_dgv("姓名", 0).Value = "" : 合計_dgv("實上工時", 0).Value = "0" : 合計_dgv("基本月薪", 0).Value = "0"
  139. 合計_dgv("基本時薪", 0).Value = "0" : 合計_dgv("主管加級", 0).Value = "0" : 合計_dgv("其他說明", 0).Value = "" : 合計_dgv("婚假", 0).Value = "0"
  140. 合計_dgv("職務加級", 0).Value = "0" : 合計_dgv("喪假", 0).Value = "0" : 合計_dgv("其他", 0).Value = "0" : 合計_dgv("未到離職", 0).Value = "0"
  141. 合計_dgv("本薪", 0).Value = "0" : 合計_dgv("一段加班1", 0).Value = "0" : 合計_dgv("一段加班2", 0).Value = "0" : 合計_dgv("二段加班1", 0).Value = "0"
  142. 合計_dgv("二段加班2", 0).Value = "0" : 合計_dgv("國定假日1", 0).Value = "0" : 合計_dgv("國定假日2", 0).Value = "0" : 合計_dgv("加班費1", 0).Value = "0"
  143. 合計_dgv("加班費2", 0).Value = "0" : 合計_dgv("應付小計1", 0).Value = "0" : 合計_dgv("應付小計2", 0).Value = "0" : 合計_dgv("其他說明減", 0).Value = ""
  144. 合計_dgv("勞保費", 0).Value = "0" : 合計_dgv("健保費", 0).Value = "0" : 合計_dgv("事假", 0).Value = "0" : 合計_dgv("病假", 0).Value = "0"
  145. 合計_dgv("其他減", 0).Value = "0" : 合計_dgv("減項小計1", 0).Value = "0" : 合計_dgv("實付小計1", 0).Value = "0" : 合計_dgv("實付小計2", 0).Value = "0"
  146. For i As Integer = 0 To 月清單_dgv.Rows.Count - 1
  147. 合計_dgv("主管加級", 0).Value += 月清單_dgv("主管加級", i).Value : 合計_dgv("職務加級", 0).Value += 月清單_dgv("職務加級", i).Value
  148. 合計_dgv("婚假", 0).Value += 月清單_dgv("婚假", i).Value : 合計_dgv("喪假", 0).Value += 月清單_dgv("喪假", i).Value
  149. 合計_dgv("其他", 0).Value += 月清單_dgv("其他", i).Value : 合計_dgv("未到離職", 0).Value += 月清單_dgv("未到離職", i).Value
  150. 合計_dgv("本薪", 0).Value += 月清單_dgv("本薪", i).Value : 合計_dgv("加班費1", 0).Value += 月清單_dgv("加班費1", i).Value
  151. 合計_dgv("加班費2", 0).Value += 月清單_dgv("加班費2", i).Value : 合計_dgv("應付小計1", 0).Value += 月清單_dgv("應付小計1", i).Value
  152. 合計_dgv("應付小計2", 0).Value += 月清單_dgv("應付小計2", i).Value : 合計_dgv("勞保費", 0).Value += 月清單_dgv("勞保費", i).Value
  153. 合計_dgv("健保費", 0).Value += 月清單_dgv("健保費", i).Value : 合計_dgv("事假", 0).Value += 月清單_dgv("事假", i).Value
  154. 合計_dgv("病假", 0).Value += 月清單_dgv("病假", i).Value : 合計_dgv("其他減", 0).Value += 月清單_dgv("其他減", i).Value
  155. 合計_dgv("減項小計1", 0).Value += 月清單_dgv("減項小計1", i).Value : 合計_dgv("實付小計1", 0).Value += 月清單_dgv("實付小計1", i).Value
  156. 合計_dgv("實付小計2", 0).Value += 月清單_dgv("實付小計2", i).Value
  157. Next
  158. End If
  159. End Sub
  160. Private Sub 年份_下拉表單資料載入()
  161. SQL_考勤明細表_年份_下拉()
  162. 年份_cb.Items.Clear()
  163. While (dr.Read()) : 年份_cb.Items.Add(dr("年份")) : End While
  164. conn.Close()
  165. End Sub
  166. Private Sub 薪資表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  167. 剛開啟 = True
  168. End Sub
  169. Private Sub 薪資表_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  170. 年份_下拉表單資料載入()
  171. 年份_cb.Text = Year(Today) : 月份_cb.SelectedIndex = Month(Today) - 1
  172. PA1 = CInt(年份_cb.Text) - 1911 & "-" & 月份_cb.Text
  173. 讀取打卡時間1() : 剛開啟 = False
  174. End Sub
  175. Private Sub R_bt_Click(sender As Object, e As EventArgs) Handles R_bt.Click
  176. PA1 = CInt(年份_cb.Text) - 1911 & "-" & 月份_cb.Text : 讀取打卡時間1()
  177. End Sub
  178. Private Sub 年份_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 年份_cb.SelectedIndexChanged
  179. If 剛開啟 = False Then : PA1 = CInt(年份_cb.Text) - 1911 & "-" & 月份_cb.Text : 讀取打卡時間1() : End If
  180. End Sub
  181. Private Sub 月份_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 月份_cb.SelectedIndexChanged
  182. If 剛開啟 = False Then : PA1 = CInt(年份_cb.Text) - 1911 & "-" & 月份_cb.Text : 讀取打卡時間1() : End If
  183. End Sub
  184. Private Sub 彈性工時_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 彈性工時_cb.Click
  185. 彈性工時_cb.Checked = True : 正常工時_ch.Checked = False : 格式設定()
  186. End Sub
  187. Private Sub 正常工時_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 正常工時_ch.Click
  188. 彈性工時_cb.Checked = False : 正常工時_ch.Checked = True : 格式設定()
  189. End Sub
  190. Private Sub 列印_bt_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click
  191. xlApp = CType(CreateObject("Excel.Application"), Application)
  192. xlBook = xlApp.Workbooks.Add
  193. xlApp.DisplayAlerts = True
  194. xlApp.Visible = True
  195. xlApp.Application.WindowState = xlMaximized
  196. xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select
  197. xlApp.Sheets(1).Name = "薪資表" : xlBook.Activate() : xlSheet.Activate()
  198. xlSheet.Cells(1, 1) = "黃柏翰皮膚科診所薪資明細表" : xlSheet.Cells(2, 1) = CInt(年份_cb.Text) - 1911 & "年" & 月份_cb.Text & "月 - 全月"
  199. xlSheet.Cells(3, 1) = "項" : xlSheet.Cells(3, 2) = "姓名" : xlSheet.Cells(3, 3) = "工時" : xlSheet.Cells(3, 4) = "基本月薪" : xlSheet.Cells(3, 5) = "基本時薪"
  200. xlSheet.Cells(3, 6) = "主管加級" : xlSheet.Cells(3, 7) = "職務加級" : xlSheet.Cells(3, 8) = "特休" : xlSheet.Cells(3, 9) = "婚假" : xlSheet.Cells(3, 10) = "喪假"
  201. xlSheet.Cells(3, 11) = "其他說明" : xlSheet.Cells(3, 12) = "其他" : xlSheet.Cells(3, 13) = "未到/離職" : xlSheet.Cells(3, 14) = "本薪" : xlSheet.Cells(3, 15) = "一段加班"
  202. xlSheet.Cells(3, 16) = "二段加班" : xlSheet.Cells(3, 17) = "國定假日" : xlSheet.Cells(3, 18) = "加班費" : xlSheet.Cells(3, 19) = "應付小計" : xlSheet.Cells(3, 20) = "勞保費"
  203. xlSheet.Cells(3, 21) = "健保費" : xlSheet.Cells(3, 22) = "事假" : xlSheet.Cells(3, 23) = "病假" : xlSheet.Cells(3, 24) = "其他說明" : xlSheet.Cells(3, 25) = "其他"
  204. xlSheet.Cells(3, 26) = "減項小計" : xlSheet.Cells(3, 27) = "實付小計"
  205. For i As Integer = 0 To 月清單_dgv.Rows.Count - 1
  206. xlSheet.Cells(4 + i, 1) = 月清單_dgv("項", i).Value.ToString : xlSheet.Cells(4 + i, 2) = 月清單_dgv("姓名", i).Value.ToString
  207. xlSheet.Cells(4 + i, 3) = 月清單_dgv("實上工時", i).Value.ToString : xlSheet.Cells(4 + i, 4) = 月清單_dgv("基本月薪", i).Value.ToString
  208. xlSheet.Cells(4 + i, 5) = 月清單_dgv("基本時薪", i).Value.ToString : xlSheet.Cells(4 + i, 6) = 月清單_dgv("主管加級", i).Value.ToString
  209. xlSheet.Cells(4 + i, 7) = 月清單_dgv("職務加級", i).Value.ToString : xlSheet.Cells(4 + i, 8) = 月清單_dgv("特休補錢", i).Value.ToString
  210. xlSheet.Cells(4 + i, 9) = 月清單_dgv("婚假", i).Value.ToString : xlSheet.Cells(4 + i, 10) = 月清單_dgv("喪假", i).Value.ToString
  211. xlSheet.Cells(4 + i, 11) = 月清單_dgv("其他說明", i).Value.ToString : xlSheet.Cells(4 + i, 12) = 月清單_dgv("其他", i).Value.ToString
  212. xlSheet.Cells(4 + i, 13) = 月清單_dgv("未到離職", i).Value.ToString : xlSheet.Cells(4 + i, 14) = 月清單_dgv("本薪", i).Value.ToString
  213. If 彈性工時_cb.Checked = True Then
  214. xlSheet.Cells(4 + i, 15) = 月清單_dgv("一段加班2", i).Value.ToString : xlSheet.Cells(4 + i, 16) = 月清單_dgv("二段加班2", i).Value.ToString
  215. xlSheet.Cells(4 + i, 17) = 月清單_dgv("國定假日2", i).Value.ToString : xlSheet.Cells(4 + i, 18) = 月清單_dgv("加班費2", i).Value.ToString
  216. xlSheet.Cells(4 + i, 19) = 月清單_dgv("應付小計2", i).Value.ToString : xlSheet.Cells(4 + i, 27) = 月清單_dgv("實付小計2", i).Value.ToString
  217. Else
  218. xlSheet.Cells(4 + i, 15) = 月清單_dgv("一段加班1", i).Value.ToString : xlSheet.Cells(4 + i, 16) = 月清單_dgv("二段加班1", i).Value.ToString
  219. xlSheet.Cells(4 + i, 17) = 月清單_dgv("國定假日1", i).Value.ToString : xlSheet.Cells(4 + i, 18) = 月清單_dgv("加班費1", i).Value.ToString
  220. xlSheet.Cells(4 + i, 19) = 月清單_dgv("應付小計1", i).Value.ToString : xlSheet.Cells(4 + i, 27) = 月清單_dgv("實付小計1", i).Value.ToString
  221. End If
  222. xlSheet.Cells(4 + i, 20) = 月清單_dgv("勞保費", i).Value.ToString : xlSheet.Cells(4 + i, 21) = 月清單_dgv("健保費", i).Value.ToString
  223. xlSheet.Cells(4 + i, 22) = 月清單_dgv("事假", i).Value.ToString : xlSheet.Cells(4 + i, 23) = 月清單_dgv("病假", i).Value.ToString
  224. xlSheet.Cells(4 + i, 24) = 月清單_dgv("其他說明", i).Value.ToString : xlSheet.Cells(4 + i, 25) = 月清單_dgv("其他", i).Value.ToString
  225. xlSheet.Cells(4 + i, 26) = 月清單_dgv("減項小計1", i).Value.ToString
  226. Next : 位置1 = 4 + 月清單_dgv.Rows.Count - 1
  227. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 6) = 合計_dgv("主管加級", 0).Value.ToString : xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 9) = 合計_dgv("婚假", 0).Value.ToString
  228. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 7) = 合計_dgv("職務加級", 0).Value.ToString : xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 26) = 合計_dgv("減項小計1", 0).Value.ToString
  229. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 8) = 合計_dgv("特休補錢", 0).Value.ToString : xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 10) = 合計_dgv("喪假", 0).Value.ToString
  230. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 11) = 合計_dgv("其他說明", 0).Value.ToString : xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 12) = 合計_dgv("其他", 0).Value.ToString
  231. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 13) = 合計_dgv("未到離職", 0).Value.ToString : xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 14) = 合計_dgv("本薪", 0).Value.ToString
  232. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 20) = 合計_dgv("勞保費", 0).Value.ToString : xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 21) = 合計_dgv("健保費", 0).Value.ToString
  233. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 22) = 合計_dgv("事假", 0).Value.ToString : xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 23) = 合計_dgv("病假", 0).Value.ToString
  234. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 25) = 合計_dgv("其他", 0).Value.ToString
  235. If 彈性工時_cb.Checked = True Then
  236. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 18) = 合計_dgv("加班費2", 0).Value.ToString : xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 19) = 合計_dgv("應付小計2", 0).Value.ToString
  237. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 27) = 合計_dgv("實付小計2", 0).Value.ToString
  238. Else
  239. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 18) = 合計_dgv("加班費1", 0).Value.ToString : xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 19) = 合計_dgv("應付小計1", 0).Value.ToString
  240. xlSheet.Cells(5 + 月清單_dgv.Rows.Count, 27) = 合計_dgv("實付小計1", 0).Value.ToString
  241. End If : AA(xlApp, xlSheet)
  242. xlSheet.PageSetup.PrintArea = "" : xlApp.Cells.Select() : xlSheet.Range("B1").Select() : xlApp.Application.WindowState = xlMinimized : MsgBox("列印完成")
  243. End Sub
  244. Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
  245. Return CType(xlBook.Worksheets.Add, Worksheet)
  246. End Function
  247. Private Sub AA(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet)
  248. xlSheet.Cells.Select()
  249. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False
  250. .Shadow = False : .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  251. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 3
  252. xlSheet.Columns("C:AA").Select : myExcel.Selection.Style = "Comma" : myExcel.Selection.NumberFormatLocal = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
  253. xlSheet.Columns("B:AA").Select : myExcel.Columns("B:AA").EntireColumn.AutoFit
  254. xlSheet.Rows("3:" & 位置1).Select : myExcel.Selection.RowHeight = 25
  255. myExcel.Range("A3:AA" & 位置1).Select()
  256. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  257. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  258. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  259. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  260. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  261. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  262. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  263. xlSheet.Rows(位置1 + 1 & ":" & 位置1 + 1).Select : myExcel.Selection.RowHeight = 5
  264. myExcel.ActiveWindow.DisplayGridlines = False
  265. xlSheet.Range("A3:A" & 位置1).Select()
  266. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  267. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  268. xlSheet.Range("A3:AA3").Select() : myExcel.Application.WindowState = xlNormal
  269. xlSheet.Range("C3:D" & 位置1).Select()
  270. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent6 : .TintAndShade = 0.799981688894314
  271. .PatternTintAndShade = 0 : End With
  272. xlSheet.Range("F3:N3").Select()
  273. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent1 : .TintAndShade = 0.799981688894314
  274. .PatternTintAndShade = 0 : End With
  275. xlSheet.Range("N4:N" & 位置1).Select()
  276. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent1 : .TintAndShade = 0.799981688894314
  277. .PatternTintAndShade = 0 : End With
  278. xlSheet.Range("O3:S3").Select()
  279. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent2 : .TintAndShade = 0.799981688894314
  280. .PatternTintAndShade = 0 : End With
  281. xlSheet.Range("S4:S" & 位置1).Select()
  282. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent2 : .TintAndShade = 0.799981688894314
  283. .PatternTintAndShade = 0 : End With
  284. xlSheet.Range("T3:U" & 位置1).Select()
  285. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorDark2 : .TintAndShade = -0.0999786370433668
  286. .PatternTintAndShade = 0 : End With
  287. xlSheet.Range("V3:Z3").Select()
  288. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent4 : .TintAndShade = 0.799981688894314
  289. .PatternTintAndShade = 0 : End With
  290. xlSheet.Range("Z4:Z" & 位置1).Select()
  291. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent4 : .TintAndShade = 0.799981688894314
  292. .PatternTintAndShade = 0 : End With
  293. xlSheet.Range("AA3:AA" & 位置1 + 2).Select()
  294. With myExcel.Selection.Font : .Color = -16776961 : .TintAndShade = 0 : End With
  295. xlSheet.Range("A3:AA3").Select() : myExcel.Selection.Font.Bold = True
  296. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  297. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  298. xlSheet.Range("A2:AA2").Select()
  299. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  300. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  301. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False
  302. .Shadow = False : .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  303. xlSheet.Range("A1:AA1").Select()
  304. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  305. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  306. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 18 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False
  307. .Shadow = False : .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  308. myExcel.Selection.Font.Bold = True
  309. xlSheet.Range("A3:AA3").Select()
  310. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  311. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  312. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  313. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  314. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  315. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  316. myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  317. xlSheet.Range("A4:AA" & 位置1 + 2).Select()
  318. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  319. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  320. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  321. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  322. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  323. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  324. End Sub
  325. End Class