123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- Imports System.IO
- 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
- Imports Microsoft.Office.Interop.Excel.XlPageOrientation
- Imports Microsoft.Office.Interop.Excel
- Public Class 休假歷史紀錄
- ReadOnly ds, ds1 As New DataSet : Dim 剛開啟 As Boolean : Dim 位置1 As Integer
- Dim xlApp As Application : Dim xlBook As Workbook : Dim xlSheet As Worksheet
- Private Sub 讀取人員資料表()
- 人員_dgv.DataSource = Nothing : ds.Clear()
- 人員_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 人員_dgv.ColumnHeadersHeight = 25
- 人員_dgv.AllowUserToAddRows = False
- SQL_考勤明細表_人員()
- da.Fill(ds) : 人員_dgv.DataSource = ds.Tables(0) : conn.Close()
- 人員_dgv.Columns(0).FillWeight = 70 : 人員_dgv.Columns(1).FillWeight = 80 : 人員_dgv.Columns(2).FillWeight = 100 : 人員_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
- 人員_dgv.Columns(8).Visible = False : 人員_dgv.Columns(9).Visible = False : 人員_dgv.Columns("到職日").Visible = False
- For i As Integer = 0 To 人員_dgv.Rows.Count - 1
- 人員_dgv.Rows(i).Cells("No.").Value = i + 1
- Next
- End Sub
- Private Sub 年份_下拉表單資料載入()
- SQL_考勤明細表_年份_下拉()
- 年份_cb.Items.Clear()
- While (dr.Read()) : 年份_cb.Items.Add(dr("年份")) : End While
- conn.Close()
- End Sub
- Private Sub Set_考勤明細()
- 月清單_DGV.DataSource = Nothing : ds1.Clear()
- 月清單_DGV.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 月清單_DGV.ColumnHeadersHeight = 40
- 月清單_DGV.AllowUserToAddRows = False
- PA = 員工編號_tb.Text : SQL_休假清單() 'PA = 年份_cb.Text & "/" & 月份_cb.Text :
- da.Fill(ds1) : 月清單_DGV.DataSource = ds1.Tables(0) : conn.Close()
-
- 月清單_DGV.Columns(0).FillWeight = 80 : 月清單_DGV.Columns(1).FillWeight = 40 : 月清單_DGV.Columns(2).FillWeight = 90 : 月清單_DGV.Columns(3).FillWeight = 65
- 月清單_DGV.Columns(4).FillWeight = 55 : 月清單_DGV.Columns(5).FillWeight = 150 : 月清單_DGV.Columns(6).FillWeight = 60 : 月清單_DGV.Columns(7).FillWeight = 80
- 月清單_DGV.Columns(8).FillWeight = 80 : 月清單_DGV.Columns("圖片資料庫").Visible = False : 月清單_DGV.Columns("圖片編號").Visible = False
- 月清單_DGV.Columns("申請時數").FillWeight = 50
- If 月清單_DGV.Rows.Count > 0 Then
- 請假日期_tb.Text = 月清單_DGV("日期", 0).Value.ToString : Set_假期統計()
- Else
- 假期統計_dgv.DataSource = Nothing
- End If
- End Sub
- Private Sub Set_假期統計()
- Dim ds As New DataSet
- 假期統計_dgv.DataSource = Nothing : ds.Clear()
- 假期統計_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 假期統計_dgv.ColumnHeadersHeight = 25
- 假期統計_dgv.AllowUserToAddRows = False
- PA = 員工編號_tb.Text : PA1 = 請假日期_tb.Text : SQL_休假統計()
- da.Fill(ds) : 假期統計_dgv.DataSource = ds.Tables(0) : conn.Close()
- End Sub
- Private Sub 歷史休假紀錄_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- 剛開啟 = True : 年份_下拉表單資料載入()
- 年份_cb.Text = Year(Today) : 月份_cb.SelectedIndex = Month(Today) - 1 : 請假類別_cb.SelectedIndex = 0
- PA1 = 年份_cb.Text : PA2 = 月份_cb.Text
- 讀取人員資料表() : Set_考勤明細() : 剛開啟 = False
- End Sub
- Private Sub 人員_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 人員_dgv.CellClick
- If e.RowIndex = -1 Then : Else
- 員工編號_tb.Text = 人員_dgv("編號", e.RowIndex).Value.ToString : 申請人_tb.Text = 人員_dgv("姓名", e.RowIndex).Value.ToString
- Set_考勤明細() : 請假日期_tb.Text = 年份_cb.Text & "/" & 月份_cb.Text : Set_假期統計()
- End If
- End Sub
- Private Sub 月清單_DGV_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 月清單_DGV.CellClick
- If e.RowIndex = -1 Then : Else
- If 月清單_DGV.Rows(e.RowIndex).Cells("星期").Value.ToString = "星期六" Or 月清單_DGV.Rows(e.RowIndex).Cells("星期").Value.ToString = "星期日" Or
- 月清單_DGV.Rows(e.RowIndex).Cells("請假類別").Value.ToString = "國定假日" Then
- MsgBox("星期六/星期日或國定假日不可以申請特休!!")
- 請假日期_tb.Text = ""
- 事由_tb.Text = ""
- Else
- 員工編號_tb.Text = 月清單_DGV("編號", e.RowIndex).Value.ToString : 申請人_tb.Text = 月清單_DGV("姓名", e.RowIndex).Value.ToString
- 請假日期_tb.Text = 月清單_DGV("日期", e.RowIndex).Value.ToString : 事由_tb.Text = 月清單_DGV("事由", e.RowIndex).Value.ToString
- 請假類別_cb.Text = 月清單_DGV("請假類別", e.RowIndex).Value.ToString
- 資料指定圖庫_tb.Text = 月清單_DGV("圖片資料庫", e.RowIndex).Value.ToString : 圖片流水號_tb.Text = 月清單_DGV("圖片編號", e.RowIndex).Value.ToString
- '------------驗貨報告讀取--------------------------------------------------------------------------------------------
- If 資料指定圖庫_tb.Text <> "" And 圖片流水號_tb.Text <> "" Then
- 圖片庫 = 資料指定圖庫_tb.Text : SQL_連線字串_圖片資料庫() : PA2 = 圖片流水號_tb.Text
- SQL_請假圖() : PictureBox2.Image = Nothing
- While dr.Read() = True
- Dim unused As Byte() = New Byte(-1) {} : Dim bytes As Byte() = DirectCast(dr.Item("圖片"), Byte())
- Dim oStream As New MemoryStream(bytes) : PictureBox2.Image = Bitmap.FromStream(oStream)
- End While : conn.Close() : PictureBox2.SizeMode = 4
- Else
- PictureBox2.Image = Nothing
- End If
- 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 Strings.Left(月清單_DGV("姓名", e.RowIndex).Value.ToString, 7) <> Strings.Left(月清單_DGV("姓名", e.RowIndex + 1).Value.ToString, 7) 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 月份_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 月份_cb.SelectedIndexChanged
- If 剛開啟 = False Then : Set_考勤明細() : End If
- End Sub
- Private Sub 年份_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 年份_cb.SelectedIndexChanged
- If 剛開啟 = False Then : Set_考勤明細() : End If
- End Sub
- Private Sub 列印_bt_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click
- xlApp = CType(CreateObject("Excel.Application"), Application)
- xlBook = xlApp.Workbooks.Add
- xlApp.DisplayAlerts = True
- xlApp.Visible = True
- xlApp.Application.WindowState = xlMaximized
-
- xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select
- xlApp.Sheets(1).Name = "請休假申請資料" : xlBook.Activate() : xlSheet.Activate()
-
- xlSheet.Cells(1, 1) = "黃柏翰皮膚科診所請休假資料" : xlSheet.Cells(2, 1) = CInt(年份_cb.Text) - 1911 & "年" & 月份_cb.Text & "月 - 全月"
- xlSheet.Cells(3, 1) = "項" : xlSheet.Cells(3, 2) = "姓名" : xlSheet.Cells(3, 3) = "日期" : xlSheet.Cells(3, 4) = "星期"
- xlSheet.Cells(3, 5) = "假別" : xlSheet.Cells(3, 6) = "事由" : xlSheet.Cells(3, 7) = "時數"
- For i As Integer = 0 To 月清單_DGV.Rows.Count - 1
- xlSheet.Cells(4 + i, 1) = i + 1 : xlSheet.Cells(4 + i, 2) = 月清單_DGV("姓名", i).Value.ToString
- xlSheet.Cells(4 + i, 3) = 月清單_DGV("日期", i).Value.ToString : xlSheet.Cells(4 + i, 4) = 月清單_DGV("星期", i).Value.ToString
- xlSheet.Cells(4 + i, 5) = 月清單_DGV("請假類別", i).Value.ToString : xlSheet.Cells(4 + i, 6) = 月清單_DGV("事由", i).Value.ToString
- xlSheet.Cells(4 + i, 7) = 月清單_DGV("申請時數", i).Value.ToString
- Next : 位置1 = 4 + 月清單_DGV.Rows.Count - 1 : AA(xlApp, xlSheet)
- xlSheet.PageSetup.PrintArea = "" : xlApp.Cells.Select() : xlSheet.Range("B1").Select() : xlApp.Application.WindowState = xlMinimized : MsgBox("列印完成")
- End Sub
- Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
- Return CType(xlBook.Worksheets.Add, Worksheet)
- End Function
- Private Sub AA(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet)
- xlSheet.Cells.Select()
- With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 12 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False
- .Shadow = False : .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
- xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 4
- xlSheet.Columns("A:G").Select
- With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
- .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
- xlSheet.Range("F4:F" & 位置1).Select()
- With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
- .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
- xlSheet.Columns("B:G").Select : myExcel.Columns("B:F").EntireColumn.AutoFit
- xlSheet.Rows("4:4").Select : myExcel.ActiveWindow.FreezePanes = True
- xlSheet.Range("B3:G3").Select() : myExcel.Selection.AutoFilter
- xlSheet.Rows("3:3").Select : myExcel.Selection.RowHeight = 35
- With myExcel.Selection : .VerticalAlignment = xlTop : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
- .ReadingOrder = xlContext : .MergeCells = False : End With
- xlSheet.Range("A3:G" & 位置1).Select()
- myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
- With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
- With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
- With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
- With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
- With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
- With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
- myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
- With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
- xlSheet.Range("A2:G2").Select()
- With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
- .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
- With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 12 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False
- .Shadow = False : .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
- myExcel.Selection.Font.Bold = True
- xlSheet.Range("A1:G1").Select()
- With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
- .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
- With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 16 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False
- .Shadow = False : .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
- myExcel.Selection.Font.Bold = True
- xlSheet.Range("A3:G3").Select()
- With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent1 : .TintAndShade = 0.799981688894314
- .PatternTintAndShade = 0 : End With
- xlSheet.Range("F4").Select()
- myExcel.ActiveWindow.DisplayGridlines = False
- End Sub
- End Class
|