Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle Imports Microsoft.Office.Interop.Excel.Constants Imports Microsoft.Office.Interop.Excel.XlBordersIndex Imports Microsoft.Office.Interop.Excel.XlLineStyle Imports Microsoft.Office.Interop.Excel.XlBorderWeight Imports Microsoft.Office.Interop.Excel.XlThemeFont Imports Microsoft.Office.Interop.Excel.XlThemeColor Imports Microsoft.Office.Interop.Excel.XlWindowState Public Class 系統使用者管理 ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet Dim 資料長度 As Integer : Dim 資料寬度 As Integer : Dim 權限代號 As String : Dim 權限名稱 As String : Dim BBNN1 As Integer Dim 權限選取 As Boolean = False Dim xlApp As Microsoft.Office.Interop.Excel.Application : Dim xlBook As Microsoft.Office.Interop.Excel.Workbook : Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet Dim file_name As String = "" Dim HH As String Private Sub Set_權限清單() 預設權限_dgv.DataSource = Nothing : ds1.Clear() 預設權限_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 預設權限_dgv.ColumnHeadersHeight = 25 預設權限_dgv.AllowUserToAddRows = False 預設權限_dgv.RowTemplate.Height = 35 SQL_系統權限預設表_單一讀取() da.Fill(ds1) : 預設權限_dgv.DataSource = ds1.Tables(0) : conn.Close() End Sub Private Sub Set_使用者清單() 清單_dgv.DataSource = Nothing : ds.Clear() 清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單_dgv.ColumnHeadersHeight = 25 清單_dgv.AllowUserToAddRows = False 清單_dgv.RowTemplate.Height = 35 If 小間距1_ch.Checked = False And 中間距1_ch.Checked = False And 大間距1_ch.Checked = True Then : 清單_dgv.RowTemplate.Height = 75 ElseIf 小間距1_ch.Checked = False And 中間距1_ch.Checked = True And 大間距1_ch.Checked = False Then : 清單_dgv.RowTemplate.Height = 45 ElseIf 小間距1_ch.Checked = True And 中間距1_ch.Checked = False And 大間距1_ch.Checked = False Then : 清單_dgv.RowTemplate.Height = 25 : End If SQL_系統使用者管理_使用者清單() da.Fill(ds) : 清單_dgv.DataSource = ds.Tables(0) : conn.Close() : Set_grid() End Sub Private Sub Set_grid() 清單_dgv.Columns(0).FillWeight = 100 : 清單_dgv.Columns(1).Visible = False : 清單_dgv.Columns(2).Visible = False : 清單_dgv.Columns(3).FillWeight = 80 清單_dgv.Columns(4).FillWeight = 80 : 清單_dgv.Columns(5).FillWeight = 70 : 清單_dgv.Columns(6).FillWeight = 50 : 清單_dgv.Columns(7).FillWeight = 150 清單_dgv.Columns(8).Visible = False : 清單_dgv.Columns(9).FillWeight = 40 : 清單_dgv.Columns(10).FillWeight = 80 : 清單_dgv.Columns(11).FillWeight = 80 清單_dgv.Columns(10).Visible = False : 清單_dgv.Columns(11).Visible = False : 清單_dgv.Columns(12).Visible = 80 For i As Integer = 0 To 權限數量 - 1 清單_dgv.Columns(i + 13).Visible = False Next If 顯示密碼_bt.Enabled = True And 隱藏密碼_bt.Enabled = False Then For i As Integer = 0 To 清單_dgv.Rows.Count - 1 清單_dgv(2, i).Value = "**********" Next End If For i As Integer = 0 To 清單_dgv.Rows.Count - 1 If 清單_dgv.Rows(i).Cells("級別").Value.ToString = "01" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "02" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "03" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "04" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "05" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue : End If Next End Sub Private Sub Set_格式設定() 隱藏密碼_bt.Enabled = False For no As Integer = 1 To 權限數量 Dim 選擇 As CheckBox = CType(Me.Controls.Find("CheckBox" + no.ToString(), True)(0), CheckBox) 選擇.Checked = False Next End Sub Private Sub ComboBox2下拉表單資料載入() SQL_系統使用者管理_下拉清單_職稱() : 級別_cb.Items.Clear() : 職稱_cb.Items.Clear() While (dr.Read()) : 職稱_cb.Items.Add(dr("職稱")) : 級別_cb.Items.Add(dr("級別")) : End While : conn.Close() End Sub Private Sub ComboBox1下拉表單資料載入() SQL_系統使用者管理_下拉清單_部門() : 部門_cb.Items.Clear() : While (dr.Read()) : 部門_cb.Items.Add(dr("部門")) : End While : conn.Close() End Sub Private Sub ComboBox5下拉表單資料載入() PA20 = Strings.Left(部門_cb.Text, 1) : SQL_系統使用者管理_下拉清單_處別() : 處別_cb.Items.Clear() : While (dr.Read()) : 處別_cb.Items.Add(dr("處")) : End While : conn.Close() End Sub Private Sub ComboBox3下拉表單資料載入() PA20 = Strings.Left(處別_cb.Text, 2) : SQL_系統使用者管理_下拉清單_課別() : 課別_cb.Items.Clear() : While (dr.Read()) : 課別_cb.Items.Add(dr("課別")) : End While : conn.Close() End Sub Private Sub ComboBox4下拉表單資料載入() PA20 = Strings.Left(課別_cb.Text, 3) : SQL_系統使用者管理_下拉清單_組別() : 組別_cb.Items.Clear() : While (dr.Read()) : 組別_cb.Items.Add(dr("組別")) : End While : conn.Close() End Sub Private Sub 系統使用者管理_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = ICS_ASMS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True SQL_清單欄位查詢() PA = "" : 確認新增_bt.Enabled = False : 級別_cb.Visible = False : 預設權限_dgv.Visible = False 姓名_tb.Enabled = False : 帳號_tb.Enabled = False : 密碼_tb.Enabled = False : 修改_bt.Enabled = False : ID_tb.Enabled = False ComboBox1下拉表單資料載入() : ComboBox2下拉表單資料載入() : ComboBox3下拉表單資料載入() : ComboBox4下拉表單資料載入() : ComboBox5下拉表單資料載入() Set_格式設定() : Set_使用者清單() : Set_grid() MyModule1.清單字體大小調整() 清單_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", ICS_ASMS_ERP_SYS.字體_NUD.Value) End Sub Private Sub 系統使用者管理_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged MyModule1.清單字體大小調整() 清單_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", ICS_ASMS_ERP_SYS.字體_NUD.Value) End Sub Private Sub 部門_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 部門_cb.SelectedIndexChanged ComboBox5下拉表單資料載入() End Sub Private Sub 處別_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 處別_cb.SelectedIndexChanged ComboBox3下拉表單資料載入() End Sub Private Sub 課別_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 課別_cb.SelectedIndexChanged ComboBox4下拉表單資料載入() End Sub Private Sub 職稱_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 職稱_cb.SelectedIndexChanged 級別_cb.SelectedIndex = 職稱_cb.SelectedIndex : Set_權限清單() : Dim S1, S2, S3, S4 As String PA = 職稱_cb.Text : SQL_系統使用者管理_組織帶入() : PA = "" If dr.Read() Then : S1 = dr("部") : S2 = dr("處") : S3 = dr("課") : S4 = dr("組") : End If : conn.Close() 部門_cb.Text = S1 : 處別_cb.Text = S2 : 課別_cb.Text = S3 : 組別_cb.Text = S4 End Sub Private Sub 級別_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 級別_cb.SelectedIndexChanged 職稱_cb.SelectedIndex = 級別_cb.SelectedIndex : Set_權限清單() End Sub Private Sub 清單_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 清單_dgv.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) If e.RowIndex = 清單_dgv.Rows.Count - 1 Then Exit Sub Else If 清單_dgv("級別", e.RowIndex).Value.ToString <> 清單_dgv("級別", e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(清單_dgv.RowHeadersVisible, 清單_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 清單_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 清單_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) Exit Sub End If End If For i As Integer = 0 To 清單_dgv.Rows.Count - 1 If 清單_dgv.Rows(i).Cells("級別").Value.ToString = "01" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "02" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "03" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "04" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue ElseIf 清單_dgv.Rows(i).Cells("級別").Value.ToString = "05" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue : End If Next End Sub Private Sub 清單_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 清單_dgv.CellClick If e.RowIndex = -1 Then : Else 姓名_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("姓名").Value.ToString : 帳號_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("帳號").Value.ToString 密碼_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("密碼").Value.ToString : 職稱_cb.Text = 清單_dgv.Rows(e.RowIndex).Cells("職稱").Value.ToString NAS帳號_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("NAS帳號").Value.ToString : NAS密碼_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("NAS密碼").Value.ToString ID_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("ID卡號").Value.ToString If 顯示密碼_bt.Enabled = False Then SQL_系統使用者密碼顯示() If dr.Read() Then : 密碼_tb.Text = dr("密碼") : End If : conn.Close() End If For no As Integer = 1 To 權限數量 If no < 10 Then : HH = "0" & no : ElseIf no >= 10 Then : HH = no : End If Dim 選擇 As CheckBox = CType(Me.Controls.Find("CheckBox" + no.ToString(), True)(0), CheckBox) 選擇.Checked = 清單_dgv.Rows(e.RowIndex).Cells("CC" & HH).Value Next Set_權限清單() End If End Sub Private Sub 指定預設權限_bt_Click_1(sender As Object, e As EventArgs) Handles 指定預設權限_bt.Click For no As Integer = 1 To 權限數量 If no < 10 Then : HH = "0" & no : ElseIf no >= 10 Then : HH = no : End If Dim 選擇 As CheckBox = CType(Me.Controls.Find("CheckBox" + no.ToString(), True)(0), CheckBox) 選擇.Checked = 預設權限_dgv.Rows(0).Cells("CC" & HH).Value Next End Sub Private Sub 新增_bt_Click(sender As Object, e As EventArgs) Handles 新增_bt.Click 姓名_tb.Enabled = True : 帳號_tb.Enabled = True : 密碼_tb.Enabled = True : ID_tb.Enabled = True : ID_tb.Text = "" 姓名_tb.Text = "" : 帳號_tb.Text = "" : 密碼_tb.Text = "" : 部門_cb.Text = "NA" : 職稱_cb.Text = "NA" : 新增_bt.Enabled = False : 確認新增_bt.Enabled = True Set_格式設定() End Sub Private Sub 確認新增_bt_Click(sender As Object, e As EventArgs) Handles 確認新增_bt.Click DTP = Strings.Format(Today().AddMonths(2), "yyyy/MM/dd") : SQL_系統使用者新增() : SQL_系統使用者修改() : conn.Close() If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Tambahkan selesai!!") : End If : Set_使用者清單() : Set_grid() 確認新增_bt.Enabled = False : 新增_bt.Enabled = True : 顯示密碼_bt.Enabled = True : 隱藏密碼_bt.Enabled = False 姓名_tb.Enabled = False : 帳號_tb.Enabled = False : 密碼_tb.Enabled = False : ID_tb.Enabled = False End Sub Private Sub 修改1_bt_Click(sender As Object, e As EventArgs) Handles 修改1_bt.Click 姓名_tb.Enabled = True : 帳號_tb.Enabled = True : 密碼_tb.Enabled = True : 修改_bt.Enabled = True : ID_tb.Enabled = True End Sub Private Sub 修改_bt_Click(sender As Object, e As EventArgs) Handles 修改_bt.Click If 姓名_tb.Text = "" Or 帳號_tb.Text = "" Or 密碼_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("輸入資料有誤!!") : Else : MsgBox("Informasi yang dimasukkan salah!!") : End If Else If 密碼_tb.Text = "**********" Then : PA9 = "" : Else : PA9 = ", 密碼 = N'" & 密碼_tb.Text & "'" : End If SQL_系統使用者修改() : conn.Close() : If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modifikasi selesai!!") : End If 姓名_tb.Enabled = False : 帳號_tb.Enabled = False : 密碼_tb.Enabled = False : 修改_bt.Enabled = False : ID_tb.Enabled = False End If PA = "" : Set_使用者清單() : Set_grid() End Sub Private Sub 刪除_bt_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click Dim SS As String If 系統語言 = "繁體中文" Then : SS = "確定要刪除該筆資料?" : Else : SS = "Apakah Anda yakin ingin menghapus data ini?" : End If Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then : SQL_系統使用者刪除() : conn.Close() If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Hapus selesai!!") : End If : End If 姓名_tb.Text = "" : 帳號_tb.Text = "" : 帳號_tb.Text = "" : CheckBox1.Checked = False Set_使用者清單() : Set_grid() End Sub Private Sub 隱藏密碼_bt_Click(sender As Object, e As EventArgs) Handles 隱藏密碼_bt.Click 顯示密碼_bt.Enabled = True : 隱藏密碼_bt.Enabled = False : 密碼_tb.Text = "**********" End Sub Private Sub 顯示密碼_bt_Click(sender As Object, e As EventArgs) Handles 顯示密碼_bt.Click 顯示密碼_bt.Enabled = False : 隱藏密碼_bt.Enabled = True SQL_系統使用者密碼顯示() If dr.Read() Then : 密碼_tb.Text = dr("密碼") : End If : conn.Close() End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click PA = InputBox("請輸入要查詢的關鍵字") : Set_使用者清單() : PA = "" End Sub Private Sub 權限名稱取得() Dim 選擇 As CheckBox = CType(Me.Controls.Find("CheckBox" + 權限代號.ToString(), True)(0), CheckBox) : 權限名稱 = 選擇.Text : 權限選取 = 選擇.Checked End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 導出_bt.Click 資料長度 = 0 : 資料寬度 = 0 : BBNN1 = 0 If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then : file_name = OpenFileDialog1.FileName : End If xlApp = CreateObject("Excel.Application") : xlApp.DisplayAlerts = True : xlApp.Visible = True : xlApp.Workbooks.Open(file_name) : xlSheet = xlApp.Worksheets(1) : xlSheet.Activate() xlSheet.Cells(2, 4) = 部門_cb.Text : xlSheet.Cells(2, 11) = 課別_cb.Text : xlSheet.Cells(2, 18) = 組別_cb.Text xlSheet.Cells(3, 4) = 姓名_tb.Text : xlSheet.Cells(3, 11) = 職稱_cb.Text For i As Integer = 5 To 99999 : If xlSheet.Cells(i, 1).value = "總經理簽核 : " Then : Exit For : Else : 資料長度 = i : End If : Next For i As Integer = 1 To 3 For ii As Integer = 5 To 資料長度 If xlSheet.Cells(ii, 2 + 資料寬度).value = 0 Then If xlSheet.Cells(ii, 3 + 資料寬度).value = 0 Then If xlSheet.Cells(ii, 4 + 資料寬度).value = 0 Then : Else 權限代號 = xlSheet.Cells(ii, 4 + 資料寬度).value : 權限名稱取得() : BBNN1 = 權限名稱.Length.ToString() 權限名稱 = Strings.Left(權限名稱, BBNN1 - 5) : xlSheet.Cells(ii, 5 + 資料寬度) = 權限名稱 : If 權限選取 = True Then : xlSheet.Cells(ii, 8 + 資料寬度) = "V" : End If End If Else 權限代號 = xlSheet.Cells(ii, 3 + 資料寬度).value : 權限名稱取得() : BBNN1 = 權限名稱.Length.ToString() 權限名稱 = Strings.Left(權限名稱, BBNN1 - 5) : xlSheet.Cells(ii, 5 + 資料寬度) = 權限名稱 : If 權限選取 = True Then : xlSheet.Cells(ii, 8 + 資料寬度) = "V" : End If End If Else 權限代號 = xlSheet.Cells(ii, 2 + 資料寬度).value : 權限名稱取得() : BBNN1 = 權限名稱.Length.ToString() 權限名稱 = Strings.Left(權限名稱, BBNN1 - 5) : xlSheet.Cells(ii, 5 + 資料寬度) = 權限名稱 : If 權限選取 = True Then : xlSheet.Cells(ii, 8 + 資料寬度) = "V" : End If End If Next 資料寬度 += 7 Next xlApp.Visible = True : If 系統語言 = "繁體中文" Then : MsgBox("資料導出完成!!") : Else : MsgBox("Ekspor data selesai!!") : End If End Sub Private Sub 小間距1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 小間距1_ch.Click 小間距1_ch.Checked = True : 中間距1_ch.Checked = False : 大間距1_ch.Checked = False : MyModule1.間距設定存檔_1() : Set_使用者清單() End Sub Private Sub 中間距1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中間距1_ch.Click 小間距1_ch.Checked = False : 中間距1_ch.Checked = True : 大間距1_ch.Checked = False : MyModule1.間距設定存檔_2() : Set_使用者清單() End Sub Private Sub 大間距1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 大間距1_ch.Click 小間距1_ch.Checked = False : 中間距1_ch.Checked = False : 大間距1_ch.Checked = True : MyModule1.間距設定存檔_3() : Set_使用者清單() End Sub Private Sub 顯示密碼_bt_MouseEnter(sender As Object, e As EventArgs) Handles 顯示密碼_bt.MouseEnter ToolTip1.SetToolTip(Me.顯示密碼_bt, "顯示密碼") End Sub Private Sub 隱藏密碼_bt_MouseEnter(sender As Object, e As EventArgs) Handles 隱藏密碼_bt.MouseEnter ToolTip1.SetToolTip(Me.隱藏密碼_bt, "隱藏密碼") End Sub Private Sub 導出_bt_MouseEnter(sender As Object, e As EventArgs) Handles 導出_bt.MouseEnter ToolTip1.SetToolTip(Me.導出_bt, "列印成EXCEL") End Sub Private Sub 修改1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 修改1_bt.MouseEnter ToolTip1.SetToolTip(Me.修改1_bt, "修改") End Sub Private Sub 指定預設權限_bt_MouseEnter(sender As Object, e As EventArgs) Handles 指定預設權限_bt.MouseEnter ToolTip1.SetToolTip(Me.指定預設權限_bt, "指定預設權限") End Sub Private Sub 查詢_bt_MouseEnter(sender As Object, e As EventArgs) Handles 查詢_bt.MouseEnter ToolTip1.SetToolTip(Me.查詢_bt, "查詢") End Sub Private Sub 新增_bt_MouseEnter(sender As Object, e As EventArgs) Handles 新增_bt.MouseEnter ToolTip1.SetToolTip(Me.新增_bt, "新增準備") End Sub Private Sub 確認新增_bt_MouseEnter(sender As Object, e As EventArgs) Handles 確認新增_bt.MouseEnter ToolTip1.SetToolTip(Me.確認新增_bt, "確認新增") End Sub Private Sub 修改_bt_MouseEnter(sender As Object, e As EventArgs) Handles 修改_bt.MouseEnter ToolTip1.SetToolTip(Me.修改_bt, "修改存檔") End Sub Private Sub 刪除_bt_MouseEnter(sender As Object, e As EventArgs) Handles 刪除_bt.MouseEnter ToolTip1.SetToolTip(Me.刪除_bt, "刪除") End Sub End Class