Public Class 部門權限設定 ReadOnly ds2 As New DataSet : ReadOnly 對話框(6) As String Private Sub Set_使用者清單() Dim ds As New DataSet : 清單_dgv.DataSource = Nothing : ds.Clear() 清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單_dgv.ColumnHeadersHeight = 25 清單_dgv.AllowUserToAddRows = False 清單_dgv.RowTemplate.Height = 35 SQL_跨部門主管權限設定_清單() da.Fill(ds) : 清單_dgv.DataSource = ds.Tables(0) : conn.Close() 清單_dgv.Columns(0).FillWeight = 100 : 清單_dgv.Columns(1).FillWeight = 150 : 清單_dgv.Columns(2).FillWeight = 40 : 清單_dgv.Columns(3).Visible = False 清單_dgv.Columns(4).Visible = False : 清單_dgv.Columns(5).Visible = False : 清單_dgv.Columns(6).Visible = False : 清單_dgv.Columns(7).Visible = False End Sub Private Sub Set_設定清單() Dim ds1 As New DataSet : 設定_dgv.DataSource = Nothing : ds1.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 PA1 = 姓名_tb.Text : PA2 = 帳號_tb.Text SQL_跨部門主管權限設定_確認有無資料() If dr.Read() Then conn.Close() PA3 = 級別_tb.Text SQL_跨部門主管權限設定_已設定過() Label2.Text = "Have Files" Else conn.Close() PA3 = 級別_tb.Text SQL_跨部門主管權限設定_未設定過() Label2.Text = "No Files" End If da.Fill(ds1) : 設定_dgv.DataSource = ds1.Tables(0) : conn.Close() 設定_dgv.Columns(0).FillWeight = 100 : 設定_dgv.Columns(1).FillWeight = 100 : 設定_dgv.Columns(2).FillWeight = 100 : 設定_dgv.Columns(3).FillWeight = 100 設定_dgv.Columns(4).FillWeight = 160 : 設定_dgv.Columns(5).FillWeight = 60 : 設定_dgv.Columns(6).FillWeight = 40 : 設定_dgv.Columns(7).FillWeight = 40 For i As Integer = 0 To 設定_dgv.Rows.Count - 1 If 設定_dgv.Rows(i).Cells(表頭(138)).Value.ToString = "01" Then : 設定_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow ElseIf 設定_dgv.Rows(i).Cells(表頭(138)).Value.ToString = "02" Then : 設定_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen ElseIf 設定_dgv.Rows(i).Cells(表頭(138)).Value.ToString = "03" Then : 設定_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink ElseIf 設定_dgv.Rows(i).Cells(表頭(138)).Value.ToString = "04" Then : 設定_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue ElseIf 設定_dgv.Rows(i).Cells(表頭(138)).Value.ToString = "05" Then : 設定_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue End If If IsDBNull(設定_dgv.Rows(i).Cells(表頭(144)).Value) Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = False End If Next 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 介面 = "H703" : 載入系統語言() SQL_清單欄位查詢() If Acdr.Read() Then 小間距1_ch.Checked = Acdr("L_1_1") : 中間距1_ch.Checked = Acdr("L_2_1") : 大間距1_ch.Checked = Acdr("L_3_1") End If : Access1.Close() Set_使用者清單() MyModule1.清單字體大小調整() 清單_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", ICS_ASMS_ERP_SYS.字體_NUD.Value) 設定_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", ICS_ASMS_ERP_SYS.字體_NUD.Value) End Sub Private Sub 載入系統語言() If 系統語言 = "繁體中文" Then 批量刷新_bt.Text = "批量刷新" : Me.Text = "部門權限設定" : 對話框(1) = "需要先選擇需橫跨管理的部門。" 對話框(2) = "請先選擇需要 [橫跨管理] 的部門。" : 對話框(3) = "沒有選擇授權人員。" : 對話框(4) = "存檔完成。" : 對話框(5) = "確定要重置權限?" 對話框(6) = "權限重置完成。" 部門權限指定_bt.Text = "部門權限指定" : 選定權限取消_bt.Text = "選定權限取消" : 存檔_bt.Text = "存檔" 表頭(4) = "姓名" : 表頭(9) = "職稱" : 表頭(138) = "級別" : 表頭(139) = "部" : 表頭(140) = "處" : 表頭(141) = "課" 表頭(142) = "組" : 表頭(143) = "時效" : 表頭(144) = "授權" : 級別_lb.Text = " 級別" : 刪除_bt.Text = "刪除" Else 批量刷新_bt.Text = "Menyegarkan" : Me.Text = "Pengaturan Otoritas Departemen" 對話框(1) = "Anda perlu memilih departemen yang perlu manajemen rentang." 對話框(2) = "Silakan pilih departemen yang membutuhkan [Across Management] terlebih dahulu." 對話框(3) = "Tidak ada personel resmi yang dipilih." 對話框(4) = "Arsip selesai." 對話框(5) = "Anda yakin ingin menyetel ulang izin?" 對話框(6) = "Penyetelan ulang izin selesai." 部門權限指定_bt.Text = "Penugasan otoritas departemen" : 選定權限取消_bt.Text = "Batalkan izin yang dipilih" : 存檔_bt.Text = "Simpan" 表頭(4) = "Nama" : 表頭(9) = "Judul Pekerjaan" : 表頭(138) = "Tingkat" : 表頭(139) = "Departemen" : 表頭(140) = "Tempat" : 表頭(141) = "Kelas" 表頭(142) = "Kelompok" : 表頭(143) = "Penuaan" : 表頭(144) = "Otorisasi" : 級別_lb.Text = "Tingkat" : 刪除_bt.Text = "Menghapus" End If End Sub Private Sub 語轉扭_bt_Click(sender As Object, e As EventArgs) Handles 語轉扭_bt.Click 介面 = "H703" : 載入系統語言() : Set_使用者清單() : 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(表頭(138), e.RowIndex).Value.ToString = "03" 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(表頭(138)).Value.ToString = "01" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow ElseIf 清單_dgv.Rows(i).Cells(表頭(138)).Value.ToString = "02" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen ElseIf 清單_dgv.Rows(i).Cells(表頭(138)).Value.ToString = "03" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink ElseIf 清單_dgv.Rows(i).Cells(表頭(138)).Value.ToString = "04" Then : 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightBlue ElseIf 清單_dgv.Rows(i).Cells(表頭(138)).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(表頭(138)).Value.ToString : 姓名_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells(表頭(4)).Value.ToString 部門_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 : 組別_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("組別").Value.ToString 帳號_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("帳號").Value.ToString Set_設定清單() If Label2.Text = "No Files" Then For i As Integer = 0 To 設定_dgv.Rows.Count - 1 If 處別_tb.Text = "NA" And 課別_tb.Text = "NA" And 組別_tb.Text = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If ElseIf 課別_tb.Text = "NA" And 組別_tb.Text = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If ElseIf 組別_tb.Text = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別_tb.Text And 設定_dgv.Rows(i).Cells(表頭(141)).Value.ToString = 課別_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If Else If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別_tb.Text And 設定_dgv.Rows(i).Cells(表頭(141)).Value.ToString = 課別_tb.Text And 設定_dgv.Rows(i).Cells(表頭(142)).Value.ToString = 組別_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If End If Next End If End If 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(1, e.RowIndex).Value.ToString <> 設定_dgv(1, e.RowIndex + 1).Value.ToString And 設定_dgv(1, e.RowIndex).Value.ToString <> "NA" 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 End Sub Private Sub 設定_dgv_CellEndEdit(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles 設定_dgv.CellEndEdit Dim EU As String EU = 設定_dgv("時效", e.RowIndex).Value.ToString If EU = "" Then 設定_dgv.Rows(e.RowIndex).Cells("時效").Value = "" Else If IsDate(EU) Then DateTimePicker2.Text = EU 設定_dgv.Rows(e.RowIndex).Cells("時效").Value = Format(DateTimePicker2.Value, "yyyy/MM/dd") Else 設定_dgv.Rows(e.RowIndex).Cells("時效").Value = "" End If End If End Sub Private Sub 設定_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 設定_dgv.CellClick If e.RowIndex = -1 Then : Else 級別1_tb.Text = 設定_dgv.Rows(e.RowIndex).Cells(表頭(138)).Value.ToString 部門1_tb.Text = 設定_dgv.Rows(e.RowIndex).Cells(表頭(139)).Value.ToString : 處別1_tb.Text = 設定_dgv.Rows(e.RowIndex).Cells(表頭(140)).Value.ToString 課別1_tb.Text = 設定_dgv.Rows(e.RowIndex).Cells(表頭(141)).Value.ToString : 組別1_tb.Text = 設定_dgv.Rows(e.RowIndex).Cells(表頭(142)).Value.ToString End If End Sub Private Sub 跨部門權限指定_bt_Click(sender As Object, e As EventArgs) Handles 部門權限指定_bt.Click If 部門1_tb.Text = "" Then MsgBox(對話框(0)) '對話框0 Else For i As Integer = 0 To 設定_dgv.Rows.Count - 1 If Strings.Right(處別1_tb.Text, 2) = "NA" And Strings.Right(課別1_tb.Text, 2) = "NA" And Strings.Right(組別1_tb.Text, 2) = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門1_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If ElseIf Strings.Right(課別1_tb.Text, 2) = "NA" And Strings.Right(組別1_tb.Text, 2) = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別1_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If ElseIf Strings.Right(組別1_tb.Text, 2) = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(141)).Value.ToString = 課別1_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If Else If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(141)).Value.ToString = 課別1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(142)).Value.ToString = 組別1_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If End If Next End If End Sub Private Sub 選定權限取消_bt_Click(sender As Object, e As EventArgs) Handles 選定權限取消_bt.Click If 部門1_tb.Text = "" Then MsgBox(對話框(1)) '對話框1 Else For i As Integer = 0 To 設定_dgv.Rows.Count - 1 If 處別1_tb.Text = "NA" And 課別1_tb.Text = "NA" And 組別1_tb.Text = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門1_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = False End If ElseIf 課別1_tb.Text = "NA" And 組別1_tb.Text = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別1_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = False End If ElseIf 組別1_tb.Text = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(141)).Value.ToString = 課別1_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = False End If Else If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(141)).Value.ToString = 課別1_tb.Text And 設定_dgv.Rows(i).Cells(表頭(142)).Value.ToString = 組別1_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = False End If End If Next End If End Sub Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click If 姓名_tb.Text = "" Then MsgBox(對話框(2)) '對話框2 Else For i As Integer = 0 To 設定_dgv.Rows.Count - 1 資料數 = 設定_dgv.Rows.Count : MyModule1.進度條() PA4 = 設定_dgv.Rows(i).Cells("職稱").Value.ToString : PA1 = 姓名_tb.Text : PA2 = 帳號_tb.Text PA5 = 設定_dgv.Rows(i).Cells("時效").Value.ToString : BL1 = 設定_dgv.Rows(i).Cells(表頭(144)).Value SQL_跨部門主管權限設定_存檔前確認() If dr.Read() Then conn.Close() : SQL_跨部門主管權限設定_修改() : conn.Close() Else conn.Close() : SQL_跨部門主管權限設定_新增() : conn.Close() End If Next : ICS_ASMS_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0 MsgBox(對話框(3)) '對話框3 End If End Sub Private Sub 刪除_bt_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click If 姓名_tb.Text = "" Then MsgBox(對話框(2)) Else Dim aa As MsgBoxResult = MsgBox(對話框(4), MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then PA = 姓名_tb.Text : SQL_跨部門主管權限設定_刪除() : conn.Close() MsgBox(對話框(5)) : Set_設定清單() '對話框5 End If End If End Sub Private Sub 批量刷新_bt_Click(sender As Object, e As EventArgs) Handles 批量刷新_bt.Click For J As Integer = 0 To 清單_dgv.Rows.Count - 1 級別_tb.Text = 清單_dgv.Rows(J).Cells(表頭(138)).Value.ToString : 姓名_tb.Text = 清單_dgv.Rows(J).Cells(表頭(4)).Value.ToString 部門_tb.Text = 清單_dgv.Rows(J).Cells("部門").Value.ToString : 處別_tb.Text = 清單_dgv.Rows(J).Cells("處別").Value.ToString 課別_tb.Text = 清單_dgv.Rows(J).Cells("課別").Value.ToString : 組別_tb.Text = 清單_dgv.Rows(J).Cells("組別").Value.ToString 帳號_tb.Text = 清單_dgv.Rows(J).Cells("帳號").Value.ToString Set_設定清單() If Label2.Text = "No Files" Then For i As Integer = 0 To 設定_dgv.Rows.Count - 1 If 處別_tb.Text = "NA" And 課別_tb.Text = "NA" And 組別_tb.Text = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If ElseIf 課別_tb.Text = "NA" And 組別_tb.Text = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If ElseIf 組別_tb.Text = "NA" Then If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別_tb.Text And 設定_dgv.Rows(i).Cells(表頭(141)).Value.ToString = 課別_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If Else If 設定_dgv.Rows(i).Cells(表頭(139)).Value.ToString = 部門_tb.Text And 設定_dgv.Rows(i).Cells(表頭(140)).Value.ToString = 處別_tb.Text And 設定_dgv.Rows(i).Cells(表頭(141)).Value.ToString = 課別_tb.Text And 設定_dgv.Rows(i).Cells(表頭(142)).Value.ToString = 組別_tb.Text Then 設定_dgv.Rows(i).Cells(表頭(144)).Value = True End If End If Next End If For i As Integer = 0 To 設定_dgv.Rows.Count - 1 資料數 = 設定_dgv.Rows.Count : MyModule1.進度條() PA4 = 設定_dgv.Rows(i).Cells("職稱").Value.ToString : PA1 = 姓名_tb.Text : PA2 = 帳號_tb.Text PA5 = 設定_dgv.Rows(i).Cells("時效").Value.ToString : BL1 = 設定_dgv.Rows(i).Cells(表頭(144)).Value SQL_跨部門主管權限設定_存檔前確認() If dr.Read() Then conn.Close() : SQL_跨部門主管權限設定_修改() : conn.Close() Else conn.Close() : SQL_跨部門主管權限設定_新增() : conn.Close() End If Next : ICS_ASMS_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0 Next MsgBox(對話框(3)) '對話框3 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 End Class