Option Strict Off Public Class 系統開發功能點檢表 Private ReadOnly ds As DataSet = New DataSet Private ReadOnly ds1 As DataSet = New DataSet Private ReadOnly ds2 As DataSet = New DataSet Private Sub DGV1讀取前設定() DataGridView1.DataSource = Nothing : ds.Clear() DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing DataGridView1.ColumnHeadersHeight = 50 DataGridView1.AllowUserToAddRows = False DataGridView1.RowTemplate.Height = 35 ConnOpen() End Sub Private Sub DGV1讀取後設定() CmdSet_For_DGV() : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close() : Set_grid() End Sub Private Sub 讀取專案主清單() DGV1讀取前設定() SQL1 = "SELECT 系統開發功能點檢表.項一, 系統開發功能點檢表.項二, 系統開發功能點檢表.項三, 系統開發功能點檢表.項一 AS 項1, 系統開發功能點檢表.項二 AS 項2, 系統開發功能點檢表.項三 AS 項3, 系統開發功能點檢表.排序, 系統開發功能點檢表.排序1, 系統開發點檢表基本資料.內容, 系統開發點檢表基本資料.狀態, 系統開發功能點檢表.是否完成, 系統開發功能點檢表.預定日期, 系統開發功能點檢表.開發負責人員, 系統開發功能點檢表.完成日期, 系統開發功能點檢表.備註 FROM 系統開發功能點檢表 LEFT OUTER JOIN 系統開發點檢表基本資料 ON 系統開發功能點檢表.項一 = 系統開發點檢表基本資料.項一 AND 系統開發功能點檢表.項二 = 系統開發點檢表基本資料.項二 AND 系統開發功能點檢表.項三 = 系統開發點檢表基本資料.項三 WHERE (系統開發功能點檢表.客戶 LIKE N'" & ComboBox1.Text & "') ORDER BY 系統開發功能點檢表.排序, 系統開發功能點檢表.排序1, 系統開發功能點檢表.項一, 系統開發功能點檢表.項二, 系統開發功能點檢表.項三" DGV1讀取後設定() End Sub Private Sub Set_grid() DataGridView1.Columns(0).Visible = False : DataGridView1.Columns(1).Visible = False : DataGridView1.Columns(2).Visible = False : DataGridView1.Columns(3).Width = 45 DataGridView1.Columns(4).Width = 55 : DataGridView1.Columns(5).Width = 70 : DataGridView1.Columns(6).Width = 35 : DataGridView1.Columns(7).Width = 45 : DataGridView1.Columns(8).Width = 300 DataGridView1.Columns(9).Width = 40 : DataGridView1.Columns(10).Width = 40 : DataGridView1.Columns(11).Width = 85 : DataGridView1.Columns(12).Width = 76 : DataGridView1.Columns(13).Width = 85 DataGridView1.Columns(14).Width = 415 DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter DataGridView1.Columns(3).ReadOnly = True : DataGridView1.Columns(4).ReadOnly = True : DataGridView1.Columns(5).ReadOnly = True DataGridView1.Columns(8).ReadOnly = True : DataGridView1.Columns(9).ReadOnly = True For i As Integer = 0 To DataGridView1.Rows.Count - 1 If Strings.Right(DataGridView1.Rows(i).Cells("項2").Value, 2) = "00" Then DataGridView1.Rows(i).Cells("項2").Value = "" End If If Strings.Right(DataGridView1.Rows(i).Cells("項3").Value, 2) = "00" Then DataGridView1.Rows(i).Cells("項3").Value = "" End If Next i End Sub Private Sub Set_清單2() DataGridView2.DataSource = Nothing : ds1.Clear() DataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing DataGridView2.ColumnHeadersHeight = 25 DataGridView2.AllowUserToAddRows = False DataGridView2.RowTemplate.Height = 35 ConnOpen() SQL1 = "SELECT 系統開發點檢表基本資料.項一, 系統開發點檢表基本資料.項二, 系統開發點檢表基本資料.項三, 系統開發點檢表基本資料.項一 AS [項1], 系統開發點檢表基本資料.項二 AS [項2], 系統開發點檢表基本資料.項三 AS [項3], 系統開發點檢表基本資料.內容, 系統開發點檢表基本資料.狀態, GCM選擇按鈕.選擇 FROM 系統開發點檢表基本資料 LEFT OUTER JOIN GCM選擇按鈕 ON 系統開發點檢表基本資料.內容 = GCM選擇按鈕.對應 WHERE (系統開發點檢表基本資料.項一 LIKE '" & TextBox1.Text & "') ORDER BY 系統開發點檢表基本資料.項一, 系統開發點檢表基本資料.項二, 系統開發點檢表基本資料.項三" CmdSet_For_DGV() : da.Fill(ds1) : DataGridView2.DataSource = ds1.Tables(0) : conn.Close() : Set_grid1() End Sub Private Sub Set_grid1() DataGridView2.Columns(0).Visible = False : DataGridView2.Columns(1).Visible = False : DataGridView2.Columns(2).Visible = False : DataGridView2.Columns(3).Width = 60 DataGridView2.Columns(4).Width = 60 : DataGridView2.Columns(5).Width = 60 : DataGridView2.Columns(6).Width = 250 : DataGridView2.Columns(7).Width = 60 : DataGridView2.Columns(8).Width = 50 For i As Integer = 0 To DataGridView2.Rows.Count - 1 DataGridView2.Rows(i).Cells("選擇").Value = False If Strings.Right(DataGridView2.Rows(i).Cells("項2").Value, 2) = "00" Then DataGridView2.Rows(i).Cells("項2").Value = "" End If If Strings.Right(DataGridView2.Rows(i).Cells("項3").Value, 2) = "00" Then DataGridView2.Rows(i).Cells("項3").Value = "" End If Next i End Sub Private Sub DGV3讀取前設定() DataGridView3.DataSource = Nothing : ds2.Clear() DataGridView3.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing DataGridView3.ColumnHeadersHeight = 25 DataGridView3.AllowUserToAddRows = False ConnOpen() End Sub Private Sub DGV3讀取後設定() CmdSet_For_DGV() : da.Fill(ds2) : DataGridView3.DataSource = ds2.Tables(0) : conn.Close() : Set_grid3() End Sub Private Sub 讀取專案人事資料() DGV3讀取前設定() SQL1 = "SELECT 人員資料.人員編號, 人員資料.姓名 FROM 人員資料 RIGHT OUTER JOIN 業務專案清單 ON 人員資料.人員編號 = 業務專案清單.對應流水號 RIGHT OUTER JOIN 業務專案主檔 ON 業務專案清單.專案流水號 = 業務專案主檔.專案流水號 WHERE (業務專案主檔.專案性質 LIKE N'軟體設計') AND (業務專案主檔.客戶 LIKE N'" & ComboBox1.Text & "') GROUP BY 業務專案主檔.客戶, 人員資料.人員編號, 人員資料.姓名, 人員資料.性別 ORDER BY 業務專案主檔.客戶" DGV3讀取後設定() End Sub Private Sub Set_grid3() DataGridView3.Columns(0).Width = 90 : DataGridView3.Columns(1).Width = 80 TextBox2.Text = DataGridView3.Rows(0).Cells("姓名").Value End Sub Private Sub ComboBox1下拉表單資料載入() conn.Close() ConnOpen() SQL1 = "SELECT 客戶 FROM 業務專案主檔 WHERE (專案性質 LIKE N'軟體設計') GROUP BY 客戶 ORDER BY 客戶" CmdSet_For_dr() ComboBox1.Items.Clear() While (dr.Read()) : ComboBox1.Items.Add(dr("客戶")) : End While conn.Close() End Sub Private Sub ComboBox2下拉表單資料載入() conn.Close() ConnOpen() SQL1 = "SELECT 內容 FROM 系統開發點檢表基本資料 WHERE (RIGHT(項二, 2) LIKE '00') ORDER BY 項一" CmdSet_For_dr() ComboBox2.Items.Clear() While (dr.Read()) : ComboBox2.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 DateTimePicker1.Visible = False : TextBox1.Visible = False ComboBox1下拉表單資料載入() : ComboBox2下拉表單資料載入() If PA2 <> "" Then : ComboBox1.Text = PA2 : End If : PA2 = "" 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 DataGridView1_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) If e.RowIndex = DataGridView1.Rows.Count - 1 Then Exit Sub Else If DataGridView1(0, e.RowIndex).Value.ToString <> DataGridView1(0, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(DataGridView1.RowHeadersVisible, DataGridView1.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + DataGridView1.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - DataGridView1.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) Exit Sub End If End If For i As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(i).Cells("項2").Value.ToString = "" And DataGridView1.Rows(i).Cells("項3").Value.ToString = "" Then DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow End If Next End Sub Private Sub DataGridView3_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView3.CellClick If e.RowIndex = -1 Then : Else TextBox2.Text = DataGridView3.Rows(e.RowIndex).Cells("姓名").Value End If End Sub Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView2.CellClick If e.RowIndex = -1 Then : Else DataGridView2.Rows(0).Cells("選擇").Value = True End If End Sub Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit Dim EU As String For i As Integer = 0 To DataGridView1.Rows.Count - 1 EU = DataGridView1.Rows(i).Cells("完成日期").Value.ToString If EU = "" Then Else DateTimePicker1.Text = EU DataGridView1.Rows(i).Cells("完成日期").Value = Format(DateTimePicker1.Value, "yyyy/MM/dd") End If If DataGridView1.Rows(i).Cells("是否完成").Value = True Then DataGridView1.Rows(i).Cells("開發負責人員").Value = "" Else If DataGridView1.Rows(i).Cells("開發負責人員").Value.ToString = "" Then DataGridView1.Rows(i).Cells("開發負責人員").Value = TextBox2.Text End If End If Next End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged 讀取專案人事資料() : 讀取專案主清單() End Sub Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged ConnOpen() SQL1 = "SELECT 項一 FROM 系統開發點檢表基本資料 WHERE 內容 LIKE N'" & ComboBox2.Text & "'" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader If dr.Read() Then : TextBox1.Text = dr("項一") : End If conn.Close() Set_清單2() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click ComboBox1下拉表單資料載入() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ComboBox2下拉表單資料載入() End Sub Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click For i As Integer = 0 To DataGridView2.Rows.Count - 1 : DataGridView2.Rows(i).Cells("選擇").Value = True : Next i End Sub Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click For i As Integer = 0 To DataGridView2.Rows.Count - 1 : DataGridView2.Rows(i).Cells("選擇").Value = False : Next i End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click If ComboBox1.Text = "" Then MsgBox("沒有選擇客戶") Else For i As Integer = 0 To DataGridView2.Rows.Count - 1 If DataGridView2.Rows(i).Cells("選擇").Value = True Then ConnOpen() SQL1 = "SELECT 項一 FROM 系統開發功能點檢表 WHERE 客戶 LIKE N'" & ComboBox1.Text & "' AND 項一 LIKE N'" & DataGridView2.Rows(i).Cells("項一").Value & "' AND 項二 LIKE N'" & DataGridView2.Rows(i).Cells("項二").Value & "' AND 項三 LIKE N'" & DataGridView2.Rows(i).Cells("項三").Value & "' " cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader If dr.Read() Then conn.Close() Else conn.Close() ConnOpen() SQL1 = "INSERT INTO 系統開發功能點檢表 (客戶, 項一, 項二, 項三, 是否完成, 完成日期, 排序, 備註, 排序1, 開發負責人員) VALUES (N'" & ComboBox1.Text & "',N'" & DataGridView2.Rows(i).Cells("項一").Value & "',N'" & DataGridView2.Rows(i).Cells("項二").Value & "', N'" & DataGridView2.Rows(i).Cells("項三").Value & "', '0', '', '', '', '', '')" CmdSet_For_dr() : conn.Close() End If conn.Close() End If Next i MsgBox("新增完成") : 讀取專案主清單() End If End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click For i As Integer = 0 To DataGridView1.Rows.Count - 1 ConnOpen() SQL1 = "UPDATE 系統開發功能點檢表 SET 排序 = N'" & DataGridView1.Rows(i).Cells("排序").Value & "', 完成日期 = N'" & DataGridView1.Rows(i).Cells("完成日期").Value & "', 是否完成 = N'" & DataGridView1.Rows(i).Cells("是否完成").Value & "', 備註 = N'" & DataGridView1.Rows(i).Cells("備註").Value & "', 排序1 = N'" & DataGridView1.Rows(i).Cells("排序1").Value & "', 開發負責人員 = N'" & DataGridView1.Rows(i).Cells("開發負責人員").Value & "' WHERE 客戶 LIKE N'" & ComboBox1.Text & "' AND 項一 LIKE N'" & DataGridView1.Rows(i).Cells("項一").Value & "' AND 項二 LIKE N'" & DataGridView1.Rows(i).Cells("項二").Value & "' AND 項三 LIKE N'" & DataGridView1.Rows(i).Cells("項三").Value & "'" CmdSet_For_dr() : conn.Close() Next 讀取專案主清單() MsgBox("修改完成") End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click PA = InputBox("請輸入排序1空格要填入的數字") For i As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(i).Cells("排序1").Value.ToString = "" Then DataGridView1.Rows(i).Cells("排序1").Value = PA End If Next PA = "" End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click PA = InputBox("請輸入排序空格要填入的數字") For i As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(i).Cells("排序").Value.ToString = "" Then DataGridView1.Rows(i).Cells("排序").Value = PA End If Next PA = "" End Sub End Class