Option Strict Off Public Class 工作日誌與代辦事項 ReadOnly ds As New DataSet Dim 新項次 As String Dim NUM1 As Integer Dim EDR As Integer = 0 : Dim ESTR As String Private Sub Set_工作日志清單() DataGridView1.DataSource = Nothing : ds.Clear() DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing DataGridView1.ColumnHeadersHeight = 25 DataGridView1.AllowUserToAddRows = False DataGridView1.RowTemplate.Height = 35 ConnOpen() SQL1 = "SELECT 客戶, 項次, 内容, 日期, 是否完成, 流水號, 使用者 FROM 工作日志 WHERE (客戶 LIKE N'" & ComboBox1.Text & "') AND (使用者 LIKE N'" & ComboBox3.Text & "') ORDER BY 項次 DESC, 日期" CmdSet_For_DGV() : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close() : Set_grid() End Sub Private Sub Set_grid() DataGridView1.Columns(0).Visible = False : DataGridView1.Columns(1).Width = 80 : DataGridView1.Columns(2).Width = 1555 : DataGridView1.Columns(3).Width = 150 DataGridView1.Columns(4).Width = 80 : DataGridView1.Columns(5).Visible = False : DataGridView1.Columns(6).Visible = False DataGridView1.Columns(1).ReadOnly = True DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter End Sub Private Sub ComboBox3下拉表單資料載入() conn.Close() ConnOpen() SQL1 = "SELECT 姓名 FROM 使用者權限管理表" CmdSet_For_dr() ComboBox3.Items.Clear() While (dr.Read()) ComboBox3.Items.Add(dr("姓名")) End While conn.Close() End Sub Private Sub ComboBox1下拉表單資料載入() conn.Close() ConnOpen() SQL1 = "SELECT 客户 FROM 客戶清單" CmdSet_For_dr() ComboBox1.Items.Clear() While (dr.Read()) ComboBox1.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 DateTimePicker2.Visible = False ComboBox3下拉表單資料載入() : ComboBox1下拉表單資料載入() 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_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick If e.RowIndex = -1 Then : Else TextBox4.Text = DataGridView1.Rows(e.RowIndex).Cells("流水號").Value End If End Sub Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit Dim EU As String EU = DataGridView1.Rows(e.RowIndex).Cells("日期").Value.ToString If EU = "" Then Else DateTimePicker2.Text = EU DataGridView1.Rows(e.RowIndex).Cells("日期").Value = Format(DateTimePicker2.Value, "yyyy/MM/dd") End If 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(3, e.RowIndex).Value.ToString <> DataGridView1(3, 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 End Sub Private Sub 存檔() 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 & "' WHERE (流水號 LIKE '" & DataGridView1.Rows(i).Cells("流水號").Value & "')" cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close() Next End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click If ComboBox1.Text = "" Or ComboBox3.Text = "" Then MsgBox("沒有選擇資料") Else 存檔() '----------------------自动生成流水号------------------------------------------------------------------------- ConnOpen() SQL1 = "SELECT TOP (1) 流水號 FROM 工作日志 ORDER BY 流水號 DESC" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 8)) : Else : EDR = 0 : End If conn.Close() EDR += 1 If EDR < 10 Then : ESTR = "PG" & "0000000" & EDR ElseIf EDR > 9 And EDR < 100 Then : ESTR = "PG" & "000000" & EDR ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "PG" & "00000" & EDR ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "PG" & "0000" & EDR ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "PG" & "000" & EDR ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "PG" & "00" & EDR ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "PG" & "0" & EDR ElseIf EDR > 9999999 Then : ESTR = "PG" & EDR End If '----------------------自动计算项次的数量并修改-------------------------------------------------------------------- ConnOpen() SQL1 = "SELECT TOP(1) 項次 FROM 工作日志 WHERE 客戶 LIKE '" & ComboBox1.Text & "' AND 使用者 LIKE '" & ComboBox3.Text & "' ORDER BY 項次 DESC" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "0000" : End If : conn.Close() NUM1 = Double.Parse(新項次) + 1 If NUM1 < 10 Then : 新項次 = "000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = "00" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 新項次 = "0" & NUM1 ElseIf NUM1 > 999 Then : 新項次 = NUM1 End If '----------------------新增一笔资料------------------------------------------------------------------------------ ConnOpen() SQL1 = "INSERT INTO 工作日志 (客戶, 内容, 日期, 是否完成, 流水號, 項次, 使用者) " & "VALUES (N'" & ComboBox1.Text & "',N'',N'',N'0',N'" & ESTR & "',N'" & 新項次 & "',N'" & ComboBox3.Text & "')" CmdSet_For_dr() Set_工作日志清單() End If End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged Set_工作日志清單() End Sub Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox3.SelectedIndexChanged Set_工作日志清單() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 存檔() : MsgBox("存檔完成") End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If TextBox4.Text = "" Then MsgBox("未選擇需要刪除的資料。") Else 存檔() ConnOpen() SQL1 = "DELETE FROM 工作日志 WHERE (流水號 LIKE '" & TextBox4.Text & "')" cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : conn.Close() Set_工作日志清單() Dim NUM1 As Integer = DataGridView1.Rows.Count + 1 For i As Integer = 0 To DataGridView1.Rows.Count - 1 NUM1 -= 1 If NUM1 < 10 Then : 新項次 = "000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = "00" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 新項次 = "0" & NUM1 ElseIf NUM1 > 999 Then : 新項次 = NUM1 End If ConnOpen() SQL1 = "UPDATE 工作日志 SET 項次 = N'" & 新項次 & "' WHERE (流水號 LIKE '" & DataGridView1.Rows(i).Cells("流水號").Value & "')" cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() conn.Close() Next Set_工作日志清單() : MsgBox("刪除完成。") End If End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 存檔() : Set_工作日志清單() Dim NUM1 As Integer = DataGridView1.Rows.Count + 1 For i As Integer = 0 To DataGridView1.Rows.Count - 1 NUM1 -= 1 If NUM1 < 10 Then : 新項次 = "000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = "00" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 新項次 = "0" & NUM1 ElseIf NUM1 > 999 Then : 新項次 = NUM1 End If ConnOpen() SQL1 = "UPDATE 工作日志 SET 項次 = N'" & 新項次 & "' WHERE (流水號 LIKE '" & DataGridView1.Rows(i).Cells("流水號").Value & "')" cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() conn.Close() Next Set_工作日志清單() End Sub End Class