설명 없음
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 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. Option Strict Off
  2. Public Class 系統使用者管理
  3. ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet
  4. Dim 資料長度 As Integer : Dim 資料寬度 As Integer : Dim 權限代號 As String : Dim 權限名稱 As String : Dim BBNN1 As Integer
  5. Dim 權限選取 As Boolean = False
  6. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  7. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  8. Dim file_name As String = ""
  9. Dim HH As String
  10. Private Sub Set_權限清單()
  11. 預設權限_dgv.DataSource = Nothing : ds1.Clear()
  12. 預設權限_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  13. 預設權限_dgv.ColumnHeadersHeight = 25
  14. 預設權限_dgv.AllowUserToAddRows = False
  15. 預設權限_dgv.RowTemplate.Height = 35
  16. SQL_系統權限預設表_單一讀取()
  17. da.Fill(ds1) : 預設權限_dgv.DataSource = ds1.Tables(0) : conn.Close()
  18. End Sub
  19. Private Sub Set_使用者清單()
  20. 清單_dgv.DataSource = Nothing : ds.Clear()
  21. 清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  22. 清單_dgv.ColumnHeadersHeight = 25
  23. 清單_dgv.AllowUserToAddRows = False
  24. 清單_dgv.RowTemplate.Height = 35
  25. If 小間距1_ch.Checked = False And 中間距1_ch.Checked = False And 大間距1_ch.Checked = True Then : 清單_dgv.RowTemplate.Height = 75
  26. ElseIf 小間距1_ch.Checked = False And 中間距1_ch.Checked = True And 大間距1_ch.Checked = False Then : 清單_dgv.RowTemplate.Height = 45
  27. ElseIf 小間距1_ch.Checked = True And 中間距1_ch.Checked = False And 大間距1_ch.Checked = False Then : 清單_dgv.RowTemplate.Height = 25 : End If
  28. SQL_系統使用者管理_使用者清單()
  29. da.Fill(ds) : 清單_dgv.DataSource = ds.Tables(0) : conn.Close() : Set_grid()
  30. End Sub
  31. Private Sub Set_grid()
  32. 清單_dgv.Columns(0).FillWeight = 100 : 清單_dgv.Columns(1).Visible = False : 清單_dgv.Columns(2).Visible = False : 清單_dgv.Columns(3).FillWeight = 80
  33. 清單_dgv.Columns(4).FillWeight = 80 : 清單_dgv.Columns(5).FillWeight = 70 : 清單_dgv.Columns(6).FillWeight = 50 : 清單_dgv.Columns(7).FillWeight = 150
  34. 清單_dgv.Columns(8).Visible = False : 清單_dgv.Columns(9).FillWeight = 40 : 清單_dgv.Columns(10).FillWeight = 80 : 清單_dgv.Columns(11).FillWeight = 80
  35. For i As Integer = 0 To 權限數量 - 1
  36. 清單_dgv.Columns(i + 12).Visible = False
  37. Next
  38. If 顯示密碼_bt.Enabled = True And 隱藏密碼_bt.Enabled = False Then
  39. For i As Integer = 0 To 清單_dgv.Rows.Count - 1
  40. 清單_dgv(2, i).Value = "**********"
  41. Next
  42. End If
  43. For i As Integer = 0 To 清單_dgv.Rows.Count - 1
  44. If 清單_dgv.Rows(i).Cells("級別").Value.ToString = "01" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
  45. ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "02" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen
  46. ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "03" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
  47. ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "04" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue
  48. ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "05" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue : End If
  49. Next
  50. End Sub
  51. Private Sub Set_格式設定()
  52. 隱藏密碼_bt.Enabled = False
  53. For no As Integer = 1 To 權限數量
  54. Dim 選擇 As CheckBox = CType(Me.Controls.Find("CheckBox" + no.ToString(), True)(0), CheckBox)
  55. 選擇.Checked = False
  56. Next
  57. End Sub
  58. Private Sub ComboBox2下拉表單資料載入()
  59. SQL_系統使用者管理_下拉清單_職稱() : 級別_cb.Items.Clear() : 職稱_cb.Items.Clear()
  60. While (dr.Read()) : 職稱_cb.Items.Add(dr("職稱")) : 級別_cb.Items.Add(dr("級別")) : End While : conn.Close()
  61. End Sub
  62. Private Sub ComboBox1下拉表單資料載入()
  63. SQL_系統使用者管理_下拉清單_部門() : 部門_cb.Items.Clear() : While (dr.Read()) : 部門_cb.Items.Add(dr("部門")) : End While : conn.Close()
  64. End Sub
  65. Private Sub ComboBox5下拉表單資料載入()
  66. PA20 = Strings.Left(部門_cb.Text, 1) : SQL_系統使用者管理_下拉清單_處別() : 處別_cb.Items.Clear() : While (dr.Read()) : 處別_cb.Items.Add(dr("處")) : End While : conn.Close()
  67. End Sub
  68. Private Sub ComboBox3下拉表單資料載入()
  69. PA20 = Strings.Left(處別_cb.Text, 2) : SQL_系統使用者管理_下拉清單_課別() : 課別_cb.Items.Clear() : While (dr.Read()) : 課別_cb.Items.Add(dr("課別")) : End While : conn.Close()
  70. End Sub
  71. Private Sub ComboBox4下拉表單資料載入()
  72. PA20 = Strings.Left(課別_cb.Text, 3) : SQL_系統使用者管理_下拉清單_組別() : 組別_cb.Items.Clear() : While (dr.Read()) : 組別_cb.Items.Add(dr("組別")) : End While : conn.Close()
  73. End Sub
  74. Private Sub 系統使用者管理_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  75. Me.MdiParent = HX_PGS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  76. SQL_清單欄位查詢()
  77. If Acdr.Read() Then
  78. 小間距1_ch.Checked = Acdr("L_1_1") : 中間距1_ch.Checked = Acdr("L_2_1") : 大間距1_ch.Checked = Acdr("L_3_1")
  79. End If : Access1.Close()
  80. PA = "" : 確認新增_bt.Enabled = False : 級別_cb.Visible = False : 預設權限_dgv.Visible = False
  81. 姓名_tb.Enabled = False : 帳號_tb.Enabled = False : 密碼_tb.Enabled = False : 修改_bt.Enabled = False
  82. ComboBox1下拉表單資料載入() : ComboBox2下拉表單資料載入() : ComboBox3下拉表單資料載入() : ComboBox4下拉表單資料載入() : ComboBox5下拉表單資料載入()
  83. Set_格式設定() : Set_使用者清單() : Set_grid()
  84. MyModule1.清單字體大小調整()
  85. 清單_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  86. End Sub
  87. Private Sub 系統使用者管理_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
  88. MyModule1.虛擬桌面開啟()
  89. End Sub
  90. Private Sub 系統使用者管理_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
  91. MyModule1.清單字體大小調整()
  92. 清單_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  93. End Sub
  94. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  95. timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True
  96. End Sub
  97. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  98. timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True
  99. End Sub
  100. Private Sub 部門_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 部門_cb.SelectedIndexChanged
  101. ComboBox5下拉表單資料載入()
  102. End Sub
  103. Private Sub 處別_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 處別_cb.SelectedIndexChanged
  104. ComboBox3下拉表單資料載入()
  105. End Sub
  106. Private Sub 課別_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 課別_cb.SelectedIndexChanged
  107. ComboBox4下拉表單資料載入()
  108. End Sub
  109. Private Sub 職稱_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 職稱_cb.SelectedIndexChanged
  110. 級別_cb.SelectedIndex = 職稱_cb.SelectedIndex : Set_權限清單() : Dim S1, S2, S3, S4 As String
  111. PA = 職稱_cb.Text : SQL_系統使用者管理_組織帶入() : PA = ""
  112. If dr.Read() Then : S1 = dr("部") : S2 = dr("處") : S3 = dr("課") : S4 = dr("組") : End If : conn.Close()
  113. 部門_cb.Text = S1 : 處別_cb.Text = S2 : 課別_cb.Text = S3 : 組別_cb.Text = S4
  114. End Sub
  115. Private Sub 級別_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 級別_cb.SelectedIndexChanged
  116. 職稱_cb.SelectedIndex = 級別_cb.SelectedIndex : Set_權限清單()
  117. End Sub
  118. Private Sub 清單_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 清單_dgv.RowPostPaint
  119. Dim linePen As New Pen(Color.Blue, 2)
  120. If e.RowIndex = 清單_dgv.Rows.Count - 1 Then
  121. Exit Sub
  122. Else
  123. If 清單_dgv("級別", e.RowIndex).Value.ToString <> 清單_dgv("級別", e.RowIndex + 1).Value.ToString Then
  124. Dim startX As Integer = IIf(清單_dgv.RowHeadersVisible, 清單_dgv.RowHeadersWidth, 0)
  125. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  126. Dim endX As Integer = startX + 清單_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 清單_dgv.HorizontalScrollingOffset
  127. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  128. Exit Sub
  129. End If
  130. End If
  131. For i As Integer = 0 To 清單_dgv.Rows.Count - 1
  132. If 清單_dgv.Rows(i).Cells("級別").Value.ToString = "01" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
  133. ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "02" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen
  134. ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "03" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
  135. ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "04" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue
  136. ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "05" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue : End If
  137. Next
  138. End Sub
  139. Private Sub 清單_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 清單_dgv.CellClick
  140. If e.RowIndex = -1 Then : Else
  141. 姓名_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("姓名").Value.ToString : 帳號_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("帳號").Value.ToString
  142. 密碼_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("密碼").Value.ToString : 職稱_cb.Text = 清單_dgv.Rows(e.RowIndex).Cells("職稱").Value.ToString
  143. NAS帳號_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("NAS帳號").Value.ToString : NAS密碼_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("NAS密碼").Value.ToString
  144. If 顯示密碼_bt.Enabled = False Then
  145. SQL_系統使用者密碼顯示()
  146. If dr.Read() Then : 密碼_tb.Text = dr("密碼") : End If : conn.Close()
  147. End If
  148. For no As Integer = 1 To 權限數量
  149. If no < 10 Then : HH = "0" & no : ElseIf no >= 10 Then : HH = no : End If
  150. Dim 選擇 As CheckBox = CType(Me.Controls.Find("CheckBox" + no.ToString(), True)(0), CheckBox)
  151. 選擇.Checked = 清單_dgv.Rows(e.RowIndex).Cells("CC" & HH).Value
  152. Next
  153. Set_權限清單()
  154. End If
  155. End Sub
  156. Private Sub 指定預設權限_bt_Click_1(sender As Object, e As EventArgs) Handles 指定預設權限_bt.Click
  157. For no As Integer = 1 To 權限數量
  158. If no < 10 Then : HH = "0" & no : ElseIf no >= 10 Then : HH = no : End If
  159. Dim 選擇 As CheckBox = CType(Me.Controls.Find("CheckBox" + no.ToString(), True)(0), CheckBox)
  160. 選擇.Checked = 預設權限_dgv.Rows(0).Cells("CC" & HH).Value
  161. Next
  162. End Sub
  163. Private Sub 新增_bt_Click(sender As Object, e As EventArgs) Handles 新增_bt.Click
  164. 姓名_tb.Enabled = True : 帳號_tb.Enabled = True : 密碼_tb.Enabled = True
  165. 姓名_tb.Text = "" : 帳號_tb.Text = "" : 密碼_tb.Text = "" : 部門_cb.Text = "NA" : 職稱_cb.Text = "NA" : 新增_bt.Enabled = False : 確認新增_bt.Enabled = True
  166. Set_格式設定()
  167. End Sub
  168. Private Sub 確認新增_bt_Click(sender As Object, e As EventArgs) Handles 確認新增_bt.Click
  169. DTP = Strings.Format(Today().AddMonths(2), "yyyy/MM/dd") : SQL_系統使用者新增() : SQL_系統使用者修改() : conn.Close()
  170. If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Tambahkan selesai!!") : End If : Set_使用者清單() : Set_grid()
  171. 確認新增_bt.Enabled = False : 新增_bt.Enabled = True : 顯示密碼_bt.Enabled = True : 隱藏密碼_bt.Enabled = False
  172. 姓名_tb.Enabled = False : 帳號_tb.Enabled = False : 密碼_tb.Enabled = False
  173. End Sub
  174. Private Sub 修改1_bt_Click(sender As Object, e As EventArgs) Handles 修改1_bt.Click
  175. 姓名_tb.Enabled = True : 帳號_tb.Enabled = True : 密碼_tb.Enabled = True : 修改_bt.Enabled = True
  176. End Sub
  177. Private Sub 修改_bt_Click(sender As Object, e As EventArgs) Handles 修改_bt.Click
  178. If 姓名_tb.Text = "" Or 帳號_tb.Text = "" Or 密碼_tb.Text = "" Then
  179. If 系統語言 = "繁體中文" Then : MsgBox("輸入資料有誤!!") : Else : MsgBox("Informasi yang dimasukkan salah!!") : End If
  180. Else
  181. If 密碼_tb.Text = "**********" Then : PA9 = "" : Else : PA9 = ", 密碼 = '" & 密碼_tb.Text & "'" : End If
  182. SQL_系統使用者修改() : conn.Close() : If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modifikasi selesai!!") : End If
  183. 姓名_tb.Enabled = False : 帳號_tb.Enabled = False : 密碼_tb.Enabled = False : 修改_bt.Enabled = False
  184. End If
  185. PA = "" : Set_使用者清單() : Set_grid()
  186. End Sub
  187. Private Sub 刪除_bt_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click
  188. Dim SS As String
  189. If 系統語言 = "繁體中文" Then : SS = "確定要刪除該筆資料?" : Else : SS = "Apakah Anda yakin ingin menghapus data ini?" : End If
  190. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel)
  191. If aa = MsgBoxResult.Ok Then : SQL_系統使用者刪除() : conn.Close()
  192. If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Hapus selesai!!") : End If : End If
  193. 姓名_tb.Text = "" : 帳號_tb.Text = "" : 帳號_tb.Text = "" : CheckBox1.Checked = False
  194. Set_使用者清單() : Set_grid()
  195. End Sub
  196. Private Sub 隱藏密碼_bt_Click(sender As Object, e As EventArgs) Handles 隱藏密碼_bt.Click
  197. 顯示密碼_bt.Enabled = True : 隱藏密碼_bt.Enabled = False : 密碼_tb.Text = "**********"
  198. End Sub
  199. Private Sub 顯示密碼_bt_Click(sender As Object, e As EventArgs) Handles 顯示密碼_bt.Click
  200. 顯示密碼_bt.Enabled = False : 隱藏密碼_bt.Enabled = True
  201. SQL_系統使用者密碼顯示()
  202. If dr.Read() Then : 密碼_tb.Text = dr("密碼") : End If : conn.Close()
  203. End Sub
  204. Private Sub Button9_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click
  205. PA = InputBox("請輸入要查詢的關鍵字") : Set_使用者清單() : PA = ""
  206. End Sub
  207. Private Sub 權限名稱取得()
  208. Dim 選擇 As CheckBox = CType(Me.Controls.Find("CheckBox" + 權限代號.ToString(), True)(0), CheckBox) : 權限名稱 = 選擇.Text : 權限選取 = 選擇.Checked
  209. End Sub
  210. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 導出_bt.Click
  211. 資料長度 = 0 : 資料寬度 = 0 : BBNN1 = 0
  212. If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then : file_name = OpenFileDialog1.FileName : End If
  213. xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = True : xlApp.Visible = True : xlApp.Workbooks.Open(file_name) : xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  214. xlSheet.Cells(2, 4) = 部門_cb.Text : xlSheet.Cells(2, 11) = 課別_cb.Text : xlSheet.Cells(2, 18) = 組別_cb.Text
  215. xlSheet.Cells(3, 4) = 姓名_tb.Text : xlSheet.Cells(3, 11) = 職稱_cb.Text
  216. For i As Integer = 5 To 99999 : If xlSheet.Cells(i, 1).value = "總經理簽核 : " Then : Exit For : Else : 資料長度 = i : End If : Next
  217. For i As Integer = 1 To 3
  218. For ii As Integer = 5 To 資料長度
  219. If xlSheet.Cells(ii, 2 + 資料寬度).value = 0 Then
  220. If xlSheet.Cells(ii, 3 + 資料寬度).value = 0 Then
  221. If xlSheet.Cells(ii, 4 + 資料寬度).value = 0 Then : Else
  222. 權限代號 = xlSheet.Cells(ii, 4 + 資料寬度).value : 權限名稱取得() : BBNN1 = 權限名稱.Length.ToString()
  223. 權限名稱 = Strings.Left(權限名稱, BBNN1 - 5) : xlSheet.Cells(ii, 5 + 資料寬度) = 權限名稱 : If 權限選取 = True Then : xlSheet.Cells(ii, 8 + 資料寬度) = "V" : End If
  224. End If
  225. Else
  226. 權限代號 = xlSheet.Cells(ii, 3 + 資料寬度).value : 權限名稱取得() : BBNN1 = 權限名稱.Length.ToString()
  227. 權限名稱 = Strings.Left(權限名稱, BBNN1 - 5) : xlSheet.Cells(ii, 5 + 資料寬度) = 權限名稱 : If 權限選取 = True Then : xlSheet.Cells(ii, 8 + 資料寬度) = "V" : End If
  228. End If
  229. Else
  230. 權限代號 = xlSheet.Cells(ii, 2 + 資料寬度).value : 權限名稱取得() : BBNN1 = 權限名稱.Length.ToString()
  231. 權限名稱 = Strings.Left(權限名稱, BBNN1 - 5) : xlSheet.Cells(ii, 5 + 資料寬度) = 權限名稱 : If 權限選取 = True Then : xlSheet.Cells(ii, 8 + 資料寬度) = "V" : End If
  232. End If
  233. Next
  234. 資料寬度 += 7
  235. Next
  236. xlApp.Visible = True : If 系統語言 = "繁體中文" Then : MsgBox("資料導出完成!!") : Else : MsgBox("Ekspor data selesai!!") : End If
  237. End Sub
  238. Private Sub 小間距1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 小間距1_ch.Click
  239. 小間距1_ch.Checked = True : 中間距1_ch.Checked = False : 大間距1_ch.Checked = False : MyModule1.間距設定存檔_1() : Set_使用者清單()
  240. End Sub
  241. Private Sub 中間距1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中間距1_ch.Click
  242. 小間距1_ch.Checked = False : 中間距1_ch.Checked = True : 大間距1_ch.Checked = False : MyModule1.間距設定存檔_2() : Set_使用者清單()
  243. End Sub
  244. Private Sub 大間距1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 大間距1_ch.Click
  245. 小間距1_ch.Checked = False : 中間距1_ch.Checked = False : 大間距1_ch.Checked = True : MyModule1.間距設定存檔_3() : Set_使用者清單()
  246. End Sub
  247. End Class