Option Strict Off Public Class 採購控制表 ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet Dim screenWidth As Integer : Dim screenHeight As Integer : Dim newWidth1 As Integer : Dim newHeight1 As Integer Private Sub Set_清單() 明細_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() 明細_dgv.Columns(0).Width = 120 : 明細_dgv.Columns(1).Visible = False : 明細_dgv.Columns(2).Width = 80 : 明細_dgv.Columns(3).Visible = False 明細_dgv.Columns(4).Visible = False : 明細_dgv.Columns(5).Visible = False : 明細_dgv.Columns(6).Width = 300 : 明細_dgv.Columns(7).Width = 150 明細_dgv.Columns(8).Width = 150 : 明細_dgv.Columns(9).Visible = False : 明細_dgv.Columns(10).Width = 60 : 明細_dgv.Columns(11).Width = 60 明細_dgv.Columns(12).Visible = False : 明細_dgv.Columns(13).Width = 60 : 明細_dgv.Columns(14).Visible = False : 明細_dgv.Columns(15).Width = 80 明細_dgv.Columns(16).Width = 80 : 明細_dgv.Columns(17).Width = 80 : 明細_dgv.Columns(18).Width = 357 : 明細_dgv.Columns(19).Width = 60 If 顯示彙總表_ch.Checked = True Then : 明細_dgv.Columns(18).Width = 357 : Else : 明細_dgv.Columns(18).Width = 596 : End If 格式設定1() : 格式設定2() 明細_dgv.Columns(0).Frozen = True : 明細_dgv.Columns(1).Frozen = True : 明細_dgv.Columns(2).Frozen = True : 明細_dgv.Columns(3).Frozen = True 明細_dgv.Columns(4).Frozen = True : 明細_dgv.Columns(5).Frozen = True : 明細_dgv.Columns(6).Frozen = True 明細_dgv.Columns(9).DefaultCellStyle.Format = "#,##0" : 明細_dgv.Columns(10).DefaultCellStyle.Format = "#,##0" : 明細_dgv.Columns(11).DefaultCellStyle.Format = "#,##0" 明細_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 明細_dgv.Columns(13).DefaultCellStyle.Format = "#,##0" : 明細_dgv.Columns(14).DefaultCellStyle.Format = "#,##0" 明細_dgv.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(11).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(12).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(12).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(13).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(13).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(14).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(14).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(15).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(15).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(16).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(16).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(17).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(17).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(19).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(19).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(0).ReadOnly = True : 明細_dgv.Columns(2).ReadOnly = True : 明細_dgv.Columns(4).ReadOnly = True : 明細_dgv.Columns(6).ReadOnly = True 明細_dgv.Columns(7).ReadOnly = True : 明細_dgv.Columns(8).ReadOnly = True : 明細_dgv.Columns(9).ReadOnly = True : 明細_dgv.Columns(10).ReadOnly = True 明細_dgv.Columns(11).ReadOnly = True : 明細_dgv.Columns(12).ReadOnly = True : 明細_dgv.Columns(13).ReadOnly = True : 明細_dgv.Columns(14).ReadOnly = True 明細_dgv.Columns(15).ReadOnly = True : 明細_dgv.Columns(16).ReadOnly = True : 明細_dgv.Columns(17).ReadOnly = True : 明細_dgv.Columns(18).ReadOnly = True 明細_dgv.Columns(19).ReadOnly = True 明細_dgv.Columns(9).DefaultCellStyle.BackColor = Color.LightYellow : 明細_dgv.Columns(10).DefaultCellStyle.BackColor = Color.LightYellow 明細_dgv.Columns(14).DefaultCellStyle.BackColor = Color.LightGreen : 明細_dgv.Columns(13).DefaultCellStyle.BackColor = Color.LightGreen 明細_dgv.Columns(12).DefaultCellStyle.BackColor = Color.LightGreen 未到_採購成本_tb.Text = "0" : 已到_採購成本_tb.Text = "0" : 採購成本_tb.Text = "0" For i As Integer = 0 To 明細_dgv.Rows.Count - 1 If 明細_dgv.Rows(i).Cells("入庫日期").Value.ToString = "" Then 未到_採購成本_tb.Text = Val(未到_採購成本_tb.Text) + 明細_dgv.Rows(i).Cells("採購成本").Value End If If 明細_dgv.Rows(i).Cells("入庫日期").Value.ToString <> "" Then 已到_採購成本_tb.Text = Val(已到_採購成本_tb.Text) + 明細_dgv.Rows(i).Cells("採購成本").Value End If Next 採購成本_tb.Text = Val(未到_採購成本_tb.Text) + Val(已到_採購成本_tb.Text) 未到_採購成本_tb.Text = Format(Val(未到_採購成本_tb.Text), "#,##0") : 已到_採購成本_tb.Text = Format(Val(已到_採購成本_tb.Text), "#,##0") 採購成本_tb.Text = Format(Val(採購成本_tb.Text), "#,##0") End Sub Private Sub Set_清單1() 彙總_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() 彙總_dgv.Columns(0).FillWeight = 80 : 彙總_dgv.Columns(1).FillWeight = 80 彙總_dgv.Columns(1).DefaultCellStyle.Format = "#,##0" 彙總_dgv.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 彙總_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 彙總_dgv.Columns(0).ReadOnly = True : 彙總_dgv.Columns(1).ReadOnly = True End Sub Private Sub 格式設定() screenWidth = MAOJI_ERP_SYS.Width screenHeight = MAOJI_ERP_SYS.Height If 顯示彙總表_ch.Checked = True Then 彙總_dgv.Visible = True : 明細_dgv.Location = New Point(250, 57) newWidth1 = screenWidth - 274 : newHeight1 = screenHeight - 152 明細_dgv.Size = New Size(newWidth1, newHeight1) Else 彙總_dgv.Visible = False : 明細_dgv.Location = New Point(7, 57) newWidth1 = screenWidth - 30 : newHeight1 = screenHeight - 152 明細_dgv.Size = New Size(newWidth1, newHeight1) End If If 顯示彙總表_ch.Checked = True Then : 明細_dgv.Columns(18).Width = 357 : Else : 明細_dgv.Columns(18).Width = 596 : End If End Sub Private Sub 格式設定1() If 隱藏尺寸材質_ch.Checked = True Then : 明細_dgv.Columns(8).Visible = False : 明細_dgv.Columns(7).Visible = False Else : 明細_dgv.Columns(8).Visible = True : 明細_dgv.Columns(7).Visible = True : End If End Sub Private Sub 格式設定2() If 隱藏單據編號_ch.Checked = True Then : 明細_dgv.Columns(0).Visible = False : Else : 明細_dgv.Columns(0).Visible = True : End If End Sub Private Sub 日期格式() If 會計月_ch.Checked = True Then '-------------日期一---------------------------------------------------------------------------------------- DTP = Strings.Left(Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(-1) DTP = Strings.Left(Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "26" : 開始日期_dtp.Value = DTP '-------------日期二---------------------------------------------------------------------------------------- DTP = Strings.Left(Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "25" : 結束日期_dtp.Value = DTP Else '-------------日期一---------------------------------------------------------------------------------------- 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(1) DTP = Strings.Left(Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP '-------------日期二---------------------------------------------------------------------------------------- DTP = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 結束日期_dtp.Value = DTP 結束日期_dtp.Value = 結束日期_dtp.Value.AddMonths(1) : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(-1) End If End Sub Private Sub 採購控制表_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = MAOJI_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 日期格式() : 顯示彙總表_ch.Checked = True : 中間日期_dtp.Visible = False End Sub Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 明細_dgv.CellClick If e.RowIndex = -1 Then : Else 供應商_tb.Text = 明細_dgv.Rows(e.RowIndex).Cells("廠商").Value : 依供應商_採購成本_tb.Text = "0" For i As Integer = 0 To 明細_dgv.Rows.Count - 1 If 明細_dgv.Rows(i).Cells("廠商").Value.ToString = 供應商_tb.Text Then 依供應商_採購成本_tb.Text = Val(依供應商_採購成本_tb.Text) + 明細_dgv.Rows(i).Cells("採購成本").Value End If Next 依供應商_採購成本_tb.Text = Format(Val(依供應商_採購成本_tb.Text), "#,##0") End If End Sub Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 彙總_dgv.CellClick If e.RowIndex = -1 Then : Else 供應商_tb.Text = 彙總_dgv.Rows(e.RowIndex).Cells("廠商").Value : 依供應商_採購成本_tb.Text = "0" For i As Integer = 0 To 明細_dgv.Rows.Count - 1 If 明細_dgv.Rows(i).Cells("廠商").Value.ToString = 供應商_tb.Text Then 依供應商_採購成本_tb.Text = Val(依供應商_採購成本_tb.Text) + 明細_dgv.Rows(i).Cells("採購成本").Value End If Next 依供應商_採購成本_tb.Text = Format(Val(依供應商_採購成本_tb.Text), "#,##0") End If End Sub Private Sub DataGridView1_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(0, e.RowIndex).Value.ToString <> 明細_dgv(0, 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 For i As Integer = 0 To 明細_dgv.Rows.Count - 1 If 明細_dgv.Rows(i).Cells("入庫日期").Value.ToString = "" Then 明細_dgv.Rows(i).DefaultCellStyle.BackColor = Color.MistyRose End If Next End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 上個月_bt.Click If 會計月_ch.Checked = True Then 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 開始日期_dtp.Value = 中間日期_dtp.Value 結束日期_dtp.Value = 中間日期_dtp.Value Else 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 結束日期_dtp.Value = 中間日期_dtp.Value End If 日期格式() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 下個月_bt.Click If 會計月_ch.Checked = True Then 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1) 開始日期_dtp.Value = 中間日期_dtp.Value 結束日期_dtp.Value = 中間日期_dtp.Value Else 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1) 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 結束日期_dtp.Value = 中間日期_dtp.Value End If 日期格式() End Sub Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles 開始日期_dtp.ValueChanged Set_清單() : Set_清單1() : 格式設定() End Sub Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles 結束日期_dtp.ValueChanged Set_清單() : Set_清單1() : 格式設定() End Sub Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles 顯示彙總表_ch.CheckedChanged 格式設定() End Sub Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles 隱藏尺寸材質_ch.CheckedChanged 格式設定1() End Sub Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles 隱藏單據編號_ch.CheckedChanged 格式設定2() End Sub Private Sub 會計月_CheckedChanged(sender As Object, e As EventArgs) Handles 會計月_ch.Click 會計月_ch.Checked = True : 一般月_ch.Checked = False : 日期格式() End Sub Private Sub 一般月_CheckedChanged(sender As Object, e As EventArgs) Handles 一般月_ch.Click 會計月_ch.Checked = False : 一般月_ch.Checked = True : 日期格式() End Sub '-----------------------------滑鼠右鍵------------------------------------------------------------------------------------------------------------------------------------------ Private Sub 重新整理ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新整理ToolStripMenuItem.Click Set_清單() : Set_清單1() : 格式設定() End Sub End Class