Public Class 拆帳制薪資分析表 Private Sub Set_服務人員() Dim startYear As Integer = CInt(年份_cb.Text) : Dim startMonth As Integer = CInt(月份_cb.Text) Dim endYear As Integer = CInt(年份1_cb.Text) : Dim endMonth As Integer = CInt(月份1_cb.Text) Dim result As New List(Of String) : Dim 總數 As Integer = 0 Dim actualStartYear, actualStartMonth, actualEndYear, actualEndMonth As Integer ' 確定實際的開始和結束日期 If (startYear > endYear) OrElse (startYear = endYear AndAlso startMonth > endMonth) Then actualStartYear = endYear : actualStartMonth = endMonth : actualEndYear = startYear : actualEndMonth = startMonth ' 如果開始日期晚於結束日期,就交換它們 Else actualStartYear = startYear : actualStartMonth = startMonth : actualEndYear = endYear : actualEndMonth = endMonth End If Dim currentYear As Integer = actualStartYear : Dim currentMonth As Integer = actualStartMonth While currentYear < actualEndYear OrElse (currentYear = actualEndYear AndAlso currentMonth <= actualEndMonth) result.Add(currentYear.ToString() & currentMonth.ToString("D2")) currentMonth += 1 : If currentMonth > 12 Then : currentMonth = 1 : currentYear += 1 : End If End While If (startYear > endYear) OrElse (startYear = endYear AndAlso startMonth > endMonth) Then : result.Reverse() : End If ' 如果原始輸入是逆序的,反轉結果列表 Dim AA() As String = result.ToArray() ' 將結果轉換為數組 PA2 = "" : PA1 = "" : For i As Integer = 0 To AA.Length - 1 PA1 &= "日期 LIKE '" & AA(i) & "%' OR " : 總數 = i Next : PA1 = "(" & PA1.Substring(0, PA1.LastIndexOf(" OR ")) & ")" Dim ds As New DataSet Dgv.DataSource = Nothing : ds.Clear() Dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing Dgv.ColumnHeadersHeight = 80 : Dgv.AllowUserToAddRows = False : Dgv.RowTemplate.Height = 25 Dgv1.DataSource = Nothing : ds.Clear() Dgv1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing Dgv1.ColumnHeadersHeight = 80 : Dgv1.AllowUserToAddRows = False : Dgv1.RowTemplate.Height = 25 SQL_薪資彙總表_仁寶2() da.Fill(ds) : Dgv.DataSource = ds.Tables(0) : Dgv1.DataSource = ds.Tables(0) : conn.Close() Dgv.Columns("姓名").FillWeight = 60 : Dgv1.Columns("姓名").FillWeight = 60 Dgv.Columns("BA正常").FillWeight = 70 : Dgv.Columns("GA正常").FillWeight = 70 : Dgv.Columns("GA加級").FillWeight = 70 Dgv.Columns("申請總額 仁寶AA").FillWeight = 70 : Dgv.Columns("申請總額 長照AA").FillWeight = 70 : Dgv.Columns("AA正常").FillWeight = 70 Dgv.Columns("服務津貼").FillWeight = 70 : Dgv.Columns("轉場津貼").FillWeight = 70 : Dgv.Columns("薪資加項D").FillWeight = 70 Dgv.Columns("加班費").FillWeight = 70 : Dgv.Columns("加項總計").FillWeight = 70 : Dgv.Columns("減項總計").FillWeight = 70 Dgv.Columns("AA扣除額").FillWeight = 60 : Dgv.Columns("轉場薪資").FillWeight = 70 Dgv.Columns("薪資加項D").FillWeight = 70 : Dgv.Columns("公司負擔總計").FillWeight = 70 : Dgv.Columns("薪資總額").FillWeight = 70 Dgv1.Columns("轉場薪資.").FillWeight = 70 : Dgv1.Columns("平1.34").FillWeight = 70 : Dgv1.Columns("平1.67").FillWeight = 70 Dgv1.Columns("休1.34").FillWeight = 70 : Dgv1.Columns("休1.67").FillWeight = 70 : Dgv1.Columns("國2.00").FillWeight = 70 Dgv1.Columns("總服務時數").FillWeight = 70 : Dgv1.Columns("總轉場時數").FillWeight = 70 : Dgv1.Columns("AA扣除額.").FillWeight = 60 Dgv1.Columns("申請總額 仁寶AA.").FillWeight = 70 : Dgv1.Columns("申請總額 長照AA.").FillWeight = 70 : Dgv1.Columns("薪資總額.").FillWeight = 70 Dgv1.Columns("公司負擔總計.").FillWeight = 70 : Dgv1.Columns("餘額").FillWeight = 70 Dgv.Columns("BA&GA& SC拆帳比").Visible = False : Dgv.Columns("AA 拆帳比").Visible = False : Dgv.Columns("轉場薪資.").Visible = False Dgv.Columns("平1.34").Visible = False : Dgv.Columns("平1.67").Visible = False : Dgv.Columns("休1.34").Visible = False : Dgv.Columns("休1.67").Visible = False Dgv.Columns("國2.00").Visible = False : Dgv1.Columns("服務轉場比").Visible = False : Dgv1.Columns("餘額比").Visible = False : Dgv1.Columns("AA扣除額.").Visible = False For i As Integer = 0 To Dgv.Rows.Count - 1 Dgv.Rows(i).Cells("轉場薪資").Value = Dgv.Rows(i).Cells("轉場薪資.").Value + Dgv.Rows(i).Cells("平1.34").Value + Dgv.Rows(i).Cells("平1.67").Value + Dgv.Rows(i).Cells("休1.34").Value + Dgv.Rows(i).Cells("休1.67").Value + Dgv.Rows(i).Cells("國2.00").Value Dgv.Rows(i).Cells("服務轉場比").Value = Dgv.Rows(i).Cells("總轉場時數").Value / Dgv.Rows(i).Cells("總服務時數").Value * 100 Dgv.Rows(i).Cells("餘額比").Value = Dgv.Rows(i).Cells("餘額").Value / Dgv.Rows(i).Cells("總服務時數").Value * 100 If Dgv.Rows(i).Cells("申請總額(長照) BA&GA&SC").Value = 0 Then Dgv.Rows(i).Cells("BA&GA& SC拆帳比").Value = (Dgv.Rows(i).Cells("BA正常").Value + Dgv.Rows(i).Cells("GA正常").Value + Dgv.Rows(i).Cells("GA加級").Value) / Dgv.Rows(i).Cells("申請總額(仁寶) BA&GA&SC").Value * 100 Dgv.Rows(i).Cells("餘額比").Value = (Dgv.Rows(i).Cells("餘額").Value / Dgv.Rows(i).Cells("申請總額(仁寶) BA&GA&SC").Value) * 100 Else Dgv.Rows(i).Cells("BA&GA& SC拆帳比").Value = (Dgv.Rows(i).Cells("BA正常").Value + Dgv.Rows(i).Cells("GA正常").Value + Dgv.Rows(i).Cells("GA加級").Value) / Dgv.Rows(i).Cells("申請總額(長照) BA&GA&SC").Value * 100 Dgv.Rows(i).Cells("餘額比").Value = (Dgv.Rows(i).Cells("餘額").Value / Dgv.Rows(i).Cells("申請總額(長照) BA&GA&SC").Value) * 100 End If If Dgv.Rows(i).Cells("申請總額 仁寶AA").Value = 0 Then Dgv.Rows(i).Cells("AA 拆帳比").Value = Dgv.Rows(i).Cells("AA正常").Value / Dgv.Rows(i).Cells("申請總額 仁寶AA").Value * 100 Else Dgv.Rows(i).Cells("AA 拆帳比").Value = Dgv.Rows(i).Cells("AA正常").Value / Dgv.Rows(i).Cells("申請總額 仁寶AA").Value * 100 End If If Dgv.Rows(i).Cells("AA正常").Value = 0 Then : Dgv.Rows(i).Cells("AA扣除額").Value = 0 : End If Next Set_進度條顯示01() : Set_進度條顯示02() : Set_進度條顯示04() : Set_進度條顯示03() For i As Integer = 0 To Dgv.Columns.Count - 1 Dgv.Columns(i).ReadOnly = False Dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : Dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 0 To Dgv1.Columns.Count - 1 Dgv1.Columns(i).ReadOnly = False Dgv1.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : Dgv1.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next For i As Integer = 14 To 18 : Dgv.Columns(i).DefaultCellStyle.BackColor = Color.MistyRose : Next For i As Integer = 1 To Dgv.Columns.Count - 1 : Dgv.Columns(i).DefaultCellStyle.Format = "#,##0.0" : Next For i As Integer = 29 To Dgv.Columns.Count - 1 : Dgv.Columns(i).Visible = False : Next For i As Integer = 1 To Dgv1.Columns.Count - 1 : Dgv1.Columns(i).DefaultCellStyle.Format = "#,##0.0" : Next For i As Integer = 19 To 24 : Dgv1.Columns(i).DefaultCellStyle.BackColor = Color.MistyRose : Next For i As Integer = 1 To 18 : Dgv1.Columns(i).Visible = False : Next For i As Integer = 19 To 24 : Dgv1.Columns(i).Visible = True : Next For i As Integer = 25 To 26 : Dgv1.Columns(i).Visible = False : Next For i As Integer = 41 To Dgv1.Columns.Count - 1 : Dgv1.Columns(i).Visible = False : Next 申請BG_仁_tb.Text = "0.0" : 申請BG_長_tb.Text = "0.0" : 申請AA_仁_tb.Text = "0.0" : 申請AA_長_tb.Text = "0.0" : BA正常_tb.Text = "0.0" : GA正常_tb.Text = "0.0" : GA加級_tb.Text = "0.0" AA正常_tb.Text = "0.0" : 薪資D_tb.Text = "0.0" : 服務津貼_tb.Text = "0.0" : 轉場津貼_tb.Text = "0.0" : 轉場薪資_tb.Text = "0.0" : 加班費_tb.Text = "0.0" : 加項總計_tb.Text = "0.0" 支出項目_tb.Text = "0.0" : 減項總計_tb.Text = "0.0" : 申請BG_tb.Text = "0.0" : 申請AA_tb.Text = "0.0" : 薪資總額_tb.Text = "0.0" : 公司負擔_tb.Text = "0.0" : 餘額_tb.Text = "0.0" 服務時數_tb.Text = "0.0" : 轉場時數_tb.Text = "0.0" For i As Integer = 0 To Dgv.Rows.Count - 1 申請BG_仁_tb.Text += Dgv.Rows(i).Cells("申請總額(仁寶) BA&GA&SC").Value : 申請BG_長_tb.Text += Dgv.Rows(i).Cells("申請總額(長照) BA&GA&SC").Value 申請AA_仁_tb.Text += Dgv.Rows(i).Cells("申請總額 仁寶AA").Value : 申請AA_長_tb.Text += Dgv.Rows(i).Cells("申請總額 長照AA").Value BA正常_tb.Text += Dgv.Rows(i).Cells("BA正常").Value : GA正常_tb.Text += Dgv.Rows(i).Cells("GA正常").Value : GA加級_tb.Text += Dgv.Rows(i).Cells("GA加級").Value AA正常_tb.Text += Dgv.Rows(i).Cells("AA正常").Value : 薪資D_tb.Text += Dgv.Rows(i).Cells("薪資加項D").Value : 服務津貼_tb.Text += Dgv.Rows(i).Cells("服務津貼").Value 轉場津貼_tb.Text += Dgv.Rows(i).Cells("轉場津貼").Value : 轉場薪資_tb.Text += Dgv.Rows(i).Cells("轉場薪資").Value : 加班費_tb.Text += Dgv.Rows(i).Cells("加班費").Value 加項總計_tb.Text += Dgv.Rows(i).Cells("加項總計").Value : 減項總計_tb.Text += Dgv.Rows(i).Cells("減項總計").Value : 薪資總額_tb.Text += Dgv.Rows(i).Cells("薪資總額").Value 公司負擔_tb.Text += Dgv.Rows(i).Cells("公司負擔總計").Value : 餘額_tb.Text += Dgv.Rows(i).Cells("餘額").Value : 服務時數_tb.Text += Dgv.Rows(i).Cells("總服務時數").Value 轉場時數_tb.Text += Dgv.Rows(i).Cells("總轉場時數").Value Next If CDbl(申請BG_長_tb.Text) = 0 Then : 申請BG_差額_tb.Text = "0.0" 申請BG_長_比.Text = "0.00%" : 申請BG_仁_比.Text = "100.00%" : 申請BG_差額_比.Text = "0.00%" : 申請BG_tb.Text = CDbl(申請BG_仁_tb.Text) 餘額_比.Text = Strings.Format(CDbl(餘額_tb.Text) / (CDbl(申請BG_仁_tb.Text) + CDbl(申請AA_仁_tb.Text)) * 100, "#,##0.00") & "%" Else 申請BG_差額_tb.Text = CDbl(申請BG_仁_tb.Text) - CDbl(申請BG_長_tb.Text) 申請BG_長_比.Text = "100.00%" : 申請BG_仁_比.Text = Strings.Format(CDbl(申請BG_仁_tb.Text) / CDbl(申請BG_長_tb.Text) * 100, "#,##0.00") & "%" 申請BG_差額_比.Text = Strings.Format(CDbl(申請BG_差額_tb.Text) / CDbl(申請BG_長_tb.Text) * 100, "#,##0.00") & "%" : 申請BG_tb.Text = CDbl(申請BG_長_tb.Text) 餘額_比.Text = Strings.Format(CDbl(餘額_tb.Text) / (CDbl(申請BG_長_tb.Text) + CDbl(申請AA_長_tb.Text)) * 100, "#,##0.00") & "%" End If If CDbl(申請AA_長_tb.Text) = 0 Then : 申請AA_差額_tb.Text = "0.0" 申請AA_長_比.Text = "0.00%" : 申請AA_仁_比.Text = "100.00%" : 申請AA_差額_比.Text = "0.00%" : 申請AA_tb.Text = CDbl(申請AA_仁_tb.Text) Else 申請AA_差額_tb.Text = CDbl(申請AA_仁_tb.Text) - CDbl(申請AA_長_tb.Text) 申請AA_長_比.Text = "100.00%" : 申請AA_仁_比.Text = Strings.Format(CDbl(申請AA_仁_tb.Text) / CDbl(申請AA_長_tb.Text) * 100, "#,##0.00") & "%" 申請AA_差額_比.Text = Strings.Format(CDbl(申請AA_差額_tb.Text) / CDbl(申請AA_長_tb.Text) * 100, "#,##0.00") & "%" : 申請AA_tb.Text = CDbl(申請AA_長_tb.Text) End If 轉場比_tb.Text = Strings.Format(CDbl(轉場時數_tb.Text) / CDbl(服務時數_tb.Text) * 100, "#,##0.00") & "%" 支出項目_tb.Text = CDbl(BA正常_tb.Text) + CDbl(GA正常_tb.Text) + CDbl(GA加級_tb.Text) + CDbl(AA正常_tb.Text) + CDbl(薪資D_tb.Text) + CDbl(服務津貼_tb.Text) + CDbl(轉場津貼_tb.Text) + CDbl(轉場薪資_tb.Text) + CDbl(加班費_tb.Text) + CDbl(加項總計_tb.Text) 修正金額_tb.Text = CDbl(薪資總額_tb.Text) - (CDbl(支出項目_tb.Text) - CDbl(減項總計_tb.Text)) BA正常_比.Text = Strings.Format(CDbl(BA正常_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" GA正常_比.Text = Strings.Format(CDbl(GA正常_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" GA加級_比.Text = Strings.Format(CDbl(GA加級_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" AA正常_比.Text = Strings.Format(CDbl(AA正常_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" 薪資D_比.Text = Strings.Format(CDbl(薪資D_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" 服務津貼_比.Text = Strings.Format(CDbl(服務津貼_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" 轉場津貼_比.Text = Strings.Format(CDbl(轉場津貼_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" 轉場薪資_比.Text = Strings.Format(CDbl(轉場薪資_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" 加班費_比.Text = Strings.Format(CDbl(加班費_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" 加項總計_比.Text = Strings.Format(CDbl(加項總計_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" 申請BG_比.Text = Strings.Format(CDbl(申請BG_tb.Text) / (CDbl(申請BG_tb.Text) + CDbl(申請AA_tb.Text)) * 100, "#,##0.00") & "%" 申請AA_比.Text = Strings.Format(CDbl(申請AA_tb.Text) / (CDbl(申請BG_tb.Text) + CDbl(申請AA_tb.Text)) * 100, "#,##0.00") & "%" 薪資總額_比.Text = Strings.Format(CDbl(薪資總額_tb.Text) / (CDbl(薪資總額_tb.Text) + CDbl(公司負擔_tb.Text)) * 100, "#,##0.00") & "%" 公司負擔_比.Text = Strings.Format(CDbl(公司負擔_tb.Text) / (CDbl(薪資總額_tb.Text) + CDbl(公司負擔_tb.Text)) * 100, "#,##0.00") & "%" 修正金額_比.Text = Strings.Format(CDbl(修正金額_tb.Text) / CDbl(支出項目_tb.Text) * 100, "#,##0.00") & "%" 減項總計_比.Text = Strings.Format(CDbl(減項總計_tb.Text) / CDbl(支出項目_tb.Text) * -100, "#,##0.00") & "%" 申請BG_仁_tb.Text = Strings.Format(CDbl(申請BG_仁_tb.Text), "#,##0.0") : 申請BG_長_tb.Text = Strings.Format(CDbl(申請BG_長_tb.Text), "#,##0.0") 申請AA_仁_tb.Text = Strings.Format(CDbl(申請AA_仁_tb.Text), "#,##0.0") : 申請AA_長_tb.Text = Strings.Format(CDbl(申請AA_長_tb.Text), "#,##0.0") BA正常_tb.Text = Strings.Format(CDbl(BA正常_tb.Text), "#,##0.0") : GA正常_tb.Text = Strings.Format(CDbl(GA正常_tb.Text), "#,##0.0") GA加級_tb.Text = Strings.Format(CDbl(GA加級_tb.Text), "#,##0.0") : AA正常_tb.Text = Strings.Format(CDbl(AA正常_tb.Text), "#,##0.0") 薪資D_tb.Text = Strings.Format(CDbl(薪資D_tb.Text), "#,##0.0") : 服務津貼_tb.Text = Strings.Format(CDbl(服務津貼_tb.Text), "#,##0.0") 轉場津貼_tb.Text = Strings.Format(CDbl(轉場津貼_tb.Text), "#,##0.0") : 轉場薪資_tb.Text = Strings.Format(CDbl(轉場薪資_tb.Text), "#,##0.0") 加班費_tb.Text = Strings.Format(CDbl(加班費_tb.Text), "#,##0.0") : 加項總計_tb.Text = Strings.Format(CDbl(加項總計_tb.Text), "#,##0.0") 支出項目_tb.Text = Strings.Format(CDbl(支出項目_tb.Text), "#,##0.0") : 減項總計_tb.Text = Strings.Format(CDbl(減項總計_tb.Text) * -1, "#,##0.0") 申請BG_tb.Text = Strings.Format(CDbl(申請BG_tb.Text), "#,##0.0") : 申請AA_tb.Text = Strings.Format(CDbl(申請AA_tb.Text), "#,##0.0") 薪資總額_tb.Text = Strings.Format(CDbl(薪資總額_tb.Text), "#,##0.0") : 公司負擔_tb.Text = Strings.Format(CDbl(公司負擔_tb.Text), "#,##0.0") 餘額_tb.Text = Strings.Format(CDbl(餘額_tb.Text), "#,##0.0") : 服務時數_tb.Text = Strings.Format(CDbl(服務時數_tb.Text), "#,##0.0") 轉場時數_tb.Text = Strings.Format(CDbl(轉場時數_tb.Text), "#,##0.0") : 修正金額_tb.Text = Strings.Format(CDbl(修正金額_tb.Text), "#,##0.0") 申請AA_差額_tb.Text = Strings.Format(CDbl(申請AA_差額_tb.Text), "#,##0.0") : 申請BG_差額_tb.Text = Strings.Format(CDbl(申請BG_差額_tb.Text), "#,##0.0") End Sub Private Sub Set_進度條顯示01() Dim Col As New DataGridViewProgressColumn With { .FillWeight = 70, .DataPropertyName = "BA&GA& SC拆帳比." } Col.HeaderText = "BA&GA& SC拆帳比." : Col.Name = "BA&GA& SC拆帳比" : Col.DataPropertyName = "BA&GA& SC拆帳比" Dgv.Columns.Insert(4, Col) End Sub Private Sub Set_進度條顯示02() Dim Col As New DataGridViewProgressColumn With { .FillWeight = 70, .DataPropertyName = "AA 拆帳比." } Col.HeaderText = "AA 拆帳比." : Col.Name = "AA 拆帳比" : Col.DataPropertyName = "AA 拆帳比" Dgv.Columns.Insert(9, Col) End Sub Private Sub Set_進度條顯示03() Dim Col As New DataGridViewProgressColumn With { .FillWeight = 70, .DataPropertyName = "服務轉場比." } Col.HeaderText = "服務轉場比." : Col.Name = "服務轉場比" : Col.DataPropertyName = "服務轉場比" Dgv1.Columns.Insert(39, Col) End Sub Private Sub Set_進度條顯示04() Dim Col As New DataGridViewProgressColumn With { .FillWeight = 70, .DataPropertyName = "餘額比." } Col.HeaderText = "餘額比." : Col.Name = "餘額比" : Col.DataPropertyName = "餘額比" Dgv1.Columns.Insert(35, Col) 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 Dgv.BringToFront() 分母 = 100 : 分段1 = 0.35 : 分段2 = 0.34 : 分段3 = 0.65 : 分段4 = 0.64 : 進度條後墜 = " %" Dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) Dgv1.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) End Sub Private Sub 拆帳制薪資分析表_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown SQL_營運成本收支單對帳表_查詢最後一筆年份清單() 年份_cb.Items.Clear() : 年份_cb.Items.Add("") : 年份1_cb.Items.Clear() : 年份1_cb.Items.Add("") While (dr.Read()) : 年份_cb.Items.Add(dr("年份")) : 年份1_cb.Items.Add(dr("年份")) : End While : conn.Close() SQL_資料日期01() If dr.Read Then 年份_cb.Text = Strings.Left(dr("流水號").ToString, 4) : 月份_cb.Text = Strings.Right(dr("流水號").ToString, 2) 年份1_cb.Text = Strings.Left(dr("流水號").ToString, 4) : 月份1_cb.Text = Strings.Right(dr("流水號").ToString, 2) End If : Set_服務人員() End Sub 'Private Sub Dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Dgv.MouseUp ' If Dgv.SelectedCells.Count = 1 Then : MsgBox(Dgv.SelectedCells(0).ColumnIndex & " " & Dgv.SelectedCells(0).RowIndex) : End If 'End Sub 'Private Sub Dgv1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Dgv1.MouseUp ' If Dgv1.SelectedCells.Count = 1 Then : MsgBox(Dgv1.SelectedCells(0).ColumnIndex & " " & Dgv1.SelectedCells(0).RowIndex) : 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 Dim columnIndex As Integer = 6 : Dim cellBounds As System.Drawing.Rectangle = Dgv.GetCellDisplayRectangle(columnIndex, e.RowIndex, True) Dim lineX As Integer = cellBounds.Right - 1 : Dim lineYStart As Integer = e.RowBounds.Top : Dim lineYEnd As Integer = e.RowBounds.Bottom - 1 e.Graphics.DrawLine(linePen, lineX, lineYStart, lineX, lineYEnd) Dim columnIndex1 As Integer = 13 : Dim cellBounds1 As System.Drawing.Rectangle = Dgv.GetCellDisplayRectangle(columnIndex1, e.RowIndex, True) Dim lineX1 As Integer = cellBounds1.Right - 1 : Dim lineYStart1 As Integer = e.RowBounds.Top : Dim lineYEnd1 As Integer = e.RowBounds.Bottom - 1 e.Graphics.DrawLine(linePen, lineX1, lineYStart1, lineX1, lineYEnd1) : Exit Sub Else Dim columnIndex As Integer = 6 : Dim cellBounds As System.Drawing.Rectangle = Dgv.GetCellDisplayRectangle(columnIndex, e.RowIndex, True) Dim lineX As Integer = cellBounds.Right - 1 : Dim lineYStart As Integer = e.RowBounds.Top : Dim lineYEnd As Integer = e.RowBounds.Bottom - 1 e.Graphics.DrawLine(linePen, lineX, lineYStart, lineX, lineYEnd) Dim columnIndex1 As Integer = 13 : Dim cellBounds1 As System.Drawing.Rectangle = Dgv.GetCellDisplayRectangle(columnIndex1, e.RowIndex, True) Dim lineX1 As Integer = cellBounds1.Right - 1 : Dim lineYStart1 As Integer = e.RowBounds.Top : Dim lineYEnd1 As Integer = e.RowBounds.Bottom - 1 e.Graphics.DrawLine(linePen, lineX1, lineYStart1, lineX1, lineYEnd1) End If End Sub Private Sub Dgv1_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles Dgv1.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) If e.RowIndex = Dgv1.Rows.Count - 1 Then Dim columnIndex As Integer = 0 : Dim cellBounds As System.Drawing.Rectangle = Dgv1.GetCellDisplayRectangle(columnIndex, e.RowIndex, True) Dim lineX As Integer = cellBounds.Right - 1 : Dim lineYStart As Integer = e.RowBounds.Top : Dim lineYEnd As Integer = e.RowBounds.Bottom - 1 e.Graphics.DrawLine(linePen, lineX, lineYStart, lineX, lineYEnd) Dim columnIndex1 As Integer = 24 : Dim cellBounds1 As System.Drawing.Rectangle = Dgv1.GetCellDisplayRectangle(columnIndex1, e.RowIndex, True) Dim lineX1 As Integer = cellBounds1.Right - 1 : Dim lineYStart1 As Integer = e.RowBounds.Top : Dim lineYEnd1 As Integer = e.RowBounds.Bottom - 1 e.Graphics.DrawLine(linePen, lineX1, lineYStart1, lineX1, lineYEnd1) Dim columnIndex2 As Integer = 35 : Dim cellBounds2 As System.Drawing.Rectangle = Dgv1.GetCellDisplayRectangle(columnIndex2, e.RowIndex, True) Dim lineX2 As Integer = cellBounds2.Right - 1 : Dim lineYStart2 As Integer = e.RowBounds.Top : Dim lineYEnd2 As Integer = e.RowBounds.Bottom - 1 e.Graphics.DrawLine(linePen, lineX2, lineYStart2, lineX2, lineYEnd2) : Exit Sub Else Dim columnIndex As Integer = 0 : Dim cellBounds As System.Drawing.Rectangle = Dgv1.GetCellDisplayRectangle(columnIndex, e.RowIndex, True) Dim lineX As Integer = cellBounds.Right - 1 : Dim lineYStart As Integer = e.RowBounds.Top : Dim lineYEnd As Integer = e.RowBounds.Bottom - 1 e.Graphics.DrawLine(linePen, lineX, lineYStart, lineX, lineYEnd) Dim columnIndex1 As Integer = 24 : Dim cellBounds1 As System.Drawing.Rectangle = Dgv1.GetCellDisplayRectangle(columnIndex1, e.RowIndex, True) Dim lineX1 As Integer = cellBounds1.Right - 1 : Dim lineYStart1 As Integer = e.RowBounds.Top : Dim lineYEnd1 As Integer = e.RowBounds.Bottom - 1 e.Graphics.DrawLine(linePen, lineX1, lineYStart1, lineX1, lineYEnd1) Dim columnIndex2 As Integer = 35 : Dim cellBounds2 As System.Drawing.Rectangle = Dgv1.GetCellDisplayRectangle(columnIndex2, e.RowIndex, True) Dim lineX2 As Integer = cellBounds2.Right - 1 : Dim lineYStart2 As Integer = e.RowBounds.Top : Dim lineYEnd2 As Integer = e.RowBounds.Bottom - 1 e.Graphics.DrawLine(linePen, lineX2, lineYStart2, lineX2, lineYEnd2) End If End Sub Private Sub 重讀_bt_Click(sender As Object, e As EventArgs) Handles 重讀_bt.Click Set_服務人員() End Sub Private Sub 薪資結構_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 薪資結構_ch.Click 薪資結構_ch.Checked = True : 成本結構_ch.Checked = False : Dgv.BringToFront() End Sub Private Sub 成本結構_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 成本結構_ch.Click 薪資結構_ch.Checked = False : 成本結構_ch.Checked = True : Dgv1.BringToFront() End Sub End Class