Imports System.Windows.Forms
Public Class 供應商資料表
    ReadOnly ds1 As New DataSet
    Dim 資料新增判斷 As Boolean : Dim 第一次開啟判斷 As Boolean = False : Dim EDR As Integer = 0 : Dim ESTR As String : Dim 首次開啟 As Boolean = False
    Private Sub Set_清單()
        供應商_dgv.DataSource = Nothing : ds1.Clear() : 供應商_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
        供應商_dgv.ColumnHeadersHeight = 25
        供應商_dgv.AllowUserToAddRows = False
        供應商_dgv.RowTemplate.Height = 30

        SQL_供應商資料表_清單()
        da.Fill(ds1) : 供應商_dgv.DataSource = ds1.Tables(0) : conn.Close()
        供應商_dgv.Columns(0).ReadOnly = True : 供應商_dgv.Columns(11).ReadOnly = True
        供應商_dgv.Columns("編號").FillWeight = 20 : 供應商_dgv.Columns("簡稱").FillWeight = 35 : 供應商_dgv.Columns("供應商").FillWeight = 50
        供應商_dgv.Columns("公司地址").FillWeight = 100 : 供應商_dgv.Columns("電話1").FillWeight = 35 : 供應商_dgv.Columns("電話2").FillWeight = 35
        供應商_dgv.Columns("電話3").FillWeight = 35 : 供應商_dgv.Columns("電話4").FillWeight = 35 : 供應商_dgv.Columns("店面地址").Visible = False
        供應商_dgv.Columns("店面電話").FillWeight = 35 : 供應商_dgv.Columns("工廠地址").Visible = False : 供應商_dgv.Columns("聯繫人1").Visible = False
        供應商_dgv.Columns("聯繫人2").Visible = False : 供應商_dgv.Columns("手機").FillWeight = 35 : 供應商_dgv.Columns("傳真").FillWeight = 35
        供應商_dgv.Columns("POS").Visible = False : 供應商_dgv.Columns("備註1").Visible = False : 供應商_dgv.Columns("備註2").Visible = False
        供應商_dgv.Columns("登入日期").Visible = False : 供應商_dgv.Columns("結算日").Visible = False : 供應商_dgv.Columns("KR1").Visible = False
        供應商_dgv.Columns("KR2").Visible = False : 供應商_dgv.Columns("KR3").Visible = False : 供應商_dgv.Columns("PEC").Visible = False
        供應商_dgv.Columns("停用").FillWeight = 20 : 供應商_dgv.Columns("票期").FillWeight = 20 : 供應商_dgv.Columns("支票_私人").FillWeight = 20
        供應商_dgv.Columns("支票_公司").FillWeight = 50 : 供應商_dgv.Columns("稅金倍率").FillWeight = 20 : 供應商_dgv.Columns("廣告費倍率").FillWeight = 20
        資料筆數_tb.Text = 供應商_dgv.Rows.Count
    End Sub
    Private Sub 地區碼_下拉表單資料載入()
        SQL_地區碼_下拉清單() : 地區_cb.Items.Clear() : 地區編碼_cb.Items.Clear()
        While (dr.Read()) : 地區_cb.Items.Add(dr("地區")) : 地區編碼_cb.Items.Add(dr("編碼")) : End While : conn.Close()
    End Sub
    Private Sub 供應商資料表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.MdiParent = YD_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
        第一次開啟判斷 = True : 地區編碼_cb.Enabled = False '--------------------控件隱藏、操作許可設定與其他基本顯示設定
        狀態_lb.Text = "預覽狀態"

        If Val(登入人級別) <= 2 Then '--------------------刪除資料權限
            刪除ToolStripMenuItem.Enabled = True : 刪除_bt.Enabled = True
        Else
            刪除ToolStripMenuItem.Enabled = False : 刪除_bt.Enabled = False
        End If
        首次開啟 = False : 地區碼_下拉表單資料載入() : Set_清單() : 首次開啟 = True '--------------------資料讀取
        If YD_ERP_SYS.Size.Width > 1440 And YD_ERP_SYS.Size.Height > 900 Then
            字體_NUD.Value = 9
        ElseIf YD_ERP_SYS.Size.Width <= 1440 And YD_ERP_SYS.Size.Height <= 900 Then
            字體_NUD.Value = 7.6
        End If
    End Sub
    Private Sub 供應商資料表_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
        If 第一次開啟判斷 = True Then
            Set_清單()
        End If
        If YD_ERP_SYS.Size.Width > 1440 And YD_ERP_SYS.Size.Height > 900 Then
            字體_NUD.Value = 9
        ElseIf YD_ERP_SYS.Size.Width <= 1440 And YD_ERP_SYS.Size.Height <= 900 Then
            字體_NUD.Value = 7.6
        End If
    End Sub
    Private Sub 供應商資料表_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
        If 資料新增判斷 = True Then '--------------------如果再關閉介面時，資料新增判斷是開啟的，就無條件刪除控件上的那筆資料
            SQL_供應商資料表_刪除() '--------------------資料刪除
        End If
        第一次開啟判斷 = False
    End Sub
    Private Sub 供應商_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 供應商_dgv.CellEnter
        If 首次開啟 = True Then
            If e.RowIndex = -1 Then : Else
                編號_tb.Text = 供應商_dgv("編號", e.RowIndex).Value.ToString : 簡稱_tb.Text = 供應商_dgv("簡稱", e.RowIndex).Value.ToString
                供應商_tb.Text = 供應商_dgv("供應商", e.RowIndex).Value.ToString : 公司地址_tb.Text = 供應商_dgv("公司地址", e.RowIndex).Value.ToString
                電話1_tb.Text = 供應商_dgv("電話1", e.RowIndex).Value.ToString : 電話2_tb.Text = 供應商_dgv("電話2", e.RowIndex).Value.ToString
                電話3_tb.Text = 供應商_dgv("電話3", e.RowIndex).Value.ToString : 電話4_tb.Text = 供應商_dgv("電話4", e.RowIndex).Value.ToString
                店面地址_tb.Text = 供應商_dgv("店面地址", e.RowIndex).Value.ToString : 店面電話_tb.Text = 供應商_dgv("店面電話", e.RowIndex).Value.ToString
                工廠地址_tb.Text = 供應商_dgv("工廠地址", e.RowIndex).Value.ToString : 聯繫人1_tb.Text = 供應商_dgv("聯繫人1", e.RowIndex).Value.ToString
                聯繫人2_tb.Text = 供應商_dgv("聯繫人2", e.RowIndex).Value.ToString : 手機_tb.Text = 供應商_dgv("手機", e.RowIndex).Value.ToString
                傳真_tb.Text = 供應商_dgv("傳真", e.RowIndex).Value.ToString : POS_tb.Text = 供應商_dgv("POS", e.RowIndex).Value.ToString
                備註1_tb.Text = 供應商_dgv("備註1", e.RowIndex).Value.ToString : 備註2_tb.Text = 供應商_dgv("備註2", e.RowIndex).Value.ToString
                登入日期_dtp.Value = 供應商_dgv("登入日期", e.RowIndex).Value : 結算日_nud.Value = 供應商_dgv("結算日", e.RowIndex).Value
                KR1_nud.Value = 供應商_dgv("KR1", e.RowIndex).Value : KR2_nud.Value = 供應商_dgv("KR2", e.RowIndex).Value
                KR3_nud.Value = 供應商_dgv("KR3", e.RowIndex).Value : PEC_cb.Text = 供應商_dgv("PEC", e.RowIndex).Value.ToString
                停用_ch.Checked = 供應商_dgv("停用", e.RowIndex).Value : 票期_cb.Text = 供應商_dgv("票期", e.RowIndex).Value
                私人支票_tb.Text = 供應商_dgv("支票_私人", e.RowIndex).Value.ToString : 公司支票_tb.Text = 供應商_dgv("支票_公司", e.RowIndex).Value.ToString
                稅金倍率_tb.Text = 供應商_dgv("稅金倍率", e.RowIndex).Value.ToString : 廣告費倍率_tb.Text = 供應商_dgv("廣告費倍率", e.RowIndex).Value.ToString
            End If
        End If
    End Sub
    Private Sub 地區_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 地區_cb.SelectedIndexChanged
        地區編碼_cb.SelectedIndex = 地區_cb.SelectedIndex : Set_清單()
    End Sub
    Private Sub 地區編碼_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 地區編碼_cb.SelectedIndexChanged
        地區_cb.SelectedIndex = 地區編碼_cb.SelectedIndex
    End Sub
    Private Sub 查詢_tb_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles 查詢_tb.KeyPress
        If e.KeyChar = Chr(13) Then
            PA = 查詢_tb.Text : Set_清單()
        End If
    End Sub
    Private Sub 清空_bt_Click(sender As Object, e As EventArgs) Handles 清空_bt.Click
        地區碼_下拉表單資料載入() : Set_清單()
    End Sub
    Private Sub Set_日期格式轉換()
        DTP = Format(登入日期_dtp.Value, "yyyy/MM/dd")
    End Sub
    Private Sub 字體_NUD_ValueChanged(sender As Object, e As EventArgs) Handles 字體_NUD.ValueChanged
        供應商_dgv.RowsDefaultCellStyle.Font = New Font("微軟正黑體", 字體_NUD.Value)
    End Sub
    Private Sub 新增準備_bt_Click(sender As Object, e As EventArgs) Handles 新增準備_bt.Click
        If 地區編碼_cb.Text = "" Then '--------------------設定條件讓業務控件不為空
            MsgBox("沒有選擇地區")
        Else
            編號_tb.Text = "" : 簡稱_tb.Text = "" : 供應商_tb.Text = "" : 公司地址_tb.Text = "" : 電話1_tb.Text = "" '--------------------控件清空
            電話2_tb.Text = "" : 電話3_tb.Text = "" : 電話4_tb.Text = "" : 店面地址_tb.Text = "" : 店面電話_tb.Text = ""
            工廠地址_tb.Text = "" : 聯繫人1_tb.Text = "" : 聯繫人2_tb.Text = "" : 手機_tb.Text = "" : 傳真_tb.Text = ""
            POS_tb.Text = "" : 備註1_tb.Text = "" : 備註2_tb.Text = "" : 登入日期_dtp.Value = Today() : 結算日_nud.Value = 25
            KR1_nud.Value = 0 : KR2_nud.Value = 0 : KR3_nud.Value = 0 : PEC_cb.Text = "0" : 停用_ch.Checked = False
            查詢_tb.Text = "" : 票期_cb.Text = "45" : 私人支票_tb.Text = "" : 公司支票_tb.Text = "" : 稅金倍率_tb.Text = "" : 廣告費倍率_tb.Text = ""
            資料新增判斷 = True '--------------------目前的編輯狀態
            狀態_lb.Text = "編輯狀態"
            供應商_dgv.Enabled = False : 查詢_tb.Enabled = False '--------------------關閉DGV與關鍵字查詢控件的點選控制功能
            PA = InputBox("手工請輸入供應商編號!") : 編號_tb.Text = PA

            Set_日期格式轉換() '--------------------到職日期格式傳換
            SQL_供應商資料表_新增() '--------------------人事資料表中寫入一筆資料
        End If
    End Sub
    Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click
        If 簡稱_tb.Text = "" Then '--------------------設定條件讓簡稱_tb控件不為空
            MsgBox("供應商簡稱沒有輸入。")
        Else
            If 供應商_tb.Text = "" Then '--------------------設定條件讓供應商_tb控件不為空
                MsgBox("沒有供應商全稱無法訂貨喔。")
            Else
                If 聯繫人1_tb.Text = "" Then '--------------------設定條件讓聯繫人1_tb控件不為空
                    MsgBox("最少要有一個聯絡人。")
                Else
                    If 公司地址_tb.Text = "" Then '--------------------設定條件讓公司地址_tb控件不為空
                        MsgBox("最少要留下公司定址。")
                    Else
                        If 電話1_tb.Text = "" Then '--------------------設定條件讓電話1_tb控件不為空
                            MsgBox("最少要有一支公司電話在公司電話1，不然怎麼定貨。")
                        Else
                            資料新增判斷 = False '--------------------目前的編輯狀態
                            狀態_lb.Text = "預覽狀態"
                            供應商_dgv.Enabled = True : 查詢_tb.Enabled = True '--------------------開啟DGV與關鍵字查詢控件的點選控制功能
                            SQL_供應商資料表_修改() '--------------------資料修改
                            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 編號_tb.Text = "" Then '--------------------設定條件讓流水號控件不為空
            MsgBox("沒有選擇要刪除的資料")
        Else
            Dim aa1 As MsgBoxResult = MsgBox("確定要執行刪除指令嗎?", MsgBoxStyle.OkCancel)
            If aa1 = MsgBoxResult.Ok Then
                SQL_供應商資料表_刪除() '--------------------資料刪除
                Set_清單() '--------------------資料修改後重新讀取清單
            End If
        End If
    End Sub
    '-------------------滑鼠右鍵-------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Private Sub 重新整理ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新整理ToolStripMenuItem.Click
        Set_清單()
    End Sub
    Private Sub 新增準備ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 新增準備ToolStripMenuItem.Click
        新增準備_bt.PerformClick()
    End Sub
    Private Sub 存檔ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 存檔ToolStripMenuItem.Click
        存檔_bt.PerformClick()
    End Sub
    Private Sub 刪除ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 刪除ToolStripMenuItem.Click
        刪除_bt.PerformClick()
    End Sub
    Private Sub 批量存檔_bt_Click(sender As Object, e As EventArgs) Handles 批量存檔_bt.Click
        For i As Integer = 0 To 供應商_dgv.Rows.Count - 1
            資料數 = 供應商_dgv.Rows.Count : MyModule1.進度條() : YD_ERP_SYS.ToolStripProgressBar1.Value = 最終數
            PA1 = 供應商_dgv.Rows(i).Cells("編號").Value : PA2 = 供應商_dgv.Rows(i).Cells("簡稱").Value : PA3 = 供應商_dgv.Rows(i).Cells("供應商").Value.ToString
            PA4 = 供應商_dgv.Rows(i).Cells("公司地址").Value : PA5 = 供應商_dgv.Rows(i).Cells("電話1").Value.ToString : PA6 = 供應商_dgv.Rows(i).Cells("電話2").Value.ToString
            PA7 = 供應商_dgv.Rows(i).Cells("電話3").Value.ToString : PA8 = 供應商_dgv.Rows(i).Cells("電話4").Value.ToString : PA9 = 供應商_dgv.Rows(i).Cells("店面電話").Value
            PA10 = 供應商_dgv.Rows(i).Cells("手機").Value : PA11 = 供應商_dgv.Rows(i).Cells("傳真").Value : PA12 = 供應商_dgv.Rows(i).Cells("票期").Value : PA13 = 供應商_dgv.Rows(i).Cells("支票_私人").Value
            PA14 = 供應商_dgv.Rows(i).Cells("支票_公司").Value : PA15 = 供應商_dgv.Rows(i).Cells("稅金倍率").Value : PA16 = 供應商_dgv.Rows(i).Cells("廣告費倍率").Value
            SQL_供應商資料表_批量存檔() : conn.Close()
        Next : YD_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0 : MsgBox("修改完成")
    End Sub
End Class