123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- Public Class 自動點燈系統
- Dim 新流水1 As String
- Private Sub 自動點燈系統_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- 明細表_dgv.BringToFront()
- SQL_燈年份() : 年度_cb.Items.Clear() : While (dr.Read()) : 年度_cb.Items.Add(dr("年度")) : End While : conn.Close()
- Dim 年度 As Integer = DateTime.Now.Year
- Dim 民國年份 As Integer = 年度 - 1911
- 年度_cb.Text = 民國年份.ToString()
- 明細表_dgv.Enabled = False
- Set_清單1() : Set_清單2() : PA = 年度_cb.Text : Set_清單7() : Set_清單3() : Set_清單4()
- End Sub
- Private Sub 年度_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 年度_cb.SelectedIndexChanged
- PA = 年度_cb.Text : Set_清單7() : Set_清單3() : Set_清單4()
- End Sub
- Private Sub Set_清單1()
- Dim ds1 As New DataSet : 控制表_dgv.DataSource = Nothing : ds1.Clear()
- 控制表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 控制表_dgv.ColumnHeadersHeight = 30 : 控制表_dgv.AllowUserToAddRows = False : 控制表_dgv.RowTemplate.Height = 30
- SQL_自動點燈_控制表清單()
- da.Fill(ds1) : 控制表_dgv.DataSource = ds1.Tables(0) : conn.Close()
- Dim newFont As New System.Drawing.Font("微軟正黑體", 9) ' 創建一個新字體,Arial 12pt
- 控制表_dgv.RowsDefaultCellStyle.Font = newFont
- 控制表_dgv.Columns(0).FillWeight = 60 : 控制表_dgv.Columns(8).FillWeight = 40 : 控制表_dgv.Columns(11).Visible = False
- 控制表_dgv.Columns(1).Visible = False : 控制表_dgv.Columns(2).Visible = False : 控制表_dgv.Columns(10).Visible = False
- 控制表_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(9).Visible = False
- Dim rowsToRemove As New List(Of Integer)
- For i As Integer = 0 To 控制表_dgv.Rows.Count - 1
- PA2 = 控制表_dgv.Rows(i).Cells("單號").Value.ToString : Set_清單8()
- Dim rowShouldBeRemoved As Boolean = True ' 如果控制表1_dgv 沒有任何資料,也将该行添加到需要删除的列表中
- If 控制表1_dgv.Rows.Count = 0 Then : rowShouldBeRemoved = True : Else ' 假如 控制表1_dgv 內有任一筆資料是 true,保留该行
- For j As Integer = 0 To 控制表1_dgv.Rows.Count - 1
- Dim row As DataGridViewRow = 控制表1_dgv.Rows(j)
- Dim rowHasTrueValue As Boolean = False
- For k As Integer = 1 To 10
- Dim columnName As String = "CH" & k.ToString()
- If Not DBNull.Value.Equals(row.Cells(columnName).Value) AndAlso Convert.ToBoolean(row.Cells(columnName).Value) Then
- rowHasTrueValue = True : Exit For
- End If
- Next : If rowHasTrueValue Then : rowShouldBeRemoved = False : Exit For : End If
- Next
- End If : If rowShouldBeRemoved Then : rowsToRemove.Add(i) : End If
- Next
- ' 倒序删除要删除的行,以避免索引错误
- For i As Integer = rowsToRemove.Count - 1 To 0 Step -1 : 控制表_dgv.Rows.RemoveAt(rowsToRemove(i)) : Next
- End Sub
- Private Sub Set_清單2()
- 明細表_dgv.Columns.Clear()
- Dim ds2 As New DataSet : 明細表_dgv.DataSource = Nothing : ds2.Clear()
- 明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 明細表_dgv.ColumnHeadersHeight = 30 : 明細表_dgv.AllowUserToAddRows = False : 明細表_dgv.RowTemplate.Height = 30
- PA = 年度_cb.Text : PA1 = 單號_tb.Text : Set_清單7() : Set_清單5() : Set_清單3() : Set_清單4() : SQL2 = ""
- For i As Integer = 0 To 明細表2_dgv.Rows.Count - 1 : SQL2 &= " AND (編號 NOT LIKE N'" & 明細表2_dgv("科目編號", i).Value.ToString & "')" : Next
- SQL_燈科目讀取1() : 科目_cb.Items.Clear() : 編號_cb.Items.Clear()
- While (dr.Read()) : 科目_cb.Items.Add(dr("會計科目")) : 編號_cb.Items.Add(dr("編號")) : End While : conn.Close()
-
- Dim CN00 As String = "姓名" : Dim NC00 As New DataGridViewTextBoxColumn With {.HeaderText = CN00, .Name = CN00, .FillWeight = 30} : 明細表_dgv.Columns.Add(NC00)
- Dim CN01 As String = "查" : Dim NC01 As New DataGridViewImageColumn With {.HeaderText = CN01, .Name = CN01, .FillWeight = 15} : 明細表_dgv.Columns.Add(NC01)
- Dim CN011 As String = "性別" : Dim NC011 As New DataGridViewTextBoxColumn With {.HeaderText = CN011, .Name = CN011, .FillWeight = 20} : 明細表_dgv.Columns.Add(NC011)
- Dim CN012 As String = "生肖" : Dim NC012 As New DataGridViewTextBoxColumn With {.HeaderText = CN012, .Name = CN012, .FillWeight = 20} : 明細表_dgv.Columns.Add(NC012)
- Dim CN02 As String = "會計科目" : Dim NC02 As New DataGridViewTextBoxColumn With {.HeaderText = CN02, .Name = CN02, .FillWeight = 40} : 明細表_dgv.Columns.Add(NC02)
- Dim CN03 As String = "課目編號" : Dim NC03 As New DataGridViewTextBoxColumn With {.HeaderText = CN03, .Name = CN03, .FillWeight = 40} : 明細表_dgv.Columns.Add(NC03)
- Dim CN04 As String = "內容" : Dim NC04 As New DataGridViewTextBoxColumn With {.HeaderText = CN04, .Name = CN04, .FillWeight = 130} : 明細表_dgv.Columns.Add(NC04)
- Dim CN05 As String = "非點燈收款" : Dim NC05 As New DataGridViewTextBoxColumn With {.HeaderText = CN05, .Name = CN05, .FillWeight = 50} : 明細表_dgv.Columns.Add(NC05)
- For i As Integer = 0 To 明細表1_dgv.Rows.Count - 1
- Dim columnName1 As String = 明細表1_dgv(0, i).Value.ToString
- Dim newColumn1 As New DataGridViewCheckBoxColumn With {
- .HeaderText = columnName1,
- .Name = columnName1,
- .FillWeight = 20 ' 設定欄位寬度為 30
- }
- 明細表_dgv.Columns.Add(newColumn1)
- Next
- Dim CN06 As String = "金額" : Dim NC06 As New DataGridViewTextBoxColumn With {.HeaderText = CN06, .Name = CN06, .FillWeight = 40} : 明細表_dgv.Columns.Add(NC06)
- Dim CN07 As String = "項" : Dim NC07 As New DataGridViewTextBoxColumn With {.HeaderText = CN07, .Name = CN07, .FillWeight = 40} : 明細表_dgv.Columns.Add(NC07)
- Dim newFont As New System.Drawing.Font("微軟正黑體", 9) ' 創建一個新字體,Arial 12pt
- 明細表_dgv.ColumnHeadersDefaultCellStyle.Font = newFont : 明細表_dgv.RowsDefaultCellStyle.Font = newFont
- 明細表_dgv.EditMode = DataGridViewEditMode.EditOnEnter
- 明細表_dgv.Columns("金額").ReadOnly = True : 明細表_dgv.Columns("會計科目").ReadOnly = True
- 明細表_dgv.Columns("性別").ReadOnly = True : 明細表_dgv.Columns("生肖").ReadOnly = True
- 明細表_dgv.Columns("課目編號").Visible = False : 明細表_dgv.Columns("項").Visible = False
- 明細表_dgv.Columns("查").Visible = False : 明細表_dgv.Columns("會計科目").Visible = False
- 明細表_dgv.Columns("內容").Visible = False : 明細表_dgv.Columns("非點燈收款").Visible = False
- 明細表_dgv.Columns("金額").Visible = False
- 明細表_dgv.Columns("金額").DefaultCellStyle.Format = "#,##0" : 明細表_dgv.Columns("非點燈收款").DefaultCellStyle.Format = "#,##0"
- 明細表_dgv.Columns("非點燈收款").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
- 明細表_dgv.Columns("非點燈收款").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
- 明細表_dgv.Columns("金額").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
- 明細表_dgv.Columns("金額").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
- 明細表_dgv.Columns("姓名").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
- 明細表_dgv.Columns("姓名").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
- Dim mycol1 As DataGridViewImageColumn = 明細表_dgv.Columns("查") : mycol1.ImageLayout = DataGridViewImageCellLayout.Zoom
- If 收款_dgv.Rows.Count > 0 Then
- Dim 數量 As Integer = 明細表1_dgv.Rows.Count + 5
- For i As Integer = 0 To 收款_dgv.Rows.Count - 1 : Set_明細()
- 明細表_dgv("姓名", 0).Value = 收款_dgv("姓名", i).Value.ToString : 明細表_dgv("會計科目", 0).Value = 收款_dgv("會計科目", i).Value.ToString
- 明細表_dgv("課目編號", 0).Value = 收款_dgv("科目編號", i).Value.ToString : 明細表_dgv("內容", 0).Value = 收款_dgv("內容", i).Value.ToString
- 明細表_dgv("非點燈收款", 0).Value = CInt(收款_dgv("非點燈收款", i).Value.ToString)
- 明細表_dgv("性別", 0).Value = 收款_dgv("性別", i).Value.ToString : 明細表_dgv("生肖", 0).Value = 收款_dgv("生肖", i).Value.ToString
- If 數量 >= 6 Then : If 收款_dgv("CH1", i).Value = True Then : 明細表_dgv(8, 0).Value = True : End If : End If
- If 數量 >= 7 Then : If 收款_dgv("CH2", i).Value = True Then : 明細表_dgv(9, 0).Value = True : End If : End If
- If 數量 >= 8 Then : If 收款_dgv("CH3", i).Value = True Then : 明細表_dgv(10, 0).Value = True : End If : End If
- If 數量 >= 9 Then : If 收款_dgv("CH4", i).Value = True Then : 明細表_dgv(11, 0).Value = True : End If : End If
- If 數量 >= 10 Then : If 收款_dgv("CH5", i).Value = True Then : 明細表_dgv(12, 0).Value = True : End If : End If
- If 數量 >= 11 Then : If 收款_dgv("CH6", i).Value = True Then : 明細表_dgv(13, 0).Value = True : End If : End If
- If 數量 >= 12 Then : If 收款_dgv("CH7", i).Value = True Then : 明細表_dgv(14, 0).Value = True : End If : End If
- If 數量 >= 13 Then : If 收款_dgv("CH8", i).Value = True Then : 明細表_dgv(15, 0).Value = True : End If : End If
- If 數量 >= 14 Then : If 收款_dgv("CH9", i).Value = True Then : 明細表_dgv(16, 0).Value = True : End If : End If
- If 數量 >= 15 Then : If 收款_dgv("CH10", i).Value = True Then : 明細表_dgv(17, 0).Value = True : End If : End If
- Next
- End If
- End Sub
- Private Sub Set_清單3()
- Dim ds2 As New DataSet : 明細表1_dgv.DataSource = Nothing : ds2.Clear()
- 明細表1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 明細表1_dgv.ColumnHeadersHeight = 30 : 明細表1_dgv.AllowUserToAddRows = False : 明細表1_dgv.RowTemplate.Height = 30
- SQL_燈價格查詢()
- da.Fill(ds2) : 明細表1_dgv.DataSource = ds2.Tables(0) : conn.Close()
- End Sub
- Private Sub Set_清單4()
- Dim ds2 As New DataSet : 明細表2_dgv.DataSource = Nothing : ds2.Clear()
- 明細表2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 明細表2_dgv.ColumnHeadersHeight = 30 : 明細表2_dgv.AllowUserToAddRows = False : 明細表2_dgv.RowTemplate.Height = 30
- SQL_燈科目查詢()
- da.Fill(ds2) : 明細表2_dgv.DataSource = ds2.Tables(0) : conn.Close()
- End Sub
- Private Sub Set_清單5()
- Dim ds1 As New DataSet : 收款_dgv.DataSource = Nothing : ds1.Clear()
- 收款_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 收款_dgv.ColumnHeadersHeight = 30 : 收款_dgv.AllowUserToAddRows = False : 收款_dgv.RowTemplate.Height = 30
- SQL_點燈_收款查詢()
- da.Fill(ds1) : 收款_dgv.DataSource = ds1.Tables(0) : conn.Close()
- End Sub
- Private Sub Set_清單6()
- Dim ds1 As New DataSet : 未安燈_dgv.DataSource = Nothing : ds1.Clear()
- 未安燈_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 未安燈_dgv.ColumnHeadersHeight = 30 : 未安燈_dgv.AllowUserToAddRows = False : 未安燈_dgv.RowTemplate.Height = 30
- SQL_點燈_未安查詢()
- da.Fill(ds1) : 未安燈_dgv.DataSource = ds1.Tables(0) : conn.Close()
- End Sub
- Private Sub Set_清單7()
- Dim ds1 As New DataSet : 剩餘燈_dgv.DataSource = Nothing : ds1.Clear()
- 剩餘燈_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 剩餘燈_dgv.ColumnHeadersHeight = 30 : 剩餘燈_dgv.AllowUserToAddRows = False : 剩餘燈_dgv.RowTemplate.Height = 30
- SQL_點燈_剩餘查詢()
- da.Fill(ds1) : 剩餘燈_dgv.DataSource = ds1.Tables(0) : conn.Close()
- 剩餘燈_lb.Text = PA & " 年燈種 剩餘數量 "
- For I As Integer = 0 To 剩餘燈_dgv.Rows.Count - 1
- 剩餘燈_lb.Text &= "- " & 剩餘燈_dgv(0, I).Value.ToString & " " & Strings.Format(CInt(剩餘燈_dgv(1, I).Value.ToString), "#,##0") & " "
- Next
- End Sub
- Private Sub Set_清單8()
- Dim ds1 As New DataSet : 控制表1_dgv.DataSource = Nothing : ds1.Clear()
- 控制表1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 控制表1_dgv.ColumnHeadersHeight = 30 : 控制表1_dgv.AllowUserToAddRows = False : 控制表1_dgv.RowTemplate.Height = 30
- SQL_自動點燈_未點控制表搜尋()
- da.Fill(ds1) : 控制表1_dgv.DataSource = ds1.Tables(0) : conn.Close()
- End Sub
- Private Sub Set_明細()
- Dim 流水 As Integer
- If 明細表_dgv.Rows.Count = 0 Then : 流水 = 1 : End If
- 明細表_dgv.Rows.Insert(0)
- If 明細表_dgv.Rows.Count > 1 Then : 流水 = CInt(明細表_dgv("項", 1).Value) + 1 : End If
- For i = 5 To 明細表1_dgv.Rows.Count + 4 : 明細表_dgv(i, 0).Value = False : Next
- 明細表_dgv("非點燈收款", 0).Value = 0 : 明細表_dgv("金額", 0).Value = 0 : 明細表_dgv("項", 0).Value = 流水 : 明細表_dgv("姓名", 0).Value = ""
- 明細表_dgv("會計科目", 0).Value = "" : 明細表_dgv("課目編號", 0).Value = "" : 明細表_dgv("內容", 0).Value = "" : 明細表_dgv("生肖", 0).Value = ""
- 明細表_dgv("性別", 0).Value = ""
- 明細表_dgv.Rows(0).Cells("查").Value = My.Resources.Search
- End Sub
- Private Sub 控制表_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 控制表_dgv.CellClick
- If e.RowIndex = -1 Then : Else
- 單號_tb.Text = 控制表_dgv(0, e.RowIndex).Value.ToString
- 群組編號_cb.Text = 控制表_dgv(10, e.RowIndex).Value.ToString
- PA20 = 單號_tb.Text : SQL_點燈_單號年度查詢()
- If dr.Read() Then : 年度_cb.Text = dr("年度").ToString
- Else
- If 年度_cb.Text = "" Then
- 年度_cb.Text = CInt(Strings.Left(Strings.Format(Today(), "yyyy/MM/dd"), 4)) - 1911
- End If
- End If : conn.Close() : Set_清單2()
- End If
- End Sub
- Private Sub 點燈確認_bt_Click(sender As Object, e As EventArgs) Handles 點燈確認_bt.Click
- If 年度_cb.Text <> "" And 明細表_dgv.Rows.Count > 0 Then
- CB選擇清單(年度_cb, 年度_cb.Text)
- PA = 單號_tb.Text : SQL_點燈_控制表已點燈修改() : SQL_點燈_明細表刪除() : conn.Close()
- For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 : PA2 = 明細表_dgv("姓名", i).Value.ToString : PA6 = 年度_cb.Text
- For ii As Integer = 8 To 7 + 明細表1_dgv.Rows.Count
- If 明細表_dgv(ii, i).Value = True Then : Set_流水號() : PA3 = 明細表1_dgv("燈種", ii - 8).Value.ToString : PA4 = 明細表1_dgv("價格", ii - 8).Value.ToString
- If 明細表1_dgv("排序", ii - 8).Value.ToString = "順排" Then : PA21 = "" : Else : PA21 = "DESC" : End If
- SQL_點燈自動搜尋位置() : If dr.Read() Then : PA5 = dr("編號").ToString() : End If : SQL_點燈明細新增() : conn.Close()
- End If
- Next
- Next : MsgBox("點燈成功!!") : 單號_tb.Text = "" : Set_清單1() : Set_清單2()
- Else : MsgBox("年度未選擇或明細表無資料") : End If
- End Sub
- Private Sub Set_流水號()
- SQL_點燈_明細表流水號查詢()
- If dr.Read() Then
- Dim 流水 As String = dr("流水號").ToString() ' 將流水號轉換為字串
- Dim 流水號數字部分 As Integer = Integer.Parse(流水.Substring(1))
- Dim 新流水號數字部分 As Integer = 流水號數字部分 + 1
- Dim 新流水號數字部分字串 As String = 新流水號數字部分.ToString().PadLeft(8, "0"c)
- 新流水1 = "D" & 新流水號數字部分字串
- Else : 新流水1 = "D00000000" : End If : PA7 = 新流水1 : conn.Close()
- End Sub
- End Class
|