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 71KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625
  1. Public Class 拆帳制考勤文件導入
  2. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  3. Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  4. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  5. Dim file_name, 文件判斷 As String
  6. Private Sub 拆帳制考勤文件導入_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  7. End Sub
  8. Private Sub 拆帳制考勤文件導入_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  9. SQL_營運成本收支單對帳表_查詢最後一筆年份清單() : 年份_cb.Items.Clear() : 年份_cb.Items.Add("") : While (dr.Read()) : 年份_cb.Items.Add(dr("年份")) : End While : conn.Close()
  10. End Sub
  11. Private Sub 選路徑1_bt_Click(sender As Object, e As EventArgs) Handles 選路徑1_bt.Click
  12. If 開啟檔案.ShowDialog <> Windows.Forms.DialogResult.Cancel Then : 路徑1_tb.Text = 開啟檔案.FileName
  13. '----------服務紀錄總表-----------------------------------------------------------------------------------------------------------------------------------------------
  14. file_name = 路徑1_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  15. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  16. 文件判斷 = xlSheet.Cells(2, 1).value : 文件判斷 &= xlSheet.Cells(3, 1).value : 文件判斷 &= xlSheet.Cells(3, 2).value : 文件判斷 &= xlSheet.Cells(3, 3).value
  17. 文件判斷 &= xlSheet.Cells(3, 4).value : 文件判斷 &= xlSheet.Cells(3, 5).value : 文件判斷 &= xlSheet.Cells(3, 6).value : 文件判斷 &= xlSheet.Cells(3, 7).value
  18. If 文件判斷 = "服務紀錄編號案號服務項目代碼服務項目類別身分證字號姓名服務日期" Then : Else : MsgBox("服務紀錄總表 檔案不吻合!!") : 路徑1_tb.Text = "" : End If
  19. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  20. End If
  21. End Sub
  22. Private Sub 選路徑2_bt_Click(sender As Object, e As EventArgs) Handles 選路徑2_bt.Click
  23. If 開啟檔案.ShowDialog <> Windows.Forms.DialogResult.Cancel Then : 路徑2_tb.Text = 開啟檔案.FileName
  24. '----------拆 帳 明 細 表-----------------------------------------------------------------------------------------------------------------------------------------------
  25. file_name = 路徑2_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  26. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  27. 文件判斷 = xlSheet.Cells(2, 1).value : 文件判斷 &= xlSheet.Cells(3, 1).value : 文件判斷 &= xlSheet.Cells(3, 2).value : 文件判斷 &= xlSheet.Cells(3, 3).value
  28. 文件判斷 &= xlSheet.Cells(3, 4).value : 文件判斷 &= xlSheet.Cells(3, 5).value : 文件判斷 &= xlSheet.Cells(3, 6).value : 文件判斷 &= xlSheet.Cells(3, 7).value
  29. If 文件判斷 = "員工基本資料序號姓名身分證字號主責督導副督導總服務金額公司拆帳金額" Then : Else : MsgBox("拆帳明細表 檔案不吻合!!") : 路徑2_tb.Text = "" : End If
  30. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  31. End If
  32. End Sub
  33. Private Sub 選路徑3_bt_Click(sender As Object, e As EventArgs) Handles 選路徑3_bt.Click
  34. If 開啟檔案.ShowDialog <> Windows.Forms.DialogResult.Cancel Then : 路徑3_tb.Text = 開啟檔案.FileName
  35. '----------薪資報表明細-----------------------------------------------------------------------------------------------------------------------------------------------
  36. file_name = 路徑3_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  37. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  38. 文件判斷 = xlSheet.Cells(3, 1).value : 文件判斷 &= xlSheet.Cells(3, 2).value : 文件判斷 &= xlSheet.Cells(3, 3).value : 文件判斷 &= xlSheet.Cells(3, 4).value
  39. 文件判斷 &= xlSheet.Cells(3, 5).value : 文件判斷 &= xlSheet.Cells(3, 6).value : 文件判斷 &= xlSheet.Cells(3, 7).value : 文件判斷 &= xlSheet.Cells(3, 8).value
  40. If 文件判斷 = "序員工編號分類姓名主責督導B碼時薪G碼/S碼時薪轉場費計算 (排班時間)" Or 文件判斷 = "序員工編號分類姓名主責督導B碼時薪G碼/S碼時薪轉場費計算 (交通時間: Google Map)" Then
  41. Else : MsgBox("薪資報表明細 檔案不吻合!!") : 路徑3_tb.Text = "" : End If
  42. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  43. End If
  44. End Sub
  45. Private Sub 選路徑4_bt_Click(sender As Object, e As EventArgs) Handles 選路徑4_bt.Click
  46. If 開啟檔案.ShowDialog <> Windows.Forms.DialogResult.Cancel Then : 路徑4_tb.Text = 開啟檔案.FileName
  47. '----------每 日 明 細-----------------------------------------------------------------------------------------------------------------------------------------------
  48. file_name = 路徑4_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  49. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  50. 文件判斷 = xlSheet.Cells(3, 1).value : 文件判斷 &= xlSheet.Cells(3, 2).value : 文件判斷 &= xlSheet.Cells(3, 3).value : 文件判斷 &= xlSheet.Cells(3, 4).value
  51. 文件判斷 &= xlSheet.Cells(3, 5).value : 文件判斷 &= xlSheet.Cells(3, 6).value : 文件判斷 &= xlSheet.Cells(3, 7).value : 文件判斷 &= xlSheet.Cells(3, 8).value
  52. If 文件判斷 = "序員工編號分類姓名主責督導B碼時薪G碼/S碼時薪日期" Then : Else : MsgBox("每日明細 檔案不吻合!!") : 路徑4_tb.Text = "" : End If
  53. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  54. End If
  55. End Sub
  56. Private Sub 選路徑5_bt_Click(sender As Object, e As EventArgs) Handles 選路徑5_bt.Click
  57. If 開啟檔案.ShowDialog <> Windows.Forms.DialogResult.Cancel Then : 路徑5_tb.Text = 開啟檔案.FileName
  58. '----------個 案 總 表-----------------------------------------------------------------------------------------------------------------------------------------------
  59. file_name = 路徑5_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  60. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  61. 文件判斷 = xlSheet.Cells(3, 1).value : 文件判斷 &= xlSheet.Cells(3, 2).value : 文件判斷 &= xlSheet.Cells(3, 3).value : 文件判斷 &= xlSheet.Cells(3, 4).value
  62. 文件判斷 &= xlSheet.Cells(3, 5).value : 文件判斷 &= xlSheet.Cells(3, 6).value : 文件判斷 &= xlSheet.Cells(3, 7).value : 文件判斷 &= xlSheet.Cells(3, 8).value
  63. If 文件判斷 = "編號目前狀態個案來源案號衛福案號分類姓名性別" Then : Else : MsgBox("個案總表 檔案不吻合!!") : 路徑5_tb.Text = "" : End If
  64. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  65. End If
  66. End Sub
  67. Private Sub 選路徑6_bt_Click(sender As Object, e As EventArgs) Handles 選路徑6_bt.Click
  68. If 開啟檔案.ShowDialog <> Windows.Forms.DialogResult.Cancel Then : 路徑6_tb.Text = 開啟檔案.FileName
  69. '----------長照A碼清冊-----------------------------------------------------------------------------------------------------------------------------------------------
  70. file_name = 路徑6_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  71. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  72. 文件判斷 = xlSheet.Cells(4, 1).value : 文件判斷 &= xlSheet.Cells(4, 2).value : 文件判斷 &= xlSheet.Cells(4, 3).value : 文件判斷 &= xlSheet.Cells(4, 4).value
  73. 文件判斷 &= xlSheet.Cells(4, 5).value : 文件判斷 &= xlSheet.Cells(4, 6).value : 文件判斷 &= xlSheet.Cells(4, 7).value : 文件判斷 &= xlSheet.Cells(4, 8).value
  74. If 文件判斷 = "序號服務代碼採用計畫CMS等級服務項目類別身分證號個案姓名給付價格" Then
  75. 'For i As Integer = 5 To 99999
  76. ' If IsNothing(xlSheet.Cells(i, 17).value) = True Then : Exit For : ElseIf xlSheet.Cells(i, 17).value.ToString.Contains("、") Then
  77. ' MsgBox("長照A碼清冊 內部檢測到有服務人員資料沒有拆開,請新確認檔案內容!!") : 路徑6_tb.Text = "" : Exit For
  78. ' End If
  79. 'Next
  80. Else : MsgBox("長照A碼清冊 檔案不吻合!!") : 路徑6_tb.Text = "" : End If
  81. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  82. End If
  83. End Sub
  84. Private Sub 選路徑7_bt_Click(sender As Object, e As EventArgs) Handles 選路徑7_bt.Click
  85. If 開啟檔案.ShowDialog <> Windows.Forms.DialogResult.Cancel Then : 路徑7_tb.Text = 開啟檔案.FileName
  86. '----------長照A碼清冊-----------------------------------------------------------------------------------------------------------------------------------------------
  87. file_name = 路徑7_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  88. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  89. 文件判斷 = xlSheet.Cells(4, 1).value : 文件判斷 &= xlSheet.Cells(4, 2).value : 文件判斷 &= xlSheet.Cells(4, 3).value : 文件判斷 &= xlSheet.Cells(4, 4).value
  90. 文件判斷 &= xlSheet.Cells(4, 5).value : 文件判斷 &= xlSheet.Cells(4, 6).value : 文件判斷 &= xlSheet.Cells(4, 7).value : 文件判斷 &= xlSheet.Cells(4, 8).value
  91. If 文件判斷 = "序號服務代碼採用計畫CMS等級服務項目類別身分證號個案姓名給付價格" Then
  92. For i As Integer = 5 To 99999
  93. If IsNothing(xlSheet.Cells(i, 17).value) = True Then : Exit For : ElseIf xlSheet.Cells(i, 17).value.ToString.Contains("、") Then
  94. MsgBox("長照A碼清冊 內部檢測到有服務人員資料沒有拆開,請新確認檔案內容!!") : 路徑7_tb.Text = "" : Exit For
  95. End If
  96. Next
  97. Else : MsgBox("長照A碼清冊 檔案不吻合!!") : 路徑7_tb.Text = "" : End If
  98. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  99. End If
  100. End Sub
  101. Private Sub 選路徑8_bt_Click(sender As Object, e As EventArgs) Handles 選路徑8_bt.Click
  102. If 開啟檔案.ShowDialog <> Windows.Forms.DialogResult.Cancel Then : 路徑8_tb.Text = 開啟檔案.FileName
  103. '----------長照BA碼清冊(長照)-----------------------------------------------------------------------------------------------------------------------------------------------
  104. file_name = 路徑8_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  105. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  106. 文件判斷 = xlSheet.Cells(5, 1).value : 文件判斷 &= xlSheet.Cells(5, 2).value : 文件判斷 &= xlSheet.Cells(5, 3).value : 文件判斷 &= xlSheet.Cells(5, 4).value
  107. 文件判斷 &= xlSheet.Cells(5, 6).value : 文件判斷 &= xlSheet.Cells(5, 8).value : 文件判斷 &= xlSheet.Cells(5, 11).value : 文件判斷 &= xlSheet.Cells(5, 12).value
  108. 文件判斷 &= xlSheet.Cells(5, 15).value
  109. If 文件判斷 = "序號身分證號個案姓名採用計畫福利身分別服務日期次數申報費用補助比率" Then
  110. For i As Integer = 6 To 99999
  111. If IsNothing(xlSheet.Cells(i, 23).value) = True Then : Exit For : ElseIf xlSheet.Cells(i, 23).value.ToString.Contains("、") Then
  112. MsgBox("長照BA碼清冊 內部檢測到有服務人員資料沒有拆開,請新確認檔案內容!!") : 路徑8_tb.Text = "" : Exit For
  113. End If
  114. Next
  115. Else : MsgBox("長照BA碼清冊 檔案不吻合!!") : 路徑8_tb.Text = "" : End If
  116. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  117. End If
  118. End Sub
  119. Private Sub 選路徑9_bt_Click(sender As Object, e As EventArgs) Handles 選路徑9_bt.Click
  120. If 開啟檔案.ShowDialog <> Windows.Forms.DialogResult.Cancel Then : 路徑9_tb.Text = 開啟檔案.FileName
  121. '----------短 照 A 碼 清 冊(長照)-----------------------------------------------------------------------------------------------------------------------------------------------
  122. file_name = 路徑9_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  123. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  124. 文件判斷 = xlSheet.Cells(4, 1).value : 文件判斷 &= xlSheet.Cells(4, 2).value : 文件判斷 &= xlSheet.Cells(4, 3).value : 文件判斷 &= xlSheet.Cells(4, 4).value
  125. 文件判斷 &= xlSheet.Cells(4, 5).value : 文件判斷 &= xlSheet.Cells(4, 6).value : 文件判斷 &= xlSheet.Cells(4, 7).value : 文件判斷 &= xlSheet.Cells(4, 8).value
  126. If 文件判斷 = "序號服務代碼採用計畫CMS等級服務項目類別身分證號個案姓名給付價格" Then
  127. For i As Integer = 5 To 99999
  128. If IsNothing(xlSheet.Cells(i, 17).value) = True Then : Exit For : ElseIf xlSheet.Cells(i, 17).value.ToString.Contains("、") Then
  129. MsgBox("短照A碼清冊 內部檢測到有服務人員資料沒有拆開,請新確認檔案內容!!") : 路徑9_tb.Text = "" : Exit For
  130. End If
  131. Next
  132. Else : MsgBox("短照A碼清冊 檔案不吻合!!") : 路徑9_tb.Text = "" : End If
  133. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  134. End If
  135. End Sub
  136. Private Sub 選路徑10_bt_Click(sender As Object, e As EventArgs) Handles 選路徑10_bt.Click
  137. If 開啟檔案.ShowDialog <> Windows.Forms.DialogResult.Cancel Then : 路徑10_tb.Text = 開啟檔案.FileName
  138. '----------短 照 SC 碼 清 冊(長照)-----------------------------------------------------------------------------------------------------------------------------------------------
  139. file_name = 路徑10_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  140. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  141. 文件判斷 = xlSheet.Cells(5, 1).value : 文件判斷 &= xlSheet.Cells(5, 2).value : 文件判斷 &= xlSheet.Cells(5, 3).value : 文件判斷 &= xlSheet.Cells(5, 4).value
  142. 文件判斷 &= xlSheet.Cells(5, 6).value : 文件判斷 &= xlSheet.Cells(5, 8).value : 文件判斷 &= xlSheet.Cells(5, 11).value : 文件判斷 &= xlSheet.Cells(5, 12).value
  143. 文件判斷 &= xlSheet.Cells(5, 15).value
  144. If 文件判斷 = "序號身分證號個案姓名採用計畫福利身分別服務日期次數申報費用補助比率" Then
  145. For i As Integer = 6 To 99999
  146. If IsNothing(xlSheet.Cells(i, 23).value) = True Then : Exit For : ElseIf xlSheet.Cells(i, 23).value.ToString.Contains("、") Then
  147. MsgBox("短照SC碼清冊 內部檢測到有服務人員資料沒有拆開,請新確認檔案內容!!") : 路徑10_tb.Text = "" : Exit For
  148. End If
  149. Next
  150. Else : MsgBox("短照SC碼清冊 檔案不吻合!!") : 路徑10_tb.Text = "" : End If
  151. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  152. End If
  153. End Sub
  154. Private Sub 導入_bt_Click(sender As Object, e As EventArgs) Handles 導入_bt.Click
  155. If 年份_cb.Text <> "" And 月份_cb.Text <> "" Then
  156. 資料數 = 10000 : Dim 文件判斷, 不吻合訊息 As String : 不吻合訊息 = ""
  157. '----------服務紀錄總表-----------------------------------------------------------------------------------------------------------------------------------------------
  158. If 路徑1_tb.Text <> "" Then
  159. file_name = 路徑1_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  160. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  161. SQL2 = ""
  162. ConnOpen() : SQL1 = "DELETE 人事拆帳制服務紀錄_仁寶 WHERE 流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%'" : CmdSet_For_dr()
  163. For I As Integer = 0 To 10000 : MyModule1.進度條()
  164. SQL2 &= "(N'" & 年份_cb.Text & 月份_cb.Text & "',N'" & xlSheet.Cells(I + 5, 1).value & "',N'" & xlSheet.Cells(I + 5, 2).value & "',
  165. N'" & xlSheet.Cells(I + 5, 3).value & "',N'" & xlSheet.Cells(I + 5, 4).value & "',N'" & xlSheet.Cells(I + 5, 5).value & "',
  166. N'" & xlSheet.Cells(I + 5, 6).value & "',N'" & xlSheet.Cells(I + 5, 7).value & "',N'" & xlSheet.Cells(I + 5, 8).value & "',
  167. N'" & xlSheet.Cells(I + 5, 9).value & "',N'" & xlSheet.Cells(I + 5, 10).value & "',N'" & xlSheet.Cells(I + 5, 11).value & "',
  168. N'" & xlSheet.Cells(I + 5, 12).value & "',N'" & xlSheet.Cells(I + 5, 13).value & "',N'" & xlSheet.Cells(I + 5, 14).value & "',
  169. N'" & xlSheet.Cells(I + 5, 15).value & "',N'" & xlSheet.Cells(I + 5, 16).value & "',N'" & xlSheet.Cells(I + 5, 17).value & "',
  170. N'" & xlSheet.Cells(I + 5, 18).value & "',N'" & xlSheet.Cells(I + 5, 19).value & "',N'" & xlSheet.Cells(I + 5, 20).value & "',
  171. N'" & xlSheet.Cells(I + 5, 21).value & "',N'" & xlSheet.Cells(I + 5, 26).value & "',N'" & xlSheet.Cells(I + 5, 27).value & "',
  172. N'" & xlSheet.Cells(I + 5, 34).value & "'),"
  173. If (I <> 0 And I Mod 100 = 0) Or IsNothing(xlSheet.Cells(I + 5, 1).value) = True Then : MyModule1.進度條()
  174. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  175. ConnOpen()
  176. SQL1 = "INSERT INTO 人事拆帳制服務紀錄_仁寶 (流水號, 編號, 案號, 服務項目代碼, 服務項目類別, 身分證字號, 姓名, 服務日期, 服務類別, 項目服務次數,
  177. 一般or原民區或離島, 項目單價, 申報費用, 部分負擔比例, 部分負擔費用, 補助比例, 補助費用, 民眾自費金額,
  178. 服務單位, 居服員姓名, 加班類型, 服務狀態, 排班時間, 排班時間長度, 服務子項目代碼)
  179. VALUES " & SQL2
  180. CmdSet_For_dr() : SQL2 = ""
  181. If IsNothing(xlSheet.Cells(I + 5, 1).value) = True Then : Exit For : End If
  182. End If
  183. Next : xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  184. End If
  185. '----------拆 帳 明 細 表-----------------------------------------------------------------------------------------------------------------------------------------------
  186. If 路徑2_tb.Text <> "" Then
  187. file_name = 路徑2_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  188. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  189. ConnOpen() : SQL1 = "DELETE 人事拆帳制明細_仁寶 WHERE 流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%'" : CmdSet_For_dr() : Dim DSF(7) As String
  190. SQL2 = ""
  191. For I As Integer = 0 To 10000 : MyModule1.進度條()
  192. If IsNothing(xlSheet.Cells(I + 4, 1).value) = False Then : DSF(0) = xlSheet.Cells(I + 4, 1).value : End If
  193. If IsNothing(xlSheet.Cells(I + 4, 2).value) = False Then : DSF(1) = xlSheet.Cells(I + 4, 2).value : End If
  194. If IsNothing(xlSheet.Cells(I + 4, 3).value) = False Then : DSF(2) = xlSheet.Cells(I + 4, 3).value : End If
  195. If IsNothing(xlSheet.Cells(I + 4, 4).value) = False Then : DSF(3) = xlSheet.Cells(I + 4, 4).value : End If
  196. If IsNothing(xlSheet.Cells(I + 4, 5).value) = False Then : DSF(4) = xlSheet.Cells(I + 4, 5).value : End If
  197. If IsNothing(xlSheet.Cells(I + 4, 6).value) = False Then : DSF(5) = xlSheet.Cells(I + 4, 6).value : End If
  198. If IsNothing(xlSheet.Cells(I + 4, 7).value) = False Then : DSF(6) = xlSheet.Cells(I + 4, 7).value : End If
  199. If IsNothing(xlSheet.Cells(I + 4, 8).value) = False Then : DSF(7) = xlSheet.Cells(I + 4, 8).value : End If
  200. SQL2 &= "(N'" & 年份_cb.Text & 月份_cb.Text & "',N'" & DSF(0) & "',N'" & DSF(1) & "', N'" & DSF(2) & "',N'" & DSF(3) & "',N'" & DSF(4) & "',
  201. N'" & DSF(5) & "',N'" & DSF(6) & "',N'" & DSF(7) & "',
  202. N'" & xlSheet.Cells(I + 4, 9).value & "',N'" & xlSheet.Cells(I + 4, 10).value & "',N'" & xlSheet.Cells(I + 4, 11).value & "',
  203. N'" & xlSheet.Cells(I + 4, 12).value & "',N'" & xlSheet.Cells(I + 4, 13).value & "',N'" & xlSheet.Cells(I + 4, 14).value & "',
  204. N'" & xlSheet.Cells(I + 4, 15).value & "',N'" & xlSheet.Cells(I + 4, 16).value & "',N'" & xlSheet.Cells(I + 4, 17).value & "',
  205. N'" & xlSheet.Cells(I + 4, 18).value & "',N'" & xlSheet.Cells(I + 4, 19).value & "',N'" & xlSheet.Cells(I + 4, 20).value & "',
  206. N'" & xlSheet.Cells(I + 4, 21).value & "',N'" & xlSheet.Cells(I + 4, 22).value & "',N'" & xlSheet.Cells(I + 4, 23).value & "'),"
  207. If (I <> 0 And I Mod 100 = 0) Or IsNothing(xlSheet.Cells(I + 4, 9).value) = True Then : MyModule1.進度條()
  208. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  209. ConnOpen()
  210. SQL1 = "INSERT INTO 人事拆帳制明細_仁寶 (流水號, 序號, 姓名, 身分證字號, 主責督導, 副督導, 總服務金額, 公司拆帳金額, 員工拆帳金額, 全額,
  211. 公司拆帳, 員工拆帳, 補助or自費, 編號, 項目名稱, 次數, 一般or偏鄉, 單價, 加班類型, 服務人員角色, 拆帳方式,
  212. 公司拆帳比, 員工拆帳比, 員工計次金額)
  213. VALUES " & SQL2
  214. CmdSet_For_dr() : SQL2 = ""
  215. If IsNothing(xlSheet.Cells(I + 4, 9).value) = True Then : Exit For : End If
  216. End If
  217. Next : xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  218. End If
  219. '----------薪資報表明細-----------------------------------------------------------------------------------------------------------------------------------------------
  220. If 路徑3_tb.Text <> "" Then
  221. file_name = 路徑3_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  222. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  223. ConnOpen() : SQL1 = "DELETE 人事拆帳制薪資報表明細_仁寶 WHERE 流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%'" : CmdSet_For_dr()
  224. SQL2 = ""
  225. For I As Integer = 0 To 10000 : MyModule1.進度條()
  226. SQL2 &= "(N'" & 年份_cb.Text & 月份_cb.Text & "',N'" & xlSheet.Cells(I + 7, 1).value & "',N'" & xlSheet.Cells(I + 7, 2).value & "',
  227. N'" & xlSheet.Cells(I + 7, 3).value & "',N'" & xlSheet.Cells(I + 7, 4).value & "',N'" & xlSheet.Cells(I + 7, 5).value & "',
  228. N'" & xlSheet.Cells(I + 7, 6).value & "',N'" & xlSheet.Cells(I + 7, 7).value & "',N'" & xlSheet.Cells(I + 7, 8).value & "',
  229. N'" & xlSheet.Cells(I + 7, 9).value & "',N'" & xlSheet.Cells(I + 7, 11).value & "',N'" & xlSheet.Cells(I + 7, 12).value & "',
  230. N'" & xlSheet.Cells(I + 7, 14).value & "',N'" & xlSheet.Cells(I + 7, 15).value & "',N'" & xlSheet.Cells(I + 7, 16).value & "',
  231. N'" & xlSheet.Cells(I + 7, 17).value & "',N'" & xlSheet.Cells(I + 7, 18).value & "',N'" & xlSheet.Cells(I + 7, 19).value & "',
  232. N'" & xlSheet.Cells(I + 7, 20).value & "',N'" & xlSheet.Cells(I + 7, 21).value & "',N'" & xlSheet.Cells(I + 7, 22).value & "',
  233. N'" & xlSheet.Cells(I + 7, 23).value & "',N'" & xlSheet.Cells(I + 7, 24).value & "',N'" & xlSheet.Cells(I + 7, 25).value & "',
  234. N'" & xlSheet.Cells(I + 7, 26).value & "',N'" & xlSheet.Cells(I + 7, 27).value & "',N'" & xlSheet.Cells(I + 7, 28).value & "',
  235. N'" & xlSheet.Cells(I + 7, 29).value & "',N'" & xlSheet.Cells(I + 7, 30).value & "',N'" & xlSheet.Cells(I + 7, 31).value & "',
  236. N'" & xlSheet.Cells(I + 7, 32).value & "',N'" & xlSheet.Cells(I + 7, 33).value & "',N'" & xlSheet.Cells(I + 7, 34).value & "',
  237. N'" & xlSheet.Cells(I + 7, 35).value & "',N'" & xlSheet.Cells(I + 7, 36).value & "',N'" & xlSheet.Cells(I + 7, 37).value & "',
  238. N'" & xlSheet.Cells(I + 7, 38).value & "',N'" & xlSheet.Cells(I + 7, 39).value & "',N'" & xlSheet.Cells(I + 7, 40).value & "',
  239. N'" & xlSheet.Cells(I + 7, 41).value & "',N'" & xlSheet.Cells(I + 7, 42).value & "',N'" & xlSheet.Cells(I + 7, 43).value & "',
  240. N'" & xlSheet.Cells(I + 7, 44).value & "',N'" & xlSheet.Cells(I + 7, 45).value & "',N'" & xlSheet.Cells(I + 7, 46).value & "',
  241. N'" & xlSheet.Cells(I + 7, 47).value & "',N'" & xlSheet.Cells(I + 7, 48).value & "',N'" & xlSheet.Cells(I + 7, 49).value & "',
  242. N'" & xlSheet.Cells(I + 7, 50).value & "',N'" & xlSheet.Cells(I + 7, 51).value & "',N'" & xlSheet.Cells(I + 7, 52).value & "',
  243. N'" & xlSheet.Cells(I + 7, 53).value & "',N'" & xlSheet.Cells(I + 7, 54).value & "',N'" & xlSheet.Cells(I + 7, 55).value & "',
  244. N'" & xlSheet.Cells(I + 7, 56).value & "',N'" & xlSheet.Cells(I + 7, 57).value & "',N'" & xlSheet.Cells(I + 7, 58).value & "',
  245. N'" & xlSheet.Cells(I + 7, 59).value & "',N'" & xlSheet.Cells(I + 7, 60).value & "',N'" & xlSheet.Cells(I + 7, 61).value & "',
  246. N'" & xlSheet.Cells(I + 7, 62).value & "',N'" & xlSheet.Cells(I + 7, 63).value & "',N'" & xlSheet.Cells(I + 7, 64).value & "',
  247. N'" & xlSheet.Cells(I + 7, 65).value & "',N'" & xlSheet.Cells(I + 7, 66).value & "',N'" & xlSheet.Cells(I + 7, 67).value & "',
  248. N'" & xlSheet.Cells(I + 7, 68).value & "',N'" & xlSheet.Cells(I + 7, 69).value & "',N'" & xlSheet.Cells(I + 7, 70).value & "',
  249. N'" & xlSheet.Cells(I + 7, 71).value & "',N'" & xlSheet.Cells(I + 7, 72).value & "',N'" & xlSheet.Cells(I + 7, 73).value & "',
  250. N'" & xlSheet.Cells(I + 7, 74).value & "',N'" & xlSheet.Cells(I + 7, 75).value & "',N'" & xlSheet.Cells(I + 7, 76).value & "',
  251. N'" & xlSheet.Cells(I + 7, 77).value & "',N'" & xlSheet.Cells(I + 7, 78).value & "',N'" & xlSheet.Cells(I + 7, 79).value & "',
  252. N'" & xlSheet.Cells(I + 7, 80).value & "',N'" & xlSheet.Cells(I + 7, 81).value & "',N'" & xlSheet.Cells(I + 7, 82).value & "',
  253. N'" & xlSheet.Cells(I + 7, 83).value & "',N'" & xlSheet.Cells(I + 7, 84).value & "',N'" & xlSheet.Cells(I + 7, 85).value & "',
  254. N'" & xlSheet.Cells(I + 7, 86).value & "',N'" & xlSheet.Cells(I + 7, 87).value & "',N'" & xlSheet.Cells(I + 7, 88).value & "',
  255. N'" & xlSheet.Cells(I + 7, 89).value & "'),"
  256. If (I <> 0 And I Mod 100 = 0) Or IsNothing(xlSheet.Cells(I + 7, 1).value) = True Then : MyModule1.進度條()
  257. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  258. ConnOpen()
  259. SQL1 = "INSERT INTO 人事拆帳制薪資報表明細_仁寶 (流水號, 序, 員工編號, 分類, 姓名, 主責督導, B碼時薪, G碼_S碼時薪, 平日排班轉場時間_分,
  260. 假日排班轉場時間_分, 平日轉場時薪, 假日轉場時薪, 平日轉場費, 假日轉場費, 服務時間_分, 平日班時數_分, 本薪,
  261. 加班時數_分, 加班費, B平日0_2小時, B平日3_8小時, B平日9_10小時, B平日11_12小時, B國假0_2小時,
  262. B國假3_8小時, B國假9_10小時, B國假11_12小時, B例假0_2小時, B例假3_8小時, B例假9_10小時, B例假11_12小時,
  263. B休假0_2小時, B休假3_8小時, B休假9_10小時, B休假11_12小時, B平日0_2薪資, B平日3_8薪資, B平日9_10薪資,
  264. B平日11_12薪資, B國假0_2薪資, B國假3_8薪資, B國假9_10薪資, B國假11_12薪資, B例假0_2薪資, B例假3_8薪資,
  265. B例假9_10薪資, B例假11_12薪資, B休假0_2薪資, B休假3_8薪資, B休假9_10薪資, B休假11_12薪資, B碼總計,
  266. GS平日0_2小時, GS平日3_8小時, GS平日9_10小時, GS平日11_12小時, GS國假0_2小時, GS國假3_8小時,
  267. GS國假9_10小時, GS國假11_12小時, GS例假0_2小時, GS例假3_8小時, GS例假9_10小時, GS例假11_12小時,
  268. GS休假0_2小時, GS休假3_8小時, GS休假9_10小時, GS休假11_12小時, GS平日0_2薪資, GS平日3_8薪資,
  269. GS平日9_10薪資, GS平日11_12薪資, GS國假0_2薪資, GS國假3_8薪資, GS國假9_10薪資, GS國假11_12薪資,
  270. GS例假0_2薪資, GS例假3_8薪資, GS例假9_10薪資, GS例假11_12薪資, GS休假0_2薪資, GS休假3_8薪資,
  271. GS休假9_10薪資, GS休假11_12薪資, GS碼總計, 服務紀錄B碼金額, 服務紀錄GS碼金額, 服務紀錄BGS碼金額)
  272. VALUES " & SQL2
  273. CmdSet_For_dr() : SQL2 = ""
  274. If IsNothing(xlSheet.Cells(I + 7, 1).value) = True Then : Exit For : End If
  275. End If
  276. Next : xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  277. End If
  278. '----------每 日 明 細-----------------------------------------------------------------------------------------------------------------------------------------------
  279. If 路徑4_tb.Text <> "" Then
  280. file_name = 路徑4_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  281. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  282. ConnOpen() : SQL1 = "DELETE 人事拆帳制每日明細_仁寶 WHERE 流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%'" : CmdSet_For_dr() : Dim DSF(7) As String
  283. SQL2 = ""
  284. For I As Integer = 0 To 10000 : MyModule1.進度條()
  285. DSF(0) = I + 1
  286. If IsNothing(xlSheet.Cells(I + 7, 2).value) = False Then : DSF(1) = xlSheet.Cells(I + 7, 2).value : End If
  287. If IsNothing(xlSheet.Cells(I + 7, 3).value) = False Then : DSF(2) = xlSheet.Cells(I + 7, 3).value : End If
  288. If IsNothing(xlSheet.Cells(I + 7, 4).value) = False Then : DSF(3) = xlSheet.Cells(I + 7, 4).value : End If
  289. If IsNothing(xlSheet.Cells(I + 7, 5).value) = False Then : DSF(4) = xlSheet.Cells(I + 7, 5).value : End If
  290. If IsNothing(xlSheet.Cells(I + 7, 6).value) = False Then : DSF(5) = xlSheet.Cells(I + 7, 6).value : End If
  291. If IsNothing(xlSheet.Cells(I + 7, 7).value) = False Then : DSF(6) = xlSheet.Cells(I + 7, 7).value : End If
  292. If IsNothing(xlSheet.Cells(I + 7, 8).value) = False Then : DSF(7) = xlSheet.Cells(I + 7, 8).value : End If
  293. SQL2 &= "(N'" & 年份_cb.Text & 月份_cb.Text & "',N'" & DSF(0) & "',N'" & DSF(1) & "', N'" & DSF(2) & "',N'" & DSF(3) & "',N'" & DSF(4) & "',
  294. N'" & DSF(5) & "',N'" & DSF(6) & "',N'" & DSF(7) & "',
  295. N'" & xlSheet.Cells(I + 7, 9).value & "',N'" & xlSheet.Cells(I + 7, 11).value & "',N'" & xlSheet.Cells(I + 7, 12).value & "',
  296. N'" & xlSheet.Cells(I + 7, 14).value & "',N'" & xlSheet.Cells(I + 7, 15).value & "',N'" & xlSheet.Cells(I + 7, 16).value & "',
  297. N'" & xlSheet.Cells(I + 7, 17).value & "',N'" & xlSheet.Cells(I + 7, 18).value & "',N'" & xlSheet.Cells(I + 7, 19).value & "',
  298. N'" & xlSheet.Cells(I + 7, 20).value & "',N'" & xlSheet.Cells(I + 7, 21).value & "',N'" & xlSheet.Cells(I + 7, 22).value & "',
  299. N'" & xlSheet.Cells(I + 7, 23).value & "'),"
  300. If (I <> 0 And I Mod 100 = 0) Or IsNothing(xlSheet.Cells(I + 7, 15).value) = True Then : MyModule1.進度條()
  301. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  302. ConnOpen()
  303. SQL1 = "INSERT INTO 人事拆帳制每日明細_仁寶 (流水號, 序, 員工編號, 分類, 姓名, 主責督導, B碼時薪, G碼S碼時薪, 日期, 排班轉場時間_分,
  304. 交通時間小計_分, 轉場時薪, 轉場費, 加班類型, 服務個案, 個案主責督導, 身分別, 服務時間_分, 平日班時數_分, 本薪,
  305. 加班時數_分, 加班費)
  306. VALUES " & SQL2
  307. CmdSet_For_dr() : SQL2 = ""
  308. If IsNothing(xlSheet.Cells(I + 7, 15).value) = True Then : Exit For : End If
  309. End If
  310. Next : xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  311. End If
  312. '----------個 案 總 表-----------------------------------------------------------------------------------------------------------------------------------------------
  313. If 路徑5_tb.Text <> "" Then
  314. file_name = 路徑5_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  315. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  316. ConnOpen() : SQL1 = "DELETE 人事拆帳總表 WHERE 流水 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%'" : CmdSet_For_dr() : Dim DSF(7) As String
  317. SQL2 = ""
  318. For I As Integer = 0 To 10000 : MyModule1.進度條()
  319. SQL2 &= "(N'" & 年份_cb.Text & 月份_cb.Text & "',N'" & xlSheet.Cells(I + 4, 1).value & "',N'" & xlSheet.Cells(I + 4, 2).value & "',
  320. N'" & xlSheet.Cells(I + 4, 3).value & "',N'" & xlSheet.Cells(I + 4, 4).value & "',N'" & xlSheet.Cells(I + 4, 5).value & "',
  321. N'" & xlSheet.Cells(I + 4, 6).value & "',N'" & xlSheet.Cells(I + 4, 7).value & "',N'" & xlSheet.Cells(I + 4, 8).value & "',
  322. N'" & xlSheet.Cells(I + 4, 9).value & "',N'" & xlSheet.Cells(I + 4, 10).value & "',N'" & xlSheet.Cells(I + 4, 11).value & "',
  323. N'" & xlSheet.Cells(I + 4, 12).value & "',N'" & xlSheet.Cells(I + 4, 13).value & "',N'" & xlSheet.Cells(I + 4, 14).value & "',
  324. N'" & xlSheet.Cells(I + 4, 15).value & "',N'" & xlSheet.Cells(I + 4, 16).value & "',N'" & xlSheet.Cells(I + 4, 17).value & "',
  325. N'" & xlSheet.Cells(I + 4, 18).value & "',N'" & xlSheet.Cells(I + 4, 19).value & "',N'" & xlSheet.Cells(I + 4, 20).value & "',
  326. N'" & xlSheet.Cells(I + 4, 21).value & "',N'" & xlSheet.Cells(I + 4, 22).value & "',N'" & xlSheet.Cells(I + 4, 23).value & "',
  327. N'" & xlSheet.Cells(I + 4, 24).value & "',N'" & xlSheet.Cells(I + 4, 25).value & "',N'" & xlSheet.Cells(I + 4, 26).value & "',
  328. N'" & xlSheet.Cells(I + 4, 27).value & "',N'" & xlSheet.Cells(I + 4, 28).value & "',N'" & xlSheet.Cells(I + 4, 29).value & "',
  329. N'" & xlSheet.Cells(I + 4, 30).value & "',N'" & xlSheet.Cells(I + 4, 31).value & "',N'" & xlSheet.Cells(I + 4, 33).value & "',
  330. N'" & xlSheet.Cells(I + 4, 34).value & "',N'" & xlSheet.Cells(I + 4, 35).value & "',N'" & xlSheet.Cells(I + 4, 36).value & "',
  331. N'" & xlSheet.Cells(I + 4, 37).value & "',N'" & xlSheet.Cells(I + 4, 38).value & "',N'" & xlSheet.Cells(I + 4, 39).value & "',
  332. N'" & xlSheet.Cells(I + 4, 40).value & "',N'" & xlSheet.Cells(I + 4, 41).value & "',N'" & xlSheet.Cells(I + 4, 42).value & "',
  333. N'" & xlSheet.Cells(I + 4, 43).value & "',N'" & xlSheet.Cells(I + 4, 44).value & "',N'" & xlSheet.Cells(I + 4, 45).value & "',
  334. N'" & xlSheet.Cells(I + 4, 46).value & "',N'" & xlSheet.Cells(I + 4, 47).value & "',N'" & xlSheet.Cells(I + 4, 48).value & "',
  335. N'" & xlSheet.Cells(I + 4, 49).value & "',N'" & xlSheet.Cells(I + 4, 50).value & "',N'" & xlSheet.Cells(I + 4, 51).value & "',
  336. N'" & xlSheet.Cells(I + 4, 52).value & "',N'" & xlSheet.Cells(I + 4, 53).value & "',N'" & xlSheet.Cells(I + 4, 54).value & "',
  337. N'" & xlSheet.Cells(I + 4, 55).value & "',N'" & xlSheet.Cells(I + 4, 56).value & "',N'" & xlSheet.Cells(I + 4, 57).value & "',
  338. N'" & xlSheet.Cells(I + 4, 58).value & "',N'" & xlSheet.Cells(I + 4, 59).value & "',N'" & xlSheet.Cells(I + 4, 60).value & "',
  339. N'" & xlSheet.Cells(I + 4, 61).value & "',N'" & xlSheet.Cells(I + 4, 62).value & "',N'" & xlSheet.Cells(I + 4, 63).value & "',
  340. N'" & xlSheet.Cells(I + 4, 64).value & "',N'" & xlSheet.Cells(I + 4, 65).value & "',N'" & xlSheet.Cells(I + 4, 66).value & "',
  341. N'" & xlSheet.Cells(I + 4, 67).value & "',N'" & xlSheet.Cells(I + 4, 68).value & "',N'" & xlSheet.Cells(I + 4, 69).value & "',
  342. N'" & xlSheet.Cells(I + 4, 70).value & "',N'" & xlSheet.Cells(I + 4, 71).value & "',N'" & xlSheet.Cells(I + 4, 72).value & "',
  343. N'" & xlSheet.Cells(I + 4, 73).value & "',N'" & xlSheet.Cells(I + 4, 74).value & "',N'" & xlSheet.Cells(I + 4, 75).value & "',
  344. N'" & xlSheet.Cells(I + 4, 76).value & "',N'" & xlSheet.Cells(I + 4, 77).value & "',N'" & xlSheet.Cells(I + 4, 78).value & "',
  345. N'" & xlSheet.Cells(I + 4, 79).value & "',N'" & xlSheet.Cells(I + 4, 80).value & "',N'" & xlSheet.Cells(I + 4, 81).value & "',
  346. N'" & xlSheet.Cells(I + 4, 84).value & "',N'" & xlSheet.Cells(I + 4, 85).value & "',N'" & xlSheet.Cells(I + 4, 86).value & "',
  347. N'" & xlSheet.Cells(I + 4, 87).value & "',N'" & xlSheet.Cells(I + 4, 88).value & "',N'" & xlSheet.Cells(I + 4, 89).value & "',
  348. N'" & xlSheet.Cells(I + 4, 90).value & "',N'" & xlSheet.Cells(I + 4, 91).value & "',N'" & xlSheet.Cells(I + 4, 92).value & "',
  349. N'" & xlSheet.Cells(I + 4, 93).value & "',N'" & xlSheet.Cells(I + 4, 94).value & "',N'" & xlSheet.Cells(I + 4, 95).value & "',
  350. N'" & xlSheet.Cells(I + 4, 96).value & "',N'" & xlSheet.Cells(I + 4, 97).value & "',N'" & xlSheet.Cells(I + 4, 98).value & "',
  351. N'" & xlSheet.Cells(I + 4, 99).value & "',N'" & xlSheet.Cells(I + 4, 100).value & "',N'" & xlSheet.Cells(I + 4, 101).value & "',
  352. N'" & xlSheet.Cells(I + 4, 102).value & "',N'" & xlSheet.Cells(I + 4, 103).value & "',N'" & xlSheet.Cells(I + 4, 104).value & "',
  353. N'" & xlSheet.Cells(I + 4, 105).value & "',N'" & xlSheet.Cells(I + 4, 106).value & "',N'" & xlSheet.Cells(I + 4, 107).value & "',
  354. N'" & xlSheet.Cells(I + 4, 108).value & "',N'" & xlSheet.Cells(I + 4, 109).value & "',N'" & xlSheet.Cells(I + 4, 110).value & "',
  355. N'" & xlSheet.Cells(I + 4, 111).value & "',N'" & xlSheet.Cells(I + 4, 112).value & "',N'" & xlSheet.Cells(I + 4, 113).value & "',
  356. N'" & xlSheet.Cells(I + 4, 121).value & "',N'" & xlSheet.Cells(I + 4, 122).value & "',N'" & xlSheet.Cells(I + 4, 123).value & "',
  357. N'" & xlSheet.Cells(I + 4, 124).value & "',N'" & xlSheet.Cells(I + 4, 125).value & "',N'" & xlSheet.Cells(I + 4, 126).value & "',
  358. N'" & xlSheet.Cells(I + 4, 127).value & "',N'" & xlSheet.Cells(I + 4, 128).value & "',N'" & xlSheet.Cells(I + 4, 129).value & "',
  359. N'" & xlSheet.Cells(I + 4, 130).value & "',N'" & xlSheet.Cells(I + 4, 131).value & "',N'" & xlSheet.Cells(I + 4, 132).value & "'),"
  360. If (I <> 0 And I Mod 100 = 0) Or IsNothing(xlSheet.Cells(I + 4, 1).value) = True Then : MyModule1.進度條()
  361. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  362. ConnOpen()
  363. SQL1 = "INSERT INTO 人事拆帳總表 (流水, 編號, 目前狀態, 個案來源, 案號, 衛福案號, 分類, 姓名, 性別, 出生年月日, 年齡, 身分證字號, 電話,
  364. 身高, 體重, 小腿圍, 原住民身份, 原住民族別, 常用語言, CMS等級, 福利身份別, 補助比例, 計價類別, 失能等級,
  365. 障礙等級, 請外勞照護或領有特照津貼, 身障類別_新制, 身障類別_舊制, 身障項目別,
  366. 是否具備身心障礙失智症手冊or證明或CDR1分以上, 主要照顧者, 主要照顧者關係, 次要照顧者, 次要照顧者關係,
  367. 主責督導, 副督導, 主責居服員, 代理人, 代理人電話, 代理人手機號碼, 代理人地址, 個案戶籍縣市, 鄉鎮區, 里別,
  368. 個案戶籍地址, 個案居住縣市, 鄉鎮區1, 里別1, 個案居住地址, 居住狀況, 帳單地址, 個案教育程度, 罹患疾病, 疾病史,
  369. 行為與情緒, 申請服務種類, 備註, 服務開始時間, 暫停日期, 暫停備註, 結案日期, 結案原因, 結案備註,
  370. 機構到案家距離, 護照號碼, 國籍, 性別1, 工作縣市, 核准招募文號, 最新聘僱函文號, 聘僱函核准日期, 工作起始日,
  371. 契約期滿日, 建立日期, A單位名稱, A個管姓名, 聯絡電話, 電子郵件, 給付額度, 計價類別1,
  372. 請外勞照護或領有特照津貼1, 排班時數, 居服員, 服務項目總數_補助, 服務項目總數_自費, 補助人次, 自費人次,
  373. 服務天數, 服務項目, 服務總次數, 服務總次數_補助, 服務總次數_自費, 使用額度, 補助金額, 民眾負擔, 自費,
  374. 民眾總花費, 服務項目1, 服務次數1, 使用額度1, 補助金額1, 民眾負擔1, 自費1, 民眾總花費1, 服務項目2, 服務次數2,
  375. 使用額度2, 補助金額2, 民眾負擔2, 自費2, 民眾總花費2, 服務次數3, 給付價格3, 服務次數4, 給付價格4, 服務項目5,
  376. 服務次數5, 使用額度5, 補助金額5, 民眾負擔5, 自費5, 民眾總花費5, 照顧計畫)
  377. VALUES " & SQL2
  378. CmdSet_For_dr() : SQL2 = ""
  379. If IsNothing(xlSheet.Cells(I + 4, 1).value) = True Then : Exit For : End If
  380. End If
  381. Next : xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  382. End If
  383. '----------A碼項目清冊-----------------------------------------------------------------------------------------------------------------------------------------------
  384. If 路徑6_tb.Text <> "" Then
  385. file_name = 路徑6_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  386. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  387. ConnOpen() : SQL1 = "DELETE 人事拆帳制A碼項目清冊 WHERE 流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%'" : CmdSet_For_dr()
  388. SQL2 = ""
  389. For I As Integer = 0 To 10000 : MyModule1.進度條()
  390. SQL2 &= "(N'" & 年份_cb.Text & 月份_cb.Text & "',N'" & xlSheet.Cells(I + 5, 1).value & "',N'" & xlSheet.Cells(I + 5, 2).value & "',
  391. N'" & xlSheet.Cells(I + 5, 3).value & "',N'" & xlSheet.Cells(I + 5, 4).value & "',N'" & xlSheet.Cells(I + 5, 5).value & "',
  392. N'" & xlSheet.Cells(I + 5, 6).value & "',N'" & xlSheet.Cells(I + 5, 7).value & "',N'" & xlSheet.Cells(I + 5, 8).value & "',
  393. N'" & xlSheet.Cells(I + 5, 9).value & "',N'" & xlSheet.Cells(I + 5, 10).value & "',N'" & xlSheet.Cells(I + 5, 11).value & "',
  394. N'" & xlSheet.Cells(I + 5, 12).value & "',N'" & xlSheet.Cells(I + 5, 13).value & "',N'" & xlSheet.Cells(I + 5, 14).value & "',
  395. N'" & xlSheet.Cells(I + 5, 15).value & "',N'" & xlSheet.Cells(I + 5, 16).value & "',N'" & xlSheet.Cells(I + 5, 17).value & "',
  396. N'" & xlSheet.Cells(I + 5, 18).value & "'),"
  397. If (I <> 0 And I Mod 100 = 0) Or (IsNothing(xlSheet.Cells(I + 5, 1).value) = True And IsNothing(xlSheet.Cells(I + 5, 2).value) = True) Then : MyModule1.進度條()
  398. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  399. ConnOpen()
  400. SQL1 = "INSERT INTO 人事拆帳制A碼項目清冊 (流水號, 序號, 服務代碼, 採用計畫, CMS等級, 服務項目類別, 身分證號, 個案姓名, 給付價格, 數量, 小計,
  401. 服務日期, 服務單位, 服務當下居住縣市, 目前居住縣市, 目前居住行政區, 照管專員, 服務人員, 備註)
  402. VALUES " & SQL2
  403. CmdSet_For_dr() : SQL2 = ""
  404. If IsNothing(xlSheet.Cells(I + 5, 1).value) = True And IsNothing(xlSheet.Cells(I + 5, 2).value) = True Then : Exit For : End If
  405. End If
  406. Next : xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  407. End If
  408. '----------A碼長照所-----------------------------------------------------------------------------------------------------------------------------------------------
  409. If 路徑7_tb.Text <> "" Then
  410. file_name = 路徑7_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  411. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  412. ConnOpen() : SQL1 = "DELETE 人事拆帳制A碼項目長照所 WHERE 流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%' AND AAORSC IS NULL" : CmdSet_For_dr()
  413. SQL2 = ""
  414. For I As Integer = 0 To 10000 : MyModule1.進度條()
  415. SQL2 &= "(N'" & 年份_cb.Text & 月份_cb.Text & "',N'" & xlSheet.Cells(I + 5, 1).value & "',N'" & xlSheet.Cells(I + 5, 2).value & "',
  416. N'" & xlSheet.Cells(I + 5, 3).value & "',N'" & xlSheet.Cells(I + 5, 4).value & "',N'" & xlSheet.Cells(I + 5, 5).value & "',
  417. N'" & xlSheet.Cells(I + 5, 6).value & "',N'" & xlSheet.Cells(I + 5, 7).value & "',N'" & xlSheet.Cells(I + 5, 8).value & "',
  418. N'" & xlSheet.Cells(I + 5, 9).value & "',N'" & xlSheet.Cells(I + 5, 10).value & "',N'" & xlSheet.Cells(I + 5, 11).value & "',
  419. N'" & xlSheet.Cells(I + 5, 12).value & "',N'" & xlSheet.Cells(I + 5, 13).value & "',N'" & xlSheet.Cells(I + 5, 14).value & "',
  420. N'" & xlSheet.Cells(I + 5, 15).value & "',N'" & xlSheet.Cells(I + 5, 16).value & "',N'" & xlSheet.Cells(I + 5, 17).value & "',
  421. N'" & xlSheet.Cells(I + 5, 18).value & "'),"
  422. If (I <> 0 And I Mod 100 = 0) Or (IsNothing(xlSheet.Cells(I + 5, 1).value) = True And IsNothing(xlSheet.Cells(I + 5, 2).value) = True) Then : MyModule1.進度條()
  423. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  424. ConnOpen()
  425. SQL1 = "INSERT INTO 人事拆帳制A碼項目長照所 (流水號, 序號, 服務代碼, 採用計畫, CMS等級, 服務項目類別, 身分證號, 個案姓名, 給付價格, 數量, 小計,
  426. 服務日期, 服務單位, 服務當下居住縣市, 目前居住縣市, 目前居住行政區, 照管專員, 服務人員, 備註)
  427. VALUES " & SQL2
  428. CmdSet_For_dr() : SQL2 = ""
  429. If IsNothing(xlSheet.Cells(I + 5, 1).value) = True And IsNothing(xlSheet.Cells(I + 5, 2).value) = True Then : Exit For : End If
  430. End If
  431. Next : xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  432. End If
  433. '----------BA碼長照所-----------------------------------------------------------------------------------------------------------------------------------------------
  434. If 路徑8_tb.Text <> "" Then
  435. file_name = 路徑8_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  436. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  437. ConnOpen() : SQL1 = "DELETE 人事拆帳制BA碼項目長照所 WHERE 流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%' AND BAORSC IS NULL" : CmdSet_For_dr()
  438. SQL2 = ""
  439. For I As Integer = 0 To 10000 : MyModule1.進度條()
  440. SQL2 &= "(N'" & 年份_cb.Text & 月份_cb.Text & "',N'" & xlSheet.Cells(I + 6, 1).value & "',N'" & xlSheet.Cells(I + 6, 2).value & "',
  441. N'" & xlSheet.Cells(I + 6, 3).value & "',N'" & xlSheet.Cells(I + 6, 4).value & "',N'" & xlSheet.Cells(I + 6, 5).value & "',
  442. N'" & xlSheet.Cells(I + 6, 6).value & "',N'" & xlSheet.Cells(I + 6, 7).value & "',N'" & xlSheet.Cells(I + 6, 8).value & "',
  443. N'" & xlSheet.Cells(I + 6, 9).value & "',N'" & xlSheet.Cells(I + 6, 10).value & "',N'" & xlSheet.Cells(I + 6, 11).value & "',
  444. N'" & xlSheet.Cells(I + 6, 12).value & "',N'" & xlSheet.Cells(I + 6, 13).value & "',N'" & xlSheet.Cells(I + 6, 14).value & "',
  445. N'" & xlSheet.Cells(I + 6, 15).value & "',N'" & xlSheet.Cells(I + 6, 16).value & "',N'" & xlSheet.Cells(I + 6, 17).value & "',
  446. N'" & xlSheet.Cells(I + 6, 18).value & "',N'" & xlSheet.Cells(I + 6, 19).value & "',N'" & xlSheet.Cells(I + 6, 20).value & "',
  447. N'" & xlSheet.Cells(I + 6, 21).value & "',N'" & xlSheet.Cells(I + 6, 22).value & "',N'" & xlSheet.Cells(I + 6, 23).value & "'),"
  448. If (I <> 0 And I Mod 100 = 0) Or (IsNothing(xlSheet.Cells(I + 6, 1).value) = True And IsNothing(xlSheet.Cells(I + 6, 2).value) = True) Then : MyModule1.進度條()
  449. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  450. ConnOpen()
  451. SQL1 = "INSERT INTO 人事拆帳制BA碼項目長照所 (流水號, 序號, 身分證號, 個案名稱, 採用計畫, CMS等級, 福利身分, 類別, 服務日期, 價格, 價格_原民, 次數,
  452. 申報備用, 部分負擔率, 部分費用, 補助比率, 申請費用, 申請費用_原民, 補助金額, 服務城市, 居住城市, 行政區,
  453. 照管專員, 服務人員)
  454. VALUES " & SQL2
  455. CmdSet_For_dr() : SQL2 = ""
  456. If IsNothing(xlSheet.Cells(I + 6, 1).value) = True And IsNothing(xlSheet.Cells(I + 6, 2).value) = True Then : Exit For : End If
  457. End If
  458. Next : xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  459. End If
  460. '----------A碼長照所-----------------------------------------------------------------------------------------------------------------------------------------------
  461. If 路徑9_tb.Text <> "" Then
  462. file_name = 路徑9_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  463. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  464. ConnOpen() : SQL1 = "DELETE 人事拆帳制A碼項目長照所 WHERE 流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%' AND AAORSC LIKE N'短照'" : CmdSet_For_dr()
  465. SQL2 = ""
  466. For I As Integer = 0 To 10000 : MyModule1.進度條()
  467. SQL2 &= "(N'" & 年份_cb.Text & 月份_cb.Text & "',N'" & xlSheet.Cells(I + 5, 1).value & "',N'" & xlSheet.Cells(I + 5, 2).value & "',
  468. N'" & xlSheet.Cells(I + 5, 3).value & "',N'" & xlSheet.Cells(I + 5, 4).value & "',N'" & xlSheet.Cells(I + 5, 5).value & "',
  469. N'" & xlSheet.Cells(I + 5, 6).value & "',N'" & xlSheet.Cells(I + 5, 7).value & "',N'" & xlSheet.Cells(I + 5, 8).value & "',
  470. N'" & xlSheet.Cells(I + 5, 9).value & "',N'" & xlSheet.Cells(I + 5, 10).value & "',N'" & xlSheet.Cells(I + 5, 11).value & "',
  471. N'" & xlSheet.Cells(I + 5, 12).value & "',N'" & xlSheet.Cells(I + 5, 13).value & "',N'" & xlSheet.Cells(I + 5, 14).value & "',
  472. N'" & xlSheet.Cells(I + 5, 15).value & "',N'" & xlSheet.Cells(I + 5, 16).value & "',N'" & xlSheet.Cells(I + 5, 17).value & "',
  473. N'" & xlSheet.Cells(I + 5, 18).value & "',N'短照'),"
  474. If (I <> 0 And I Mod 100 = 0) Or (IsNothing(xlSheet.Cells(I + 5, 1).value) = True And IsNothing(xlSheet.Cells(I + 5, 1).value) = True) Then : MyModule1.進度條()
  475. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  476. ConnOpen()
  477. SQL1 = "INSERT INTO 人事拆帳制A碼項目長照所 (流水號, 序號, 服務代碼, 採用計畫, CMS等級, 服務項目類別, 身分證號, 個案姓名, 給付價格, 數量, 小計,
  478. 服務日期, 服務單位, 服務當下居住縣市, 目前居住縣市, 目前居住行政區, 照管專員, 服務人員, 備註,AAORSC)
  479. VALUES " & SQL2
  480. CmdSet_For_dr() : SQL2 = ""
  481. If IsNothing(xlSheet.Cells(I + 5, 1).value) = True And IsNothing(xlSheet.Cells(I + 5, 2).value) = True Then : Exit For : End If
  482. End If
  483. Next : xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  484. End If
  485. '----------SC碼長照所-----------------------------------------------------------------------------------------------------------------------------------------------
  486. If 路徑10_tb.Text <> "" Then
  487. file_name = 路徑10_tb.Text : xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = False : xlApp.Visible = False : xlApp.Workbooks.Open(file_name)
  488. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  489. ConnOpen() : SQL1 = "DELETE 人事拆帳制BA碼項目長照所 WHERE 流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%' AND BAORSC LIKE N'SC'" : CmdSet_For_dr()
  490. SQL2 = ""
  491. For I As Integer = 0 To 10000 : MyModule1.進度條()
  492. SQL2 &= "(N'" & 年份_cb.Text & 月份_cb.Text & "',N'" & xlSheet.Cells(I + 6, 1).value & "',N'" & xlSheet.Cells(I + 6, 2).value & "',
  493. N'" & xlSheet.Cells(I + 6, 3).value & "',N'" & xlSheet.Cells(I + 6, 4).value & "',N'" & xlSheet.Cells(I + 6, 5).value & "',
  494. N'" & xlSheet.Cells(I + 6, 6).value & "',N'" & xlSheet.Cells(I + 6, 7).value & "',N'" & xlSheet.Cells(I + 6, 8).value & "',
  495. N'" & xlSheet.Cells(I + 6, 9).value & "',N'" & xlSheet.Cells(I + 6, 10).value & "',N'" & xlSheet.Cells(I + 6, 11).value & "',
  496. N'" & xlSheet.Cells(I + 6, 12).value & "',N'" & xlSheet.Cells(I + 6, 13).value & "',N'" & xlSheet.Cells(I + 6, 14).value & "',
  497. N'" & xlSheet.Cells(I + 6, 15).value & "',N'" & xlSheet.Cells(I + 6, 16).value & "',N'" & xlSheet.Cells(I + 6, 17).value & "',
  498. N'" & xlSheet.Cells(I + 6, 18).value & "',N'" & xlSheet.Cells(I + 6, 19).value & "',N'" & xlSheet.Cells(I + 6, 20).value & "',
  499. N'" & xlSheet.Cells(I + 6, 21).value & "',N'" & xlSheet.Cells(I + 6, 22).value & "',N'" & xlSheet.Cells(I + 6, 23).value & "',N'SC'),"
  500. If (I <> 0 And I Mod 100 = 0) Or (IsNothing(xlSheet.Cells(I + 6, 1).value) = True And IsNothing(xlSheet.Cells(I + 6, 2).value) = True) Then : MyModule1.進度條()
  501. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  502. ConnOpen()
  503. SQL1 = "INSERT INTO 人事拆帳制BA碼項目長照所 (流水號, 序號, 身分證號, 個案名稱, 採用計畫, CMS等級, 福利身分, 類別, 服務日期, 價格, 價格_原民, 次數,
  504. 申報備用, 部分負擔率, 部分費用, 補助比率, 申請費用, 申請費用_原民, 補助金額, 服務城市, 居住城市, 行政區,
  505. 照管專員, 服務人員,BAORSC)
  506. VALUES " & SQL2
  507. CmdSet_For_dr() : SQL2 = ""
  508. If IsNothing(xlSheet.Cells(I + 6, 1).value) = True And IsNothing(xlSheet.Cells(I + 6, 2).value) = True Then : Exit For : End If
  509. End If
  510. Next : xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  511. End If
  512. '----------自動拆分A碼項目清冊(仁寶)-----------------------------------------------------------------------------------------------------------------------------------------------
  513. Dim ds As New DataSet
  514. 清單_dgv.DataSource = Nothing : ds.Clear()
  515. 清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  516. 清單_dgv.ColumnHeadersHeight = 25 : 清單_dgv.AllowUserToAddRows = False : 清單_dgv.RowTemplate.Height = 35
  517. ConnOpen()
  518. SQL1 = "SELECT 服務代碼, 個案姓名, SUM(CAST(數量 AS INT)) AS 總數量, SUM(CAST(小計 AS MONEY)) AS 總小計,
  519. STRING_AGG(服務人員, N'、') AS 服務人員合併
  520. FROM 人事拆帳制A碼項目清冊
  521. WHERE (流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "') AND (服務人員 LIKE N'%、%')
  522. GROUP BY 服務代碼, 個案姓名"
  523. CmdSet_For_DGV()
  524. da.Fill(ds) : 清單_dgv.DataSource = ds.Tables(0) : conn.Close()
  525. Set_權限清單("%", "%")
  526. If 清單_dgv.Rows.Count > 0 And 總和_dgv.Rows.Count > 0 Then
  527. MsgBox("偵測到導入的資料需要解析拆分,機將開始進行分析!!")
  528. 拆分_dgv.Rows.Clear() : 拆分_dgv.Columns.Clear() : 拆分_dgv.AllowUserToAddRows = False : Dim 差異字串 As String = ""
  529. Set_取資料("%", "%")
  530. For Each col As DataGridViewColumn In 取資料_dgv.Columns ' 初始化拆分_dgv 的欄位與清單_dgv 一樣
  531. 拆分_dgv.Columns.Add(DirectCast(col.Clone(), DataGridViewColumn))
  532. Next
  533. For I As Integer = 0 To 清單_dgv.Rows.Count - 1 : MyModule1.進度條()
  534. Dim 姓名 As String = 清單_dgv.Rows(I).Cells("個案姓名").Value.ToString()
  535. Dim 服務代碼 As String = 清單_dgv.Rows(I).Cells("服務代碼").Value.ToString()
  536. Dim 數量 As Integer = 清單_dgv.Rows(I).Cells("總數量").Value.ToString()
  537. Dim 原始服務人員 As String = 清單_dgv.Rows(I).Cells("服務人員合併").Value.ToString()
  538. Set_取資料(姓名, 服務代碼)
  539. Dim 原始人員清單 As List(Of String) = 原始服務人員.Split({"、"}, StringSplitOptions.RemoveEmptyEntries).Select(Function(x) x.Trim()).ToList() ' 將原始服務人員以 "、" 拆分為清單
  540. Set_權限清單(姓名, 服務代碼) ' 呼叫查詢,填入總和_dgv
  541. If 總和_dgv.Rows.Count = 0 Then Continue For
  542. Dim 拆完數量 As Integer = 0 : Dim 已比對人員 As New List(Of String)
  543. For J As Integer = 0 To 總和_dgv.Rows.Count - 1
  544. Dim 新列 As New DataGridViewRow() : 新列 = DirectCast(取資料_dgv.Rows(0).Clone(), DataGridViewRow)
  545. For k As Integer = 0 To 取資料_dgv.Columns.Count - 1 : 新列.Cells(k).Value = 取資料_dgv.Rows(0).Cells(k).Value : Next
  546. Dim col_服務人員 As Integer = 拆分_dgv.Columns("服務人員").Index : Dim col_數量 As Integer = 拆分_dgv.Columns("數量").Index
  547. Dim col_小計 As Integer = 拆分_dgv.Columns("小計").Index : Dim 居服員姓名 As String = 總和_dgv.Rows(J).Cells("居服員姓名").Value.ToString().Trim()
  548. 新列.Cells(col_服務人員).Value = 居服員姓名 : 新列.Cells(col_數量).Value = 總和_dgv.Rows(J).Cells("總服務次數").Value.ToString()
  549. 拆完數量 += 總和_dgv.Rows(J).Cells("總服務次數").Value.ToString() : 新列.Cells(col_小計).Value = 總和_dgv.Rows(J).Cells("總申報費用").Value.ToString()
  550. 拆分_dgv.Rows.Add(新列) : 已比對人員.Add(居服員姓名) ' 記錄已比對成功的居服員
  551. Next
  552. Dim 未比對人員 As List(Of String) = 原始人員清單.Except(已比對人員).ToList() ' 計算未比對到的人員
  553. If 拆完數量 <> 數量 OrElse 未比對人員.Count > 0 Then
  554. 差異字串 &= 清單_dgv.Rows(I).Cells("個案姓名").Value.ToString() & " / " & 服務代碼 & " 拆分資料異常!! [數量差異(原/拆)" & 數量 & "/" & 拆完數量 & "]" & vbCrLf
  555. If 未比對人員.Count > 0 Then : 差異字串 &= "  未比對到的人員:" & String.Join("、", 未比對人員) & vbCrLf : End If
  556. End If
  557. Next
  558. If 差異字串 <> "" Then
  559. 可複製訊息通知框.訊息_tb.Text = "請注意拆分資料過程發現資料核對異常,清單如下 : " & vbCrLf & 差異字串 & "無法完資料拆分,請確認資料正確並重新導入!!"
  560. 可複製訊息通知框.ShowDialog() : Exit Sub
  561. End If
  562. ConnOpen() ' 刪除未拆分的資料
  563. SQL1 = "DELETE 人事拆帳制A碼項目清冊
  564. WHERE (流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "') AND (服務人員 LIKE N'%、%')"
  565. CmdSet_For_dr()
  566. For I As Integer = 0 To 拆分_dgv.Rows.Count - 1 : MyModule1.進度條()
  567. SQL2 &= "(N'" & 拆分_dgv.Rows(I).Cells(0).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(1).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(2).Value.ToString() & "',
  568. N'" & 拆分_dgv.Rows(I).Cells(3).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(4).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(5).Value.ToString() & "',
  569. N'" & 拆分_dgv.Rows(I).Cells(6).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(7).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(8).Value.ToString() & "',
  570. N'" & 拆分_dgv.Rows(I).Cells(9).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(10).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(11).Value.ToString() & "',
  571. N'" & 拆分_dgv.Rows(I).Cells(12).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(13).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(14).Value.ToString() & "',
  572. N'" & 拆分_dgv.Rows(I).Cells(15).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(16).Value.ToString() & "',N'" & 拆分_dgv.Rows(I).Cells(17).Value.ToString() & "',
  573. N'" & 拆分_dgv.Rows(I).Cells(18).Value.ToString() & "'),"
  574. Next
  575. If Not String.IsNullOrEmpty(SQL2) AndAlso SQL2.Length > 0 Then : SQL2 = SQL2.Substring(0, SQL2.Length - 1) : End If
  576. ConnOpen()
  577. SQL1 = "INSERT INTO 人事拆帳制A碼項目清冊 (序號, 服務代碼, 採用計畫, CMS等級, 服務項目類別, 身分證號, 個案姓名, 給付價格, 數量, 小計,
  578. 服務日期, 服務單位, 服務當下居住縣市, 目前居住縣市, 目前居住行政區, 照管專員, 服務人員, 備註, 流水號)
  579. VALUES " & SQL2
  580. CmdSet_For_dr() : SQL2 = ""
  581. End If
  582. MsgBox("導入完成!!") : 最終數 = 0 : ICS_ASMS_ERP_SYS.ToolStripProgressBar1.Value = 最終數
  583. 首次開啟 = True
  584. BBL1 = "" : BBL2 = "" : BBL3 = "" : BBL4 = "" : BBL5 = "" : BBL6 = "" : PA = "" : PA1 = "" : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "" : PA6 = "" : PA7 = "" : PA8 = "" : PA9 = ""
  585. PA10 = "" : PA11 = "" : PA12 = "" : PA13 = "" : PA14 = "" : PA15 = "" : PA16 = "" : PA17 = "" : PA18 = "" : PA19 = "" : PA20 = "" : PA21 = "" : PA22 = "" : PA23 = "" : PA24 = ""
  586. PA25 = "" : PA26 = "" : PA27 = "" : PA28 = "" : PA29 = "" : PA30 = "" : PA31 = "" : PA32 = "" : PA33 = "" : PA34 = "" : PA35 = "" : PA36 = "" : PA37 = "" : PA38 = "" : PA39 = ""
  587. PA40 = "" : PA41 = "" : PA42 = "" : PA43 = "" : PA44 = "" : PA45 = "" : PA46 = "" : PA47 = "" : DTP = "" : DTP1 = "" : DTP2 = ""
  588. DTP3 = "" : 列印用SQL = ""
  589. Dim aa As MsgBoxResult = MsgBox("導入完成, 是否要開啟拆帳制薪資試算表!!", MsgBoxStyle.OkCancel)
  590. If aa = MsgBoxResult.Ok Then : 拆帳制薪資試算表.Show() : Me.Close() : Else : End If
  591. Else : MsgBox("請先選擇日期!!") : End If
  592. End Sub
  593. Private Sub Set_權限清單(姓名 As String, 服務項目代碼 As String)
  594. Dim ds1 As New DataSet
  595. 總和_dgv.DataSource = Nothing : ds1.Clear()
  596. 總和_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  597. 總和_dgv.ColumnHeadersHeight = 25 : 總和_dgv.AllowUserToAddRows = False : 總和_dgv.RowTemplate.Height = 35
  598. ConnOpen()
  599. SQL1 = "SELECT SUM(CAST(項目服務次數 AS int)) AS 總服務次數, SUM(CAST(申報費用 AS money)) AS 總申報費用, 居服員姓名
  600. FROM 人事拆帳制服務紀錄_仁寶
  601. WHERE (流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "%') AND (姓名 LIKE N'" & 姓名 & "') AND (服務項目代碼 LIKE N'" & 服務項目代碼 & "%')
  602. GROUP BY 居服員姓名"
  603. CmdSet_For_DGV()
  604. da.Fill(ds1) : 總和_dgv.DataSource = ds1.Tables(0) : conn.Close()
  605. End Sub
  606. Private Sub Set_取資料(姓名 As String, 服務代碼 As String)
  607. Dim ds2 As New DataSet
  608. 取資料_dgv.DataSource = Nothing : ds2.Clear()
  609. 取資料_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  610. 取資料_dgv.ColumnHeadersHeight = 25 : 取資料_dgv.AllowUserToAddRows = False : 取資料_dgv.RowTemplate.Height = 35
  611. ConnOpen()
  612. SQL1 = "SELECT TOP (1) 序號, 服務代碼, 採用計畫, CMS等級, 服務項目類別, 身分證號, 個案姓名, 給付價格, 數量, 小計, 服務日期,
  613. 服務單位, 服務當下居住縣市, 目前居住縣市, 目前居住行政區, 照管專員, 服務人員, 備註, 流水號
  614. FROM 人事拆帳制A碼項目清冊
  615. WHERE (流水號 LIKE N'" & 年份_cb.Text & 月份_cb.Text & "') AND (個案姓名 LIKE N'" & 姓名 & "') AND (服務代碼 LIKE N'" & 服務代碼 & "')"
  616. CmdSet_For_DGV()
  617. da.Fill(ds2) : 取資料_dgv.DataSource = ds2.Tables(0) : conn.Close()
  618. End Sub
  619. End Class