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

SQL_排班系統.vb 9.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. Module SQL_排班系統
  2. Friend Sub SQL_排班系統_月份()
  3. ConnOpen()
  4. SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, AQAQ.請假類別 AS 休假
  5. FROM 萬年曆 LEFT OUTER JOIN
  6. (SELECT 日期 AS 日, 請假類別 FROM 人事請假單
  7. WHERE (請假類別 NOT LIKE N'特休') AND (請假類別 NOT LIKE N'%假') AND (請假類別 NOT LIKE N'未到') AND (請假類別 NOT LIKE N'離職')
  8. GROUP BY 日期, 請假類別) AS AQAQ ON 萬年曆.日期 = AQAQ.日
  9. WHERE (萬年曆.日期 LIKE N'" & PA1 & "/" & PA2 & "%')"
  10. CmdSet_For_DGV()
  11. End Sub
  12. Friend Sub SQL_排班系統_人員排班()
  13. ConnOpen()
  14. SQL1 = "SELECT 排班資料表.姓名, COUNT(排班資料表.姓名) AS 天數, SUM(排班資料表.排時) AS 本月應上時數,
  15. SUM(CASE WHEN AA.請假類別 IS NULL THEN 排班資料表.排時 ELSE 0 END) AS 已排班時數,
  16. SUM(CASE WHEN AA.請假類別 IS NULL THEN 0 ELSE 排班資料表.排時 END) AS 未排班時數,
  17. SUM(CASE WHEN AA.請假類別 = '國定假日' OR
  18. 萬年曆.星期 = '星期六' THEN 1 ELSE 0 END) AS 假日出勤
  19. FROM 排班資料表 LEFT OUTER JOIN
  20. 萬年曆 ON 排班資料表.日期 = 萬年曆.日期 LEFT OUTER JOIN
  21. (SELECT 日期, 請假類別
  22. FROM 人事請假單
  23. WHERE (請假類別 LIKE '國定假日') AND (日期 LIKE N'" & PA & "%')
  24. GROUP BY 日期, 請假類別) AS AA ON 排班資料表.日期 = AA.日期
  25. WHERE (排班資料表.日期 LIKE N'" & PA & "%') AND (排班資料表.姓名 NOT LIKE '') AND (排班資料表.班別 NOT LIKE N'休%')
  26. GROUP BY 排班資料表.姓名
  27. ORDER BY 排班資料表.姓名"
  28. CmdSet_For_DGV()
  29. End Sub
  30. Friend Sub SQL_排班系統_當天排班()
  31. ConnOpen()
  32. If 排班資料.職員_ch.Checked = True Then
  33. SQL1 = "SELECT 班別, STRING_AGG(姓名, N'、') AS 人員 FROM 排班資料表
  34. WHERE (日期 LIKE N'" & PA & "') AND (姓名 NOT LIKE N'') AND (排班資料表.班別 NOT LIKE N'休%')
  35. GROUP BY 班別 ORDER BY 班別"
  36. Else
  37. SQL1 = "SELECT 班別, 人員
  38. FROM (SELECT 診別 + '-' + '早' AS 班別, 早 AS 人員 FROM 門診資料 WHERE (日期 LIKE N'" & PA & "')
  39. UNION
  40. SELECT 診別 + '-' + '中' AS 班別, 中 AS 人員 FROM 門診資料 AS 門診資料_2 WHERE (日期 LIKE N'" & PA & "')
  41. UNION
  42. SELECT 診別 + '-' + '晚' AS 班別, 晚 AS 人員 FROM 門診資料 AS 門診資料_1 WHERE (日期 LIKE N'" & PA & "')) AS SubQuery
  43. ORDER BY CASE WHEN 班別 LIKE '%早' THEN 1 WHEN 班別 LIKE '%中' THEN 2 WHEN 班別 LIKE '%晚' THEN 3 END"
  44. End If
  45. CmdSet_For_DGV()
  46. End Sub
  47. Friend Sub SQL_排班系統_班別_下拉()
  48. ConnOpen() : SQL1 = "SELECT 時段 FROM 時段設定 ORDER BY ID" : CmdSet_For_dr()
  49. End Sub
  50. Friend Sub SQL_排班系統_職務_下拉()
  51. ConnOpen() : SQL1 = "SELECT 職務 FROM 工作職務 ORDER BY 職務" : CmdSet_For_dr()
  52. End Sub
  53. Friend Sub SQL_排班系統_班別_人員()
  54. ConnOpen()
  55. SQL1 = "SELECT DIN AS [No.], DIN AS 編號, UserName AS 姓名
  56. FROM ras_Users
  57. WHERE (IsLockedOut = 0) AND (DIN <> 18) AND (DIN <> 19) AND (DIN <> 21)
  58. ORDER BY CAST(Password AS int)"
  59. CmdSet_For_DGV()
  60. End Sub
  61. Friend Sub SQL_排班系統_班別_人員_全()
  62. ConnOpen()
  63. SQL1 = "SELECT DIN AS [No.], DIN AS 編號, UserName AS 姓名
  64. FROM ras_Users
  65. WHERE (DIN <> 18) AND (DIN <> 19) AND (DIN <> 21)
  66. ORDER BY CAST(Password AS int)"
  67. CmdSet_For_DGV()
  68. End Sub
  69. Friend Sub SQL_排班系統_班別_排班()
  70. ConnOpen()
  71. SQL1 = "SELECT 姓名, 班別, 上班時段, 時數, 半天, 休息, 一段, 二段, 顏色1, 顏色2, 項次, CAST(項次 AS INT) AS 項
  72. FROM 排班資料表
  73. WHERE (日期 LIKE N'" & PA & "')
  74. ORDER BY CAST(項次 AS INT)"
  75. CmdSet_For_DGV()
  76. End Sub
  77. Friend Sub SQL_排班系統_個人整月排班()
  78. ConnOpen()
  79. SQL1 = "SELECT RIGHT(日期, 2) AS 項次, 姓名, 班別, 上班時段, 時數, 半天, 休息, 一段, 二段, 顏色1, 顏色2
  80. FROM 排班資料表
  81. WHERE (日期 LIKE N'" & PA & "%') AND (姓名 LIKE N'" & PA2 & "')
  82. ORDER BY 日期"
  83. CmdSet_For_DGV()
  84. End Sub
  85. Friend Sub SQL_排班系統_個人整月星期()
  86. ConnOpen()
  87. SQL1 = "SELECT 星期, 班表簽認 FROM 萬年曆 WHERE (日期 LIKE N'" & PA & "%') ORDER BY 日期"
  88. CmdSet_For_DGV()
  89. End Sub
  90. Friend Sub SQL_排班明細_判斷是否有資料()
  91. ConnOpen() : SQL1 = "SELECT 日期 FROM 排班資料表 WHERE 日期 LIKE N'" & PA & "'" : CmdSet_For_dr()
  92. End Sub
  93. Friend Sub SQL_排班明細_刪除當天()
  94. ConnOpen() : SQL1 = "DELETE 排班資料表 WHERE 日期 LIKE N'" & PA & "'" : CmdSet_For_dr()
  95. End Sub
  96. Friend Sub SQL_排班明細_新增當天()
  97. ConnOpen()
  98. SQL1 = "INSERT INTO 排班資料表 (日期, 項次, 姓名, 班別, 上班時段, 時數, 半天, 休息, 一段, 二段, 排時, 顏色1, 顏色2)
  99. VALUES (N'" & PA & "', N'" & PA1 & "', N'" & PA2 & "', N'" & PA3 & "', N'" & PA4 & "', N'" & Do2 & "', N'" & BL1 & "', " & Do1 & ", N'" & PA5 & "', N'" & PA6 & "', N'" & Do3 & "',
  100. N'" & PA7 & "', N'" & PA8 & "')"
  101. CmdSet_For_dr()
  102. End Sub
  103. Friend Sub SQL_排班簽核讀取()
  104. ConnOpen() : SQL1 = "SELECT 班表簽認, 值日生1, 值日生2 FROM 萬年曆 WHERE 日期 LIKE N'" & PA & "'" : CmdSet_For_dr()
  105. End Sub
  106. Friend Sub SQL_排班簽核()
  107. ConnOpen() : SQL1 = "UPDATE 萬年曆 SET 班表簽認 = N'Y' WHERE 日期 LIKE N'" & PA & "'" : CmdSet_For_dr()
  108. End Sub
  109. Friend Sub SQL_值日生存檔()
  110. ConnOpen() : SQL1 = "UPDATE 萬年曆 SET 值日生1 = N'" & PA13 & "', 值日生2 = N'" & PA14 & "' WHERE 日期 LIKE N'" & PA & "'" : CmdSet_For_dr()
  111. End Sub
  112. Friend Sub SQL_排班明細_上午上班()
  113. ConnOpen() : SQL1 = "SELECT 上午上班 FROM 時段設定 WHERE 時段 like N'" & PA3 & "'" : CmdSet_For_dr()
  114. End Sub
  115. Friend Sub SQL_排班系統_星期()
  116. ConnOpen()
  117. SQL1 = "SELECT 星期 FROM 萬年曆 WHERE (萬年曆.日期 LIKE N'" & PA & "%')"
  118. CmdSet_For_dr()
  119. End Sub
  120. Friend Sub SQL_門診_健保()
  121. ConnOpen()
  122. SQL1 = "SELECT 星期, 診別, 早, 中, 晚 FROM 門診資料 WHERE 日期 LIKE N'" & PA & "' AND 診別 LIKE N'健保'"
  123. CmdSet_For_dr()
  124. End Sub
  125. Friend Sub SQL_門診_美容()
  126. ConnOpen()
  127. SQL1 = "SELECT 星期, 診別, 早, 中, 晚 FROM 門診資料 WHERE 日期 LIKE N'" & PA & "' AND 診別 LIKE N'醫美'"
  128. CmdSet_For_dr()
  129. End Sub
  130. Friend Sub SQL_人員備註()
  131. ConnOpen()
  132. SQL1 = "SELECT 人員備註, 職位, 性質, 早班, 晚班, 崗位01, 崗位02, 崗位03, 崗位04, 崗位05, 崗位06, 崗位07, 崗位08, 穩定 FROM 使用者權限管理表 WHERE (DIN LIKE N'" & PA & "')"
  133. CmdSet_For_dr()
  134. End Sub
  135. Friend Sub SQL_人員備註修改()
  136. ConnOpen()
  137. SQL1 = "UPDATE 使用者權限管理表 SET 人員備註 = N'" & PA10 & "', 職位 = N'" & PA11 & "', 性質 = N'" & PA12 & "', 早班 = N'" & PA13 & "', 晚班 = N'" & PA14 & "', 崗位01 = N'" & PA9 & "',
  138. 崗位02 = N'" & PA8 & "', 崗位03 = N'" & PA7 & "', 崗位04 = N'" & PA6 & "', 崗位05 = N'" & PA5 & "', 崗位06 = N'" & PA4 & "', 崗位07 = N'" & PA3 & "',
  139. 崗位08 = N'" & PA2 & "', 穩定 = N'" & PA1 & "'
  140. WHERE (DIN LIKE N'" & PA & "')"
  141. CmdSet_For_dr()
  142. End Sub
  143. Friend Sub SQL_人員備註清單()
  144. ConnOpen()
  145. SQL1 = "SELECT ras_Users.DIN AS [No.], ras_Users.DIN AS 編號, ras_Users.UserName AS 姓名, 使用者權限管理表.職位,
  146. 使用者權限管理表.性質, 使用者權限管理表.早班, 使用者權限管理表.晚班, 使用者權限管理表.崗位01 AS [1F掛號],
  147. 使用者權限管理表.崗位02 AS [1F掛號(實)], 使用者權限管理表.崗位03 AS [1F跟診], 使用者權限管理表.崗位04 AS [1F治療],
  148. 使用者權限管理表.崗位05 AS [1F治療(實)], 使用者權限管理表.崗位06 AS [2F櫃台], 使用者權限管理表.崗位07 AS [2F醫美],
  149. 使用者權限管理表.崗位08 AS [行政], 使用者權限管理表.穩定, 使用者權限管理表.人員備註
  150. FROM ras_Users INNER JOIN 使用者權限管理表 ON ras_Users.DIN = 使用者權限管理表.DIN
  151. WHERE (ras_Users.IsLockedOut = 0) AND (ras_Users.DIN <> 18) AND (ras_Users.DIN <> 19) AND (ras_Users.DIN <> 21)
  152. ORDER BY CAST(ras_Users.Password AS int)"
  153. CmdSet_For_DGV()
  154. End Sub
  155. End Module