Option Strict Off
Imports System.IO
Public Class 請購單申請
    Dim 新項次, KKK2, 物料規格, 頁面 As String
    Dim NUM1, NUM2 As Integer
    Dim 對話框(46), 群組碼(21) As String
    Private Sub Set_BOM表控制1()
        Dim ds6 As New DataSet
        BOM表控制1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        BOM表控制1_dgv.ColumnHeadersHeight = 25 : BOM表控制1_dgv.AllowUserToAddRows = False : BOM表控制1_dgv.RowTemplate.Height = 25
        Dim 群組碼 As String
        If 群組碼1_cb.Text = "%%" Then : 群組碼 = " WHERE (群組碼 IS NULL) OR (群組碼 LIKE N'%%')  " : Else : 群組碼 = " WHERE (群組碼 LIKE N'" & 群組碼1_cb.Text & "')  " : End If
        SQL_BOM表控制(群組碼)
        da.Fill(ds6) : BOM表控制1_dgv.DataSource = ds6.Tables(0) : conn.Close()
        BOM表控制1_dgv.Columns(0).Visible = False : BOM表控制1_dgv.Columns(1).FillWeight = 100
        BOM表控制1_dgv.Columns(0).ReadOnly = True : BOM表控制1_dgv.Columns(1).ReadOnly = True
    End Sub
    Private Sub Set_合約報價明細表()
        If BOM表明細1_dgv.Columns.Count.ToString > 41 Then : BOM表明細1_dgv.Columns.Remove("選擇") : End If
        Dim ds6 As New DataSet
        BOM表明細1_dgv.DataSource = Nothing : ds6.Clear()
        BOM表明細1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        BOM表明細1_dgv.ColumnHeadersHeight = 25 : BOM表明細1_dgv.AllowUserToAddRows = False
        If 小間距_ch.Checked = False And 中間距_ch.Checked = False And 大間距_ch.Checked = True Then : BOM表明細1_dgv.RowTemplate.Height = 75
        ElseIf 小間距_ch.Checked = False And 中間距_ch.Checked = True And 大間距_ch.Checked = False Then : BOM表明細1_dgv.RowTemplate.Height = 45
        ElseIf 小間距_ch.Checked = True And 中間距_ch.Checked = False And 大間距_ch.Checked = False Then : BOM表明細1_dgv.RowTemplate.Height = 25 : End If

        SQL_BOM表明細()
        da.Fill(ds6) : BOM表明細1_dgv.DataSource = ds6.Tables(0) : conn.Close() : Dim SD As Integer = 10
        BOM表明細1_dgv.Columns("排序").FillWeight = 30 : BOM表明細1_dgv.Columns("排序").Visible = False : BOM表明細1_dgv.Columns("項1").FillWeight = SD
        BOM表明細1_dgv.Columns("項2").FillWeight = SD : BOM表明細1_dgv.Columns("項3").FillWeight = SD : BOM表明細1_dgv.Columns("項4").FillWeight = SD
        BOM表明細1_dgv.Columns("項5").FillWeight = SD : BOM表明細1_dgv.Columns("項6").FillWeight = SD
        BOM表明細1_dgv.Columns("項目").FillWeight = 150 : BOM表明細1_dgv.Columns("單位").FillWeight = 30 : BOM表明細1_dgv.Columns("數量").FillWeight = 30
        BOM表明細1_dgv.Columns("料號").FillWeight = 75 : BOM表明細1_dgv.Columns(6).Visible = False
        For i As Integer = 11 To 40 : BOM表明細1_dgv.Columns(i).Visible = False : Next
        For i As Integer = 0 To 40 : BOM表明細1_dgv.Columns(i).ReadOnly = True : Next
        BOM表明細1_dgv.Columns("數量").DefaultCellStyle.Format = "#,##0"
        BOM表明細1_dgv.Columns("項1").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        BOM表明細1_dgv.Columns("項2").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        BOM表明細1_dgv.Columns("項3").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        BOM表明細1_dgv.Columns("項4").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        BOM表明細1_dgv.Columns("項5").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        BOM表明細1_dgv.Columns("項6").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

        For i As Integer = 9 To 10 : BOM表明細1_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next

        For i As Integer = 0 To BOM表明細1_dgv.Rows.Count - 1
            If BOM表明細1_dgv.Rows(i).Cells("項1").Value.ToString = "" Then : BOM表明細1_dgv.Rows(i).Cells("項1").Value = 1 : End If
            If BOM表明細1_dgv.Rows(i).Cells("項2").Value.ToString = "" Then : BOM表明細1_dgv.Rows(i).Cells("項2").Value = 0 : End If
            If BOM表明細1_dgv.Rows(i).Cells("項3").Value.ToString = "" Then : BOM表明細1_dgv.Rows(i).Cells("項3").Value = 0 : End If
            If BOM表明細1_dgv.Rows(i).Cells("項4").Value.ToString = "" Then : BOM表明細1_dgv.Rows(i).Cells("項4").Value = 0 : End If
            If BOM表明細1_dgv.Rows(i).Cells("項5").Value.ToString = "" Then : BOM表明細1_dgv.Rows(i).Cells("項5").Value = 0 : End If
            If BOM表明細1_dgv.Rows(i).Cells("項6").Value.ToString = "" Then : BOM表明細1_dgv.Rows(i).Cells("項6").Value = 0 : End If

            If BOM表明細1_dgv.Rows(i).Cells("項2").Value = 0 And BOM表明細1_dgv.Rows(i).Cells("項3").Value = 0 And BOM表明細1_dgv.Rows(i).Cells("項4").Value = 0 And
                BOM表明細1_dgv.Rows(i).Cells("項5").Value = 0 And BOM表明細1_dgv.Rows(i).Cells("項6").Value = 0 Then
                BOM表明細1_dgv.Rows(i).DefaultCellStyle.ForeColor = Color.Red
            ElseIf BOM表明細1_dgv.Rows(i).Cells("項3").Value = 0 And BOM表明細1_dgv.Rows(i).Cells("項4").Value = 0 And BOM表明細1_dgv.Rows(i).Cells("項5").Value = 0 And
                BOM表明細1_dgv.Rows(i).Cells("項6").Value = 0 Then
                BOM表明細1_dgv.Rows(i).DefaultCellStyle.ForeColor = Color.Peru
            ElseIf BOM表明細1_dgv.Rows(i).Cells("項4").Value = 0 And BOM表明細1_dgv.Rows(i).Cells("項5").Value = 0 And BOM表明細1_dgv.Rows(i).Cells("項6").Value = 0 Then
                BOM表明細1_dgv.Rows(i).DefaultCellStyle.ForeColor = Color.Green
            ElseIf BOM表明細1_dgv.Rows(i).Cells("項5").Value = 0 And BOM表明細1_dgv.Rows(i).Cells("項6").Value = 0 Then
                BOM表明細1_dgv.Rows(i).DefaultCellStyle.ForeColor = Color.Blue
            ElseIf BOM表明細1_dgv.Rows(i).Cells("項6").Value = 0 Then
                BOM表明細1_dgv.Rows(i).DefaultCellStyle.ForeColor = Color.Black
            Else : BOM表明細1_dgv.Rows(i).DefaultCellStyle.ForeColor = Color.Black : End If

            If BOM表明細1_dgv.Rows(i).Cells("物料單位").Value.ToString <> "" Then : BOM表明細1_dgv.Rows(i).Cells("單位").Value = BOM表明細1_dgv.Rows(i).Cells("物料單位").Value.ToString : End If
            If BOM表明細1_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
                Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
                If 詳細資料2_ch.Checked = True Then
                    If BOM表明細1_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then
                        ZA1 = BOM表明細1_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & BOM表明細1_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then
                        ZA2 = BOM表明細1_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & BOM表明細1_dgv.Rows(i).Cells("A2").Value
                        If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then
                        ZA3 = BOM表明細1_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & BOM表明細1_dgv.Rows(i).Cells("A3").Value
                        If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then
                        ZA4 = BOM表明細1_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & BOM表明細1_dgv.Rows(i).Cells("A4").Value
                        If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then
                        ZA5 = BOM表明細1_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & BOM表明細1_dgv.Rows(i).Cells("A5").Value
                        If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then
                        ZA6 = BOM表明細1_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & BOM表明細1_dgv.Rows(i).Cells("A6").Value
                        If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then
                        ZA7 = BOM表明細1_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & BOM表明細1_dgv.Rows(i).Cells("A7").Value
                        If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then
                        ZA8 = BOM表明細1_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & BOM表明細1_dgv.Rows(i).Cells("A8").Value
                        If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
                Else
                    If BOM表明細1_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : ZA1 = BOM表明細1_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then
                        ZA2 = BOM表明細1_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then
                        ZA3 = BOM表明細1_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then
                        ZA4 = BOM表明細1_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then
                        ZA5 = BOM表明細1_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then
                        ZA6 = BOM表明細1_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then
                        ZA7 = BOM表明細1_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
                    If BOM表明細1_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then
                        ZA8 = BOM表明細1_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
                End If
                If BOM表明細1_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
                    BOM表明細1_dgv.Rows(i).Cells("項目").Value = BOM表明細1_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格
                End If
            End If
        Next

        Set_控制表_dgv_插入勾選控件清單() : BOM表明細1_dgv.Columns("選擇").FillWeight = 20
        For I As Integer = 0 To BOM表明細1_dgv.Rows.Count - 1 : BOM表明細1_dgv.Rows(I).Cells("選擇").Value = False : Next
    End Sub
    Private Sub Set_控制表_dgv_插入勾選控件清單()
        Dim Col As New DataGridViewCheckBoxColumn With {
            .FillWeight = 20,
            .DataPropertyName = "選擇"
        }
        Col.HeaderText = "選擇" : Col.Name = "選擇"
        BOM表明細1_dgv.Columns.Insert(0, Col)
    End Sub
    Private Sub Set_群組清單()
        Dim ds1 As New DataSet : 群組分類_dgv.DataSource = Nothing : ds1.Clear()
        群組分類_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        群組分類_dgv.ColumnHeadersHeight = 25 : 群組分類_dgv.AllowUserToAddRows = False : 群組分類_dgv.RowTemplate.Height = 45
        SQL_物料群組() : da.Fill(ds1) : 群組分類_dgv.DataSource = ds1.Tables(0) : conn.Close()
    End Sub
    Private Sub Set_主管清單()
        Dim ds1 As New DataSet : 主管_dgv.DataSource = Nothing : ds1.Clear()
        主管_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        主管_dgv.ColumnHeadersHeight = 25 : 主管_dgv.AllowUserToAddRows = False : 主管_dgv.RowTemplate.Height = 45
        SQL_系統組織結構圖_單位主管1() : da.Fill(ds1) : 主管_dgv.DataSource = ds1.Tables(0) : conn.Close()
        主管_dgv.Columns(0).FillWeight = 100 : 主管_dgv.Columns(1).FillWeight = 50 : 主管_dgv.Columns(2).FillWeight = 150
    End Sub
    Private Sub Set_清單2()
        Dim ds1 As New DataSet : 未核准1_dgv.DataSource = Nothing : ds1.Clear()
        未核准1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        未核准1_dgv.ColumnHeadersHeight = 40 : 未核准1_dgv.AllowUserToAddRows = False
        SQL_建築物料請購單申請_未核准()
        da.Fill(ds1) : 未核准1_dgv.DataSource = ds1.Tables(0) : conn.Close()
        未核准1_dgv.Columns(0).FillWeight = 120 : 未核准1_dgv.Columns(1).FillWeight = 160 : 未核准1_dgv.Columns(2).FillWeight = 90 : 未核准1_dgv.Columns(3).Visible = False
        未核准1_dgv.Columns(4).Visible = False : 未核准1_dgv.Columns(5).Visible = False : 未核准1_dgv.Columns(7).Visible = False : 未核准1_dgv.Columns(8).Visible = False
        未核准1_dgv.Columns(9).Visible = False : 未核准1_dgv.Columns(10).Visible = False : 未核准1_dgv.Columns(11).Visible = False : 未核准1_dgv.Columns(6).FillWeight = 120
        未核准1_dgv.Columns("退單備註").Visible = False : 未核准1_dgv.Columns("退單").FillWeight = 50
        For i As Integer = 0 To 未核准1_dgv.Rows.Count - 1
            If IsDBNull(未核准1_dgv.Rows(i).Cells("退單").Value) Then : 未核准1_dgv.Rows(i).Cells("退單").Value = False : End If
        Next
    End Sub
    Private Sub Set_清單3()
        Dim ds3 As New DataSet : 作廢清單1_dgv.DataSource = Nothing : ds3.Clear()
        作廢清單1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        作廢清單1_dgv.ColumnHeadersHeight = 40 : 作廢清單1_dgv.AllowUserToAddRows = False
        SQL_建築物料請購單申請_作廢清單()
        da.Fill(ds3) : 作廢清單1_dgv.DataSource = ds3.Tables(0) : conn.Close()
        作廢清單1_dgv.Columns(0).FillWeight = 120 : 作廢清單1_dgv.Columns(1).FillWeight = 160 : 作廢清單1_dgv.Columns(2).FillWeight = 90 : 作廢清單1_dgv.Columns(3).Visible = False
        作廢清單1_dgv.Columns(4).Visible = False : 作廢清單1_dgv.Columns(5).Visible = False : 作廢清單1_dgv.Columns(7).Visible = False : 作廢清單1_dgv.Columns(8).Visible = False
        作廢清單1_dgv.Columns(9).Visible = False : 作廢清單1_dgv.Columns(10).Visible = False : 作廢清單1_dgv.Columns(11).Visible = False : 作廢清單1_dgv.Columns(6).FillWeight = 120
        作廢清單1_dgv.Columns("退單備註").Visible = False : 作廢清單1_dgv.Columns("退單").FillWeight = 50
        For i As Integer = 0 To 作廢清單1_dgv.Rows.Count - 1
            If IsDBNull(作廢清單1_dgv.Rows(i).Cells("退單").Value) Then : 作廢清單1_dgv.Rows(i).Cells("退單").Value = False : End If
        Next
    End Sub
    Private Sub Set_清單4()
        Dim ds6 As New DataSet : 已核准1_dgv.DataSource = Nothing : ds6.Clear()
        已核准1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        已核准1_dgv.ColumnHeadersHeight = 40 : 已核准1_dgv.AllowUserToAddRows = False
        SQL_建築物料請購單申請_已核准()
        da.Fill(ds6) : 已核准1_dgv.DataSource = ds6.Tables(0) : conn.Close()
        已核准1_dgv.Columns(0).FillWeight = 120 : 已核准1_dgv.Columns(1).FillWeight = 160 : 已核准1_dgv.Columns(2).FillWeight = 90 : 已核准1_dgv.Columns(3).Visible = False
        已核准1_dgv.Columns(4).Visible = False : 已核准1_dgv.Columns(5).Visible = False : 已核准1_dgv.Columns(7).Visible = False : 已核准1_dgv.Columns(8).Visible = False
        已核准1_dgv.Columns(9).Visible = False : 已核准1_dgv.Columns(10).Visible = False : 已核准1_dgv.Columns(11).Visible = False : 已核准1_dgv.Columns(6).FillWeight = 120
        已核准1_dgv.Columns("退單備註").Visible = False : 已核准1_dgv.Columns("退單").FillWeight = 50
        For i As Integer = 0 To 已核准1_dgv.Rows.Count - 1
            If IsDBNull(已核准1_dgv.Rows(i).Cells("退單").Value) Then : 已核准1_dgv.Rows(i).Cells("退單").Value = False : End If
        Next
    End Sub
    Private Sub Set_請購單清單()
        Dim ds As New DataSet : 請購明細_dgv.DataSource = Nothing : ds.Clear()
        請購明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        請購明細_dgv.ColumnHeadersHeight = 30 : 請購明細_dgv.AllowUserToAddRows = False : 請購明細_dgv.RowTemplate.Height = 35

        If 小間距1_ch.Checked = False And 中間距1_ch.Checked = False And 大間距1_ch.Checked = True Then : 請購明細_dgv.RowTemplate.Height = 75
        ElseIf 小間距1_ch.Checked = False And 中間距1_ch.Checked = True And 大間距1_ch.Checked = False Then : 請購明細_dgv.RowTemplate.Height = 45
        ElseIf 小間距1_ch.Checked = True And 中間距1_ch.Checked = False And 大間距1_ch.Checked = False Then : 請購明細_dgv.RowTemplate.Height = 25 : End If

        SQL_建築物料請購單申請_請購單清單() : da.Fill(ds) : 請購明細_dgv.DataSource = ds.Tables(0) : conn.Close()

        請購明細_dgv.Columns(0).Visible = False : 請購明細_dgv.Columns(1).FillWeight = 50 : 請購明細_dgv.Columns(2).FillWeight = 200 : 請購明細_dgv.Columns(3).FillWeight = 200
        請購明細_dgv.Columns(4).FillWeight = 150 : 請購明細_dgv.Columns(5).FillWeight = 60 : 請購明細_dgv.Columns(6).FillWeight = 60 : 請購明細_dgv.Columns(7).FillWeight = 100
        請購明細_dgv.Columns(8).Visible = False : 請購明細_dgv.Columns(9).Visible = False : 請購明細_dgv.Columns(10).Visible = False : 請購明細_dgv.Columns(11).Visible = False
        請購明細_dgv.Columns(12).Visible = False : 請購明細_dgv.Columns(13).Visible = False : 請購明細_dgv.Columns(14).Visible = False : 請購明細_dgv.Columns(15).Visible = False
        請購明細_dgv.Columns(16).Visible = False : 請購明細_dgv.Columns(17).Visible = False : 請購明細_dgv.Columns(18).Visible = False : 請購明細_dgv.Columns(19).Visible = False
        請購明細_dgv.Columns("已採購").FillWeight = 80
        If 低網速模式 = False Then
            請購明細_dgv.Columns(21).FillWeight = 80 : 請購明細_dgv.Columns(21).Visible = True
            Dim mycol As DataGridViewImageColumn = 請購明細_dgv.Columns("圖檔")
            mycol.ImageLayout = DataGridViewImageCellLayout.Zoom
        Else : If 請購明細_dgv.Columns.Count = 22 Then : 請購明細_dgv.Columns(21).Visible = False : End If : End If
        請購明細_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
        請購明細_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        請購明細_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
        請購明細_dgv.EditMode = DataGridViewEditMode.EditOnEnter
        請購明細_dgv.Columns(1).ReadOnly = True : 請購明細_dgv.Columns(2).ReadOnly = True : 請購明細_dgv.Columns(3).ReadOnly = True
        請購明細_dgv.Columns(6).ReadOnly = True : 請購明細_dgv.Columns(7).ReadOnly = True : 請購明細_dgv.Columns("已採購").ReadOnly = True

        For i As Integer = 0 To 請購明細_dgv.Rows.Count - 1
            '-------------------------規格合併呈現----------------------------------------------------------------------------------------------------------------------------------------
            If i = 0 Then
                PA3 = 請購明細_dgv.Rows(i).Cells("規格庫抬頭指定").Value : SQL_規格庫抬頭讀取()
                If dr.Read() Then
                    AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8")
                End If : conn.Close()
            Else
                If 請購明細_dgv.Rows(i).Cells("規格庫抬頭指定").Value.ToString <> 請購明細_dgv.Rows(i - 1).Cells("規格庫抬頭指定").Value.ToString Then
                    PA3 = 請購明細_dgv.Rows(i).Cells("規格庫抬頭指定").Value : SQL_規格庫抬頭讀取()
                    If dr.Read() Then
                        AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8")
                    End If : conn.Close()
                End If
            End If
            Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
            If 詳細資料2_ch.Checked = True Then
                If 請購明細_dgv.Rows(i).Cells("規格").Value.ToString <> "" Then
                    ZA1 = AAA1 & "=" & 請購明細_dgv.Rows(i).Cells("規格").Value.ToString : 物料規格 = ZA1 : End If
                If 請購明細_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : ZA2 = AAA2 & "=" & 請購明細_dgv.Rows(i).Cells("A2").Value
                    If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : ZA3 = AAA3 & "=" & 請購明細_dgv.Rows(i).Cells("A3").Value
                    If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : ZA4 = AAA4 & "=" & 請購明細_dgv.Rows(i).Cells("A4").Value
                    If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : ZA5 = AAA5 & "=" & 請購明細_dgv.Rows(i).Cells("A5").Value
                    If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : ZA6 = AAA6 & "=" & 請購明細_dgv.Rows(i).Cells("A6").Value
                    If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : ZA7 = AAA7 & "=" & 請購明細_dgv.Rows(i).Cells("A7").Value
                    If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : ZA8 = AAA8 & "=" & 請購明細_dgv.Rows(i).Cells("A8").Value
                    If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
            Else
                If 請購明細_dgv.Rows(i).Cells("規格").Value.ToString <> "" Then : ZA1 = 請購明細_dgv.Rows(i).Cells("規格").Value.ToString : 物料規格 = ZA1 : End If
                If 請購明細_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then
                    ZA2 = 請購明細_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then
                    ZA3 = 請購明細_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then
                    ZA4 = 請購明細_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then
                    ZA5 = 請購明細_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then
                    ZA6 = 請購明細_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then
                    ZA7 = 請購明細_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
                If 請購明細_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then
                    ZA8 = 請購明細_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
            End If
            請購明細_dgv.Rows(i).Cells("規格").Value = 物料規格
        Next
    End Sub
    Private Sub Set_清單1_1()
        Dim ds4 As New DataSet : 物料清單1_dgv.DataSource = Nothing : ds4.Clear()
        物料清單1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        物料清單1_dgv.ColumnHeadersHeight = 25 : 物料清單1_dgv.AllowUserToAddRows = False : 物料清單1_dgv.RowTemplate.Height = 45

        ConnOpen() : SQL_建築物料請購單申請_物料清單一() : CmdSet_For_DGV()
        da.Fill(ds4) : 物料清單1_dgv.DataSource = ds4.Tables(0) : conn.Close()
        物料清單1_dgv.Columns(0).FillWeight = 20 : 物料清單1_dgv.Columns(1).Visible = False : 物料清單1_dgv.Columns(2).FillWeight = 175
        物料清單1_dgv.Columns(4).FillWeight = 45 : 物料清單1_dgv.Columns(3).Visible = False
        物料清單1_dgv.Columns(0).ReadOnly = True : 物料清單1_dgv.Columns(1).ReadOnly = True : 物料清單1_dgv.Columns(2).ReadOnly = True
        For i As Integer = 0 To 物料清單1_dgv.Rows.Count - 1 : 物料清單1_dgv(0, i).Value = i + 1 : Next
        If 低網速模式 = False Then
            物料清單1_dgv.Columns(5).FillWeight = 50 : 物料清單1_dgv.Columns(5).Visible = True
            Dim mycol As DataGridViewImageColumn = 物料清單1_dgv.Columns("圖檔")
            mycol.ImageLayout = DataGridViewImageCellLayout.Zoom
        Else : If 物料清單1_dgv.Columns.Count = 6 Then : 物料清單1_dgv.Columns(5).Visible = False : End If : End If
    End Sub
    Private Sub 指定倉庫_cb_下拉表單資料載入()
        SQL_倉名_下拉清單() : 指定倉庫_cb.Items.Clear() : While (dr.Read()) : 指定倉庫_cb.Items.Add(dr("倉名")) : End While : conn.Close()
    End Sub
    Private Sub 群組編碼_cb_下拉表單資料載入()
        SQL_群組碼_下拉清單() : 群組編碼_cb.Items.Clear() : While (dr.Read()) : 群組編碼_cb.Items.Add(dr("群組碼")) : End While : conn.Close()
    End Sub
    Private Sub 物料原則一_cb_下拉表單資料載入()
        SQL_料號原則前二_下拉清單() : 物料原則一_cb.Items.Clear() : While (dr.Read()) : 物料原則一_cb.Items.Add(dr("原則前二")) : End While : conn.Close()
    End Sub
    Private Sub 物料原則二_cb_下拉表單資料載入()
        PA9 = 物料原則一_cb.Text : SQL_料號原則中段_下拉清單() : 物料原則二_cb.Items.Clear() : While (dr.Read()) : 物料原則二_cb.Items.Add(dr("原則中段")) : End While : conn.Close()
    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 群組碼_cb_語轉_下拉表單資料載入()
        If 主項目_cb.SelectedIndex = 0 Then : PA49 = "" : ElseIf 主項目_cb.SelectedIndex = 1 Then : PA49 = 物料主項(0)
        ElseIf 主項目_cb.SelectedIndex = 2 Then : PA49 = 物料主項(1) : ElseIf 主項目_cb.SelectedIndex = 3 Then : PA49 = 物料主項(2)
        ElseIf 主項目_cb.SelectedIndex = 4 Then : PA49 = 物料主項(3) : ElseIf 主項目_cb.SelectedIndex = 5 Then : PA49 = 物料主項(4)
        ElseIf 主項目_cb.SelectedIndex = 6 Then : PA49 = 物料主項(5) : ElseIf 主項目_cb.SelectedIndex = 6 Then : PA49 = 物料主項(6)
        ElseIf 主項目_cb.SelectedIndex = 6 Then : PA49 = 物料主項(7) : ElseIf 主項目_cb.SelectedIndex = 6 Then : PA49 = 物料主項(8)
        ElseIf 主項目_cb.SelectedIndex = 6 Then : PA49 = 物料主項(9) : Else : PA49 = "%%" : End If
        SQL_群組碼_語轉_下拉清單1() : 新群組1_cb.Items.Clear() : While (dr.Read()) : 新群組1_cb.Items.Add(dr("群組")) : End While : conn.Close()
        新群組1_cb.Text = "" : 料號1_tb.Text = "" : 物料清單1_dgv.DataSource = Nothing : 物料規格1_dgv.DataSource = Nothing
    End Sub
    Private Sub 載入群組碼()
        SQL_工程項目BOM_群組碼()
        群組碼_cb.Items.Clear() : 群組碼中_cb.Items.Clear() : 群組碼印_cb.Items.Clear()
        群組碼1_cb.Items.Clear() : 群組碼中1_cb.Items.Clear() : 群組碼印1_cb.Items.Clear()
        群組碼_cb.Items.Add("%%") : 群組碼中_cb.Items.Add("未分配群組") : 群組碼印_cb.Items.Add("Grup Belum Ditugaskan")
        群組碼1_cb.Items.Add("%%") : 群組碼中1_cb.Items.Add("未分配群組") : 群組碼印1_cb.Items.Add("Grup Belum Ditugaskan")
        While (dr.Read())
            群組碼_cb.Items.Add(dr("群組碼")) : 群組碼中_cb.Items.Add(dr("中文名稱")) : 群組碼印_cb.Items.Add(dr("印尼文名稱"))
            群組碼1_cb.Items.Add(dr("群組碼")) : 群組碼中1_cb.Items.Add(dr("中文名稱")) : 群組碼印1_cb.Items.Add(dr("印尼文名稱"))
        End While
    End Sub
    Private Sub 單據_bt_MouseEnter(sender As Object, e As EventArgs) Handles 單據_bt.MouseEnter
        ToolTip1.SetToolTip(Me.單據_bt, "單據")
    End Sub
    Private Sub 新增1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 新增1_bt.MouseEnter
        ToolTip1.SetToolTip(Me.新增1_bt, "物料加入請購單")
    End Sub
    Private Sub 搜尋1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 搜尋1_bt.MouseEnter
        ToolTip1.SetToolTip(Me.搜尋1_bt, "物料關鍵字搜索")
    End Sub
    Private Sub 縮放3_bt_MouseEnter(sender As Object, e As EventArgs) Handles 縮放3_bt.MouseEnter
        ToolTip1.SetToolTip(Me.縮放3_bt, "縮放")
    End Sub
    Private Sub 請購單申請_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.MdiParent = FH_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
        主項目_cb.SelectedIndex = 1 : Panel3.Visible = True : 等待_lb.Visible = True
        刪除請購單上點選資料_bt.Enabled = False : 刪除_bt.Enabled = False : 申請完成_bt.Enabled = False : 送出_bt.Enabled = False
        未核准1_dgv.Visible = True : 作廢清單1_dgv.Visible = False : 已核准1_dgv.Visible = False
        未審核1_rb.Checked = True : 首次開啟 = False : Panel1.SendToBack()
        ToolTip1.ToolTipTitle = "系統說明" : 需求日期_dtp.Format = DateTimePickerFormat.Custom : 需求日期_dtp.CustomFormat = " "
        銷售單申請_Size()
    End Sub
    Private Sub 建築物料請購單生成_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
        計算分流1.Enabled = True
    End Sub
    Private Sub 計算分流1_Tick(sender As Object, e As EventArgs) Handles 計算分流1.Tick
        計算分流1.Enabled = False : 群組編碼_cb_下拉表單資料載入() : 甲方條件下拉清單讀取() : 群組碼_cb_語轉_下拉表單資料載入() : 載入群組碼()
        If 未審核1_rb.Checked = True Then : Set_清單2() : ElseIf 已作廢1_rb.Checked = True Then : Set_清單3() : ElseIf 已審核1_rb.Checked = True Then : Set_清單4() : End If
        指定倉庫_cb_下拉表單資料載入() : CB選擇清單(指定倉庫_cb, 指定倉庫_cb.Text) : 新群組1_cb.SelectedIndex = 0 : 群組碼_tb.Text = 新群組1_cb.Text : 群組碼中1_cb.SelectedIndex = 0
        等待_lb.Visible = False
    End Sub
    Private Sub 銷售單申請_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
        銷售單申請_Size()
    End Sub
    Private Sub 銷售單申請_Size()
        物料清單1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) : 物料規格1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
        已核准1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) : 未核准1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
        作廢清單1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) : 請購明細_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
        BOM表控制1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
    End Sub
    Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
        timeNow = 0 : FH_ERP_SYS.Timer1.Enabled = False : FH_ERP_SYS.Timer1.Enabled = True
    End Sub
    Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
        timeNow = 0 : FH_ERP_SYS.Timer1.Enabled = False : FH_ERP_SYS.Timer1.Enabled = True
    End Sub
    Private Sub 用途顯示()
        Set_請購單清單()
    End Sub
    Private Sub 已核准1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 已核准1_dgv.CellClick
        If e.RowIndex = -1 Then : Else
            請購單號_tb.Text = 已核准1_dgv(0, e.RowIndex).Value.ToString : 申請人_tb.Text = 已核准1_dgv(1, e.RowIndex).Value.ToString
            申請日期_dtp.Value = 已核准1_dgv(2, e.RowIndex).Value.ToString : 備註_tb.Text = 已核准1_dgv("備註", e.RowIndex).Value.ToString
            If 已核准1_dgv(5, e.RowIndex).Value.ToString = "" Then : 需求日期_dtp.Format = DateTimePickerFormat.Custom : 需求日期_dtp.CustomFormat = " "
            Else : 需求日期_dtp.Format = DateTimePickerFormat.Short : 需求日期_dtp.Value = 已核准1_dgv(5, e.RowIndex).Value.ToString : End If : 用途顯示()
            If 已核准1_dgv.Rows(e.RowIndex).Cells("退單").Value = True Then : MsgBox(已核准1_dgv.Rows(e.RowIndex).Cells("退單備註").Value.ToString) : End If
        End If
    End Sub
    Private Sub 未核准1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 未核准1_dgv.CellClick
        If e.RowIndex = -1 Then : Else
            請購單號_tb.Text = 未核准1_dgv(0, e.RowIndex).Value.ToString : 申請人_tb.Text = 未核准1_dgv(1, e.RowIndex).Value.ToString
            申請日期_dtp.Value = 未核准1_dgv(2, e.RowIndex).Value.ToString : 備註_tb.Text = 未核准1_dgv("備註", e.RowIndex).Value.ToString
            If 未核准1_dgv(5, e.RowIndex).Value.ToString = "" Then : 需求日期_dtp.Format = DateTimePickerFormat.Custom : 需求日期_dtp.CustomFormat = " "
            Else : 需求日期_dtp.Format = DateTimePickerFormat.Short : 需求日期_dtp.Value = 未核准1_dgv(5, e.RowIndex).Value.ToString : End If : 用途顯示()
            If 未核准1_dgv.Rows(e.RowIndex).Cells("退單").Value = True Then : MsgBox(未核准1_dgv.Rows(e.RowIndex).Cells("退單備註").Value.ToString) : End If
        End If
    End Sub
    Private Sub 作廢清單1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 作廢清單1_dgv.CellClick
        If e.RowIndex = -1 Then : Else
            請購單號_tb.Text = 作廢清單1_dgv(0, e.RowIndex).Value.ToString : 申請人_tb.Text = 作廢清單1_dgv(1, e.RowIndex).Value.ToString
            申請日期_dtp.Value = 作廢清單1_dgv(2, e.RowIndex).Value.ToString : 備註_tb.Text = 作廢清單1_dgv("備註", e.RowIndex).Value.ToString
            If 作廢清單1_dgv(5, e.RowIndex).Value.ToString = "" Then : 需求日期_dtp.Format = DateTimePickerFormat.Custom : 需求日期_dtp.CustomFormat = " "
            Else : 需求日期_dtp.Format = DateTimePickerFormat.Short : 需求日期_dtp.Value = 作廢清單1_dgv(5, e.RowIndex).Value.ToString : End If : 用途顯示()
            If 作廢清單1_dgv.Rows(e.RowIndex).Cells("退單").Value = True Then : MsgBox(作廢清單1_dgv.Rows(e.RowIndex).Cells("退單備註").Value.ToString) : 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
            項次_tb.Text = 請購明細_dgv(1, e.RowIndex).Value.ToString
            PA1 = 請購明細_dgv.Rows(e.RowIndex).Cells("群組碼").Value : PA2 = 請購明細_dgv.Rows(e.RowIndex).Cells("群組原則").Value
            SQL_物料圖庫_圖檔讀取()
            While dr.Read() = True
                Dim unused As Byte() = New Byte(-1) {}
                Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
                Dim oStream As New MemoryStream(bytes)
                物料圖1_pb.Image = Bitmap.FromStream(oStream)
            End While : conn.Close() : 物料圖1_pb.SizeMode = 4
        End If
    End Sub
    Private Sub 物料清單1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 物料清單1_dgv.CellClick
        If e.RowIndex = -1 Then : Else
            PA = 物料清單1_dgv(1, e.RowIndex).Value.ToString : PA1 = 物料清單1_dgv.Rows(e.RowIndex).Cells("群組碼").Value
            PA2 = 物料清單1_dgv.Rows(e.RowIndex).Cells("料號原則").Value : SQL_物料圖庫_圖檔讀取()
            While dr.Read() = True
                Dim unused As Byte() = New Byte(-1) {}
                Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
                Dim oStream As New MemoryStream(bytes)
                物料圖1_pb.Image = Bitmap.FromStream(oStream)
            End While : conn.Close() : 物料圖1_pb.SizeMode = 4
            '------------------------------------------------------------------------------------------------------------------------------------------
            SQL_建築物料請購單申請_物料規格讀取()
            If dr.Read() Then : KKK2 = dr("規格庫編號") : PA3 = dr("規格庫抬頭指定") : PA4 = dr("群組碼") : End If : conn.Close()
            '------------------------------------------------------------------------------------------------------------------------------------------
            SQL_規格庫抬頭讀取()
            If dr.Read() Then : AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8") : End If
            conn.Close()
            '------------------------------------------------------------------------------------------------------------------------------------------
            Dim ds3 As New DataSet
            物料規格1_dgv.DataSource = Nothing : ds3.Clear()
            物料規格1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
            物料規格1_dgv.ColumnHeadersHeight = 25 : 物料規格1_dgv.AllowUserToAddRows = False : 物料規格1_dgv.RowTemplate.Height = 20
            If KKK2 = "SQLB03" Then : SQL_物料規格_SQLB03() : ElseIf KKK2 = "SQLB04" Then : SQL_物料規格_SQLB04() : ElseIf KKK2 = "SQLB05" Then : SQL_物料規格_SQLB05()
            ElseIf KKK2 = "SQLB06" Then : SQL_物料規格_SQLB06() : ElseIf KKK2 = "SQLB07" Then : SQL_物料規格_SQLB07() : ElseIf KKK2 = "SQLB08" Then : SQL_物料規格_SQLB08() : End If
            da.Fill(ds3) : 物料規格1_dgv.DataSource = ds3.Tables(0) : conn.Close() : 料號1_tb.Text = ""

            物料規格1_dgv.Columns(0).Visible = False : 物料規格1_dgv.Columns(1).Visible = False : 物料規格1_dgv.Columns(3).Visible = False
            物料規格1_dgv.Columns(2).Width = 17 : 物料規格1_dgv.Columns(12).Visible = False : 物料規格1_dgv.Columns(13).Visible = False : 物料規格1_dgv.Columns(14).Visible = False
            物料規格1_dgv.Columns(15).Visible = False
            If KKK2 = "SQLB03" Then
                物料規格1_dgv.Columns(7).Visible = False : 物料規格1_dgv.Columns(8).Visible = False : 物料規格1_dgv.Columns(9).Visible = False : 物料規格1_dgv.Columns(10).Visible = False
                物料規格1_dgv.Columns(11).Visible = False
                物料規格1_dgv.Columns(4).FillWeight = 213 : 物料規格1_dgv.Columns(5).FillWeight = 213 : 物料規格1_dgv.Columns(6).FillWeight = 214
            ElseIf KKK2 = "SQLB04" Then
                物料規格1_dgv.Columns(7).Visible = True : 物料規格1_dgv.Columns(8).Visible = False : 物料規格1_dgv.Columns(9).Visible = False : 物料規格1_dgv.Columns(10).Visible = False
                物料規格1_dgv.Columns(11).Visible = False
                物料規格1_dgv.Columns(4).FillWeight = 160 : 物料規格1_dgv.Columns(5).FillWeight = 160 : 物料規格1_dgv.Columns(6).FillWeight = 160 : 物料規格1_dgv.Columns(7).FillWeight = 160
            ElseIf KKK2 = "SQLB05" Then
                物料規格1_dgv.Columns(7).Visible = True : 物料規格1_dgv.Columns(8).Visible = True : 物料規格1_dgv.Columns(9).Visible = False : 物料規格1_dgv.Columns(10).Visible = False
                物料規格1_dgv.Columns(11).Visible = False
                物料規格1_dgv.Columns(4).FillWeight = 128 : 物料規格1_dgv.Columns(5).FillWeight = 128 : 物料規格1_dgv.Columns(6).FillWeight = 128 : 物料規格1_dgv.Columns(7).FillWeight = 128
                物料規格1_dgv.Columns(8).FillWeight = 128
            ElseIf KKK2 = "SQLB06" Then
                物料規格1_dgv.Columns(7).Visible = True : 物料規格1_dgv.Columns(8).Visible = True : 物料規格1_dgv.Columns(9).Visible = True : 物料規格1_dgv.Columns(10).Visible = False
                物料規格1_dgv.Columns(11).Visible = False
                物料規格1_dgv.Columns(4).FillWeight = 106 : 物料規格1_dgv.Columns(5).FillWeight = 107 : 物料規格1_dgv.Columns(6).FillWeight = 106 : 物料規格1_dgv.Columns(7).FillWeight = 107
                物料規格1_dgv.Columns(8).FillWeight = 106 : 物料規格1_dgv.Columns(9).FillWeight = 108
            ElseIf KKK2 = "SQLB07" Then
                物料規格1_dgv.Columns(7).Visible = True : 物料規格1_dgv.Columns(8).Visible = True : 物料規格1_dgv.Columns(9).Visible = True : 物料規格1_dgv.Columns(10).Visible = True
                物料規格1_dgv.Columns(11).Visible = False
                物料規格1_dgv.Columns(4).FillWeight = 91 : 物料規格1_dgv.Columns(5).FillWeight = 92 : 物料規格1_dgv.Columns(6).FillWeight = 91 : 物料規格1_dgv.Columns(7).FillWeight = 92
                物料規格1_dgv.Columns(8).FillWeight = 91 : 物料規格1_dgv.Columns(9).FillWeight = 92 : 物料規格1_dgv.Columns(10).FillWeight = 91
            ElseIf KKK2 = "SQLB08" Then
                物料規格1_dgv.Columns(7).Visible = True : 物料規格1_dgv.Columns(8).Visible = True : 物料規格1_dgv.Columns(9).Visible = True : 物料規格1_dgv.Columns(10).Visible = True
                物料規格1_dgv.Columns(11).Visible = True
                物料規格1_dgv.Columns(4).FillWeight = 80 : 物料規格1_dgv.Columns(5).FillWeight = 80 : 物料規格1_dgv.Columns(6).FillWeight = 80 : 物料規格1_dgv.Columns(7).FillWeight = 80
                物料規格1_dgv.Columns(8).FillWeight = 80 : 物料規格1_dgv.Columns(9).FillWeight = 80 : 物料規格1_dgv.Columns(10).FillWeight = 80 : 物料規格1_dgv.Columns(11).FillWeight = 80
            End If
            物料規格1_dgv.EditMode = DataGridViewEditMode.EditOnEnter
            物料規格1_dgv.Columns(0).ReadOnly = True : 物料規格1_dgv.Columns(1).ReadOnly = True : 物料規格1_dgv.Columns(2).ReadOnly = True : 物料規格1_dgv.Columns(3).ReadOnly = True
            物料規格1_dgv.Columns(4).ReadOnly = True : 物料規格1_dgv.Columns(5).ReadOnly = True : 物料規格1_dgv.Columns(6).ReadOnly = True : 物料規格1_dgv.Columns(7).ReadOnly = True
            物料規格1_dgv.Columns(8).ReadOnly = True : 物料規格1_dgv.Columns(9).ReadOnly = True : 物料規格1_dgv.Columns(10).ReadOnly = True : 物料規格1_dgv.Columns(11).ReadOnly = True

            For i As Integer = 0 To 物料規格1_dgv.Rows.Count - 1
                物料規格1_dgv.Rows(i).Cells("No").Value = i + 1 : 物料規格1_dgv.Rows(i).Cells("申請數 Terapkan").Value = 0
                If Not IsNumeric(物料規格1_dgv.Rows(i).Cells("申請數 Terapkan").Value) Then : MsgBox("欄位輸入必須為數值!!")
                ElseIf Val(物料規格1_dgv.Rows(i).Cells("申請數 Terapkan").Value) > 0 Then : 物料規格1_dgv.Rows(i).Cells("Pilih").Value = True
                ElseIf Val(物料規格1_dgv.Rows(i).Cells("申請數 Terapkan").Value) <= 0 Then
                    物料規格1_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0" : 物料規格1_dgv.Rows(i).Cells("Pilih").Value = False
                End If
            Next i
        End If
    End Sub
    Private Sub 物料規格1_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 物料規格1_dgv.CellEnter
        For i As Integer = 0 To 物料規格1_dgv.Rows.Count - 1
            If Not IsNumeric(物料規格1_dgv.Rows(i).Cells("申請數 Terapkan").Value) Then : MsgBox("欄位輸入必須為數值!!")
                物料規格1_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0" : 物料規格1_dgv.Rows(i).Cells("Pilih").Value = False
            ElseIf Val(物料規格1_dgv.Rows(i).Cells("申請數 Terapkan").Value) > 0 Then : 物料規格1_dgv.Rows(i).Cells("Pilih").Value = True
            ElseIf Val(物料規格1_dgv.Rows(i).Cells("申請數 Terapkan").Value) <= 0 Then
                物料規格1_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0" : 物料規格1_dgv.Rows(i).Cells("Pilih").Value = False
            End If
        Next i
    End Sub
    Private Sub 物料規格1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 物料規格1_dgv.CellClick
        If e.RowIndex = -1 Then : Else
            Dim EERR1 As Integer : Dim EERR2 As Integer
            料號1_tb.Text = 物料規格1_dgv.Rows(e.RowIndex).Cells("Nomor_Bagian").Value.ToString
            NUM2 = e.RowIndex : PA3 = 料號1_tb.Text : SQL_建築物料請購單申請_物料狀況查詢()
            If dr.Read() Then
                最大庫存量1_tb.Text = dr("最高庫存量")
                If dr("入庫").ToString = "" Then : EERR1 = 0 : Else : EERR1 = dr("入庫") : End If : If dr("出庫").ToString = "" Then : EERR2 = 0 : Else : EERR2 = dr("出庫") : End If
                庫存量1_tb.Text = EERR1 - EERR2
                可申請1_tb.Text = CInt(最大庫存量1_tb.Text) - CInt(庫存量1_tb.Text)
                最大庫存量1_tb.Text = Format(CInt(最大庫存量1_tb.Text), "###0")
                庫存量1_tb.Text = Format(CInt(庫存量1_tb.Text), "###0")
                可申請1_tb.Text = Format(CInt(可申請1_tb.Text), "###0") : 可申請1_tb.Text = Format(CInt(可申請1_tb.Text), "###0")
            End If : conn.Close()
            If 申請數1_nud.Value > CInt(可申請1_tb.Text) Then : MsgBox("可申請數只剩下 [" & 可申請1_tb.Text & "] ，不可大於可申請數。") : 申請數1_nud.Value = 0 : End If
        End If
    End Sub
    Private Sub BOM表控制1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles BOM表控制1_dgv.CellClick
        If e.RowIndex = -1 Then : Else
            合約編號_tb.Text = BOM表控制1_dgv.Rows(e.RowIndex).Cells("項目").Value.ToString : 項目流水1_tb.Text = BOM表控制1_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString
            PA = 項目流水1_tb.Text : Set_合約報價明細表()
        End If
    End Sub
    Private Sub 群組碼中1_cb_Click(sender As Object, e As EventArgs) Handles 群組碼中1_cb.Click
        CB選擇清單(群組碼中1_cb, 群組碼中1_cb.Text)
        群組碼印1_cb.SelectedIndex = 群組碼中1_cb.SelectedIndex : 群組碼1_cb.SelectedIndex = 群組碼中1_cb.SelectedIndex : Set_BOM表控制1()
    End Sub
    Private Sub 新群組1_cb_Click(sender As Object, e As EventArgs) Handles 新群組1_cb.Click
        CB選擇清單(新群組1_cb) : PA = 新群組1_cb.Text : SQL_群組碼_語轉_選擇() : If dr.Read Then : 群組編碼_cb.Text = dr("群組碼").ToString : End If : PA = ""
    End Sub
    Private Sub 合約編號1_cb_Click(sender As Object, e As EventArgs) Handles 合約編號1_cb.Click
        CB選擇清單(合約編號1_cb, 合約編號1_cb.Text)
    End Sub
    Private Sub 指定倉庫_cb_Click(sender As Object, e As EventArgs) Handles 指定倉庫_cb.Click
        CB選擇清單(指定倉庫_cb, 指定倉庫_cb.Text)
    End Sub
    Private Sub 全部選擇_bt_Click(sender As Object, e As EventArgs) Handles 全部選擇_bt.Click
        For I As Integer = 0 To BOM表明細1_dgv.Rows.Count - 1 : BOM表明細1_dgv.Rows(I).Cells("選擇").Value = True : Next
    End Sub
    Private Sub 全部取消_bt_Click(sender As Object, e As EventArgs) Handles 全部取消_bt.Click
        For I As Integer = 0 To BOM表明細1_dgv.Rows.Count - 1 : BOM表明細1_dgv.Rows(I).Cells("選擇").Value = False : Next
    End Sub
    Private Sub 需求日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 需求日期_dtp.MouseDown
        需求日期_dtp.Format = DateTimePickerFormat.Short
        If DateDiff(DateInterval.Day, 申請日期_dtp.Value, 需求日期_dtp.Value) > 7 Then : Else
            需求日期_dtp.Value = 申請日期_dtp.Value.AddDays(7)
        End If
    End Sub
    Private Sub 需求日期_dtp_ValueChanged_1(sender As Object, e As EventArgs) Handles 需求日期_dtp.ValueChanged
        If DateDiff(DateInterval.Day, 申請日期_dtp.Value, 需求日期_dtp.Value) > 7 Then : Else
            需求日期_dtp.Value = 申請日期_dtp.Value.AddDays(7)
        End If
    End Sub
    Private Sub 新群組1_cb_TextChanged(sender As Object, e As EventArgs) Handles 新群組1_cb.TextChanged
        群組碼_tb.Text = 新群組1_cb.Text : PA1 = 新群組1_cb.Text : Set_清單1_1()
    End Sub
    Private Sub Set_日期格式轉換()
        DTP = Format(Today(), "yyyy/MM/dd") & "-" & Format(TimeOfDay(), "HH:mm:ss") : DTP1 = Format(Today(), "yyyyMMdd")
    End Sub
    Private Sub 指定倉庫_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 指定倉庫_cb.SelectedIndexChanged
        PA6 = 指定倉庫_cb.Text : SQL_指定倉儲_資料讀取() : If dr.Read() Then : 倉庫級別_tb.Text = dr("倉級") : 倉庫編號_tb.Text = dr("倉名編號") : End If : conn.Close()
    End Sub
    Private Sub 存檔()
        For i As Integer = 0 To 請購明細_dgv.Rows.Count - 1
            資料數 = 請購明細_dgv.Rows.Count : MyMod.進度條()
            PA1 = 請購明細_dgv.Rows(i).Cells("備註").Value.ToString.Replace("'", "") : NU1 = 請購明細_dgv.Rows(i).Cells("數量").Value
            PA2 = 請購明細_dgv.Rows(i).Cells("單位").Value : PA3 = 倉庫編號_tb.Text : PA4 = 請購單號_tb.Text : PA5 = 請購明細_dgv.Rows(i).Cells("項次").Value
            SQL_建築物料請購單申請_存檔() : conn.Close()
        Next
        PA1 = 請購單號_tb.Text : If 需求日期_dtp.Text = "" Or 需求日期_dtp.Text = " " Then : DTP = "" : Else : DTP = Format(需求日期_dtp.Value, "yyyy/MM/dd") : End If
        SQL_請購單需求日其修改() : FH_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
    End Sub
    Private Sub 搜尋1_bt_Click(sender As Object, e As EventArgs) Handles 搜尋1_bt.Click
        PA1 = InputBox("請輸入要查詢的關鍵字。") : If PA1 = "" Then : Else : 物料查詢 = True : Set_清單1_1() : 物料查詢 = False : End If : 精準 = False
    End Sub
    Private Sub 申請完成_bt_Click(sender As Object, e As EventArgs) Handles 申請完成_bt.Click
        If 指定倉庫_cb.Text = "" Then : MsgBox("請選擇使用地點!!") : Else
            If 需求日期_dtp.Text = "" Or 需求日期_dtp.Text = " " Then : MsgBox("沒有選擇需求日期!!") : Else
                存檔()
            End If
        End If
    End Sub
    Private Sub 送出_bt_Click(sender As Object, e As EventArgs) Handles 送出_bt.Click
        If 指定倉庫_cb.Text = "" Then : MsgBox("請選擇使用地點!!") : Else
            If 需求日期_dtp.Text = "" Or 需求日期_dtp.Text = " " Then : MsgBox("沒有選擇需求日期!!") : Else
                Timer1.Enabled = False : 未核准1_dgv.Enabled = True : 作廢清單1_dgv.Enabled = True
                PA47 = 申請人_tb.Text : SQL_系統組織結_級別讀取() : If dr.Read Then : PA46 = dr("級別") : End If : 存檔()
                If Val(PA46) <= 5 Then
                    PA = 請購單號_tb.Text : PA1 = gUserName : SQL_建築物料請購單核准_請購單核准() : conn.Close()
                    MsgBox("您的權限大於5級，所以單據 [" & 請購單號_tb.Text & "] 已自動核准完成。")
                ElseIf Val(PA46) > 5 Then : MsgBox("申請完成，請通知主管審核!!") : End If

                '---LINE_AUTO 部門主管------------------------------------------------------------------------------------------------------------------------------------------
                LIN訊息通知("CC208", "FH-系統通知(通用)", PA4, "二日內")
                請購單號_tb.Text = "" : 申請人_tb.Text = "" : 項次_tb.Text = "" : 請購明細_dgv.DataSource = Nothing
                If 未審核1_rb.Checked = True Then : Set_清單2() : ElseIf 已作廢1_rb.Checked = True Then : Set_清單3() : ElseIf 已審核1_rb.Checked = True Then : Set_清單4() : End If
            End If
        End If
    End Sub
    Private Sub 新增1_bt_Click(sender As Object, e As EventArgs) Handles 新增1_bt.Click
        If 已作廢1_rb.Checked = True Or 已審核1_rb.Checked = True Then : MsgBox("選擇的單據無法在編輯!!") : Else
            If 指定倉庫_cb.Text = "" Then : MsgBox("請選擇使用地點!!") : Else
                If 需求日期_dtp.Text = "" Or 需求日期_dtp.Text = " " Then : MsgBox("沒有選擇需求日期!!") : Else
                    If 料號1_tb.Text = "" Then : MsgBox("沒有選擇資料!!") : Else
                        If 請購單號_tb.Text = "" Then
                            開立建築物料請購單_bt.PerformClick() : 請購明細_dgv.DataSource = Nothing
                            If 請購單號_tb.Text <> "" Then : Set_新增選取的資料到請購單() : End If
                        Else : Set_新增選取的資料到請購單() : End If
                    End If
                End If
            End If
        End If
    End Sub
    Private Sub Set_新增選取的資料到請購單()
        If 已作廢1_rb.Checked = True Then : MsgBox("請注意選擇的單據可能是已作廢的狀態!!") : Else
            If 申請數1_nud.Value = 0 Then : MsgBox("沒有填寫申請數量!!") : Else
                存檔() : PA1 = 請購單號_tb.Text : PA2 = 料號1_tb.Text : SQL_建築物料請購單申請_增選取資料驗證()
                If dr.Read() Then : conn.Close() : MsgBox("沒有填寫申請數量!!") : Else
                    SQL_請購單明細表_項次最後一筆()
                    If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "00" : End If : conn.Close() : NUM1 = Double.Parse(新項次) + 1
                    If NUM1 < 10 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = NUM1 : End If

                    物料規格 = KKK2
                    PA = 請購單號_tb.Text : PA2 = 物料規格 : PA3 = "" : PA4 = "" : PA5 = 倉庫編號_tb.Text : PA5 = 倉庫編號_tb.Text : PA6 = 新項次
                    PA1 = 物料規格1_dgv.Rows(NUM2).Cells("原則說明").Value : NU1 = 申請數1_nud.Value : PA9 = 物料規格1_dgv.Rows(NUM2).Cells("Nomor_Bagian").Value
                    PA7 = 物料規格1_dgv.Rows(NUM2).Cells("群組碼").Value : PA8 = 物料規格1_dgv.Rows(NUM2).Cells("料號原則").Value
                    SQL_請購單明細表_新增()
                End If : conn.Close() : MsgBox("新增完成，資料已在請購單上!!") : Set_請購單清單() : 申請數1_nud.Value = 0 : 申請數1_nud.Value = 0
            End If
        End If
    End Sub
    Private Sub 複製_bt_Click(sender As Object, e As EventArgs)
        If 合約號_tb.Text = "" Then : MsgBox("沒有合約號!!") : Else
            If 指定倉庫_cb.Text = "" Then : MsgBox("請選擇使用地點!!") : Else
                Dim result As DialogResult = MessageBox.Show("你確定要用這張請購單作為複製新請購單的依據嗎?", "請選擇", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                If result = DialogResult.Yes Then
                    Timer1.Enabled = True
                    申請完成_bt.Enabled = True : 送出_bt.Enabled = True : 刪除請購單上點選資料_bt.Enabled = True : 刪除_bt.Enabled = True
                    作廢清單1_dgv.Visible = False : 未核准1_dgv.Visible = True : 已核准1_dgv.Visible = False
                    未審核1_rb.Checked = True : 已作廢1_rb.Checked = False : 已審核1_rb.Checked = False
                    開立建築物料請購單_bt.PerformClick()
                    資料數 = 請購明細_dgv.Rows.Count
                    For i As Integer = 0 To 請購明細_dgv.Rows.Count - 1 : MyMod.進度條()
                        PA1 = 請購單號_tb.Text : SQL_請購單明細表_項次最後一筆() : If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "00" : End If : conn.Close()
                        NUM1 = Double.Parse(新項次) + 1 : If NUM1 < 10 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = NUM1 : End If
                        PA = 請購單號_tb.Text : PA1 = 請購明細_dgv.Rows(i).Cells("品名").Value : PA2 = 請購明細_dgv.Rows(i).Cells("規格").Value
                        PA3 = 請購明細_dgv.Rows(i).Cells("備註").Value : NU1 = 請購明細_dgv.Rows(i).Cells("數量").Value
                        PA4 = 請購明細_dgv.Rows(i).Cells("單位").Value : PA5 = 倉庫編號_tb.Text : PA6 = 新項次 : PA7 = 請購明細_dgv.Rows(i).Cells("群組碼").Value
                        PA8 = 請購明細_dgv.Rows(i).Cells("群組原則").Value : PA9 = 請購明細_dgv.Rows(i).Cells("料號").Value
                        SQL_請購單明細表_新增()
                    Next : conn.Close() : FH_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0 : Set_請購單清單() : MsgBox("單據複製完成，請在單據修改後點擊存檔按鈕!!")
                End If
            End If
        End If
    End Sub
    Private Sub 未審核1_rb_CheckedChanged(sender As Object, e As EventArgs) Handles 未審核1_rb.Click
        If 未審核1_rb.Checked = True Then
            請購明細_dgv.DataSource = Nothing : 請購單號_tb.Text = "" : 申請人_tb.Text = "" : 項次_tb.Text = "" : 刪除_bt.Enabled = True
            作廢清單1_dgv.Visible = False : 未核准1_dgv.Visible = True : 已核准1_dgv.Visible = False
            未審核1_rb.Checked = True : 已作廢1_rb.Checked = False : 已審核1_rb.Checked = False
            Set_清單2()
        End If
    End Sub
    Private Sub 已作廢1_rb_CheckedChanged(sender As Object, e As EventArgs) Handles 已作廢1_rb.Click
        If 已作廢1_rb.Checked = True Then
            請購明細_dgv.DataSource = Nothing : 請購單號_tb.Text = "" : 申請人_tb.Text = "" : 項次_tb.Text = "" : 刪除_bt.Enabled = False
            作廢清單1_dgv.Visible = True : 未核准1_dgv.Visible = False : 已核准1_dgv.Visible = False
            未審核1_rb.Checked = False : 已作廢1_rb.Checked = True : 已審核1_rb.Checked = False
            Set_清單3()
        End If
    End Sub
    Private Sub 已審核1_rb_CheckedChanged(sender As Object, e As EventArgs) Handles 已審核1_rb.Click
        If 已審核1_rb.Checked = True Then
            請購明細_dgv.DataSource = Nothing : 請購單號_tb.Text = "" : 申請人_tb.Text = "" : 項次_tb.Text = "" : 刪除_bt.Enabled = False
            作廢清單1_dgv.Visible = False : 未核准1_dgv.Visible = False : 已核准1_dgv.Visible = True
            未審核1_rb.Checked = False : 已作廢1_rb.Checked = False : 已審核1_rb.Checked = True
            Set_清單4()
        End If
    End Sub
    Private Sub 格式設定1()
        開立建築物料請購單_bt.Enabled = True : 新增1_bt.Enabled = False : 刪除請購單上點選資料_bt.Enabled = False
        刪除_bt.Enabled = False : 申請完成_bt.Enabled = False : 送出_bt.Enabled = False : 刪除請購單上點選資料_bt.Enabled = False
    End Sub
    Private Sub 請購單號_tb_TextChanged(sender As Object, e As EventArgs) Handles 請購單號_tb.TextChanged
        If 請購單號_tb.Text = "" Then : 格式設定1() : Else
            If 已審核1_rb.Checked = True And 已作廢1_rb.Checked = False And 未審核1_rb.Checked = False Then : 格式設定1()
            ElseIf 已審核1_rb.Checked = False And 已作廢1_rb.Checked = True And 未審核1_rb.Checked = False Then : 格式設定1()
            Else : 開立建築物料請購單_bt.Enabled = False : 刪除_bt.Enabled = True : 申請完成_bt.Enabled = True : 送出_bt.Enabled = True
                刪除請購單上點選資料_bt.Enabled = True : End If
        End If
    End Sub
    Private Sub 小間距_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 小間距_ch.Click
        小間距_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
        小間距_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
        小間距_ch.Checked = False : 中間距_ch.Checked = False : 大間距_ch.Checked = True : Set_合約報價明細表()
    End Sub
    Private Sub 小間距1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 小間距1_ch.Click
        小間距1_ch.Checked = True : 中間距1_ch.Checked = False : 大間距1_ch.Checked = False : Set_請購單清單()
    End Sub
    Private Sub 中間距1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中間距1_ch.Click
        小間距1_ch.Checked = False : 中間距1_ch.Checked = True : 大間距1_ch.Checked = False : Set_請購單清單()
    End Sub
    Private Sub 大間距1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 大間距1_ch.Click
        小間距1_ch.Checked = False : 中間距1_ch.Checked = False : 大間距1_ch.Checked = True : Set_請購單清單()
    End Sub
    Private Sub 主項目_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 主項目_cb.SelectedIndexChanged
        群組碼_cb_語轉_下拉表單資料載入()
    End Sub
    Private Sub Set_開立建築物料請購單()
        Timer1.Enabled = True
        申請完成_bt.Enabled = True : 送出_bt.Enabled = True : 刪除請購單上點選資料_bt.Enabled = True : 已作廢1_rb.Checked = False
        作廢清單1_dgv.Visible = False : 未核准1_dgv.Enabled = False : 已核准1_dgv.Visible = False : 已審核1_rb.Checked = False
        Set_日期格式轉換() : Dim NUM1 As Integer
        For i As Integer = 1 To 999
            NUM1 = 0 + i
            If NUM1 < 10 Then : 請購單號_tb.Text = "CR-" & DTP1 & "-00" & NUM1
            ElseIf NUM1 > 9 And NUM1 < 100 Then : 請購單號_tb.Text = "CR-" & DTP1 & "-0" & NUM1
            ElseIf NUM1 > 99 Then : 請購單號_tb.Text = "CR-" & DTP1 & "-" & NUM1 : End If
            PA = 請購單號_tb.Text : SQL_請購單控制表_流水號查詢()
            If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
        Next
        PA1 = 合約號_tb.Text.ToUpper : PA43 = 備註_tb.Text : PA44 = "" : PA45 = "" : PA46 = "" : PA47 = ""
        SQL_請購單控制表_新增() : 申請人_tb.Text = gUserName : conn.Close()
        If 未審核1_rb.Checked = True Then : Set_清單2() : ElseIf 已作廢1_rb.Checked = True Then : Set_清單3() : ElseIf 已審核1_rb.Checked = True Then : Set_清單4() : End If
    End Sub
    Private Sub 開立建築物料請購單_bt_Click(sender As Object, e As EventArgs) Handles 開立建築物料請購單_bt.Click
        合約號_tb.Text = "NA"
        If 指定倉庫_cb.Text = "" Then : MsgBox("請選擇使用地點!!") : Else
            If 需求日期_dtp.Text = "" Or 需求日期_dtp.Text = " " Then : MsgBox("沒有選擇需求日期!!") : Else
                If 合約號_tb.Text = "" Then
                    Dim result As DialogResult = MessageBox.Show("合約號為空白，是否要繼續開單流程!!", "請選擇", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                    If result = DialogResult.Yes Then
                        PA20 = InputBox("請輸入授權碼!!") : SQL_請購功能單次授權碼使用驗證()
                        If dr.Read() Then : MsgBox("建立的請購單是沒有合約號!!") : 合約號_tb.Text = PA20 : Set_開立建築物料請購單() : 請購明細_dgv.DataSource = Nothing : SQL_授權使用()
                        Else : MsgBox("授權碼無效，無法建立單據!!!!") : End If
                    End If
                Else : Set_開立建築物料請購單() : 請購明細_dgv.DataSource = Nothing : End If
            End If
        End If
    End Sub
    Private Sub 刪除_bt_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click
        If 已作廢1_rb.Checked = True Or 已審核1_rb.Checked = True Then : MsgBox("選擇的單據無法在編輯!!") : Else
            訊息回應 = InputBox("確定要刪除該筆資料? 請輸入大寫 [YES] 繼續執行下面的動作!!")
            If 訊息回應 = "YES" Then
                PA = 請購單號_tb.Text : SQL_請購單控制表_刪除() : SQL_請購單明細表_刪除() : conn.Close()
                請購單號_tb.Text = "" : 申請人_tb.Text = "" : 項次_tb.Text = "" : 請購明細_dgv.DataSource = Nothing
                If 未審核1_rb.Checked = True Then : Set_清單2() : ElseIf 已作廢1_rb.Checked = True Then : Set_清單3() : ElseIf 已審核1_rb.Checked = True Then : Set_清單4() : End If
                Timer1.Enabled = False
                未核准1_dgv.Enabled = True : 作廢清單1_dgv.Enabled = True
            End If
        End If
    End Sub
    Private Sub 刪除請購單上點選資料_bt_Click(sender As Object, e As EventArgs) Handles 刪除請購單上點選資料_bt.Click
        If 已作廢1_rb.Checked = True Or 已審核1_rb.Checked = True Then : MsgBox("選擇的單據無法在編輯!!") : Else
            If 請購單號_tb.Text = "" Then : MsgBox("沒有選擇資料!!") : Else
                If 已作廢1_rb.Checked = True Then : MsgBox("請注意選擇的單據可能是已作廢的狀態!!") : Else
                    If 項次_tb.Text = "" Then : MsgBox("未選擇需要刪除的資料。!!") : Else
                        Dim result As DialogResult = MessageBox.Show("確定要刪除該筆資料?", "請選擇", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                        If result = DialogResult.Yes Then
                            存檔() : PA1 = 請購單號_tb.Text : PA2 = 項次_tb.Text : SQL_請購單明細表_指定刪除() : conn.Close() : Set_請購單清單()
                            Dim NUM1 As Integer = 0
                            For i As Integer = 0 To 請購明細_dgv.Rows.Count - 1
                                NUM1 += 1 : If NUM1 < 10 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = NUM1 : End If
                                PA = 新項次 : PA1 = 請購單號_tb.Text : PA2 = 請購明細_dgv.Rows(i).Cells("項次").Value
                                SQL_請購單明細表_項次修改() : conn.Close()
                            Next : Set_請購單清單()
                        End If
                    End If
                End If
            End If
        End If
    End Sub
    Private Sub 重新整理_bt_Click(sender As Object, e As EventArgs) Handles 重新整理_bt.Click
        If 未審核1_rb.Checked = True Then : Set_清單2() : ElseIf 已作廢1_rb.Checked = True Then : Set_清單3() : ElseIf 已審核1_rb.Checked = True Then : Set_清單4() : End If
    End Sub
    Private Sub 新增資料1_bt_Click(sender As Object, e As EventArgs) Handles 新增資料1_bt.Click
        If 已作廢1_rb.Checked = True Or 已審核1_rb.Checked = True Then : MsgBox("選擇的單據無法在編輯!!") : Else
            If 指定倉庫_cb.Text = "" Then : MsgBox("請選擇使用地點!!") : Else
                If 需求日期_dtp.Text = "" Or 需求日期_dtp.Text = " " Then : MsgBox("沒有選擇需求日期!!") : Else
                    If 請購單號_tb.Text = "" Then
                        開立建築物料請購單_bt.PerformClick() : 請購明細_dgv.DataSource = Nothing
                        If 請購單號_tb.Text <> "" Then : BOM表新增到請購資料() : End If
                    Else : BOM表新增到請購資料() : End If
                End If
            End If
        End If
    End Sub
    Private Sub 市構件_bt_Click(sender As Object, e As EventArgs) Handles 市構件_bt.Click
        市構件分類.ShowDialog()
    End Sub
    Private Sub 關鍵字_bt_Click(sender As Object, e As EventArgs) Handles 關鍵字_bt.Click
        If PA1 = "" Then : Else : 物料查詢 = True : Set_清單1_1() : 物料查詢 = False : End If
    End Sub
    Private Sub BOM表新增到請購資料()
        If 項目流水1_tb.Text = "" Then : Else : 存檔()
            BOM表請購數量.ShowDialog()
            For I As Integer = 0 To BOM表明細1_dgv.Rows.Count - 1
                If BOM表明細1_dgv.Rows(I).Cells("選擇").Value = True Then
                    If BOM表明細1_dgv.Rows(I).Cells("料號").Value.ToString <> "" Then
                        PA1 = 請購單號_tb.Text : PA2 = BOM表明細1_dgv.Rows(I).Cells("料號").Value.ToString
                        SQL_請購單明細表_項次最後一筆()
                        If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "00" : End If : conn.Close() : NUM1 = Double.Parse(新項次) + 1
                        If NUM1 < 10 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = NUM1 : End If
                        SQL_請購單新增查詢1()
                        If dr.Read() Then : PA1 = dr("品名").ToString : PA7 = dr("群組碼").ToString : PA8 = dr("料號原則").ToString : End If
                        PA = 請購單號_tb.Text : PA3 = "" : PA4 = BOM表明細1_dgv.Rows(I).Cells("單位").Value.ToString : PA5 = 倉庫編號_tb.Text : PA5 = 倉庫編號_tb.Text : PA6 = 新項次
                        NU1 = BOM表明細1_dgv.Rows(I).Cells("數量").Value.ToString : PA9 = BOM表明細1_dgv.Rows(I).Cells("料號").Value.ToString
                        NU1 = NU1 * NU5
                        PA2 = "" : SQL_請購單明細表_新增() : conn.Close()
                    End If
                End If
            Next : MsgBox("新增完成，資料已在請購單上!!") : Set_請購單清單() : 申請數1_nud.Value = 0 : 申請數1_nud.Value = 0
        End If
    End Sub
    Private Sub 物料圖_pb_Click(sender As Object, e As EventArgs)
        If IsNothing(物料圖1_pb.Image) = False Then : 圖片傳遞 = 物料圖1_pb.Image : 圖片放大視窗.ShowDialog() : End If
    End Sub
    Private Sub 物料圖1_pb_Click(sender As Object, e As EventArgs) Handles 物料圖1_pb.Click
        If IsNothing(物料圖1_pb.Image) = False Then : 圖片傳遞 = 物料圖1_pb.Image : 圖片放大視窗.ShowDialog() : End If
    End Sub
    Private Sub 詳細資料2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料2_ch.Click
        If 詳細資料2_ch.Checked = True Then : 詳細資料2_ch.Checked = True : Else : 詳細資料2_ch.Checked = False : End If : Set_請購單清單()
    End Sub
    Private Sub 單據_bt_Click(sender As Object, e As EventArgs) Handles 單據_bt.Click
        單據_p.BringToFront()
    End Sub
End Class