Public Class 合約驗收控制表 ReadOnly ds2 As New DataSet Dim 存檔, 簽回檔 As Boolean Private Sub Set_驗收清單() 驗收單_dgv.DataSource = Nothing : ds2.Clear() 驗收單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 驗收單_dgv.ColumnHeadersHeight = 40 : 驗收單_dgv.AllowUserToAddRows = False PA46 = 合約編號1_cb.Text : PA47 = 工程期1_ch.Text If 全部資料_ch.Checked = True And 請款未結束_ch.Checked = False And 請款已結束_ch.Checked = False Then SQL2 = "WHERE 約號甲方 Like N'%" & PA46 & "%' AND 合約期數 LIKE N'%" & PA47 & "%' AND (合約編號 LIKE N'%" & PA & "%' OR 客戶名稱 LIKE N'%" & PA & "%' OR 負責人A LIKE N'%" & PA & "%' OR 工程地點 LIKE N'%" & PA & "%' OR 客戶地址 LIKE N'%" & PA & "%' OR 工程名稱_中 LIKE N'%" & PA & "%' OR 工程名稱_英 LIKE N'%" & PA & "%') AND (合約停止 = 0 OR 合約停止 IS NULL) AND (報價放行 = 1) " ElseIf 全部資料_ch.Checked = False And 請款未結束_ch.Checked = True And 請款已結束_ch.Checked = False Then SQL2 = "WHERE (驗收結果 = 0 OR 驗收結果 IS NULL) AND 約號甲方 Like N'%" & PA46 & "%' AND 合約期數 LIKE N'%" & PA47 & "%' AND (合約編號 LIKE N'%" & PA & "%' OR 客戶名稱 LIKE N'%" & PA & "%' OR 負責人A LIKE N'%" & PA & "%' OR 工程地點 LIKE N'%" & PA & "%' OR 客戶地址 LIKE N'%" & PA & "%' OR 工程名稱_中 LIKE N'%" & PA & "%' OR 工程名稱_英 LIKE N'%" & PA & "%') AND (合約停止 = 0 OR 合約停止 IS NULL) AND (報價放行 = 1) " ElseIf 全部資料_ch.Checked = False And 請款未結束_ch.Checked = False And 請款已結束_ch.Checked = True Then SQL2 = "WHERE 驗收結果 = 1 AND 約號甲方 Like N'%" & PA46 & "%' AND 合約期數 LIKE N'%" & PA47 & "%' AND (合約編號 LIKE N'%" & PA & "%' OR 客戶名稱 LIKE N'%" & PA & "%' OR 負責人A LIKE N'%" & PA & "%' OR 工程地點 LIKE N'%" & PA & "%' OR 客戶地址 LIKE N'%" & PA & "%' OR 工程名稱_中 LIKE N'%" & PA & "%' OR 工程名稱_英 LIKE N'%" & PA & "%') AND (合約停止 = 0 OR 合約停止 IS NULL) AND (報價放行 = 1) " End If SQL_合約驗收控制表查詢() da.Fill(ds2) : 驗收單_dgv.DataSource = ds2.Tables(0) : conn.Close() 驗收單_dgv.Columns(0).FillWeight = 120 : 驗收單_dgv.Columns(1).FillWeight = 350 : 驗收單_dgv.Columns(2).FillWeight = 50 : 驗收單_dgv.Columns(3).FillWeight = 100 驗收單_dgv.Columns(4).FillWeight = 100 : 驗收單_dgv.Columns(5).FillWeight = 60 : 驗收單_dgv.Columns(6).FillWeight = 100 : 驗收單_dgv.Columns(7).FillWeight = 40 驗收單_dgv.Columns(8).FillWeight = 40 : 驗收單_dgv.Columns(9).FillWeight = 200 : 驗收單_dgv.Columns(10).FillWeight = 200 驗收單_dgv.Columns("簽回").FillWeight = 40 : 驗收單_dgv.Columns("簽回檔圖庫").Visible = False 驗收單_dgv.Columns("工期").DefaultCellStyle.Format = "#,##0" : 驗收單_dgv.Columns("已完成/未完成天數").DefaultCellStyle.Format = "#,##0" 驗收單_dgv.Columns("工期").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 驗收單_dgv.Columns("已完成/未完成天數").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 驗收單_dgv.Columns("立約日期").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 驗收單_dgv.Columns("驗收開始日期").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 驗收單_dgv.Columns("驗收完成日期").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 驗收單_dgv.Columns("保固期限").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter Dim 驗收日 As String For i As Integer = 0 To 驗收單_dgv.Rows.Count - 1 If IsDBNull(驗收單_dgv("簽回", i).Value) = True Then : 驗收單_dgv("簽回", i).Value = False : End If If 驗收單_dgv.Rows(i).Cells("驗收開始日期").Value.ToString = "" Then 驗收日 = Today() Else 驗收日 = 驗收單_dgv.Rows(i).Cells("驗收開始日期").Value.ToString End If 驗收單_dgv.Rows(i).Cells("已完成/未完成天數").Value = DateDiff("d", 驗收單_dgv.Rows(i).Cells("立約日期").Value.ToString, 驗收日) Next If 系統分區控制 = True Then Set_清單_dgv_下拉式清單1() : 驗收單_dgv.Columns(12).Visible = False 驗收單_dgv.Columns("工地驗收備註").Visible = False : 驗收單_dgv.Columns("驗收備註").Visible = True Else 驗收單_dgv.Columns("工地驗收備註").Visible = True : 驗收單_dgv.Columns("工地驗收備註").FillWeight = 200 驗收單_dgv.Columns("驗收備註").Visible = False End If End Sub Private Sub Set_清單_dgv_下拉式清單1() Dim Col As New DataGridViewComboBoxColumn With { .FillWeight = 100, .DataPropertyName = "工程主管" } SQL執行主管下拉() Col.Items.Clear() : Col.Items.Add("") While (dr.Read()) : Col.Items.Add(dr("姓名")) : End While : conn.Close() Col.HeaderText = "工程主管" : Col.Name = "工程主管" 驗收單_dgv.Columns.Insert(11, Col) End Sub Private Sub 甲方條件下拉清單讀取() SQL合約條件讀取() : 合約編號1_cb.Items.Clear() : 合約編號1_cb.Items.Add("") : While (dr.Read()) : 合約編號1_cb.Items.Add(dr("約號甲方")) : End While : conn.Close() End Sub Private Sub 合約驗收控制表_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 甲方條件下拉清單讀取() : Set_驗收清單() : 合約報價單_Siz() If 系統分區控制 = True Then : 驗收完成_bt.Text = "驗收完成" : 指定存檔_bt.Enabled = True : Else : 驗收完成_bt.Text = "修改存檔" : 指定存檔_bt.Enabled = False : End If End Sub Private Sub 合約驗收控制表_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed End Sub Private Sub 合約報價單_Siz() MyModule1.清單字體大小調整() 驗收單_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", GCM_ERP_SYS.字體_NUD.Value) End Sub Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove timeNow = 0 : GCM_ERP_SYS.Timer1.Enabled = False : GCM_ERP_SYS.Timer1.Enabled = True End Sub Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress timeNow = 0 : GCM_ERP_SYS.Timer1.Enabled = False : GCM_ERP_SYS.Timer1.Enabled = True 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("驗收開始日期", e.RowIndex).Value.ToString <> "" And 驗收單_dgv("驗收開始日期", e.RowIndex + 1).Value.ToString = "" 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_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 驗收單_dgv.CellClick If e.RowIndex = -1 Then : Else 圖片庫 = 驗收單_dgv("簽回檔圖庫", e.RowIndex).Value.ToString : 簽回檔 = 驗收單_dgv("簽回", e.RowIndex).Value 合約編號_tb.Text = 驗收單_dgv("合約編號", e.RowIndex).Value.ToString : 保固_cb.Text = 驗收單_dgv("保固期限", e.RowIndex).Value.ToString 立約日期_dtp.Value = 驗收單_dgv("立約日期", e.RowIndex).Value.ToString : 合約工期_nud.Value = 驗收單_dgv("工期", e.RowIndex).Value.ToString If 系統分區控制 = True Then : 備註_tb.Text = 驗收單_dgv("驗收備註", e.RowIndex).Value.ToString Else : 備註_tb.Text = 驗收單_dgv("工地驗收備註", e.RowIndex).Value.ToString : End If If 驗收單_dgv("驗收開始日期", e.RowIndex).Value.ToString = "" Then : 驗收日期_dtp.Value = Today() : 存檔 = False Else : 驗收日期_dtp.Value = 驗收單_dgv("驗收開始日期", e.RowIndex).Value.ToString : 存檔 = True : End If If 驗收單_dgv("驗收完成日期", e.RowIndex).Value.ToString = "" Then : 驗收完成_dtp.Value = Today() Else : 驗收完成_dtp.Value = 驗收單_dgv("驗收完成日期", e.RowIndex).Value.ToString : End If 工程天數_nud.Value = DateDiff("d", 立約日期_dtp.Value, 驗收日期_dtp.Value) : 日期差異_nud.Value = 合約工期_nud.Value - 工程天數_nud.Value End If End Sub Private Sub 合約編號1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號1_cb.SelectedIndexChanged PA = 關鍵字搜尋_tb.Text : Set_驗收清單() End Sub Private Sub 工程期1_ch_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 工程期1_ch.SelectedIndexChanged PA = 關鍵字搜尋_tb.Text : Set_驗收清單() End Sub Private Sub 全部資料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 全部資料_ch.Click PA = 關鍵字搜尋_tb.Text : 全部資料_ch.Checked = True : 請款未結束_ch.Checked = False : 請款已結束_ch.Checked = False : Set_驗收清單() End Sub Private Sub 請款未結束_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 請款未結束_ch.Click PA = 關鍵字搜尋_tb.Text : 全部資料_ch.Checked = False : 請款未結束_ch.Checked = True : 請款已結束_ch.Checked = False : Set_驗收清單() End Sub Private Sub 請款已結束_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 請款已結束_ch.Click PA = 關鍵字搜尋_tb.Text : 全部資料_ch.Checked = False : 請款未結束_ch.Checked = False : 請款已結束_ch.Checked = True : Set_驗收清單() End Sub Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click PA = 關鍵字搜尋_tb.Text : Set_驗收清單() End Sub Private Sub 驗收完成_bt_Click(sender As Object, e As EventArgs) Handles 驗收完成_bt.Click If 合約編號_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要完成驗收的合約!!") : Else : MsgBox("Please select the contract to complete the acceptance first!!") : End If : Else 系統分區控制 = True If 系統分區控制 = True Then If 存檔 = False Then If 系統語言 = "繁體中文" Then : MsgBox("該合約沒有開始驗收,所以無法完成驗收!!") Else : MsgBox("The contract has not started acceptance, so the acceptance cannot be completed!!") : End If : Else If 保固_cb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有保固期限,無法存檔!!") : Else : MsgBox("No warranty period, no archive!!") : End If : Else If 驗收日期_dtp.Value > 驗收完成_dtp.Value Then If 系統語言 = "繁體中文" Then : MsgBox("驗收完成日不可能小於驗收開始日期!!") Else : MsgBox("The acceptance completion date cannot be less than the acceptance start date!!") : End If : Else Dim SS, SS1 As String If 系統語言 = "繁體中文" Then : SS = "驗收完成日期為 " : SS1 = " 是否正確??" Else : SS = "Acceptance completion date is " : SS1 = " is it right or not??" : End If Dim aa As MsgBoxResult = MsgBox(SS & Strings.Format(驗收完成_dtp.Value, "yyyy/MM/dd") & SS1, MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then PA = 合約編號_tb.Text : PA1 = Strings.Format(驗收完成_dtp.Value, "yyyy/MM/dd") : PA2 = "1" : PA3 = 備註_tb.Text : PA4 = 保固_cb.Text PA5 = 合約工期_nud.Value SQL_控制表_驗收修改2() : PA = "" : Set_驗收清單() : 存檔 = False If 系統語言 = "繁體中文" Then : MsgBox("驗收回報完成!!") : Else : MsgBox("Acceptance return completed!!") : End If End If End If End If End If Else PA = 合約編號_tb.Text : PA3 = 備註_tb.Text : SQL_控制表_驗收修改3() : PA = "" : Set_驗收清單() If 系統語言 = "繁體中文" Then : MsgBox("備註存檔完成!!") : Else : MsgBox("Remarks Archive Complete!!") : End If End If End If 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 PA = 驗收單_dgv("合約編號", I).Value.ToString : PA3 = 驗收單_dgv("工程主管", I).Value.ToString : SQL_控制表_驗收修改4() Next : If 系統語言 = "繁體中文" Then : MsgBox("工程主管指定完成!!") : Else : MsgBox("Designated by the engineering director to complete!!") : End If End Sub Private Sub 查閱文件_bt_Click(sender As Object, e As EventArgs) Handles 查閱文件_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇合約!!") : Else : MsgBox("Please select a contract first!!") : End If : Else If 簽回檔 = False Then : If 系統語言 = "繁體中文" Then : MsgBox("該合約還沒有建立驗收簽回文件!!") : Else : MsgBox("The contract has not yet established the acceptance check-back document!!") : End If : Else PA1 = 合約編號_tb.Text : PA2 = "驗收" : 文件查閱視窗.ShowDialog() End If End If End Sub End Class