123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356 |
- Option Strict Off
- Imports System.Drawing.Imaging
- Imports System.IO
- Imports System.Text.RegularExpressions
- Public Class 個人班表
- ReadOnly ds, ds1 As New DataSet
- Dim X1, XX, XXX, AA As Double
- Dim Q, 開始位置1, 開始位置2, 標準長度, 行(31) As Integer
- Dim inputString As String
- Dim 剛啟動 As Boolean
- Private Sub 讀取排班()
- Dim ds43 As New DataSet
- 人員彙總_dgv.DataSource = Nothing : ds43.Clear()
- 人員彙總_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 人員彙總_dgv.ColumnHeadersHeight = 40 : 人員彙總_dgv.AllowUserToAddRows = False
- SQL_排班系統_人員排班()
- da.Fill(ds43) : 人員彙總_dgv.DataSource = ds43.Tables(0) : conn.Close()
- 人員彙總_dgv.Columns(0).ReadOnly = True : 人員彙總_dgv.Columns(1).ReadOnly = True : 人員彙總_dgv.Columns(2).ReadOnly = True
- 人員彙總_dgv.Columns(3).ReadOnly = True : 人員彙總_dgv.Columns(4).ReadOnly = True
- 人員彙總_dgv.Columns(3).DefaultCellStyle.Format = "#,##0.0"
- 人員彙總_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.0"
- End Sub
- Private Sub 讀取排班資料表()
- 排班明細_dgv.DataSource = Nothing : ds1.Clear()
- 排班明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 排班明細_dgv.ColumnHeadersHeight = 25 : 排班明細_dgv.AllowUserToAddRows = False
- SQL_排班系統_個人整月排班()
- da.Fill(ds1) : 排班明細_dgv.DataSource = ds1.Tables(0) : conn.Close()
- End Sub
- 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()
- End Sub
- Private Sub 進度條變化(ByVal index As Integer)
- If 剛啟動 = True Then
- Dim 姓名_tb As TextBox = CType(Me.Controls.Find("姓名_tb" & index, True)(0), TextBox)
- Dim 班別_cb As ComboBox = CType(Me.Controls.Find("班別_cb" & index, True)(0), ComboBox)
- Dim NumericUpDown As NumericUpDown = CType(Me.Controls.Find("NumericUpDown" & index, True)(0), NumericUpDown)
- Dim BUP As NumericUpDown = CType(Me.Controls.Find("BUP" & index, True)(0), NumericUpDown)
- Dim ComboBox1 As ComboBox = CType(Me.Controls.Find("ComboBox" & (index * 2 - 1), True)(0), ComboBox)
- Dim ComboBox2 As ComboBox = CType(Me.Controls.Find("ComboBox" & (index * 2), True)(0), ComboBox)
- Dim CheckBox As CheckBox = CType(Me.Controls.Find("CheckBox" & index, True)(0), CheckBox)
- If 姓名_tb.Text <> "" OrElse 班別_cb.Text <> "休" Then
- Do2 = NumericUpDown.Value : 班條長度()
- ComboBox1.Size = New Size(340 + XXX, 25) : ComboBox2.Size = New Size(340 - XXX, 25)
- Do2 = BUP.Value : 班條長度() : ComboBox2.Size = New Size(ComboBox2.Size.Width + XXX, 25)
- If Not CheckBox.Checked AndAlso Val(Strings.Left(班別_cb.Text, 2)) < 17 Then : ComboBox2.Visible = True : Else : ComboBox2.Visible = False
- End If
- End If
- End If
- End Sub
- Private Sub 休息變化(ByVal index As Integer)
- If 剛啟動 = True Then ' 取得對應的 ComboBox 和 NumericUpDown 控件
- Dim 班別_cb As ComboBox = CType(Me.Controls.Find("班別_cb" & index, True)(0), ComboBox)
- Dim NUP As NumericUpDown = CType(Me.Controls.Find("NUP" & index, True)(0), NumericUpDown)
- Dim NumericUpDown As NumericUpDown = CType(Me.Controls.Find("NumericUpDown" & index, True)(0), NumericUpDown)
- Dim ComboBox1 As ComboBox = CType(Me.Controls.Find("ComboBox" & (index * 2 - 1), True)(0), ComboBox)
- Dim ComboBox2 As ComboBox = CType(Me.Controls.Find("ComboBox" & (index * 2), True)(0), ComboBox)
- XX = Val(Strings.Left(班別_cb.Text, 2)) * 60 + Val(Strings.Mid(班別_cb.Text, 4, 2)) : 班別圖示計算載入() ' 計算班別開始時間 (轉換成分鐘)
- X1 = NUP.Value : Do2 = NumericUpDown.Value ' 取得數值
- 休息長度() : 班條長度() ' 計算長度
- ComboBox1.Location = New Point(開始位置1 + XX, 行(index)) : ComboBox2.Location = New Point(開始位置2 + XX + X1 + XXX, 行(index)) ' 更新 ComboBox 位置
- 進度條變化(index) ' 呼叫對應的進度條方法
- End If
- End Sub
- Private Sub 班別_下拉表單資料載入()
- SQL_排班系統_班別_下拉()
- For no As Integer = 1 To 31
- Dim 班別_cbS As ComboBox = CType(Me.Controls.Find("班別_cb" + no.ToString(), True)(0), ComboBox) : 班別_cbS.Items.Clear()
- Next
- While (dr.Read())
- For no As Integer = 1 To 31
- Dim 班別_cbS As ComboBox = CType(Me.Controls.Find("班別_cb" + no.ToString(), True)(0), ComboBox) : 班別_cbS.Items.Add(dr("時段"))
- Next
- End While : conn.Close()
- End Sub
- Private Sub 班別圖示計算載入()
- XX = (XX - 480) * 1.41666
- End Sub
- Private Sub 班條長度()
- Dim 小時 As Double = 85
- If Do2 = 4 Then : XXX = 0 : ElseIf Do2 = 1 Then : XXX = -(小時 * 3) : ElseIf Do2 = 1.5 Then : XXX = -(小時 * 2.5)
- ElseIf Do2 = 2 Then : XXX = -(小時 * 2) : ElseIf Do2 = 2.5 Then : XXX = -(小時) + (-(小時 / 2)) : ElseIf Do2 = 3 Then : XXX = -(小時) : ElseIf Do2 = 3.5 Then : XXX = -(小時 / 2)
- ElseIf Do2 = 4.5 Then : XXX = 小時 / 2 : ElseIf Do2 = 5 Then : XXX = 小時 : ElseIf Do2 = 5.5 Then : XXX = 小時 + (小時 / 2) : ElseIf Do2 = 6 Then : XXX = 小時 * 2
- ElseIf Do2 = 6.5 Then : XXX = 小時 * 2.5 : ElseIf Do2 = 7 Then : XXX = 小時 * 3 : ElseIf Do2 = 7.5 Then : XXX = 小時 * 3.5 : ElseIf Do2 = 8 Then : XXX = 小時 * 4 : End If
- End Sub
- Private Sub 休息長度()
- X1 = (X1 - 1) * 8 * 10
- End Sub
- Private Sub 個人班表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- 剛啟動 = False
- '--------------坐標系設定---------------------------
- 開始位置1 = 460 : 開始位置2 = 885 : 標準長度 = 297 : 行(0) = 27
- 行(1) = 44 : 行(2) = 行(1) + 行(0) : 行(3) = 行(2) + 行(0) : 行(4) = 行(3) + 行(0) : 行(5) = 行(4) + 行(0) : 行(6) = 行(5) + 行(0) : 行(7) = 行(6) + 行(0) : 行(8) = 行(7) + 行(0)
- 行(9) = 行(8) + 行(0) : 行(10) = 行(9) + 行(0) : 行(11) = 行(10) + 行(0) : 行(12) = 行(11) + 行(0) : 行(13) = 行(12) + 行(0) : 行(14) = 行(13) + 行(0) : 行(15) = 行(14) + 行(0)
- 行(16) = 行(15) + 行(0) : 行(17) = 行(16) + 行(0) : 行(18) = 行(17) + 行(0) : 行(19) = 行(18) + 行(0) : 行(20) = 行(19) + 行(0) : 行(21) = 行(20) + 行(0) : 行(22) = 行(21) + 行(0)
- 行(23) = 行(22) + 行(0) : 行(24) = 行(23) + 行(0) : 行(25) = 行(24) + 行(0) : 行(26) = 行(25) + 行(0) : 行(27) = 行(26) + 行(0) : 行(28) = 行(27) + 行(0) : 行(29) = 行(28) + 行(0)
- 行(30) = 行(29) + 行(0) : 行(31) = 行(30) + 行(0)
- 人員彙總_dgv.SendToBack() : 年_lb.Text = PA : 月_lb.Text = PA1
- 剛啟動 = True
-
- For i As Integer = 1 To 31
- Dim tb As TextBox = CType(Me.Controls("姓名_tb" & i), TextBox) : Dim cb As ComboBox = CType(Me.Controls("班別_cb" & i), ComboBox)
- If tb IsNot Nothing AndAlso cb IsNot Nothing Then : tb.Tag = i : AddHandler tb.TextChanged, AddressOf 姓名_tb_TextChanged : End If
- Next
- End Sub
- Private Sub 姓名_tb_TextChanged(sender As Object, e As EventArgs)
- Dim tb As TextBox = CType(sender, TextBox) : Dim index As Integer = CInt(tb.Tag)
- Dim 班別_cb As ComboBox = CType(Me.Controls.Find("班別_cb" & index, True)(0), ComboBox)
- Dim cb1 As ComboBox = CType(Me.Controls.Find("ComboBox" & (index * 2 - 1), True)(0), ComboBox)
- Dim cb2 As ComboBox = CType(Me.Controls.Find("ComboBox" & (index * 2), True)(0), ComboBox)
-
- If 班別_cb IsNot Nothing AndAlso 班別_cb.Text <> "休" AndAlso tb.Text <> "" Then
- If cb1 IsNot Nothing Then cb1.Visible = True : If cb2 IsNot Nothing Then cb2.Visible = True : XX = 0
- If 班別_cb.Text = "" Or 班別_cb.Text = "休" Then
- If cb1 IsNot Nothing Then cb1.Location = New Point(開始位置1 + XX, 行(index + 1)) : If cb2 IsNot Nothing Then cb2.Location = New Point(開始位置2 + XX, 行(index + 1))
- End If : 進度條變化(index + 1)
- Else
- If cb1 IsNot Nothing Then cb1.Visible = False : If cb2 IsNot Nothing Then cb2.Visible = False
- End If
- End Sub
- Private Sub 個人班表預設()
- XX = 0 : Dim Q As Integer
- For no As Integer = 1 To 31
- Dim 姓名_tbS As TextBox = CType(Me.Controls.Find("姓名_tb" + no.ToString(), True)(0), TextBox)
- Dim 班別_cbS As ComboBox = CType(Me.Controls.Find("班別_cb" + no.ToString(), True)(0), ComboBox)
- Dim ComboBoxsS1 As ComboBox = CType(Me.Controls.Find("ComboBox" + (no + 62 + Q).ToString(), True)(0), ComboBox)
- Dim ComboBoxsS2 As ComboBox = CType(Me.Controls.Find("ComboBox" + (no + 62 + 1 + Q).ToString(), True)(0), ComboBox)
- Dim ComboBoxs1 As ComboBox = CType(Me.Controls.Find("ComboBox" + (no + Q).ToString(), True)(0), ComboBox)
- Dim ComboBoxs2 As ComboBox = CType(Me.Controls.Find("ComboBox" + (no + 1 + Q).ToString(), True)(0), ComboBox)
- Q += 1 : 姓名_tbS.Text = "" : 剛啟動 = False : 班別_cbS.Text = "休" : ComboBoxs1.Visible = False : ComboBoxs2.Visible = False
- ComboBoxsS1.SelectedIndex = 0 : ComboBoxsS2.SelectedIndex = 0
- Next : 剛啟動 = True
- For i As Integer = 1 To 31
- Dim cb1 As ComboBox = CType(Me.Controls.Find("ComboBox" & (2 * i - 1), True)(0), ComboBox)
- Dim cb2 As ComboBox = CType(Me.Controls.Find("ComboBox" & (2 * i), True)(0), ComboBox)
- cb1.Location = New Point(開始位置1 + XX, 行(i)) : cb2.Location = New Point(開始位置2 + XX, 行(i))
- Next
- End Sub
- Private Sub 個人班表_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
- 班別_下拉表單資料載入() : 個人班表預設()
- PA = 年_lb.Text & "/" & 月_lb.Text : 人員_tb.Text = PA2 : 讀取排班() : 個人班表讀取()
- End Sub
- Private Sub 個人班表讀取()
- 讀取排班資料表() : 讀取星期()
- If 排班明細_dgv.Rows.Count > 0 Then : 個人班表預設()
- Q = 0 : Dim WW As Integer = 0
- For no As Integer = 1 To 31
- Dim TextBoxS As TextBox = CType(Me.Controls.Find("TextBox" + no.ToString(), True)(0), TextBox)
- Dim TextBoxS1 As TextBox = CType(Me.Controls.Find("TextBox" + (no + 31).ToString(), True)(0), TextBox)
- Dim 姓名_tbS As TextBox = CType(Me.Controls.Find("姓名_tb" + no.ToString(), True)(0), TextBox)
- Dim 班別_cbS As ComboBox = CType(Me.Controls.Find("班別_cb" + no.ToString(), True)(0), ComboBox)
- Dim A_lbS As Label = CType(Me.Controls.Find("A_lb" + no.ToString(), True)(0), Label)
- Dim CheckBoxS As CheckBox = CType(Me.Controls.Find("CheckBox" + no.ToString(), True)(0), CheckBox)
- Dim NumericUpDownS As NumericUpDown = CType(Me.Controls.Find("NumericUpDown" + no.ToString(), True)(0), NumericUpDown)
- Dim NUPS As NumericUpDown = CType(Me.Controls.Find("NUP" + no.ToString(), True)(0), NumericUpDown)
- Dim BUPS As NumericUpDown = CType(Me.Controls.Find("BUP" + no.ToString(), True)(0), NumericUpDown)
- Dim ComboBoxsS1 As ComboBox = CType(Me.Controls.Find("ComboBox" + (no + 62 + Q).ToString(), True)(0), ComboBox)
- Dim ComboBoxsS2 As ComboBox = CType(Me.Controls.Find("ComboBox" + (no + 62 + 1 + Q).ToString(), True)(0), ComboBox)
- Dim ComboBoxs1 As ComboBox = CType(Me.Controls.Find("ComboBox" + (no + Q).ToString(), True)(0), ComboBox)
- Dim ComboBoxs2 As ComboBox = CType(Me.Controls.Find("ComboBox" + (no + 1 + Q).ToString(), True)(0), ComboBox) : Q += 1
-
- If no - 1 <= 星期_dgv.Rows.Count - 1 Then '班表簽認
- TextBoxS.Text = 星期_dgv.Rows(no - 1).Cells("星期").Value
- If 星期_dgv.Rows(no - 1).Cells("班表簽認").Value.ToString = "Y" Then : TextBoxS1.Text = "已鎖定" : TextBoxS1.BackColor = Color.PaleGreen
- Else : TextBoxS1.Text = "會變動" : TextBoxS1.BackColor = Color.Pink : End If
- Else : TextBoxS.Text = "" : End If
- If WW <= 排班明細_dgv.Rows.Count - 1 Then
- If Val(排班明細_dgv.Rows(WW).Cells("項次").Value.ToString) = Val(A_lbS.Text) Then
- If 排班明細_dgv.Rows(WW).Cells("班別").Value.ToString <> "休" Then
- ComboBoxs1.Text = 排班明細_dgv.Rows(WW).Cells("一段").Value : ComboBoxs2.Text = 排班明細_dgv.Rows(WW).Cells("二段").Value
- ComboBoxsS1.Text = 排班明細_dgv.Rows(WW).Cells("顏色1").Value
- ComboBoxsS2.Text = 排班明細_dgv.Rows(WW).Cells("顏色2").Value
-
- NUPS.Value = 排班明細_dgv.Rows(WW).Cells("休息").Value : NumericUpDownS.Value = 排班明細_dgv.Rows(WW).Cells("時數").Value
- 姓名_tbS.Text = 排班明細_dgv.Rows(WW).Cells("姓名").Value.ToString
-
- inputString = 班別_cbS.Name : Dim match As Match = Regex.Match(inputString, "\d+$")
- If match.Success Then : Dim number As Integer = Integer.Parse(match.Value) : PA3 = number : End If
- 班別_cbS.Text = 排班明細_dgv.Rows(WW).Cells("班別").Value.ToString
- BUPS.Value = 排班明細_dgv.Rows(WW).Cells("後段").Value : CheckBoxS.Checked = 排班明細_dgv.Rows(WW).Cells("半天").Value : WW += 1
- Else
- ComboBoxs1.Text = "" : ComboBoxs2.Text = "" : NUPS.Value = 0.5 : NumericUpDownS.Value = 4 : 姓名_tbS.Text = ""
- 班別_cbS.Text = "休" : CheckBoxS.Checked = False : WW += 1
- End If
- Else
- ComboBoxs1.Text = "" : ComboBoxs2.Text = "" : NUPS.Value = 0.5 : NumericUpDownS.Value = 4 : 姓名_tbS.Text = ""
- 班別_cbS.Text = "休" : CheckBoxS.Checked = False
- End If
- Else
- ComboBoxs1.Text = "" : ComboBoxs2.Text = "" : NUPS.Value = 0.5 : NumericUpDownS.Value = 4 : 姓名_tbS.Text = ""
- 班別_cbS.Text = "休" : CheckBoxS.Checked = False
- End If
- Next
- Else : 個人班表預設() : End If
- End Sub
- Private Sub 截圖_bt_Click(sender As Object, e As EventArgs) Handles 截圖_bt.Click
- Dim bm = New Bitmap(Panel1.Width, Panel1.Height) : Panel1.Controls.SetChildIndex(PictureBox1, 0)
- Panel1.DrawToBitmap(bm, Panel1.ClientRectangle) : My.Computer.Clipboard.SetImage(bm) : PictureBox1.SendToBack()
- If 存檔_ch.Checked = True Then ' 保存圖片到桌面
- Dim desktopPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
- Dim filePath As String = Path.Combine(desktopPath, 年_lb.Text & 月_lb.Text & 人員_tb.Text & ".png")
- bm.Save(filePath, ImageFormat.Png) : MsgBox("已將圖片存檔到桌面!!")
- End If
- End Sub
- Private Sub 日期上移_bt_Click(sender As Object, e As EventArgs) Handles 日期上移_bt.Click
- If 月_lb.Text <> 1 Then
- 月_lb.Text = CInt(月_lb.Text) - 1
- If CInt(月_lb.Text) < 10 Then : 月_lb.Text = "0" & 月_lb.Text : End If
- Else
- 年_lb.Text = CInt(年_lb.Text) - 1 : 月_lb.Text = 12
- If CInt(月_lb.Text) < 10 Then : 月_lb.Text = "0" & 月_lb.Text : End If
- End If : PA = 年_lb.Text & "/" & 月_lb.Text : PA2 = 人員_tb.Text : 個人班表讀取()
- End Sub
- Private Sub 日期下移_bt_Click(sender As Object, e As EventArgs) Handles 日期下移_bt.Click
- If 月_lb.Text <> 12 Then
- 月_lb.Text = CInt(月_lb.Text) + 1
- If CInt(月_lb.Text) < 10 Then : 月_lb.Text = "0" & 月_lb.Text : End If
- Else
- 年_lb.Text = CInt(年_lb.Text) + 1 : 月_lb.Text = 1
- If CInt(月_lb.Text) < 10 Then : 月_lb.Text = "0" & 月_lb.Text : End If
- End If : PA = 年_lb.Text & "/" & 月_lb.Text : PA2 = 人員_tb.Text : 個人班表讀取()
- End Sub
- Private Sub 人員向前_bt_Click(sender As Object, e As EventArgs) Handles 人員向前_bt.Click
- For I As Integer = 0 To 人員彙總_dgv.Rows.Count - 1
- If 人員_tb.Text = 人員彙總_dgv.Rows(I).Cells("姓名").Value.ToString() Then
- If I = 0 Then : MsgBox("已經是第一筆人員資料!!") : Else
- 人員_tb.Text = 人員彙總_dgv.Rows(I - 1).Cells("姓名").Value.ToString()
- PA = 年_lb.Text & "/" & 月_lb.Text : PA2 = 人員_tb.Text : 個人班表讀取() : Exit Sub
- End If
- End If
- If I = 人員彙總_dgv.Rows.Count - 1 Then
- 人員_tb.Text = 人員彙總_dgv.Rows(0).Cells("姓名").Value.ToString()
- PA = 年_lb.Text & "/" & 月_lb.Text : PA2 = 人員_tb.Text : 個人班表讀取() : Exit Sub
- End If
- Next
- End Sub
- Private Sub 人員向後_bt_Click(sender As Object, e As EventArgs) Handles 人員向後_bt.Click
- For I As Integer = 0 To 人員彙總_dgv.Rows.Count - 1
- If 人員_tb.Text = 人員彙總_dgv.Rows(I).Cells("姓名").Value.ToString() Then
- If I = 人員彙總_dgv.Rows.Count - 1 Then : MsgBox("已經是最後一筆人員資料!!") : Else
- 人員_tb.Text = 人員彙總_dgv.Rows(I + 1).Cells("姓名").Value.ToString()
- PA = 年_lb.Text & "/" & 月_lb.Text : PA2 = 人員_tb.Text : 個人班表讀取() : Exit Sub
- End If
- End If
- If I = 人員彙總_dgv.Rows.Count - 1 Then
- 人員_tb.Text = 人員彙總_dgv.Rows(I).Cells("姓名").Value.ToString()
- PA = 年_lb.Text & "/" & 月_lb.Text : PA2 = 人員_tb.Text : 個人班表讀取() : Exit Sub
- End If
- Next
- End Sub
- Private Sub 班別_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 班別_cb1.SelectedIndexChanged, 班別_cb2.SelectedIndexChanged, 班別_cb3.SelectedIndexChanged,
- 班別_cb4.SelectedIndexChanged, 班別_cb5.SelectedIndexChanged, 班別_cb6.SelectedIndexChanged, 班別_cb7.SelectedIndexChanged, 班別_cb8.SelectedIndexChanged,
- 班別_cb9.SelectedIndexChanged, 班別_cb10.SelectedIndexChanged, 班別_cb11.SelectedIndexChanged, 班別_cb12.SelectedIndexChanged, 班別_cb13.SelectedIndexChanged,
- 班別_cb14.SelectedIndexChanged, 班別_cb15.SelectedIndexChanged, 班別_cb16.SelectedIndexChanged, 班別_cb17.SelectedIndexChanged, 班別_cb18.SelectedIndexChanged,
- 班別_cb19.SelectedIndexChanged, 班別_cb20.SelectedIndexChanged, 班別_cb21.SelectedIndexChanged, 班別_cb22.SelectedIndexChanged, 班別_cb23.SelectedIndexChanged,
- 班別_cb24.SelectedIndexChanged, 班別_cb25.SelectedIndexChanged, 班別_cb26.SelectedIndexChanged, 班別_cb27.SelectedIndexChanged, 班別_cb28.SelectedIndexChanged,
- 班別_cb29.SelectedIndexChanged, 班別_cb30.SelectedIndexChanged, 班別_cb31.SelectedIndexChanged
- If 剛啟動 = True Then
- Dim cbIndex As Integer = CInt(sender.Tag) ' 使用 Tag 屬性來識別不同的 ComboBox
- If cbIndex = 0 And CInt(PA3) <> 0 Then
- Dim CB1 As ComboBox = CType(Me.Controls.Find("ComboBox" & (CInt(PA3) * 2 - 1).ToString(), True)(0), ComboBox)
- Dim CB2 As ComboBox = CType(Me.Controls.Find("ComboBox" & (CInt(PA3) * 2).ToString(), True)(0), ComboBox)
- If CType(sender, ComboBox).Text <> "休" Then : CB1.Visible = True : CB2.Visible = True : 休息變化(CInt(PA3))
- Else : CB1.Visible = False : CB2.Visible = False : End If
- Else
- Dim CB1 As ComboBox = CType(Me.Controls.Find("ComboBox" & (cbIndex * 2 - 1).ToString(), True)(0), ComboBox)
- Dim CB2 As ComboBox = CType(Me.Controls.Find("ComboBox" & (cbIndex * 2).ToString(), True)(0), ComboBox)
- If CType(sender, ComboBox).Text <> "休" Then : CB1.Visible = True : CB2.Visible = True : 休息變化(cbIndex)
- Else : CB1.Visible = False : CB2.Visible = False : End If
- End If : PA3 = "0"
- End If
- End Sub
- Private Sub NUP_ValueChanged(sender As Object, e As EventArgs) Handles NUP1.ValueChanged, NUP2.ValueChanged, NUP3.ValueChanged, NUP4.ValueChanged, NUP5.ValueChanged,
- NUP6.ValueChanged, NUP7.ValueChanged, NUP8.ValueChanged, NUP9.ValueChanged, NUP10.ValueChanged, NUP11.ValueChanged, NUP12.ValueChanged, NUP13.ValueChanged,
- NUP14.ValueChanged, NUP15.ValueChanged, NUP16.ValueChanged, NUP17.ValueChanged, NUP18.ValueChanged, NUP19.ValueChanged, NUP20.ValueChanged, NUP21.ValueChanged,
- NUP22.ValueChanged, NUP23.ValueChanged, NUP24.ValueChanged, NUP25.ValueChanged, NUP26.ValueChanged, NUP27.ValueChanged, NUP28.ValueChanged, NUP29.ValueChanged,
- NUP30.ValueChanged, NUP31.ValueChanged
- If 剛啟動 = True Then
- Dim nup As NumericUpDown = DirectCast(sender, NumericUpDown) : Dim index As Integer = Integer.Parse(nup.Name.Replace("NUP", "")) ' 取得觸發事件的 NumericUpDown
- Dim 班別_cb As ComboBox = CType(Me.Controls.Find("班別_cb" & index, True)(0), ComboBox) ' 取得對應的 ComboBox 和 班別_cb 控件
- Dim ComboBox1 As ComboBox = CType(Me.Controls.Find("ComboBox" & (index * 2 - 1), True)(0), ComboBox)
- Dim ComboBox2 As ComboBox = CType(Me.Controls.Find("ComboBox" & (index * 2), True)(0), ComboBox)
- If 班別_cb.Text <> "休" Then : 休息變化(index) : ComboBox1.Visible = True : ComboBox2.Visible = True : Else : ComboBox1.Visible = False : ComboBox2.Visible = False : End If
- End If
- End Sub
- Private Sub BUP_ValueChanged(sender As Object, e As EventArgs) Handles BUP1.ValueChanged, BUP2.ValueChanged, BUP3.ValueChanged, BUP4.ValueChanged, BUP5.ValueChanged,
- BUP6.ValueChanged, BUP7.ValueChanged, BUP8.ValueChanged, BUP9.ValueChanged, BUP10.ValueChanged, BUP11.ValueChanged, BUP12.ValueChanged, BUP13.ValueChanged,
- BUP14.ValueChanged, BUP15.ValueChanged, BUP16.ValueChanged, BUP17.ValueChanged, BUP18.ValueChanged, BUP19.ValueChanged, BUP20.ValueChanged, BUP21.ValueChanged,
- BUP22.ValueChanged, BUP23.ValueChanged, BUP24.ValueChanged, BUP25.ValueChanged, BUP26.ValueChanged, BUP27.ValueChanged, BUP28.ValueChanged, BUP29.ValueChanged,
- BUP30.ValueChanged, BUP31.ValueChanged
- If 剛啟動 = True Then
- Dim bup As NumericUpDown = DirectCast(sender, NumericUpDown) : Dim index As Integer = CInt(bup.Name.Replace("BUP", ""))
- Dim txtBox As TextBox = DirectCast(Me.Controls.Find("姓名_tb" & index, True)(0), TextBox)
- Dim cmbBox As ComboBox = DirectCast(Me.Controls.Find("班別_cb" & index, True)(0), ComboBox)
- If txtBox.Text <> "" AndAlso cmbBox.Text <> "休" Then : 進度條變化(index) : End If
- End If
- End Sub
- Private Sub CheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged,
- CheckBox4.CheckedChanged, CheckBox5.CheckedChanged, CheckBox6.CheckedChanged, CheckBox7.CheckedChanged, CheckBox8.CheckedChanged, CheckBox9.CheckedChanged,
- CheckBox10.CheckedChanged, CheckBox11.CheckedChanged, CheckBox12.CheckedChanged, CheckBox13.CheckedChanged, CheckBox14.CheckedChanged, CheckBox15.CheckedChanged,
- CheckBox16.CheckedChanged, CheckBox17.CheckedChanged, CheckBox18.CheckedChanged, CheckBox19.CheckedChanged, CheckBox20.CheckedChanged, CheckBox21.CheckedChanged,
- CheckBox22.CheckedChanged, CheckBox23.CheckedChanged, CheckBox24.CheckedChanged, CheckBox25.CheckedChanged, CheckBox26.CheckedChanged, CheckBox27.CheckedChanged,
- CheckBox28.CheckedChanged, CheckBox29.CheckedChanged, CheckBox30.CheckedChanged, CheckBox31.CheckedChanged
- If 剛啟動 = True Then
- Dim chk As CheckBox = DirectCast(sender, CheckBox) : Dim index As Integer = CInt(chk.Name.Replace("CheckBox", ""))
- Dim cmbBox As ComboBox = Me.Controls.Find("班別_cb" & index, True).FirstOrDefault()
- If cmbBox IsNot Nothing AndAlso cmbBox.Text <> "休" Then : 休息變化(index) : End If
- End If
- End Sub
- Private Sub NumericUpDown_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged, NumericUpDown2.ValueChanged, NumericUpDown3.ValueChanged,
- NumericUpDown4.ValueChanged, NumericUpDown5.ValueChanged, NumericUpDown6.ValueChanged, NumericUpDown7.ValueChanged, NumericUpDown8.ValueChanged,
- NumericUpDown9.ValueChanged, NumericUpDown10.ValueChanged, NumericUpDown11.ValueChanged, NumericUpDown12.ValueChanged, NumericUpDown13.ValueChanged,
- NumericUpDown14.ValueChanged, NumericUpDown15.ValueChanged, NumericUpDown16.ValueChanged, NumericUpDown17.ValueChanged, NumericUpDown18.ValueChanged,
- NumericUpDown19.ValueChanged, NumericUpDown20.ValueChanged, NumericUpDown21.ValueChanged, NumericUpDown22.ValueChanged, NumericUpDown23.ValueChanged, NumericUpDown24.ValueChanged,
- NumericUpDown25.ValueChanged, NumericUpDown26.ValueChanged, NumericUpDown27.ValueChanged, NumericUpDown28.ValueChanged,
- NumericUpDown29.ValueChanged, NumericUpDown30.ValueChanged, NumericUpDown31.ValueChanged
- If 剛啟動 = True Then
- Dim numUpDown As NumericUpDown = DirectCast(sender, NumericUpDown)
- Dim index As Integer = CInt(numUpDown.Name.Replace("NumericUpDown", "")) ' 取得對應的索引值
- Dim 班別_cb As ComboBox = CType(Me.Controls("班別_cb" & index), ComboBox) ' 找到對應的 ComboBox
- If 班別_cb IsNot Nothing AndAlso 班別_cb.Text <> "休" Then : 休息變化(index) : End If
- End If
- End Sub
- Private Sub SetComboBoxBackColor(comboBox As ComboBox, selectedIndex As Integer)
- Select Case selectedIndex
- Case 1 : comboBox.BackColor = Color.LawnGreen : Case 2 : comboBox.BackColor = Color.LightBlue : Case 3 : comboBox.BackColor = Color.LightCoral
- Case 4 : comboBox.BackColor = Color.LightCyan : Case 5 : comboBox.BackColor = Color.LightGoldenrodYellow : Case 6 : comboBox.BackColor = Color.LightGray
- Case 7 : comboBox.BackColor = Color.LightGreen : Case 8 : comboBox.BackColor = Color.LightPink : Case 9 : comboBox.BackColor = Color.LightSalmon
- Case 0 : comboBox.BackColor = Color.DimGray
- End Select
- End Sub
- Private Sub ComboBox63_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox63.SelectedIndexChanged, ComboBox64.SelectedIndexChanged, ComboBox65.SelectedIndexChanged,
- ComboBox66.SelectedIndexChanged, ComboBox67.SelectedIndexChanged, ComboBox68.SelectedIndexChanged, ComboBox69.SelectedIndexChanged, ComboBox70.SelectedIndexChanged,
- ComboBox71.SelectedIndexChanged, ComboBox72.SelectedIndexChanged, ComboBox73.SelectedIndexChanged, ComboBox74.SelectedIndexChanged, ComboBox75.SelectedIndexChanged,
- ComboBox76.SelectedIndexChanged, ComboBox77.SelectedIndexChanged, ComboBox78.SelectedIndexChanged, ComboBox79.SelectedIndexChanged, ComboBox80.SelectedIndexChanged,
- ComboBox81.SelectedIndexChanged, ComboBox82.SelectedIndexChanged, ComboBox83.SelectedIndexChanged, ComboBox84.SelectedIndexChanged, ComboBox85.SelectedIndexChanged,
- ComboBox86.SelectedIndexChanged, ComboBox87.SelectedIndexChanged, ComboBox88.SelectedIndexChanged, ComboBox89.SelectedIndexChanged, ComboBox90.SelectedIndexChanged,
- ComboBox91.SelectedIndexChanged, ComboBox92.SelectedIndexChanged, ComboBox93.SelectedIndexChanged, ComboBox94.SelectedIndexChanged, ComboBox95.SelectedIndexChanged,
- ComboBox96.SelectedIndexChanged, ComboBox97.SelectedIndexChanged, ComboBox98.SelectedIndexChanged, ComboBox99.SelectedIndexChanged, ComboBox100.SelectedIndexChanged,
- ComboBox101.SelectedIndexChanged, ComboBox102.SelectedIndexChanged, ComboBox103.SelectedIndexChanged, ComboBox104.SelectedIndexChanged, ComboBox105.SelectedIndexChanged,
- ComboBox106.SelectedIndexChanged, ComboBox107.SelectedIndexChanged, ComboBox108.SelectedIndexChanged, ComboBox109.SelectedIndexChanged, ComboBox110.SelectedIndexChanged,
- ComboBox111.SelectedIndexChanged, ComboBox112.SelectedIndexChanged, ComboBox113.SelectedIndexChanged, ComboBox114.SelectedIndexChanged, ComboBox115.SelectedIndexChanged,
- ComboBox116.SelectedIndexChanged, ComboBox117.SelectedIndexChanged, ComboBox118.SelectedIndexChanged, ComboBox119.SelectedIndexChanged, ComboBox120.SelectedIndexChanged,
- ComboBox121.SelectedIndexChanged, ComboBox122.SelectedIndexChanged, ComboBox123.SelectedIndexChanged, ComboBox124.SelectedIndexChanged
- If 剛啟動 = True Then
- Dim chk As ComboBox = DirectCast(sender, ComboBox) : Dim index As Integer = CInt(chk.Name.Replace("ComboBox", ""))
- Dim CB1 As ComboBox = CType(Me.Controls.Find("ComboBox" & (index - 62), True)(0), ComboBox)
- Dim CB2 As ComboBox = CType(Me.Controls.Find("ComboBox" & (index), True)(0), ComboBox)
- SetComboBoxBackColor(CB1, CB2.SelectedIndex)
- End If
- End Sub
- End Class
|