Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

國定假日設定_舊.vb 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. Option Strict Off
  2. Public Class 國定假日設定_舊
  3. Private ReadOnly ds As DataSet = New DataSet
  4. Private ReadOnly ds1 As DataSet = New DataSet
  5. Dim 編號 As String
  6. Private Sub Set_考勤明細()
  7. 明細_DGV.DataSource = Nothing : ds.Clear()
  8. 明細_DGV.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  9. 明細_DGV.ColumnHeadersHeight = 25
  10. 明細_DGV.AllowUserToAddRows = False
  11. ConnOpen()
  12. SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, AA.請假類別, AA.事由, AA.是否生效, AA.核准人, AA.核准日期, QQ.上午上班, QQ.上午上班 AS 上午下班, QQ.上午上班 AS 上午工時, QQ.下午下班 AS 下午上班,
  13. QQ.下午下班, QQ.下午下班 AS 下午工時, QQ.下午下班 AS 整日工時, BB.上午補登, BB.下午補登, BB.公出事由, QQ.員工編號
  14. FROM 萬年曆 LEFT OUTER JOIN
  15. (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期
  16. FROM 人事請假單
  17. WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & ComboBox1.Text & "/" & ComboBox2.Text & "%')) AS AA ON 萬年曆.日期 = AA.日期
  18. LEFT OUTER JOIN
  19. (SELECT 員工編號, 日期, 請假類別, 上午上班, 下午下班
  20. FROM 人事考勤明細表
  21. WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & ComboBox1.Text & "/" & ComboBox2.Text & "%')) AS QQ ON 萬年曆.日期 = QQ.日期
  22. LEFT OUTER JOIN
  23. (SELECT 員工編號, 日期, 上午補登, 下午補登, 公出事由
  24. FROM 人事漏打卡補登紀錄
  25. WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & ComboBox1.Text & "/" & ComboBox2.Text & "%')) AS BB ON 萬年曆.日期 = BB.日期
  26. WHERE (萬年曆.日期 LIKE '" & ComboBox1.Text & "/" & ComboBox2.Text & "%') ORDER BY 萬年曆.日期"
  27. CmdSet_For_DGV() : da.Fill(ds) : 明細_DGV.DataSource = ds.Tables(0) : conn.Close() : Set_grid()
  28. End Sub
  29. Private Sub Set_grid()
  30. 明細_DGV.Columns(0).FillWeight = 85 : 明細_DGV.Columns(1).FillWeight = 60 : 明細_DGV.Columns(2).FillWeight = 90 : 明細_DGV.Columns(3).FillWeight = 262
  31. 明細_DGV.Columns(4).FillWeight = 80 : 明細_DGV.Columns(5).FillWeight = 65 : 明細_DGV.Columns(6).FillWeight = 90 : 明細_DGV.Columns(7).FillWeight = 75
  32. 明細_DGV.Columns(8).FillWeight = 75 : 明細_DGV.Columns(9).FillWeight = 80 : 明細_DGV.Columns(10).FillWeight = 75 : 明細_DGV.Columns(11).FillWeight = 75
  33. 明細_DGV.Columns(12).FillWeight = 80 : 明細_DGV.Columns(13).FillWeight = 90 : 明細_DGV.Columns(14).FillWeight = 70 : 明細_DGV.Columns(15).FillWeight = 70
  34. 明細_DGV.Columns(16).FillWeight = 262 : 明細_DGV.Columns(17).Visible = False
  35. Dim T, S, F, M, T1, S1 As Integer : Dim T2, S2, F2, M2 As String : Dim 上午 As Integer = 0 : Dim 下午 As Integer = 0
  36. For i As Integer = 0 To 明細_DGV.Rows.Count - 1
  37. 資料數 = 明細_DGV.Rows.Count : MyModule1.進度條()
  38. Dim QASW As Integer = 0
  39. If 明細_DGV.Rows(i).Cells("上午上班").Value.ToString <> "" Then
  40. 明細_DGV.Rows(i).Cells("上午下班").Value = "12:00:00"
  41. Dim TSFM As Integer = DateDiff("s", 明細_DGV.Rows(i).Cells("上午上班").Value.ToString, 明細_DGV.Rows(i).Cells("上午下班").Value)
  42. T = TSFM \ 86400 : T1 = TSFM Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
  43. If T = 0 Then : T2 = "" : Else : T2 = T & "天" : End If : If S = 0 Then : S2 = "" : Else : S2 = S & "時" : End If : If F = 0 Then : F2 = "" : Else : F2 = F & "分" : End If : M2 = M & "秒"
  44. 明細_DGV.Rows(i).Cells("上午工時").Value = T2 & S2 & F2 & M2
  45. QASW += TSFM : 上午 += TSFM
  46. End If
  47. If 明細_DGV.Rows(i).Cells("下午下班").Value.ToString <> "" Then
  48. 明細_DGV.Rows(i).Cells("下午上班").Value = "13:00:00"
  49. Dim TSFM As Integer = DateDiff("s", 明細_DGV.Rows(i).Cells("下午上班").Value.ToString, 明細_DGV.Rows(i).Cells("下午下班").Value)
  50. If TSFM > 23400 Then
  51. TSFM -= 5400
  52. End If
  53. T = TSFM \ 86400 : T1 = TSFM Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
  54. If T = 0 Then : T2 = "" : Else : T2 = T & "天" : End If : If S = 0 Then : S2 = "" : Else : S2 = S & "時" : End If : If F = 0 Then : F2 = "" : Else : F2 = F & "分" : End If : M2 = M & "秒"
  55. 明細_DGV.Rows(i).Cells("下午工時").Value = T2 & S2 & F2 & M2
  56. QASW += TSFM : 下午 += TSFM
  57. End If
  58. If QASW = 0 Then : Else
  59. T = QASW \ 86400 : T1 = QASW Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
  60. If T = 0 Then : T2 = "" : Else : T2 = T & "天" : End If : If S = 0 Then : S2 = "" : Else : S2 = S & "時" : End If : If F = 0 Then : F2 = "" : Else : F2 = F & "分" : End If : M2 = M & "秒"
  61. 明細_DGV.Rows(i).Cells("整日工時").Value = T2 & S2 & F2 & M2
  62. End If
  63. If 明細_DGV.Rows(i).Cells("星期").Value.ToString = "星期六" Then : 明細_DGV.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
  64. ElseIf 明細_DGV.Rows(i).Cells("星期").Value.ToString = "星期日" Then : 明細_DGV.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
  65. ElseIf 明細_DGV.Rows(i).Cells("請假類別").Value.ToString = "國定假日" Then : 明細_DGV.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
  66. ElseIf 明細_DGV.Rows(i).Cells("請假類別").Value.ToString <> "" Then : 明細_DGV.Rows(i).DefaultCellStyle.BackColor = Color.LightYellow
  67. End If
  68. Next : GCM_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
  69. End Sub
  70. Private Sub Set_人員清單()
  71. 人員_dgv.DataSource = Nothing : ds1.Clear()
  72. 人員_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  73. 人員_dgv.ColumnHeadersHeight = 25
  74. 人員_dgv.AllowUserToAddRows = False
  75. ConnOpen()
  76. SQL1 = "SELECT 人事資料表.員工編號, 使用者權限管理表.姓名 AS 系統登入姓名, 人事資料表.姓名, 人事資料表.入職日期, 人事資料表.離職日期
  77. FROM 使用者權限管理表 LEFT OUTER JOIN
  78. 人事資料表 ON 使用者權限管理表.員工編號 = 人事資料表.員工編號 AND
  79. 使用者權限管理表.姓名 = 人事資料表.系統登入姓名
  80. WHERE (使用者權限管理表.CC27 = 0) AND (人事資料表.員工編號 IS NOT NULL) AND (人事資料表.離職日期 LIKE '在職')
  81. ORDER BY 使用者權限管理表.姓名"
  82. CmdSet_For_DGV() : da.Fill(ds1) : 人員_dgv.DataSource = ds1.Tables(0) : conn.Close()
  83. 人員_dgv.Columns(0).FillWeight = 150 : 人員_dgv.Columns(1).FillWeight = 150 : 人員_dgv.Columns(2).Visible = False : 人員_dgv.Columns(3).Visible = False
  84. 人員_dgv.Columns(4).Visible = False
  85. End Sub
  86. Private Sub ComboBox1下拉表單資料載入()
  87. conn.Close()
  88. ConnOpen()
  89. SQL1 = "SELECT 年份 FROM 年份清單 ORDER BY 年份 DESC"
  90. CmdSet_For_dr()
  91. ComboBox1.Items.Clear()
  92. While (dr.Read()) : ComboBox1.Items.Add(dr("年份")) : End While
  93. conn.Close()
  94. End Sub
  95. Private Sub ComboBox3下拉表單資料載入()
  96. conn.Close()
  97. ConnOpen()
  98. SQL1 = "SELECT 請假類別 FROM GCM請假類別 WHERE 請假類別 LIKE '%國%' ORDER BY 請假類別 DESC"
  99. CmdSet_For_dr()
  100. 請假類別_cb.Items.Clear()
  101. While (dr.Read()) : 請假類別_cb.Items.Add(dr("請假類別")) : End While
  102. conn.Close()
  103. End Sub
  104. Private Sub 國定假日設定_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  105. Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  106. Set_人員清單() : ComboBox1下拉表單資料載入() : ComboBox3下拉表單資料載入()
  107. ComboBox1.Text = Year(Today) : ComboBox2.SelectedIndex = Month(Today) - 1
  108. End Sub
  109. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  110. timeNow = 0
  111. GCM_ERP_SYS.Timer1.Enabled = False
  112. GCM_ERP_SYS.Timer1.Enabled = True
  113. End Sub
  114. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  115. timeNow = 0
  116. GCM_ERP_SYS.Timer1.Enabled = False
  117. GCM_ERP_SYS.Timer1.Enabled = True
  118. End Sub
  119. Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 明細_DGV.CellClick
  120. If e.RowIndex = -1 Then : Else
  121. TextBox4.Text = 明細_DGV(0, e.RowIndex).Value.ToString
  122. End If
  123. End Sub
  124. Private Sub DataGridView2_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 人員_dgv.CellClick
  125. If e.RowIndex = -1 Then : Else
  126. 編號 = 人員_dgv(0, e.RowIndex).Value.ToString : TextBox2.Text = 人員_dgv(0, e.RowIndex).Value.ToString
  127. DateTimePicker1.Value = 人員_dgv(3, e.RowIndex).Value.ToString : TextBox1.Text = 人員_dgv(1, e.RowIndex).Value.ToString
  128. Set_考勤明細()
  129. Dim TSFM As Integer = DateDiff("d", DateTimePicker1.Value, Today()) : TextBox18.Text = TSFM
  130. ConnOpen()
  131. SQL1 = "SELECT 部門 FROM 使用者權限管理表 WHERE (員工編號 = '" & 編號 & "')"
  132. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  133. If dr.Read() Then
  134. TextBox3.Text = dr("部門").ToString
  135. End If
  136. conn.Close()
  137. End If
  138. End Sub
  139. Private Sub Set_日期格式轉換()
  140. DTP = Format(Today(), "yyyy/MM/dd")
  141. End Sub
  142. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  143. If TextBox1.Text = "" Or TextBox4.Text = "" Or TextBox5.Text = "" Or 請假類別_cb.Text = "" Then
  144. MsgBox("請檢查資料是否有填選完畢")
  145. Else
  146. For I As Integer = 0 To 人員_dgv.Rows.Count - 1
  147. ConnOpen()
  148. SQL1 = "SELECT 員工編號 FROM 人事請假單 WHERE (員工編號 LIKE N'" & 人員_dgv("員工編號", I).Value.ToString & "') AND (日期 LIKE '" & TextBox4.Text & "')"
  149. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  150. If dr.Read() Then
  151. conn.Close()
  152. Else
  153. conn.Close()
  154. ConnOpen()
  155. SQL1 = "INSERT INTO 人事請假單 (員工編號, 日期, 請假類別, 事由, 是否生效) SELECT N'" & 人員_dgv("員工編號", I).Value.ToString & "',N'" & TextBox4.Text & "',N'" & 請假類別_cb.Text &
  156. "','" & TextBox5.Text & "','申請中'"
  157. CmdSet_For_dr() : conn.Close()
  158. Set_日期格式轉換()
  159. ConnOpen()
  160. SQL1 = "UPDATE 人事請假單 SET 核准人 = N'" & gUserName & "', 核准日期 = N'" & DTP & "', 是否生效 = N'已核准'
  161. WHERE (員工編號 LIKE N'" & 人員_dgv("員工編號", I).Value.ToString & "') AND (日期 LIKE '" & TextBox4.Text & "%')"
  162. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close() : conn.Close()
  163. Dim 有無資料判別 As String = ""
  164. ConnOpen()
  165. SQL1 = "SELECT 員工編號 FROM 人事考勤明細表 WHERE 員工編號 LIKE N'" & 人員_dgv("員工編號", I).Value.ToString & "' AND 日期 LIKE '" & TextBox4.Text & "'"
  166. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  167. If dr.Read() Then : 有無資料判別 = dr("員工編號").ToString : End If : conn.Close()
  168. If 有無資料判別 = "" Then
  169. ConnOpen()
  170. SQL1 = "INSERT INTO 人事考勤明細表 (員工編號, 日期, 請假類別, 上午上班, 下午下班)
  171. SELECT N'" & 人員_dgv("員工編號", I).Value.ToString & "', N'" & TextBox4.Text & "', N'" & 請假類別_cb.Text & "','',''"
  172. CmdSet_For_dr() : conn.Close()
  173. Else
  174. ConnOpen()
  175. SQL1 = "UPDATE 人事考勤明細表 SET 請假類別 = N'" & 請假類別_cb.Text & "'
  176. WHERE (員工編號 LIKE N'" & 人員_dgv("員工編號", I).Value.ToString & "') AND (日期 LIKE '" & TextBox4.Text & "')"
  177. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close() : conn.Close()
  178. End If
  179. End If
  180. Next
  181. Set_考勤明細()
  182. MsgBox("核准完成")
  183. End If
  184. End Sub
  185. End Class